summaryrefslogtreecommitdiffstats
path: root/deploy/post/nova.py
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/post/nova.py')
-rw-r--r--deploy/post/nova.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/deploy/post/nova.py b/deploy/post/nova.py
new file mode 100644
index 00000000..5c356a13
--- /dev/null
+++ b/deploy/post/nova.py
@@ -0,0 +1,25 @@
+import novaclient.client
+
+import keystoneauth
+
+
+class Nova(keystoneauth.Keystoneauth):
+ def __init__(self, version='2', openrc=None):
+ super(Nova, self).__init__(openrc)
+ self.client = novaclient.client.Client(version, session=self.session)
+ self.flavors = self.client.flavors
+
+ def create_flavor(self, name, ram, vcpus, disk, is_public=True):
+ flavor = self.flavors.create(name, ram, vcpus, disk,
+ is_public=is_public)
+ return flavor.id
+
+ def get_flavor_by_name(self, name):
+ for flavor in self.list_flavors():
+ if flavor.name == name:
+ return flavor.id
+
+ return None
+
+ def list_flavors(self):
+ return self.flavors.list(detailed=True)