From d5deaa3f47a17fc6f482a408f1755a4f265d458b Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Mon, 11 Aug 2014 17:52:39 -0700 Subject: [PATCH] tool for getting instance name via rest API --- planetstack/tools/get_instance_name.py | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 planetstack/tools/get_instance_name.py diff --git a/planetstack/tools/get_instance_name.py b/planetstack/tools/get_instance_name.py new file mode 100644 index 0000000..a0b55d2 --- /dev/null +++ b/planetstack/tools/get_instance_name.py @@ -0,0 +1,65 @@ +#! /usr/bin/python + +import json +import os +import requests +import sys + +REST_API="http://alpha.opencloud.us:8000/plstackapi/" + +NODES_API = REST_API + "nodes/" +SLICES_API = REST_API + "slices/" +SLIVERS_API = REST_API + "slivers/" + +opencloud_auth=("demo@onlab.us", "demo") + +def get_slice_id(slice_name): + r = requests.get(SLICES_API + "?name=%s" % slice_name, auth=opencloud_auth) + return r.json()[0]["id"] + +def get_node_id(host_name): + r = requests.get(NODES_API + "?name=%s" % host_name, auth=opencloud_auth) + return r.json()[0]["id"] + +def get_slivers(slice_id=None, node_id=None): + queries = [] + if slice_id: + queries.append("slice=%s" % str(slice_id)) + if node_id: + queries.append("node=%s" % str(node_id)) + + if queries: + query_string = "?" + "&".join(queries) + else: + query_string = "" + + r = requests.get(SLIVERS_API + query_string, auth=opencloud_auth) + return r.json() + +def main(): + global opencloud_auth + + if len(sys.argv)!=5: + print >> sys.stderr, "syntax: get_instance_name.py , , " + sys.exit(-1) + + username = sys.argv[1] + password = sys.argv[2] + hostname = sys.argv[3] + slice_name = sys.argv[4] + + opencloud_auth=(username, password) + + slice_id = get_slice_id(slice_name) + node_id = get_node_id(hostname) + slivers = get_slivers(slice_id, node_id) + + instance_names = [x["instance_name"] for x in slivers if x["instance_name"]] + + # return the last one in the list (i.e. the newest one) + + print sorted(instance_names)[-1] + +if __name__ == "__main__": + main() + -- 2.43.0