diff options
Diffstat (limited to 'snaps/openstack/openstack_creator.py')
-rw-r--r-- | snaps/openstack/openstack_creator.py | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/snaps/openstack/openstack_creator.py b/snaps/openstack/openstack_creator.py index 0caee9a..6eeac37 100644 --- a/snaps/openstack/openstack_creator.py +++ b/snaps/openstack/openstack_creator.py @@ -29,17 +29,24 @@ class OpenStackCloudObject(CloudObject): Constructor :param os_creds: the OpenStack credentials object """ - # super(self.__class__, self, os_creds) self._os_creds = os_creds + self._os_session = None + self._keystone = None def initialize(self): - raise NotImplementedError('Do not override abstract method') + self._os_session = keystone_utils.keystone_session(self._os_creds) + self._keystone = keystone_utils.keystone_client( + self._os_creds, session=self._os_session) + + def get_os_creds(self): + return self._os_creds def create(self): raise NotImplementedError('Do not override abstract method') def clean(self): - raise NotImplementedError('Do not override abstract method') + if self._os_session: + keystone_utils.close_session(self._os_session) class OpenStackComputeObject(OpenStackCloudObject): @@ -56,14 +63,12 @@ class OpenStackComputeObject(OpenStackCloudObject): self._nova = None def initialize(self): - self._nova = nova_utils.nova_client(self._os_creds) + super(OpenStackComputeObject, self).initialize() + self._nova = nova_utils.nova_client(self._os_creds, self._os_session) def create(self): raise NotImplementedError('Do not override abstract method') - def clean(self): - raise NotImplementedError('Do not override abstract method') - class OpenStackNetworkObject(OpenStackCloudObject): """ @@ -79,14 +84,13 @@ class OpenStackNetworkObject(OpenStackCloudObject): self._neutron = None def initialize(self): - self._neutron = neutron_utils.neutron_client(self._os_creds) + super(OpenStackNetworkObject, self).initialize() + self._neutron = neutron_utils.neutron_client( + self._os_creds, self._os_session) def create(self): raise NotImplementedError('Do not override abstract method') - def clean(self): - raise NotImplementedError('Do not override abstract method') - class OpenStackIdentityObject(OpenStackCloudObject): """ @@ -99,17 +103,13 @@ class OpenStackIdentityObject(OpenStackCloudObject): :param os_creds: the OpenStack credentials object """ super(OpenStackIdentityObject, self).__init__(os_creds) - self._keystone = None def initialize(self): - self._keystone = keystone_utils.keystone_client(self._os_creds) + super(OpenStackIdentityObject, self).initialize() def create(self): raise NotImplementedError('Do not override abstract method') - def clean(self): - raise NotImplementedError('Do not override abstract method') - class OpenStackVolumeObject(OpenStackCloudObject): """ @@ -125,14 +125,13 @@ class OpenStackVolumeObject(OpenStackCloudObject): self._cinder = None def initialize(self): - self._cinder = cinder_utils.cinder_client(self._os_creds) + super(OpenStackVolumeObject, self).initialize() + self._cinder = cinder_utils.cinder_client( + self._os_creds, self._os_session) def create(self): raise NotImplementedError('Do not override abstract method') - def clean(self): - raise NotImplementedError('Do not override abstract method') - class OpenStackMagnumObject(OpenStackCloudObject): """ @@ -148,10 +147,9 @@ class OpenStackMagnumObject(OpenStackCloudObject): self._magnum = None def initialize(self): - self._magnum = magnum_utils.magnum_client(self._os_creds) + super(OpenStackMagnumObject, self).initialize() + self._magnum = magnum_utils.magnum_client( + self._os_creds, self._os_session) def create(self): raise NotImplementedError('Do not override abstract method') - - def clean(self): - raise NotImplementedError('Do not override abstract method') |