
Special thanks: * Preserves extra specs on flavor edit (Tihomir Trifonov) * Displays flavor name on extra specs pages (Vinay Bannai) * Extras specs table close (Don Dugger & Gabriel). * Final cleanup (Gabriel Hurley) Change-Id: I6acb1176e5c0ca6987abc758fc45335870c55d57
62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
import logging
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from horizon import tables
|
|
|
|
from openstack_dashboard import api
|
|
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
|
|
class DeleteFlavor(tables.DeleteAction):
|
|
data_type_singular = _("Flavor")
|
|
data_type_plural = _("Flavors")
|
|
|
|
def delete(self, request, obj_id):
|
|
api.flavor_delete(request, obj_id)
|
|
|
|
|
|
class CreateFlavor(tables.LinkAction):
|
|
name = "create"
|
|
verbose_name = _("Create Flavor")
|
|
url = "horizon:admin:flavors:create"
|
|
classes = ("ajax-modal", "btn-create")
|
|
|
|
|
|
class EditFlavor(tables.LinkAction):
|
|
name = "edit"
|
|
verbose_name = _("Edit Flavor")
|
|
url = "horizon:admin:flavors:edit"
|
|
classes = ("ajax-modal", "btn-edit")
|
|
|
|
|
|
class ViewFlavorExtras(tables.LinkAction):
|
|
name = "extras"
|
|
verbose_name = _("View Extra Specs")
|
|
url = "horizon:admin:flavors:extras:index"
|
|
classes = ("btn-edit",)
|
|
|
|
|
|
def get_size(flavor):
|
|
return _("%sMB") % flavor.ram
|
|
|
|
|
|
class FlavorsTable(tables.DataTable):
|
|
name = tables.Column('name', verbose_name=_('Flavor Name'))
|
|
vcpus = tables.Column('vcpus', verbose_name=_('VCPUs'))
|
|
ram = tables.Column(get_size,
|
|
verbose_name=_('RAM'),
|
|
attrs={'data-type': 'size'})
|
|
disk = tables.Column('disk', verbose_name=_('Root Disk'))
|
|
ephemeral = tables.Column('OS-FLV-EXT-DATA:ephemeral',
|
|
verbose_name=_('Ephemeral Disk'))
|
|
flavor_id = tables.Column('id', verbose_name=('ID'))
|
|
|
|
class Meta:
|
|
name = "flavors"
|
|
verbose_name = _("Flavors")
|
|
table_actions = (CreateFlavor, DeleteFlavor)
|
|
row_actions = (EditFlavor, ViewFlavorExtras, DeleteFlavor)
|