Add a column to show if Extra Specs are defined on a Flavor

UX improvement: Adds a column to the Flavors DataTable to show if
any Extra Specs have been defined for the flavor.  Also contains a
LinkAction to open the Extra Specs view for the flavor

BP: extra-specs-as-column
Change-Id: I044b86c366c6687f4b0e9870371ef63a2066083d
This commit is contained in:
Nicolas Simonds 2014-05-06 13:13:38 -07:00
parent a2d991274d
commit a75df6f267
2 changed files with 12 additions and 1 deletions

View File

@ -97,6 +97,10 @@ def get_ephemeral_size(flavor):
return _("%sGB") % getattr(flavor, 'OS-FLV-EXT-DATA:ephemeral', 0)
def get_extra_specs(flavor):
return flavor.get_keys()
class FlavorsTable(tables.DataTable):
name = tables.Column('name', verbose_name=_('Flavor Name'))
vcpus = tables.Column('vcpus', verbose_name=_('VCPUs'))
@ -117,6 +121,11 @@ class FlavorsTable(tables.DataTable):
verbose_name=_("Public"),
empty_value=False,
filters=(filters.yesno, filters.capfirst))
extra_specs = tables.Column(get_extra_specs,
verbose_name=_("Extra Specs"),
link=("horizon:admin:flavors:extras:index"),
empty_value=False,
filters=(filters.yesno, filters.capfirst))
class Meta:
name = "flavors"

View File

@ -25,10 +25,12 @@ INDEX_URL = reverse('horizon:admin:flavors:index')
class FlavorsViewTests(test.BaseAdminViewTests):
@test.create_stubs({api.nova: ('flavor_list',), })
@test.create_stubs({api.nova: ('flavor_list',),
flavors.Flavor: ('get_keys',), })
def test_index(self):
api.nova.flavor_list(IsA(http.HttpRequest), None) \
.AndReturn(self.flavors.list())
flavors.Flavor.get_keys().MultipleTimes().AndReturn({})
self.mox.ReplayAll()
res = self.client.get(INDEX_URL)