Restyled some menus and minor fixes.
Change-Id: Idd6cb9c8af0cd525c262229241aa8af5981bbb5f
This commit is contained in:
parent
748db492e9
commit
7321b63630
@ -217,7 +217,6 @@ class EnableServiceForm(forms.SelfHandlingForm):
|
||||
exceptions.handle(request, _(message_text))
|
||||
|
||||
|
||||
"""
|
||||
class DisableServiceForm(forms.SelfHandlingForm):
|
||||
|
||||
uuid = forms.CharField(label=_("Board ID"), widget=forms.HiddenInput)
|
||||
@ -259,7 +258,6 @@ class DisableServiceForm(forms.SelfHandlingForm):
|
||||
except Exception:
|
||||
message_text = "Unable to disable service."
|
||||
exceptions.handle(request, _(message_text))
|
||||
"""
|
||||
|
||||
|
||||
class AttachPortForm(forms.SelfHandlingForm):
|
||||
@ -461,56 +459,3 @@ class RemovePluginsForm(forms.SelfHandlingForm):
|
||||
exceptions.handle(request, _(message_text))
|
||||
|
||||
break
|
||||
|
||||
|
||||
class RemoveServicesForm(forms.SelfHandlingForm):
|
||||
|
||||
uuid = forms.CharField(label=_("Board ID"), widget=forms.HiddenInput)
|
||||
|
||||
name = forms.CharField(
|
||||
label=_('Board Name'),
|
||||
widget=forms.TextInput(attrs={'readonly': 'readonly'})
|
||||
)
|
||||
|
||||
service_list = forms.MultipleChoiceField(
|
||||
label=_("Services List"),
|
||||
widget=forms.SelectMultiple(
|
||||
attrs={'class': 'switchable',
|
||||
'data-slug': 'slug-remove-services'}),
|
||||
help_text=_("Select services in this pool")
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
super(RemoveServicesForm, self).__init__(*args, **kwargs)
|
||||
# input=kwargs.get('initial',{})
|
||||
self.fields["service_list"].choices = kwargs["initial"]["service_list"]
|
||||
|
||||
def handle(self, request, data):
|
||||
|
||||
counter = 0
|
||||
|
||||
for service in data["service_list"]:
|
||||
for key, value in self.fields["service_list"].choices:
|
||||
if key == service:
|
||||
|
||||
try:
|
||||
disable = iotronic.service_action(request,
|
||||
data["uuid"],
|
||||
key,
|
||||
"ServiceDisable")
|
||||
|
||||
message_text = disable
|
||||
messages.success(request, _(message_text))
|
||||
|
||||
if counter != len(data["service_list"]) - 1:
|
||||
counter += 1
|
||||
else:
|
||||
return True
|
||||
|
||||
except Exception:
|
||||
message_text = "Unable to disable service " \
|
||||
+ str(value) + "."
|
||||
exceptions.handle(request, _(message_text))
|
||||
|
||||
break
|
||||
|
@ -51,11 +51,11 @@ class RestoreServices(tables.BatchAction):
|
||||
|
||||
@staticmethod
|
||||
def action_present(count):
|
||||
return u"Restore Services"
|
||||
return u"Restore ALL Services"
|
||||
|
||||
@staticmethod
|
||||
def action_past(count):
|
||||
return u"Restore Services"
|
||||
return u"Restored ALL Services"
|
||||
|
||||
def allowed(self, request, board=None):
|
||||
return True
|
||||
@ -73,7 +73,6 @@ class EnableServiceLink(tables.LinkAction):
|
||||
# policy_rules = (("iot", "iot:service_action"),)
|
||||
|
||||
|
||||
"""
|
||||
class DisableServiceLink(tables.LinkAction):
|
||||
name = "disableservice"
|
||||
verbose_name = _("Disable Service(s)")
|
||||
@ -81,7 +80,6 @@ class DisableServiceLink(tables.LinkAction):
|
||||
classes = ("ajax-modal",)
|
||||
# icon = "plus"
|
||||
# policy_rules = (("iot", "iot:service_action"),)
|
||||
"""
|
||||
|
||||
|
||||
class RemovePluginsLink(tables.LinkAction):
|
||||
@ -93,15 +91,6 @@ class RemovePluginsLink(tables.LinkAction):
|
||||
# policy_rules = (("iot", "iot:remove_plugins"),)
|
||||
|
||||
|
||||
class RemoveServicesLink(tables.LinkAction):
|
||||
name = "removeservices"
|
||||
verbose_name = _("Remove Service(s)")
|
||||
url = "horizon:iot:boards:removeservices"
|
||||
classes = ("ajax-modal",)
|
||||
icon = "plus"
|
||||
# policy_rules = (("iot", "iot:remove_services"),)
|
||||
|
||||
|
||||
class AttachPortLink(tables.LinkAction):
|
||||
name = "attachport"
|
||||
verbose_name = _("Attach Port")
|
||||
@ -120,7 +109,7 @@ class DetachPortLink(tables.LinkAction):
|
||||
|
||||
class EnableWebServiceLink(tables.LinkAction):
|
||||
name = "enablewebservice"
|
||||
verbose_name = _("Enable Web Services")
|
||||
verbose_name = _("Enable Web Services Manager")
|
||||
url = "horizon:iot:boards:enablewebservice"
|
||||
classes = ("ajax-modal",)
|
||||
icon = "plus"
|
||||
@ -128,7 +117,7 @@ class EnableWebServiceLink(tables.LinkAction):
|
||||
|
||||
class DisableWebServiceLink(tables.LinkAction):
|
||||
name = "disablewebservice"
|
||||
verbose_name = _("Disable Web Services")
|
||||
verbose_name = _("Disable Web Services Manager")
|
||||
url = "horizon:iot:boards:disablewebservice"
|
||||
classes = ("ajax-modal",)
|
||||
icon = "plus"
|
||||
@ -209,11 +198,9 @@ class BoardsTable(tables.DataTable):
|
||||
class Meta(object):
|
||||
name = "boards"
|
||||
verbose_name = _("boards")
|
||||
# row_actions = (EditBoardLink, EnableServiceLink, DisableServiceLink,
|
||||
row_actions = (EditBoardLink, EnableServiceLink,
|
||||
row_actions = (EditBoardLink, EnableServiceLink, DisableServiceLink,
|
||||
RestoreServices, AttachPortLink, DetachPortLink,
|
||||
EnableWebServiceLink, DisableWebServiceLink,
|
||||
RemovePluginsLink, RemoveServicesLink,
|
||||
DeleteBoardsAction)
|
||||
RemovePluginsLink, DeleteBoardsAction)
|
||||
table_actions = (BoardFilterAction, CreateBoardLink,
|
||||
DeleteBoardsAction)
|
||||
|
@ -20,22 +20,20 @@ urlpatterns = [
|
||||
url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
url(r'^(?P<board_id>[^/]+)/update/$', views.UpdateView.as_view(),
|
||||
name='update'),
|
||||
url(r'^(?P<board_id>[^/]+)/removeplugins/$',
|
||||
views.RemovePluginsView.as_view(), name='removeplugins'),
|
||||
url(r'^(?P<board_id>[^/]+)/removeservices/$',
|
||||
views.RemoveServicesView.as_view(), name='removeservices'),
|
||||
url(r'^(?P<board_id>[^/]+)/enableservice/$',
|
||||
views.EnableServiceView.as_view(), name='enableservice'),
|
||||
# url(r'^(?P<board_id>[^/]+)/disableservice/$',
|
||||
# views.DisableServiceView.as_view(), name='disableservice'),
|
||||
url(r'^(?P<board_id>[^/]+)/disableservice/$',
|
||||
views.DisableServiceView.as_view(), name='disableservice'),
|
||||
url(r'^(?P<board_id>[^/]+)/attachport/$',
|
||||
views.EnableWebServiceView.as_view(), name='enablewebservice'),
|
||||
url(r'^(?P<board_id>[^/]+)/enablewebservice/$',
|
||||
views.DisableWebServiceView.as_view(), name='disablewebservice'),
|
||||
url(r'^(?P<board_id>[^/]+)/disablewebservice/$',
|
||||
views.AttachPortView.as_view(), name='attachport'),
|
||||
url(r'^(?P<board_id>[^/]+)/detachport/$',
|
||||
views.DetachPortView.as_view(), name='detachport'),
|
||||
url(r'^(?P<board_id>[^/]+)/enablewebservice/$',
|
||||
views.EnableWebServiceView.as_view(), name='enablewebservice'),
|
||||
url(r'^(?P<board_id>[^/]+)/disablewebservice/$',
|
||||
views.DisableWebServiceView.as_view(), name='disablewebservice'),
|
||||
url(r'^(?P<board_id>[^/]+)/removeplugins/$',
|
||||
views.RemovePluginsView.as_view(), name='removeplugins'),
|
||||
url(r'^(?P<board_id>[^/]+)/detail/$', views.BoardDetailView.as_view(),
|
||||
name='detail'),
|
||||
]
|
||||
|
@ -99,6 +99,7 @@ class IndexView(tables.DataTableView):
|
||||
else:
|
||||
board.fleet_name = None
|
||||
|
||||
boards.sort(key=lambda b: b.name)
|
||||
return boards
|
||||
|
||||
|
||||
@ -193,14 +194,26 @@ class EnableServiceView(forms.ModalFormView):
|
||||
board_services = api.iotronic.services_on_board(self.request,
|
||||
board.uuid,
|
||||
True)
|
||||
|
||||
cloud_services.sort(key=lambda b: b.name)
|
||||
service_list = []
|
||||
# LOG.debug('CLOUD SERVICES: %s', cloud_services)
|
||||
|
||||
for cloud_service in cloud_services:
|
||||
|
||||
uuid = cloud_service._info["uuid"]
|
||||
name = cloud_service._info["name"]
|
||||
|
||||
if len(board_services) == 0:
|
||||
service_list.append((cloud_service._info["uuid"],
|
||||
_(cloud_service._info["name"])))
|
||||
|
||||
# BEFORE filtering necessity
|
||||
# service_list.append((cloud_service._info["uuid"],
|
||||
# _(cloud_service._info["name"])))
|
||||
|
||||
# AFTER filtering necessity
|
||||
# We are filtering the services that starts with "webservice"
|
||||
if ((name != "webservice") and (name != "webservice_ssl")):
|
||||
service_list.append((uuid, _(name)))
|
||||
|
||||
else:
|
||||
counter = 0
|
||||
for board_service in board_services:
|
||||
@ -209,15 +222,22 @@ class EnableServiceView(forms.ModalFormView):
|
||||
elif counter != len(board_services) - 1:
|
||||
counter += 1
|
||||
else:
|
||||
service_list.append((cloud_service._info["uuid"],
|
||||
_(cloud_service._info["name"])))
|
||||
# BEFORE filtering necessity
|
||||
# service_list.append((uuid, _(name)))
|
||||
|
||||
# AFTER filtering necessity
|
||||
# We are filtering the services that starts
|
||||
# with "webservice"
|
||||
if ((name != "webservice") and
|
||||
("name" != "webservice_ssl")):
|
||||
service_list.append((uuid, _(name)))
|
||||
|
||||
# LOG.debug('SERVICES: %s', service_list)
|
||||
return {'uuid': board.uuid,
|
||||
'name': board.name,
|
||||
'service_list': service_list}
|
||||
|
||||
|
||||
"""
|
||||
class DisableServiceView(forms.ModalFormView):
|
||||
template_name = 'iot/boards/disableservice.html'
|
||||
modal_header = _("Disable Service(s)")
|
||||
@ -256,21 +276,21 @@ class DisableServiceView(forms.ModalFormView):
|
||||
board_services = api.iotronic.services_on_board(self.request,
|
||||
board.uuid,
|
||||
True)
|
||||
|
||||
cloud_services.sort(key=lambda b: b.name)
|
||||
service_list = []
|
||||
|
||||
|
||||
# BEFORE filtering necessity
|
||||
# for cloud_service in cloud_services:
|
||||
# for board_service in board_services:
|
||||
# if board_service["uuid"] == cloud_service._info["uuid"]:
|
||||
# service_list.append((cloud_service._info["uuid"],
|
||||
# _(cloud_service._info["name"])))
|
||||
"""
|
||||
for cloud_service in cloud_services:
|
||||
for board_service in board_services:
|
||||
if board_service["uuid"] == cloud_service._info["uuid"]:
|
||||
service_list.append((cloud_service._info["uuid"],
|
||||
_(cloud_service._info["name"])))
|
||||
"""
|
||||
|
||||
# AFTER filtering necessity
|
||||
# We are filtering the services that starts with "webservice"
|
||||
# ------------------------------------------------------------
|
||||
|
||||
for cloud_service in cloud_services:
|
||||
for board_service in board_services:
|
||||
if ((board_service["uuid"] == cloud_service._info["uuid"]) and
|
||||
@ -283,7 +303,6 @@ class DisableServiceView(forms.ModalFormView):
|
||||
return {'uuid': board.uuid,
|
||||
'name': board.name,
|
||||
'service_list': service_list}
|
||||
"""
|
||||
|
||||
|
||||
class AttachPortView(forms.ModalFormView):
|
||||
@ -322,6 +341,7 @@ class AttachPortView(forms.ModalFormView):
|
||||
networks = api.neutron.network_list(self.request)
|
||||
net_choices = []
|
||||
|
||||
networks.sort(key=lambda b: b.name)
|
||||
for net in networks:
|
||||
for subnet in net["subnets"]:
|
||||
net_choices.append((net["id"] + ':' + subnet["id"],
|
||||
@ -371,6 +391,7 @@ class DetachPortView(forms.ModalFormView):
|
||||
# ################################################################
|
||||
# LOG.debug("PORTS: %s", ports)
|
||||
|
||||
ports.sort(key=lambda b: b.name)
|
||||
filtered_ports = []
|
||||
for port in ports:
|
||||
if port._info["board_uuid"] == board.uuid:
|
||||
@ -388,7 +409,7 @@ class DetachPortView(forms.ModalFormView):
|
||||
|
||||
class EnableWebServiceView(forms.ModalFormView):
|
||||
template_name = 'iot/boards/enablewebservice.html'
|
||||
modal_header = _("Enable Web Service(s)")
|
||||
modal_header = _("Enable Web Services Manager")
|
||||
form_id = "webservice_enable_form"
|
||||
form_class = project_forms.EnableWebServiceForm
|
||||
submit_label = _("Enable")
|
||||
@ -425,7 +446,7 @@ class EnableWebServiceView(forms.ModalFormView):
|
||||
|
||||
class DisableWebServiceView(forms.ModalFormView):
|
||||
template_name = 'iot/boards/disablewebservice.html'
|
||||
modal_header = _("Disable Web Service(s)")
|
||||
modal_header = _("Disable Web Services Manager")
|
||||
form_id = "webservice_disable_form"
|
||||
form_class = project_forms.DisableWebServiceForm
|
||||
submit_label = _("Disable")
|
||||
@ -508,61 +529,6 @@ class RemovePluginsView(forms.ModalFormView):
|
||||
'plugin_list': plugin_list}
|
||||
|
||||
|
||||
class RemoveServicesView(forms.ModalFormView):
|
||||
template_name = 'iot/boards/removeservices.html'
|
||||
modal_header = _("Remove Services from board")
|
||||
form_id = "remove_boardservices_form"
|
||||
form_class = project_forms.RemoveServicesForm
|
||||
submit_label = _("Remove")
|
||||
# submit_url = reverse_lazy("horizon:iot:boards:removeservices")
|
||||
submit_url = "horizon:iot:boards:removeservices"
|
||||
success_url = reverse_lazy('horizon:iot:boards:index')
|
||||
page_title = _("Remove Services from board")
|
||||
|
||||
@memoized.memoized_method
|
||||
def get_object(self):
|
||||
try:
|
||||
return api.iotronic.board_get(self.request,
|
||||
self.kwargs['board_id'],
|
||||
None)
|
||||
except Exception:
|
||||
redirect = reverse("horizon:iot:boards:index")
|
||||
exceptions.handle(self.request,
|
||||
_('Unable to get board information.'),
|
||||
redirect=redirect)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(RemoveServicesView, self).get_context_data(**kwargs)
|
||||
args = (self.get_object().uuid,)
|
||||
context['submit_url'] = reverse(self.submit_url, args=args)
|
||||
return context
|
||||
|
||||
def get_initial(self):
|
||||
board = self.get_object()
|
||||
|
||||
# Populate services
|
||||
services = api.iotronic.services_on_board(self.request,
|
||||
board.uuid,
|
||||
True)
|
||||
services.sort(key=lambda b: b["name"])
|
||||
|
||||
service_list = []
|
||||
for service in services:
|
||||
# service_list.append((service["uuid"], _(service["name"])))
|
||||
|
||||
# TO BE REMOVED
|
||||
# ###########################################################
|
||||
# We are filtering the services that starts with "webservice"
|
||||
if ((service["name"] != "webservice") and
|
||||
(service["name"] != "webservice_ssl")):
|
||||
service_list.append((service["uuid"], _(service["name"])))
|
||||
# ###########################################################
|
||||
|
||||
return {'uuid': board.uuid,
|
||||
'name': board.name,
|
||||
'service_list': service_list}
|
||||
|
||||
|
||||
class DetailView(tabs.TabView):
|
||||
tab_group_class = project_tabs.BoardDetailTabs
|
||||
template_name = 'horizon/common/_detail.html'
|
||||
|
@ -33,11 +33,15 @@ class ExposeWebserviceForm(forms.SelfHandlingForm):
|
||||
widget=forms.TextInput(attrs={'readonly': 'readonly'})
|
||||
)
|
||||
|
||||
zone = forms.CharField(label=_("Zone"),
|
||||
widget=forms.TextInput(attrs={'readonly':
|
||||
'readonly'}))
|
||||
|
||||
ws_name = forms.CharField(label=_("Web Service Name"))
|
||||
|
||||
port = forms.IntegerField(
|
||||
label=_("Port"),
|
||||
help_text=_("The port used by the service")
|
||||
help_text=_("The local port used by the service")
|
||||
)
|
||||
|
||||
secure = forms.BooleanField(label=_("Secure"), initial=True)
|
||||
@ -98,6 +102,5 @@ class UnexposeWebserviceForm(forms.SelfHandlingForm):
|
||||
return True
|
||||
|
||||
except Exception:
|
||||
LOG.debug("HERE")
|
||||
message_text = "Unable to unexpose web service."
|
||||
exceptions.handle(request, _(message_text))
|
||||
|
@ -129,8 +129,11 @@ class ExposeView(forms.ModalFormView):
|
||||
|
||||
def get_initial(self):
|
||||
board = self.get_object()
|
||||
board_exp_info = iotronic.webservice_get_enabled_info(self.request,
|
||||
board.uuid)
|
||||
zone = board_exp_info.dns + "." + board_exp_info.zone
|
||||
|
||||
return {'uuid': board.uuid, 'name': board.name}
|
||||
return {'uuid': board.uuid, 'name': board.name, 'zone': zone}
|
||||
|
||||
|
||||
class UnexposeView(forms.ModalFormView):
|
||||
|
Loading…
Reference in New Issue
Block a user