summaryrefslogtreecommitdiffstats
path: root/nova/adminclient.py
diff options
context:
space:
mode:
authorTodd Willey <todd@ansolabs.com>2011-01-25 16:40:23 -0800
committerTodd Willey <todd@ansolabs.com>2011-01-25 16:40:23 -0800
commit687886beeb7519e79b792ff6c42eaab75e664336 (patch)
tree0a256028babb8cd4f34ef46ff4066926260ac40d /nova/adminclient.py
parentdbbaa7c41384c57b2aa10514518b71180316e64a (diff)
downloadnova-687886beeb7519e79b792ff6c42eaab75e664336.tar.gz
nova-687886beeb7519e79b792ff6c42eaab75e664336.tar.xz
nova-687886beeb7519e79b792ff6c42eaab75e664336.zip
Add DescribeInstanceTypes to admin api (dashboard uses it).
Diffstat (limited to 'nova/adminclient.py')
-rw-r--r--nova/adminclient.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/nova/adminclient.py b/nova/adminclient.py
index b2609c8c4..3cdd8347f 100644
--- a/nova/adminclient.py
+++ b/nova/adminclient.py
@@ -190,6 +190,45 @@ class HostInfo(object):
setattr(self, name, value)
+class InstanceType(object):
+ """
+ Information about a Nova instance type, as parsed through SAX.
+
+ **Fields include**
+
+ * name
+ * vcpus
+ * disk_gb
+ * memory_mb
+ * flavor_id
+
+ """
+
+ def __init__(self, connection=None):
+ self.connection = connection
+ self.name = None
+ self.vcpus = None
+ self.disk_gb = None
+ self.memory_mb = None
+ self.flavor_id = None
+
+ def __repr__(self):
+ return 'InstanceType:%s' % self.name
+
+ def startElement(self, name, attrs, connection):
+ return None
+
+ def endElement(self, name, value, connection):
+ if name == "memoryMb":
+ self.memory_mb = str(value)
+ elif name == "flavorId":
+ self.flavor_id = str(value)
+ elif name == "diskGb":
+ self.disk_gb = str(value)
+ else:
+ setattr(self, name, str(value))
+
+
class NovaAdminClient(object):
def __init__(
@@ -373,3 +412,8 @@ class NovaAdminClient(object):
def get_hosts(self):
return self.apiconn.get_list('DescribeHosts', {}, [('item', HostInfo)])
+
+ def get_instance_types(self):
+ """Grabs the list of all users."""
+ return self.apiconn.get_list('DescribeInstanceTypes', {},
+ [('item', InstanceType)])