diff options
Diffstat (limited to 'deploy/post/nova.py')
-rw-r--r-- | deploy/post/nova.py | 25 |
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) |