blob: 9ae3e52f2cde4d5278c7f12f6d92d3039250572a [file] [log] [blame]
#! /usr/bin/env python
import json
import os
import requests
import sys
from operator import itemgetter, attrgetter
opencloud_auth = None
REST_API="http://portal.opencloud.us/xos/"
NODES_API = REST_API + "nodes/"
SITES_API = REST_API + "sites/"
SLICES_API = REST_API + "slices/"
SLIVERS_API = REST_API + "instance/"
def get_nodes_by_site():
r = requests.get(SITES_API + "?no_hyperlinks=1", auth=opencloud_auth)
sites_list = r.json()
sites = {}
for site in sites_list:
site["hostnames"] = []
sites[str(site["id"])] = site
r = requests.get(NODES_API + "?no_hyperlinks=1", auth=opencloud_auth)
nodes = r.json()
for node in nodes:
site_id = str(node["site"])
if site_id in sites:
sites[site_id]["hostnames"].append(node["name"])
return sites
"""
WIP
def get_nodes_by_slice():
r = requests.get(SLICES_API + "?no_hyperlinks=1", auth=opencloud_auth)
sites_list = r.json()
slices = {}
for slice in slices_list:
slice["hostnames"] = []
slices[str(slices["id"])] = slice
r = requests.get(NODES_API + "?no_hyperlinks=1", auth=opencloud_auth)
nodes_list = r.json()
nodes = {}
for node in nodes_list:
nodes[str(nodes["id"])] = node
r = requests.get(SLIVERS_API + "?no_hyperlinks=1", auth=opencloud_auth)
instances = r.json()
for instances in nodes:
if instance["node"] not in nodes:
continue
if instance["slice"] not in slices:
continue
hostname = nodes[instance["node"]].name
slices[instance["slice"]]["hostnames"].append(hostname)
return slices
"""
def main():
global opencloud_auth
if len(sys.argv)!=3:
print >> sys.stderr, "syntax: get_instance_name.py <username>, <password>"
sys.exit(-1)
username = sys.argv[1]
password = sys.argv[2]
opencloud_auth=(username, password)
sites = get_nodes_by_site()
for site in sites.values():
if not site["hostnames"]:
continue
print "[%s]" % site["name"]
for hostname in site["hostnames"]:
print hostname
print ""
print "[all-opencloud:children]"
for site in sites.values():
if not site["hostnames"]:
continue
print site["name"]
if __name__ == "__main__":
main()