[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 <[email protected]>
Commit-Queue: Dan Shi <[email protected]>
Tested-by: Dan Shi <[email protected]>
diff --git a/utils/unittest_suite.py b/utils/unittest_suite.py
index 82bdf88..031cafb 100755
--- a/utils/unittest_suite.py
+++ b/utils/unittest_suite.py
@@ -48,6 +48,7 @@
'host_scheduler_unittests.py',
'site_parse_unittest.py',
'shard_client_integration_tests.py',
+ 'server_manager_unittest.py',
))
REQUIRES_MYSQLDB = set((