[autotest] Add atest command to interact with server database

This CL add following actions to atest command to make chances to server
database.

atest server list [--summary] [--role role_name] [--status status]
    Show servers with optinal role and status.

atest server create hostname --role role_name
    Create a server with given role, with status backup.

atest server delete hostname
    Delete a server from the database.

atest server modify hostname --role role_name --status status --note note \
    --delete --attribute attr_name --value value
    Modify a server's role, status, note, or attribute:
    1. Add role to a server. If the server is in primary status, proper actions
       like service restart will be executed to enable the role (in a later CL).
    2. Delete a role from a server. If the server is in primary status, proper
       actions like service restart will be executed to disable the role (in a
       later CL).
    3. Change status of a server. If the server is changed from or to primary
       status, proper actions like service restart will be executed to enable
       or disable each role of the server (in a lter CL).
    4. Change note of a server. Note is a field you can add description about
       the server.
    5. Change/delete attribute of a server. Attribute can be used to store
       information about a server. For example, the max_processes count for a
       drone.

BUG=chromium:424778
CQ-DEPEND=CL:231671
TEST=unittest and atest commands in local setup:
atest server create hostname --role drone
atest server delete hostname
atest server modify hostname --role drone
atest server modify hostname --status primary
atest server modify hostname --role devserver
atest server modify hostname --role drone --delete
atest server modify hostname --attribute max_processes --value 200
atest server modify hostname --attribute max_processes --delete

Change-Id: Ie8f7f651b3e5be53bf078b963d50f37dd067503f
Reviewed-on: https://chromium-review.googlesource.com/232003
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
4 files changed