def createAndStartSwarm(client, clientInfo="<STR_LIT>", clientKey="<STR_LIT>", params="<STR_LIT>",<EOL>minimumWorkers=None, maximumWorkers=None,<EOL>alreadyRunning=False):
if minimumWorkers is None:<EOL><INDENT>minimumWorkers = Configuration.getInt(<EOL>"<STR_LIT>")<EOL><DEDENT>if maximumWorkers is None:<EOL><INDENT>maximumWorkers = Configuration.getInt(<EOL>"<STR_LIT>")<EOL><DEDENT>return ClientJobsDAO.get().jobInsert(<EOL>client=client,<EOL>cmdLine="<STR_LIT>",<EOL>clientInfo=clientInfo,<EOL>clientKey=clientKey,<EOL>alreadyRunning=alreadyRunning,<EOL>params=params,<EOL>minimumWorkers=minimumWorkers,<EOL>maximumWorkers=maximumWorkers,<EOL>jobType=ClientJobsDAO.JOB_TYPE_HS)<EOL>
Create and start a swarm job.

    Args:
      client - A string identifying the calling client. There is a small limit
          for the length of the value. See ClientJobsDAO.CLIENT_MAX_LEN.
      clientInfo - JSON encoded dict of client specific information.
      clientKey - Foreign key. Limited in length, see ClientJobsDAO._initTables.
      params - JSON encoded dict of the parameters for the job. This can be
          fetched out of the database by the worker processes based on the jobID.
      minimumWorkers - The minimum workers to allocate to the swarm. Set to None
          to use the default.
      maximumWorkers - The maximum workers to allocate to the swarm. Set to None
          to use the swarm default. Set to 0 to use the maximum scheduler value.
      alreadyRunning - Insert a job record for an already running process. Used
          for testing.