WIP: Host Inventory Panel

Change-Id: Ie91ca12223d745663cdf1ebff6d6b1798d630635
This commit is contained in:
Eddie Ramirez 2018-08-10 16:35:19 -07:00
parent a4512acaad
commit f44f7a24eb
4 changed files with 75 additions and 25 deletions

View File

@ -7,4 +7,53 @@
from openstack_dashboard.api.nova import *
def server_group_create(request, **kwargs):
return novaclient(request).server_groups.create(**kwargs)
return novaclient(request).server_groups.create(**kwargs)
# WRS: Nova extension for provider network.
def provider_network_get(request, providernet_id):
return wrs_providernets.ProviderNetsManager(novaclient(request)).get(
providernet_id)
# WRS: Nova extension for device usage
class DeviceUsage(base.APIResourceWrapper):
"""Wrapper for Inventory Device Usage
"""
_attrs = ['device_id', 'device_name', 'vendor_id',
'pci_vfs_configured', 'pci_vfs_used',
'pci_pfs_configured', 'pci_pfs_used']
def get_device_usage_list(request):
usages = wrs_pci.PciDevicesManager(novaclient(request)).list()
return [DeviceUsage(n) for n in usages]
def get_device_usage(request, device_id):
if device_id is None:
raise nova_exceptions.ResourceNotFound
usage = wrs_pci.PciDevicesManager(novaclient(request)).list(
device_id=device_id)
return DeviceUsage(usage[0])
# WRS: Nova extension for detail device usage
class DetailUsage(base.APIResourceWrapper):
"""Wrapper for Inventory Device Usage
"""
_attrs = ['host',
'pci_vfs_configured', 'pci_vfs_used',
'pci_pfs_configured', 'pci_pfs_used']
def get_detail_usage(request, device_id):
usages = wrs_pci.PciDevicesManager(novaclient(request)).get(
device_id)
return [DetailUsage(n) for n in usages]
def can_set_quotas():
features = getattr(settings, 'OPENSTACK_HYPERVISOR_FEATURES', {})
return features.get('enable_quotas', True)

View File

@ -16,11 +16,11 @@ from django.utils.translation import ugettext_lazy as _
from horizon import exceptions
from horizon import forms
from openstack_dashboard import api
from openstack_dashboard.dashboards.admin.inventory.cpu_functions.forms \
from starlingx_dashboard.dashboards.admin.inventory.cpu_functions.forms \
import AddCpuProfile
from openstack_dashboard.dashboards.admin.inventory.cpu_functions.forms \
from starlingx_dashboard.dashboards.admin.inventory.cpu_functions.forms \
import UpdateCpuFunctions
from openstack_dashboard.dashboards.admin.inventory.cpu_functions \
from starlingx_dashboard.dashboards.admin.inventory.cpu_functions \
import utils as cpufunctions_utils
LOG = logging.getLogger(__name__)

View File

@ -17,9 +17,10 @@ from horizon import tables
from horizon.utils import memoized
from horizon import views
from openstack_dashboard import api
from openstack_dashboard.dashboards.admin.inventory.devices.forms import \
from starlingx_dashboard import api as stx_api
from starlingx_dashboard.dashboards.admin.inventory.devices.forms import \
UpdateDevice
from openstack_dashboard.dashboards.admin.inventory.devices.tables import \
from starlingx_dashboard.dashboards.admin.inventory.devices.tables import \
UsageTable
LOG = logging.getLogger(__name__)
@ -40,7 +41,7 @@ class UpdateView(forms.ModalFormView):
device_uuid = self.kwargs['device_uuid']
host_id = self.kwargs['host_id']
try:
self._object = api.sysinv.host_device_get(self.request,
self._object = stx_api.sysinv.host_device_get(self.request,
device_uuid)
self._object.host_id = host_id
except Exception:
@ -83,7 +84,7 @@ class DetailView(views.HorizonTemplateView):
device_uuid = self.kwargs['device_uuid']
host_id = self.kwargs['host_id']
try:
self._object = api.sysinv.host_device_get(self.request,
self._object = stx_apl.sysinv.host_device_get(self.request,
device_uuid)
self._object.host_id = host_id
@ -98,7 +99,7 @@ class DetailView(views.HorizonTemplateView):
@memoized.memoized_method
def get_hostname(self, host_uuid):
try:
host = api.sysinv.host_get(self.request, host_uuid)
host = stx_apl.sysinv.host_get(self.request, host_uuid)
except Exception:
host = {}
msg = _('Unable to retrieve hostname details.')
@ -137,7 +138,7 @@ class UsageView(tables.MultiTableView):
if not hasattr(self, "_detail_object"):
dev_id = self.kwargs['device_id']
try:
_object = api.nova.get_detail_usage(self.request, dev_id)
_object = stx_apl.nova.get_detail_usage(self.request, dev_id)
_object.sort(key=lambda f: (f.host))
id = 0
for u in _object:

View File

@ -9,36 +9,36 @@
from django.conf.urls import include # noqa
from django.conf.urls import url
from openstack_dashboard.dashboards.admin.inventory.cpu_functions import \
from starlingx_dashboard.dashboards.admin.inventory.cpu_functions import \
views as cpu_functions_views
from openstack_dashboard.dashboards.admin.inventory.devices import \
from starlingx_dashboard.dashboards.admin.inventory.devices import \
views as device_views
from openstack_dashboard.dashboards.admin.inventory.interfaces.address import \
from starlingx_dashboard.dashboards.admin.inventory.interfaces.address import \
views as address_views
from openstack_dashboard.dashboards.admin.inventory.interfaces.route import \
from starlingx_dashboard.dashboards.admin.inventory.interfaces.route import \
views as route_views
from openstack_dashboard.dashboards.admin.inventory.interfaces import \
from starlingx_dashboard.dashboards.admin.inventory.interfaces import \
views as interface_views
from openstack_dashboard.dashboards.admin.inventory.lldp import \
from starlingx_dashboard.dashboards.admin.inventory.lldp import \
views as lldp_views
from openstack_dashboard.dashboards.admin.inventory.memorys import \
from starlingx_dashboard.dashboards.admin.inventory.memorys import \
views as memory_views
from openstack_dashboard.dashboards.admin.inventory.ports import \
from starlingx_dashboard.dashboards.admin.inventory.ports import \
views as port_views
from openstack_dashboard.dashboards.admin.inventory.sensors import \
from starlingx_dashboard.dashboards.admin.inventory.sensors import \
views as sensor_views
from openstack_dashboard.dashboards.admin.inventory.storages import \
from starlingx_dashboard.dashboards.admin.inventory.storages import \
views as storage_views
from openstack_dashboard.dashboards.admin.inventory.views import \
from starlingx_dashboard.dashboards.admin.inventory.views import \
AddView
from openstack_dashboard.dashboards.admin.inventory.views import \
from starlingx_dashboard.dashboards.admin.inventory.views import \
DetailView
from openstack_dashboard.dashboards.admin.inventory.views import \
from starlingx_dashboard.dashboards.admin.inventory.views import \
IndexView
from openstack_dashboard.dashboards.admin.inventory.views import \
from starlingx_dashboard.dashboards.admin.inventory.views import \
UpdateView
from openstack_dashboard.dashboards.admin.inventory.storages \
from starlingx_dashboard.dashboards.admin.inventory.storages \
import urls as storages_urls