diff options
author | spisarski <s.pisarski@cablelabs.com> | 2017-05-16 13:57:26 -0600 |
---|---|---|
committer | spisarski <s.pisarski@cablelabs.com> | 2017-05-16 13:57:26 -0600 |
commit | 6fd1af82cd7bf41274c4e1620006004b79628759 (patch) | |
tree | e60a9f18c777892f5fe3cb0a8b279cc99b847e20 /snaps/openstack/create_instance.py | |
parent | f57080bd2a6412c8fdc50c68111e780f6c36a360 (diff) |
Ensure creators' constructors cannot raise exceptions.
While creating unit tests for vPing that is using SNAPS, exceptions can
be raised when retrieving their respective OpenStack clients with
incorrect credentials. Moved client retrieval to the create() method
which one should expect exceptions to be raised.
JIRA: SNAPS-81
Change-Id: Id8e4279f60b97704b25a89c6312dcf2ebdc3f459
Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/openstack/create_instance.py')
-rw-r--r-- | snaps/openstack/create_instance.py | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/snaps/openstack/create_instance.py b/snaps/openstack/create_instance.py index 9fa3232..e1e38a1 100644 --- a/snaps/openstack/create_instance.py +++ b/snaps/openstack/create_instance.py @@ -49,8 +49,8 @@ class OpenStackVmInstance: """ self.__os_creds = os_creds - self.__nova = nova_utils.nova_client(self.__os_creds) - self.__neutron = neutron_utils.neutron_client(self.__os_creds) + self.__nova = None + self.__neutron = None self.instance_settings = instance_settings self.image_settings = image_settings @@ -74,16 +74,14 @@ class OpenStackVmInstance: Additionally, when True, floating IPs will not be applied until VM is active. :return: The VM reference object """ - try: - self.__ports = self.__setup_ports(self.instance_settings.port_settings, cleanup) - self.__lookup_existing_vm_by_name() - if not self.__vm and not cleanup: - self.__create_vm(block) - return self.__vm - except Exception as e: - logger.exception('Error occurred while setting up instance') - self.clean() - raise e + self.__nova = nova_utils.nova_client(self.__os_creds) + self.__neutron = neutron_utils.neutron_client(self.__os_creds) + + self.__ports = self.__setup_ports(self.instance_settings.port_settings, cleanup) + self.__lookup_existing_vm_by_name() + if not self.__vm and not cleanup: + self.__create_vm(block) + return self.__vm def __lookup_existing_vm_by_name(self): """ |