Skip to content
Lucas Meneghel Rodrigues edited this page Sep 22, 2011 · 4 revisions

Job Management - atest job

The following actions are used to manage jobs:

# atest job help
usage: atest job [create|list|stat|abort] [options] <job_ids>

options:
  -h, --help            show this help message and exit
  -g, --debug           Print debugging information
  --kill-on-failure     Stop at the first failure
  --parse               Print the output using colon separated key=value
                        fields
  -v, --verbose
  -w WEB_SERVER, --web=WEB_SERVER
                        Specify the autotest server to talk to

Creating a Job

# atest job create help
usage: atest job create [options] job_name

options:
  -h, --help            show this help message and exit
  -g, --debug           Print debugging information
  --kill-on-failure     Stop at the first failure
  --parse               Print the output using colon separated key=value
                        fields
  -v, --verbose
  -w WEB_SERVER, --web=WEB_SERVER
                        Specify the autotest server to talk to
  -p PRIORITY, --priority=PRIORITY
                        Job priority (low, medium, high, urgent),
                        default=medium
  -y, --synchronous     Make the job synchronous
  -c, --container       Run this client job in a container
  -f FILE, --control-file=FILE
                        use this control file
  -s, --server          This is server-side job
  -t TESTS, --tests=TESTS
                        Run a job with these tests
  -k KERNEL, --kernel=KERNEL
                        Install kernel from this URL before beginning job
  -m MACHINE, --machine=MACHINE
                        List of machines to run on
  -M MACHINE_FLIST, --mlist=MACHINE_FLIST
                        File listing machines to use

You can only create one job at a time. The job will be assigned the name job_name and will be run on the machine(s) specified using the -m|--machine|-M|--mlist options.

The machines can be specified using their hostnames or if you are just interested in the machine type, you can use the platform labels. The syntax for those is: n*platform to run on n machines of type platform e.g., 2*Xeon,3*Athlon,*zx_spectrum. You can omit n if n equals 1.

The options are:

  • -p|--priority sets the job scheduling priority to Low, Medium (default), High or Urgent.
  • -s|--server specifies if the job is a server job, or a client job (default). A server job must specify a control file using the --control-file option.
  • -y|--synchronous specifies if the job is synchronous or asynchronous (default).
  • -k|--kernel=<file> specifies the URL of a kernel to install before running the test(s).
  • -c|--container runs the test(s) in a container. This is only valid for client-side jobs.

The tests can be specified in 2 mutually exclusive ways:

  • -f|--control-file=FILE will run the job described in the control file FILE,
  • -t|--tests=a,b,c will create a control file to run the tests a, b, and c.

One of these 2 options must be present.

The control file must be specified if your job is:

  • synchronous, or
  • a server-side job.

The --control-file option cannot be used with:

  • the --kernel option.
  • the --container option.

If you want to do any of those, code it in the control file itself.

You can find the list of existing tests using atest test list.

# Create a job my_test using known tests on host0:
# atest job create --test dbench,kernbench -m host0 my_test
Created job:
        my_test (id 6749)

# Create a server job using a custom control file on host0:
# cat ./control
job.run_test('sleeptest')

# atest job create --server -f ./control -m host0 my_test_ctrl_file
Created job:
        my_test_ctrl_file (id 6751)

# Create a job on 2 Xeon machines, 3 Athlon and 1 x286:
# Find the platform labels:
# atest label list -t
Name    Valid
Xeon    True
Athlon  True
x286    True

# atest job create --test kernbench -m 2*Xeon,3*Athlon,*x286, test_on_meta_hosts
Created job:
        test_on_meta_hosts (id 6761)

Listing Jobs

# atest job list help
usage: atest job list [options] <job_ids>

options:
  -h, --help            show this help message and exit
  -g, --debug           Print debugging information
  --kill-on-failure     Stop at the first failure
  --parse               Print the output using colon separated key=value
                        fields
  -v, --verbose
  -w WEB_SERVER, --web=WEB_SERVER
                        Specify the autotest server to talk to
  -a, --all             List jobs for all users.
  -r, --running         List only running jobs
  -u USER, --user=USER  List jobs for given user

You can list all the jobs, or filter on specific users, IDs or job names. You can use the * wildcard for the job_name filter.

# List all my jobs
# atest job list
Id    Owner  Name                  Status Counts
3590  user0  Thourough test        Aborted:31, Completed:128, Failed:74
6626  user0  Job                   Completed:1
6634  user0  Job name with spaces  Aborted:1
6749  user0  my_test               Queued:1
6751  user0  my_test_ctrl_file     Queued:1

# List all jobs starting with 'my'
# atest job list my*
Id    Owner  Name               Status Counts
1646  user1  myjob              Completed:2
2702  user2  mytestburnin3      Aborted:1
6749  user0  my_test            Queued:1
6751  user0  my_test_ctrl_file  Queued:1

Getting Jobs Status

# atest job stat help
usage: atest job stat [options] <job_ids>

options:
  -h, --help            show this help message and exit
  -g, --debug           Print debugging information
  --kill-on-failure     Stop at the first failure
  --parse               Print the output using colon separated key=value
                        fields
  -v, --verbose
  -w WEB_SERVER, --web=WEB_SERVER
                        Specify the autotest server to talk to
  -f, --control-file    Display the control file

At least one job ID or name must be specified. The * wildcard can be used for the job name but not for the job ID.

# Get status of the previously queued jobs.  Note the hostname in this output:
# atest job stat my_test\*
Id    Name               Priority  Status Counts  Host Status
6749  my_test            Medium    Queued:1       Queued:host0
6751  my_test_ctrl_file  Medium    Queued:1       Queued:host0

# The stats on a meta host job will show the hostname once the scheduler mapped the platform label to available hosts:

# atest job stat 6761
Id    Name                Priority  Status Counts        Host Status
6761  test_on_meta_hosts  Medium    Queued:4, Running:1  Running:host42

Aborting Jobs

# atest job abort help
usage: atest job abort [options] <job_ids>

options:
  -h, --help            show this help message and exit
  -g, --debug           Print debugging information
  --kill-on-failure     Stop at the first failure
  --parse               Print the output using colon separated key=value
                        fields
  -v, --verbose
  -w WEB_SERVER, --web=WEB_SERVER
                        Specify the autotest server to talk to

You must specify at least one job ID. You cannot use the job name.

# atest job abort 6749,6751 6761
Aborted jobs:
        6749, 6751, 6761
Clone this wiki locally