summaryrefslogtreecommitdiff
path: root/openstack_dashboard/dashboards/project/networks/subnets/workflows.py
diff options
context:
space:
mode:
Diffstat (limited to 'openstack_dashboard/dashboards/project/networks/subnets/workflows.py')
-rw-r--r--openstack_dashboard/dashboards/project/networks/subnets/workflows.py196
1 files changed, 0 insertions, 196 deletions
diff --git a/openstack_dashboard/dashboards/project/networks/subnets/workflows.py b/openstack_dashboard/dashboards/project/networks/subnets/workflows.py
deleted file mode 100644
index c033b707..00000000
--- a/openstack_dashboard/dashboards/project/networks/subnets/workflows.py
+++ /dev/null
@@ -1,196 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2013 NEC Corporation
-#
-# 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 logging
-
-from django.core.urlresolvers import reverse
-from django.utils.translation import ugettext_lazy as _
-
-from horizon import exceptions
-from horizon import forms
-from horizon.utils import fields
-from horizon import workflows
-
-from openstack_dashboard import api
-from openstack_dashboard.dashboards.project.networks import workflows \
- as network_workflows
-
-
-LOG = logging.getLogger(__name__)
-
-
-class CreateSubnetInfoAction(network_workflows.CreateSubnetInfoAction):
- with_subnet = forms.BooleanField(initial=True, required=False,
- widget=forms.HiddenInput())
-
- class Meta:
- name = ("Subnet")
- help_text = _('You can create a subnet associated with the '
- 'network. Advanced configuration are available '
- 'at "Subnet Detail" tab.')
-
- def clean(self):
- cleaned_data = workflows.Action.clean(self)
- self._check_subnet_data(cleaned_data)
- return cleaned_data
-
-
-class CreateSubnetInfo(network_workflows.CreateSubnetInfo):
- action_class = CreateSubnetInfoAction
- depends_on = ("network_id",)
-
-
-class CreateSubnet(network_workflows.CreateNetwork):
- slug = "create_subnet"
- name = _("Create Subnet")
- finalize_button_name = _("Create")
- success_message = _('Created subnet "%s".')
- failure_message = _('Unable to create subnet "%s".')
- default_steps = (CreateSubnetInfo,
- network_workflows.CreateSubnetDetail)
-
- def format_status_message(self, message):
- name = self.context.get('subnet_name') or self.context.get('subnet_id')
- return message % name
-
- def get_success_url(self):
- return reverse("horizon:project:networks:detail",
- args=(self.context.get('network_id'),))
-
- def get_failure_url(self):
- return reverse("horizon:project:networks:detail",
- args=(self.context.get('network_id'),))
-
- def handle(self, request, data):
- subnet = self._create_subnet(request, data)
- return True if subnet else False
-
-
-class UpdateSubnetInfoAction(CreateSubnetInfoAction):
- cidr = fields.IPField(label=_("Network Address"),
- required=False,
- initial="",
- widget=forms.TextInput(
- attrs={'readonly': 'readonly'}),
- help_text=_("Network address in CIDR format "
- "(e.g. 192.168.0.0/24)"),
- version=fields.IPv4 | fields.IPv6,
- mask=True)
- # NOTE(amotoki): When 'disabled' attribute is set for the ChoiceField
- # and ValidationError is raised for POST request, the initial value of
- # the ip_version ChoiceField is not set in the re-displayed form
- # As a result, 'IPv4' is displayed even when IPv6 is used if
- # ValidationError is detected. In addition 'required=True' check complains
- # when re-POST since the value of the ChoiceField is not set.
- # Thus now I use HiddenInput for the ip_version ChoiceField as a work
- # around.
- ip_version = forms.ChoiceField(choices=[(4, 'IPv4'), (6, 'IPv6')],
- #widget=forms.Select(
- # attrs={'disabled': 'disabled'}),
- widget=forms.HiddenInput(),
- label=_("IP Version"))
-
- gateway_ip = fields.IPField(
- label=_("Gateway IP (optional)"),
- required=False,
- initial="",
- help_text=_("IP address of Gateway (e.g. 192.168.0.254). "
- "You need to specify an explicit address "
- "to set the gateway. "
- "If you want to use no gateway, "
- "check 'Disable Gateway' below."),
- version=fields.IPv4 | fields.IPv6,
- mask=False)
- no_gateway = forms.BooleanField(label=_("Disable Gateway"),
- initial=False, required=False)
-
- class Meta:
- name = ("Subnet")
- help_text = _('You can update a subnet associated with the '
- 'network. Advanced configuration are available '
- 'at "Subnet Detail" tab.')
-
- def clean(self):
- cleaned_data = workflows.Action.clean(self)
- self._check_subnet_data(cleaned_data, is_create=False)
- return cleaned_data
-
-
-class UpdateSubnetInfo(CreateSubnetInfo):
- action_class = UpdateSubnetInfoAction
- depends_on = ("network_id", "subnet_id")
-
-
-class UpdateSubnetDetailAction(network_workflows.CreateSubnetDetailAction):
- allocation_pools = forms.CharField(widget=forms.HiddenInput(),
- required=False)
-
- class Meta:
- name = ("Subnet Detail")
- help_text = _('You can specify additional attributes for the subnet.')
-
-
-class UpdateSubnetDetail(network_workflows.CreateSubnetDetail):
- action_class = UpdateSubnetDetailAction
-
-
-class UpdateSubnet(network_workflows.CreateNetwork):
- slug = "update_subnet"
- name = _("Update Subnet")
- finalize_button_name = _("Update")
- success_message = _('Updated subnet "%s".')
- failure_message = _('Unable to update subnet "%s".')
- success_url = "horizon:project:networks:detail"
- failure_url = "horizon:project:networks:detail"
- default_steps = (UpdateSubnetInfo,
- UpdateSubnetDetail)
-
- def format_status_message(self, message):
- name = self.context.get('subnet_name') or self.context.get('subnet_id')
- return message % name
-
- def get_success_url(self):
- return reverse(self.success_url,
- args=(self.context.get('network_id'),))
-
- def _update_subnet(self, request, data):
- network_id = self.context.get('network_id')
- try:
- subnet_id = self.context.get('subnet_id')
- params = {}
- params['name'] = data['subnet_name']
- if data['no_gateway']:
- params['gateway_ip'] = None
- elif data['gateway_ip']:
- params['gateway_ip'] = data['gateway_ip']
-
- self._setup_subnet_parameters(params, data, is_create=False)
-
- subnet = api.neutron.subnet_modify(request, subnet_id, **params)
- msg = _('Subnet "%s" was successfully updated.') % data['cidr']
- LOG.debug(msg)
- return subnet
- except Exception as e:
- msg = (_('Failed to update subnet "%(sub)s": '
- ' %(reason)s') %
- {"sub": data['cidr'], "reason": e})
- redirect = reverse(self.failure_url, args=(network_id,))
- exceptions.handle(request, msg, redirect=redirect)
- return False
-
- def handle(self, request, data):
- subnet = self._update_subnet(request, data)
- return True if subnet else False