gui/cgcs_dashboard/dashboards/admin/inventory/devices/forms.py

79 lines
2.7 KiB
Python
Executable File

#
# Copyright (c) 2014-2015 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
# vim: tabstop=4 shiftwidth=4 softtabstop=4
import logging
from django.core.urlresolvers import reverse # noqa
from django.utils.translation import ugettext_lazy as _
from horizon import exceptions
from horizon import forms
from horizon import messages
from openstack_dashboard import api
LOG = logging.getLogger(__name__)
class UpdateDevice(forms.SelfHandlingForm):
host_id = forms.CharField(label=_("host_id"),
required=False,
widget=forms.widgets.HiddenInput)
uuid = forms.CharField(label=_("uuid"),
required=False,
widget=forms.widgets.HiddenInput)
device_name = forms.CharField(label=_("Device Name"),
required=False,
widget=forms.TextInput(
attrs={'readonly': 'readonly'}))
pciaddr = forms.CharField(label=_("Device Address"),
required=False,
widget=forms.TextInput(
attrs={'readonly': 'readonly'}))
name = forms.CharField(label=_("Name"),
required=False,
widget=forms.TextInput())
enabled = forms.BooleanField(label=_("Enabled"),
required=False,
widget=forms.CheckboxInput())
failure_url = 'horizon:admin:inventory:detail'
def clean(self):
data = super(UpdateDevice, self).clean()
if isinstance(data['enabled'], bool):
data['enabled'] = 'True' if data['enabled'] else 'False'
return data
def handle(self, request, data):
name = data['name']
uuid = data['uuid']
try:
p = {}
p['name'] = name
p['enabled'] = str(data['enabled'])
device = api.sysinv.host_device_update(request, uuid, **p)
msg = _('device "%s" was successfully updated.') % name
LOG.debug(msg)
messages.success(request, msg)
return device
except Exception as exc:
msg = _('Failed to update device "%(n)s" (%(e)s).') % ({'n': name,
'e': exc})
LOG.info(msg)
redirect = reverse(self.failure_url, args=[data['host_id']])
exceptions.handle(request, msg, redirect=redirect)