Add fixture to create flavor for CirrOS images
Change-Id: I273fedb0c8ede8e58165279ebd950532acd9747f
This commit is contained in:
parent
7dd1a6de57
commit
a6f041bdb5
|
@ -93,6 +93,9 @@ class HeatStackFixture(tobiko.SharedFixture):
|
|||
def setup_stack(self):
|
||||
self.create_stack()
|
||||
|
||||
def get_stack_parameters(self):
|
||||
return tobiko.reset_fixture(self.parameters).values
|
||||
|
||||
def create_stack(self, retry=None):
|
||||
"""Creates stack based on passed parameters."""
|
||||
created_stack_ids = set()
|
||||
|
@ -133,7 +136,7 @@ class HeatStackFixture(tobiko.SharedFixture):
|
|||
|
||||
self.stack = self._outputs = None
|
||||
# Compile template parameters
|
||||
parameters = tobiko.reset_fixture(self.parameters).values
|
||||
parameters = self.get_stack_parameters()
|
||||
try:
|
||||
LOG.debug('Creating stack %r (re-tries left %d)...',
|
||||
self.stack_name, retry)
|
||||
|
|
|
@ -19,6 +19,8 @@ from tobiko.openstack.stacks import _neutron
|
|||
from tobiko.openstack.stacks import _nova
|
||||
|
||||
KeyPairStackFixture = _nova.KeyPairStackFixture
|
||||
FlavorStackFixture = _nova.FlavorStackFixture
|
||||
CirrosFlavorStackFixture = _nova.CirrosFlavorStackFixture
|
||||
|
||||
NetworkStackFixture = _neutron.NetworkStackFixture
|
||||
NetworkWithNetMtuWriteStackFixture = (
|
||||
|
|
|
@ -186,8 +186,14 @@ class FloatingIpServerStackFixture(heat.HeatStackFixture):
|
|||
"""password used to login to a Nova server instance"""
|
||||
return self.image_fixture.password
|
||||
|
||||
#: Nova flavor used to create a Nova server instance
|
||||
flavor = CONF.tobiko.nova.flavor
|
||||
# Stack used to create flavor for Nova server instance
|
||||
flavor_stack = tobiko.required_setup_fixture(
|
||||
_nova.CirrosFlavorStackFixture)
|
||||
|
||||
@property
|
||||
def flavor(self):
|
||||
"""Flavor for Nova server instance"""
|
||||
return self.flavor_stack.flavor_id
|
||||
|
||||
#: Whenever port security on internal network is enable
|
||||
port_security_enabled = False
|
||||
|
|
|
@ -44,6 +44,28 @@ class KeyPairStackFixture(heat.HeatStackFixture):
|
|||
self.public_key = as_str(fd.read())
|
||||
|
||||
|
||||
class FlavorStackFixture(heat.HeatStackFixture):
|
||||
template = _hot.heat_template_file('nova/flavor.yaml')
|
||||
|
||||
disk = None
|
||||
ephemeral = None
|
||||
extra_specs = None
|
||||
is_public = None
|
||||
name = None
|
||||
rxtx_factor = None
|
||||
swap = None
|
||||
vcpus = None
|
||||
|
||||
def get_stack_parameters(self):
|
||||
parameters = super(FlavorStackFixture, self).get_stack_parameters()
|
||||
parameters.setdefault('name', self.stack_name)
|
||||
return parameters
|
||||
|
||||
|
||||
class CirrosFlavorStackFixture(FlavorStackFixture):
|
||||
ram = 64
|
||||
|
||||
|
||||
def as_str(text):
|
||||
if isinstance(text, six.string_types):
|
||||
return text
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
heat_template_version: newton
|
||||
|
||||
description: |
|
||||
Creates a nova SSH keypair to be used for creating Nova servers
|
||||
|
||||
|
||||
parameters:
|
||||
|
||||
disk:
|
||||
type: number
|
||||
description: |
|
||||
Size of local disk in GB. The “0” size is a special case that uses the
|
||||
native base image size as the size of the ephemeral root volume.
|
||||
default: 0
|
||||
|
||||
ephemeral:
|
||||
type: number
|
||||
description: Size of a secondary ephemeral data disk in GB.
|
||||
default: 0
|
||||
|
||||
extra_specs:
|
||||
type: json
|
||||
description: Key/Value pairs to extend the capabilities of the flavor.
|
||||
default: {}
|
||||
|
||||
is_public:
|
||||
type: boolean
|
||||
description: |
|
||||
Scope of flavor accessibility. Public or private. Default value is True,
|
||||
means public, shared across all projects.
|
||||
default: true
|
||||
|
||||
name:
|
||||
type: string
|
||||
description: Name of the flavor.
|
||||
|
||||
ram:
|
||||
type: number
|
||||
description: Memory in MB for the flavor
|
||||
|
||||
rxtx_factor:
|
||||
type: number
|
||||
description: RX/TX factor.
|
||||
default: 1.0
|
||||
|
||||
swap:
|
||||
type: number
|
||||
description: Swap space in MB.
|
||||
default: 0
|
||||
|
||||
vcpus:
|
||||
type: number
|
||||
description: Number of VCPUs for the flavor
|
||||
default: 1
|
||||
|
||||
|
||||
resources:
|
||||
|
||||
flavor:
|
||||
type: OS::Nova::Flavor
|
||||
properties:
|
||||
disk: {get_param: disk}
|
||||
ephemeral: {get_param: ephemeral}
|
||||
extra_specs: {get_param: extra_specs}
|
||||
is_public: {get_param: is_public}
|
||||
name: {get_param: name}
|
||||
ram: {get_param: ram}
|
||||
rxtx_factor: {get_param: rxtx_factor}
|
||||
swap: {get_param: swap}
|
||||
vcpus: {get_param: vcpus}
|
||||
|
||||
|
||||
outputs:
|
||||
|
||||
flavor_id:
|
||||
description: unique Nova flavor ID
|
||||
value: {get_resource: flavor}
|
||||
|
||||
falvor_name:
|
||||
description: Nova flavor name
|
||||
value: {get_attr: [flavor, show, name]}
|
Loading…
Reference in New Issue