X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=snaps%2Fopenstack%2Fcreate_flavor.py;h=30271c136d8623f61852f3cf3d3eaa3a8b421bf6;hb=06e3b9ca9abd8bc3d96707bbb2de0c460a196f2f;hp=60a87cd08bd87e1a26d0aa02745b8c4582804065;hpb=57777f3df521553a06cd01a3861b415d2905ceca;p=snaps.git diff --git a/snaps/openstack/create_flavor.py b/snaps/openstack/create_flavor.py index 60a87cd..30271c1 100644 --- a/snaps/openstack/create_flavor.py +++ b/snaps/openstack/create_flavor.py @@ -22,6 +22,9 @@ __author__ = 'spisarski' logger = logging.getLogger('create_image') +MEM_PAGE_SIZE_ANY = {'hw:mem_page_size': 'any'} +MEM_PAGE_SIZE_LARGE = {'hw:mem_page_size': 'large'} + class OpenStackFlavor: """ @@ -51,6 +54,9 @@ class OpenStackFlavor: logger.info('Found flavor with name - ' + self.flavor_settings.name) elif not cleanup: 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) else: logger.info('Did not create flavor due to cleanup mode') @@ -83,7 +89,7 @@ class FlavorSettings: """ def __init__(self, config=None, name=None, flavor_id='auto', ram=None, disk=None, vcpus=None, ephemeral=0, swap=0, - rxtx_factor=1.0, is_public=True): + rxtx_factor=1.0, is_public=True, metadata=None): """ Constructor :param config: dict() object containing the configuration settings using the attribute names below as each @@ -98,6 +104,7 @@ class FlavorSettings: :param rxtx_factor: the receive/transmit factor to be set on ports if backend supports QoS extension (default 1.0) :param is_public: denotes whether or not the flavor is public (default True) + :param metadata: freeform dict() for special metadata (default hw:mem_page_size=any) """ if config: @@ -131,6 +138,11 @@ class FlavorSettings: self.is_public = config['is_public'] else: self.is_public = is_public + + if config.get('metadata'): + self.metadata = config['metadata'] + else: + self.metadata = metadata else: self.name = name self.flavor_id = flavor_id @@ -141,6 +153,7 @@ class FlavorSettings: self.swap = swap self.rxtx_factor = rxtx_factor self.is_public = is_public + self.metadata = metadata if not self.name or not self.ram or not self.disk or not self.vcpus: raise Exception('The attributes name, ram, disk, and vcpus are required for FlavorSettings')