def test_get_port_by_tag_not_found_returns_None(self): tenant_id = 'pippo' quantum_port_id = 'whatever' lswitch = nvplib.create_lswitch(self.fake_cluster, tenant_id, 'fake-switch') lport = nvplib.get_port_by_quantum_tag(self.fake_cluster, lswitch['uuid'], quantum_port_id) self.assertIsNone(lport)
def test_get_port_by_tag_not_found_returns_None(self): tenant_id = 'pippo' quantum_port_id = 'whatever' lswitch = nvplib.create_lswitch(self.fake_cluster, tenant_id, 'fake-switch') lport = nvplib.get_port_by_quantum_tag(self.fake_cluster, lswitch['uuid'], quantum_port_id) self.assertIsNone(lport)
def update_port(self, context, id, port): params = {} port_quantum = super(NvpPluginV2, self).get_port(context, id) port_nvp, cluster = ( nvplib.get_port_by_quantum_tag(self.clusters.itervalues(), port_quantum["network_id"], id)) params["cluster"] = cluster params["port"] = port_quantum LOG.debug(_("Update port request: %s"), params) nvplib.update_port(port_quantum['network_id'], port_nvp['uuid'], **params) return super(NvpPluginV2, self).update_port(context, id, port)
def test_get_port_by_tag(self): tenant_id = 'pippo' quantum_port_id = 'whatever' lswitch = nvplib.create_lswitch(self.fake_cluster, tenant_id, 'fake-switch') lport = nvplib.create_lport(self.fake_cluster, lswitch['uuid'], tenant_id, quantum_port_id, 'name', 'device_id', True) lport2 = nvplib.get_port_by_quantum_tag(self.fake_cluster, lswitch['uuid'], quantum_port_id) self.assertIsNotNone(lport2) self.assertEqual(lport['uuid'], lport2['uuid'])
def test_get_port_by_tag(self): tenant_id = 'pippo' quantum_port_id = 'whatever' lswitch = nvplib.create_lswitch(self.fake_cluster, tenant_id, 'fake-switch') lport = nvplib.create_lport(self.fake_cluster, lswitch['uuid'], tenant_id, quantum_port_id, 'name', 'device_id', True) lport2 = nvplib.get_port_by_quantum_tag(self.fake_cluster, lswitch['uuid'], quantum_port_id) self.assertIsNotNone(lport2) self.assertEqual(lport['uuid'], lport2['uuid'])
def delete_port(self, context, id): # TODO(salvatore-orlando): pass only actual cluster port, cluster = nvplib.get_port_by_quantum_tag( self.clusters.itervalues(), '*', id) if port is None: raise q_exc.PortNotFound(port_id=id) # TODO(bgh): if this is a bridged network and the lswitch we just got # back will have zero ports after the delete we should garbage collect # the lswitch. nvplib.delete_port(cluster, port) LOG.debug(_("delete_port() completed for tenant: %s"), context.tenant_id) return super(NvpPluginV2, self).delete_port(context, id)
def get_port(self, context, id, fields=None): quantum_db = super(NvpPluginV2, self).get_port(context, id, fields) #TODO: pass only the appropriate cluster here #Look for port in all lswitches port, cluster = ( nvplib.get_port_by_quantum_tag(self.clusters.itervalues(), "*", id)) quantum_db["admin_state_up"] = port["admin_status_enabled"] if port["_relations"]["LogicalPortStatus"]["fabric_status_up"]: quantum_db["status"] = constants.PORT_STATUS_ACTIVE else: quantum_db["status"] = constants.PORT_STATUS_DOWN LOG.debug(_("Port details for tenant %(tenant_id)s: %(quantum_db)s"), {'tenant_id': context.tenant_id, 'quantum_db': quantum_db}) return quantum_db
def update_port(self, context, id, port): self._enforce_set_auth(context, port, self.port_security_enabled_update) tenant_id = self._get_tenant_id_for_create(context, port) with context.session.begin(subtransactions=True): ret_port = super(NvpPluginV2, self).update_port( context, id, port) # copy values over ret_port.update(port['port']) # Handle port security if psec.PORTSECURITY in port['port']: self._update_port_security_binding( context, id, ret_port[psec.PORTSECURITY]) # populate with value else: ret_port[psec.PORTSECURITY] = self._get_port_security_binding( context, id) port_nvp, cluster = ( nvplib.get_port_by_quantum_tag(self.clusters.itervalues(), ret_port["network_id"], id)) LOG.debug(_("Update port request: %s"), port) nvplib.update_port(cluster, ret_port['network_id'], port_nvp['uuid'], id, tenant_id, ret_port['name'], ret_port['device_id'], ret_port['admin_state_up'], ret_port['mac_address'], ret_port['fixed_ips'], ret_port[psec.PORTSECURITY]) # Update the port status from nvp. If we fail here hide it since # the port was successfully updated but we were not able to retrieve # the status. try: ret_port['status'] = nvplib.get_port_status( cluster, ret_port['network_id'], port_nvp['uuid']) except: LOG.warn(_("Unable to retrieve port status for: %s."), port_nvp['uuid']) return ret_port