Merge "Created custom exceptions for VM instance creation."
[snaps.git] / snaps / openstack / create_flavor.py
index f1c7ee3..ec4c765 100644 (file)
@@ -20,7 +20,7 @@ from snaps.openstack.utils import nova_utils
 
 __author__ = 'spisarski'
 
-logger = logging.getLogger('create_image')
+logger = logging.getLogger('create_flavor')
 
 MEM_PAGE_SIZE_ANY = {'hw:mem_page_size': 'any'}
 MEM_PAGE_SIZE_LARGE = {'hw:mem_page_size': 'large'}
@@ -60,9 +60,8 @@ class OpenStackFlavor:
             self.__flavor = nova_utils.create_flavor(
                 self.__nova, self.flavor_settings)
             if self.flavor_settings.metadata:
-                self.__flavor.set_keys(self.flavor_settings.metadata)
-            self.__flavor = nova_utils.get_flavor_by_name(
-                self.__nova, self.flavor_settings.name)
+                nova_utils.set_flavor_keys(self.__nova, self.__flavor,
+                                           self.flavor_settings.metadata)
         else:
             logger.info('Did not create flavor due to cleanup mode')
 
@@ -150,28 +149,36 @@ class FlavorSettings:
             self.metadata = None
 
         if not self.name or not self.ram or not self.disk or not self.vcpus:
-            raise Exception(
+            raise FlavorSettingsError(
                 'The attributes name, ram, disk, and vcpus are required for'
                 'FlavorSettings')
 
         if not isinstance(self.ram, int):
-            raise Exception('The ram attribute must be a integer')
+            raise FlavorSettingsError('The ram attribute must be a integer')
 
         if not isinstance(self.disk, int):
-            raise Exception('The ram attribute must be a integer')
+            raise FlavorSettingsError('The ram attribute must be a integer')
 
         if not isinstance(self.vcpus, int):
-            raise Exception('The vcpus attribute must be a integer')
+            raise FlavorSettingsError('The vcpus attribute must be a integer')
 
         if self.ephemeral and not isinstance(self.ephemeral, int):
-            raise Exception('The ephemeral attribute must be an integer')
+            raise FlavorSettingsError(
+                'The ephemeral attribute must be an integer')
 
         if self.swap and not isinstance(self.swap, int):
-            raise Exception('The swap attribute must be an integer')
+            raise FlavorSettingsError('The swap attribute must be an integer')
 
         if self.rxtx_factor and not isinstance(self.rxtx_factor, (int, float)):
-            raise Exception(
+            raise FlavorSettingsError(
                 'The is_public attribute must be an integer or float')
 
         if self.is_public and not isinstance(self.is_public, bool):
-            raise Exception('The is_public attribute must be a boolean')
+            raise FlavorSettingsError(
+                'The is_public attribute must be a boolean')
+
+
+class FlavorSettingsError(Exception):
+    """
+    Exception to be thrown when an flavor settings are incorrect
+    """