summaryrefslogtreecommitdiff
path: root/tuskar_ui/infrastructure/flavors/tables.py
diff options
context:
space:
mode:
Diffstat (limited to 'tuskar_ui/infrastructure/flavors/tables.py')
-rw-r--r--tuskar_ui/infrastructure/flavors/tables.py157
1 files changed, 0 insertions, 157 deletions
diff --git a/tuskar_ui/infrastructure/flavors/tables.py b/tuskar_ui/infrastructure/flavors/tables.py
deleted file mode 100644
index 68431a5b..00000000
--- a/tuskar_ui/infrastructure/flavors/tables.py
+++ /dev/null
@@ -1,157 +0,0 @@
-# -*- coding: utf8 -*-
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-import django.shortcuts
-from django.utils.translation import ugettext_lazy as _
-import horizon.exceptions
-import horizon.messages
-import horizon.tables
-from openstack_dashboard.dashboards.admin.flavors import (
- tables as flavor_tables)
-
-from tuskar_ui import api
-from tuskar_ui.infrastructure.flavors import utils
-
-
-class CreateFlavor(flavor_tables.CreateFlavor):
- verbose_name = _(u"New Flavor")
- url = "horizon:infrastructure:flavors:create"
-
-
-class CreateSuggestedFlavor(horizon.tables.Action):
- name = 'create'
- verbose_name = _(u"Create")
- verbose_name_plural = _(u"Create Suggested Flavors")
- method = 'POST'
- icon = 'plus'
-
- def create_flavor(self, request, node_id):
- node = api.node.Node.get(request, node_id)
- suggestion = utils.FlavorSuggestion.from_node(node)
- return suggestion.create_flavor(request)
-
- def handle(self, data_table, request, node_ids):
- for node_id in node_ids:
- try:
- self.create_flavor(request, node_id)
- except Exception:
- horizon.exceptions.handle(
- request,
- _(u"Unable to create flavor for node %r") % node_id,
- )
- return django.shortcuts.redirect(request.get_full_path())
-
-
-class EditAndCreateSuggestedFlavor(CreateFlavor):
- name = 'edit_and_create'
- verbose_name = _(u"Edit before creating")
- icon = 'pencil'
-
-
-class DeleteFlavor(flavor_tables.DeleteFlavor):
-
- def __init__(self, **kwargs):
- super(DeleteFlavor, self).__init__(**kwargs)
- # NOTE(dtantsur): setting class attributes doesn't work
- # probably due to metaclass magic in actions
- self.data_type_singular = _("Flavor")
- self.data_type_plural = _("Flavors")
-
- def allowed(self, request, datum=None):
- """Check that action is allowed on flavor
-
- This is overridden method from horizon.tables.BaseAction.
-
- :param datum: flavor we're operating on
- :type datum: tuskar_ui.api.Flavor
- """
- if datum is not None:
- deployed_flavors = api.flavor.Flavor.list_deployed_ids(
- request, _error_default=None)
- if deployed_flavors is None or datum.id in deployed_flavors:
- return False
- return super(DeleteFlavor, self).allowed(request, datum)
-
-
-class FlavorsTable(horizon.tables.DataTable):
- name = horizon.tables.Column('name',
- link="horizon:infrastructure:flavors:details")
- arch = horizon.tables.Column('cpu_arch', verbose_name=_('Architecture'))
- vcpus = horizon.tables.Column('vcpus', verbose_name=_('CPUs'))
- ram = horizon.tables.Column(flavor_tables.get_size,
- verbose_name=_('Memory'),
- attrs={'data-type': 'size'})
- disk = horizon.tables.Column(flavor_tables.get_disk_size,
- verbose_name=_('Disk'),
- attrs={'data-type': 'size'})
-
- class Meta(object):
- name = "flavors"
- verbose_name = _("Available")
- table_actions = (
- DeleteFlavor,
- flavor_tables.FlavorFilterAction,
- )
- row_actions = (
- DeleteFlavor,
- )
- template = "horizon/common/_enhanced_data_table.html"
-
-
-class FlavorRolesTable(horizon.tables.DataTable):
- name = horizon.tables.Column('name', verbose_name=_('Role Name'))
-
- def __init__(self, request, *args, **kwargs):
- # TODO(dtantsur): support multiple overclouds
- plan = api.tuskar.Plan.get_the_plan(request)
- stack = api.heat.Stack.get_by_plan(request, plan)
-
- if stack is None:
- count = lambda role: _('Not Deployed')
- else:
- count = stack.resources_count
-
- self._columns['count'] = horizon.tables.Column(
- count,
- verbose_name=_("Instances Count")
- )
- super(FlavorRolesTable, self).__init__(request, *args, **kwargs)
-
- class Meta(object):
- name = "flavor_roles"
- verbose_name = _("Overcloud Roles")
- table_actions = ()
- row_actions = ()
- hidden_title = False
- template = "horizon/common/_enhanced_data_table.html"
-
-
-class FlavorSuggestionsTable(horizon.tables.DataTable):
- name = horizon.tables.Column('name',)
- arch = horizon.tables.Column('cpu_arch', verbose_name=_('Architecture'))
- vcpus = horizon.tables.Column('vcpus', verbose_name=_('CPUs'))
- ram = horizon.tables.Column(flavor_tables.get_size,
- verbose_name=_('Memory'),
- attrs={'data-type': 'size'})
- disk = horizon.tables.Column(flavor_tables.get_disk_size,
- verbose_name=_('Disk'),
- attrs={'data-type': 'size'})
-
- class Meta(object):
- name = "suggested_flavors"
- verbose_name = _("Suggested")
- row_actions = (
- CreateSuggestedFlavor,
- EditAndCreateSuggestedFlavor,
- )
- template = "horizon/common/_enhanced_data_table.html"