Host Management - autotest-rpc-client host

NOTE: THIS IS ONLY PARTIALLY DONE.

The following actions are available to manage hosts:

# autotest-rpc-client host help
Usage: autotest-rpc-client host [create|delete|list|stat|mod|jobs] [options] <hosts>

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
  -M MACHINE_FLIST, --mlist=MACHINE_FLIST
                        File listing the machines

Creating a Host

#  autotest-rpc-client host create help
usage: autotest-rpc-client host create [options] <hosts>

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
  --mlist=MACHINE_FLIST
                        File listing the machines
  -l, --lock            Create the hosts as locked
  -u, --unlock          Create the hosts as unlocked (default)
  -t PLATFORM, --platform=PLATFORM
                        Sets the platform label
  -b LABELS, --labels=LABELS
                        Comma separated list of labels
  --blist=LABEL_FLIST   File listing the labels
  -a ACLS, --acls=ACLS  Comma separated list of ACLs
  --alist=ACL_FLIST     File listing the acls

Multiple hosts can be created with one command. The hostname(s) can be specified on the command line or in a file using the --mlist option.

You can specify the platform type, labels and ACLs for all the newly added hosts. If you want the hosts to be locked, specify --locked flag. The scheduler will not assign jobs to a locked host.

# cat /tmp/my_machines
host0
host1

# Create 2 hosts, locked and add them to the my_acl ACL.
# autotest-rpc-client host create --mlist /tmp/my_machines -a my_acl -l
Added hosts:
        host0, host1

Deleting a Host

# autotest-rpc-client host delete help
usage: autotest-rpc-client host delete [options] <hosts>

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
  --mlist=MACHINE_FLIST
                        File listing the machines

Multiple hosts can be deleted with one CLI. The hostname(s) can be specified on the command line or in a file using the --mlist option.

# The list can be comma or space separated.
# autotest-rpc-client host delete host1,host0 host2
Deleted hosts:
        host0, host1, host2

Listing Hosts

# autotest-rpc-client host list help
Usage: autotest-rpc-client host list [options] <hosts>

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
  -M MACHINE_FLIST, --mlist=MACHINE_FLIST
                        File listing the machines
  -b LABEL, --label=LABEL
                        Only list hosts with this label
  -s STATUS, --status=STATUS
                        Only list hosts with this status
  -a ACL, --acl=ACL     Only list hosts within this ACL
  -u USER, --user=USER  Only list hosts available to this user

You can which host(s) you want to display using a combination of options and wildcards.

# List all the hosts
# autotest-rpc-client host list
Host   Status  Locked  Platform  Labels
host1  Ready   True              label1
host0  Ready   True              label0
mach0  Ready   True
mach1  Ready   True

# Only hosts starting with ho
# autotest-rpc-client host list  ho\*
Host   Status  Locked  Platform  Labels
host1  Ready   True              label1
host0  Ready   True              label0

# Only hosts having the label0 label
# autotest-rpc-client host list -b label0
Host   Status  Locked  Platform  Labels
host0  Ready   True              label0

# Only hosts having a label starting with lab
# autotest-rpc-client host list -b lab\*
Host   Status  Locked  Platform  Labels
host1  Ready   True              label1
host0  Ready   True              label0

# Only hosts starting with ho and having a label starting with la
# autotest-rpc-client host list -b la\* ho\*
Host   Status  Locked  Platform  Labels
host1  Ready   True              label1
host0  Ready   True              label0

Getting Hosts Status

# autotest-rpc-client host stat help
Usage: autotest-rpc-client host stat [options] <hosts>

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
  -M MACHINE_FLIST, --mlist=MACHINE_FLIST

To display host information:

# autotest-rpc-client host stat host0
-----
Host: host0
Platform: x386
Status: Repair Failed
Locked: False
Locked by: None
Locked time: None
Protection: Repair filesystem only

ACLs:
Id   Name
110  acl0
136  acl1

Labels:
Id   Name
392  standard_config
428  my_machines

Modifying Hosts Status

# autotest-rpc-client host mod help
Usage: autotest-rpc-client host mod [options] <hosts>

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
  -M MACHINE_FLIST, --mlist=MACHINE_FLIST
                        File listing the machines
  -y, --ready           Mark this host ready
  -d, --dead            Mark this host dead
  -l, --lock            Lock hosts
  -u, --unlock          Unlock hosts
  -p PROTECTION, --protection=PROTECTION
                        Set the protection level on a host.  Must be one of:
                        "Repair filesystem only", "No protection", or "Do not
                        repair"

You can change the various states of the machines:

# Lock all ho* hosts:
# autotest-rpc-client host mod -l ho*
Locked hosts:
        host0, host1

# Hosts have been repaired, put them back in the pool:
# autotest-rpc-client host mod --ready host0
Set status to Ready for host:
        host0