diff --git a/reddwarf/flavor/models.py b/reddwarf/flavor/models.py index 5db4858247..39eedc217b 100644 --- a/reddwarf/flavor/models.py +++ b/reddwarf/flavor/models.py @@ -28,7 +28,7 @@ from reddwarf.common.remote import create_nova_client class Flavor(object): - _data_fields = ['id', 'links', 'name', 'ram', 'vcpus'] + _data_fields = ['id', 'links', 'name', 'ram', 'vcpus', 'ephemeral'] def __init__(self, flavor=None, context=None, flavor_id=None): if flavor: @@ -67,6 +67,10 @@ class Flavor(object): def links(self): return self.flavor.links + @property + def ephemeral(self): + return self.flavor.ephemeral + class Flavors(NovaRemoteModelBase): diff --git a/reddwarf/flavor/views.py b/reddwarf/flavor/views.py index 94d8b1544c..2c05969361 100644 --- a/reddwarf/flavor/views.py +++ b/reddwarf/flavor/views.py @@ -17,6 +17,9 @@ from reddwarf.common.views import create_links +from reddwarf.common import cfg + +CONF = cfg.CONF class FlavorView(object): @@ -26,15 +29,19 @@ class FlavorView(object): self.req = req def data(self): - return { - "flavor": { - 'id': int(self.flavor.id), - 'links': self._build_links(), - 'name': self.flavor.name, - 'ram': self.flavor.ram, - } + + flavor = { + 'id': int(self.flavor.id), + 'links': self._build_links(), + 'name': self.flavor.name, + 'ram': self.flavor.ram, } + if not CONF.reddwarf_volume_support and CONF.device_path is not None: + flavor['local_storage'] = self.flavor.ephemeral + + return {"flavor": flavor} + def _build_links(self): return create_links("flavors", self.req, self.flavor.id) diff --git a/reddwarf/tests/api/flavors.py b/reddwarf/tests/api/flavors.py index b560d062b6..d75d82688d 100644 --- a/reddwarf/tests/api/flavors.py +++ b/reddwarf/tests/api/flavors.py @@ -140,7 +140,7 @@ class Flavors(object): @test def test_flavor_list_attrs(self): - expected_attrs = ['id', 'name', 'ram', 'links'] + expected_attrs = ['id', 'name', 'ram', 'links', 'local_storage'] flavors = self.rd_client.flavors.list() attrcheck = AttrCheck() for flavor in flavors: @@ -151,7 +151,7 @@ class Flavors(object): @test def test_flavor_get_attrs(self): - expected_attrs = ['id', 'name', 'ram', 'links'] + expected_attrs = ['id', 'name', 'ram', 'links', 'local_storage'] flavor = self.rd_client.flavors.get(1) attrcheck = AttrCheck() flavor_dict = flavor._info diff --git a/reddwarf/tests/fakes/nova.py b/reddwarf/tests/fakes/nova.py index c7dbd97c39..208d0aae81 100644 --- a/reddwarf/tests/fakes/nova.py +++ b/reddwarf/tests/fakes/nova.py @@ -38,6 +38,7 @@ class FakeFlavor(object): self.name = name self.ram = ram self.vcpus = 10 + self.ephemeral = 0 @property def links(self):