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 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