From: Zack Cerza Date: Mon, 8 Sep 2014 19:12:52 +0000 (-0600) Subject: Add lock.update_inventory() X-Git-Tag: 1.1.0~1172 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=33f8f08ef1930af71fc0c28f2e66a65ccf19f0a6;p=teuthology.git Add lock.update_inventory() Signed-off-by: Zack Cerza --- diff --git a/teuthology/lock.py b/teuthology/lock.py index 16272e337e..1d7fa3bed5 100644 --- a/teuthology/lock.py +++ b/teuthology/lock.py @@ -377,6 +377,33 @@ def update_lock(name, description=None, status=None, ssh_pub_key=None): return True +def update_inventory(node_dict): + """ + Like update_lock(), but takes a dict and doesn't try to do anything smart + by itself + """ + name = node_dict.get('name') + if not name: + raise ValueError("must specify name") + if not config.lock_server: + return + uri = os.path.join(config.lock_server, 'nodes', name, '') + log.info("Updating %s on lock server", name) + response = requests.put( + uri, + json.dumps(node_dict)) + if response.status_code == 404: + log.info("Creating new node %s on lock server", name) + uri = os.path.join(config.lock_server, 'nodes', '') + response = requests.post( + uri, + json.dumps(node_dict)) + if not response.ok: + log.error("Node update/creation failed for %s: %s", + name, response.text) + return response.ok + + def ssh_keyscan(hostnames): """ Fetch the SSH public key of one or more hosts