def get_data(self): request = self.request try: gw_port = self._get_gateway_port_data() gw_vlans = neutron.nuage_gateway_vlan_list( self.request, gw_port.id) vlans = [] for vlan in gw_vlans: if vlan.get('vport'): dict = vlan.to_dict() vport = neutron.nuage_gateway_vport_get(request, vlan['vport']) dict['vport'] = vport if vport and vport.get('subnet'): subnet = neutron.subnet_get(request, vport.get('subnet')) dict['subnet'] = subnet if vport.get('port'): try: port = neutron.port_get(request, vport['port']) dict['port'] = port except Exception: dict['port'] = None vlan = neutron.NuageGatewayVlan(dict) vlans.append(vlan) except Exception: vlans = [] msg = _('Nuage Gateway Vlan list can not be retrieved.') exceptions.handle(request, msg) return vlans
def get_context_data(self, **kwargs): context = super(AddAllowedAddressPair, self).get_context_data(**kwargs) context["port_id"] = self.kwargs['port_id'] context['submit_url'] = reverse(self.submit_url, args=(self.kwargs['port_id'],)) port = neutron.port_get(self.request, context['port_id']) subnet_id = port['fixed_ips'][0]['subnet_id'] context['subnet'] = neutron.subnet_get(self.request, subnet_id) return context
def allowed(self, request, port): allowed = super(AddAllowedAddressPair, self).allowed(request, port) if not allowed: return allowed if not port: port_id = self.table.kwargs['port_id'] port = neutron.port_get(request, port_id) subnet_id = port['fixed_ips'][0]['subnet_id'] subnet = neutron.subnet_get(request, subnet_id, fields=['vsd_managed', 'ip_version']) return not subnet['vsd_managed']
def delete(self, request, ip_address): try: port_id = self.table.kwargs['port_id'] port = neutron.port_get(request, port_id) pairs = port.get('allowed_address_pairs', []) pairs = [pair for pair in pairs if pair['ip_address'] != ip_address] neutron.port_update(request, port_id, allowed_address_pairs=pairs) except Exception: msg = _('Failed to update port %s') LOG.info(msg, port_id) redirect = reverse("horizon:project:networks:ports:detail", args=(port_id,)) exceptions.handle(request, msg % port_id, redirect=redirect)
def _get_data(self): port_id = self.kwargs['port_id'] try: port = neutron.port_get(self.request, port_id) port.admin_state_label = STATE_DICT.get(port.admin_state, port.admin_state) port.status_label = STATUS_DICT.get(port.status, port.status) except Exception: port = [] redirect = self.get_redirect_url() msg = _('Unable to retrieve port details.') exceptions.handle(self.request, msg, redirect=redirect) if (neutron.is_extension_supported(self.request, 'mac-learning') and not hasattr(port, 'mac_state')): port.mac_state = neutron.OFF_STATE return port
def handle(self, request, data): port_id = self.initial['port_id'] try: port = neutron.port_get(request, port_id) current = port.get('allowed_address_pairs', []) pair = {'ip_address': data['ip']} if data['mac'] and len(data['mac']) > 5: pair['mac_address'] = data['mac'] current.append(pair) port = neutron.port_update(request, port_id, allowed_address_pairs=current) msg = _('Port %s was successfully updated.') % port_id messages.success(request, msg) return port except Exception as e: msg = _('Failed to update port "%s".') % port_id LOG.info(msg) args = (self.initial.get('port_id'),) redirect = reverse(self.failure_url, args=args) exceptions.handle(request, msg, redirect=redirect) return False