modify l2-proxy to add network_delete function.
Change-Id: I4f1881e85adb051170ad7b3eb9a186f953ca5f7d
This commit is contained in:
@@ -514,21 +514,36 @@ class OVSNeutronAgent(n_rpc.RpcCallback,
|
|||||||
self._report_state)
|
self._report_state)
|
||||||
heartbeat.start(interval=report_interval)
|
heartbeat.start(interval=report_interval)
|
||||||
|
|
||||||
def get_net_uuid(self, vif_id):
|
def list_cascaded_network_by_name(self, name):
|
||||||
for network_id, vlan_mapping in self.local_vlan_map.iteritems():
|
search_opts = {'name': [name]}
|
||||||
if vif_id in vlan_mapping.vif_ports:
|
neutron_client = self.get_cascaded_neutron_client()
|
||||||
return network_id
|
cascaded_net = neutron_client.list_networks(**search_opts)
|
||||||
|
return cascaded_net
|
||||||
|
|
||||||
|
def delete_cascaded_network_by_id(self, network_id):
|
||||||
|
neutron_client = self.get_cascaded_neutron_client()
|
||||||
|
try:
|
||||||
|
neutron_client.delete_network(network_id)
|
||||||
|
except Exception as e:
|
||||||
|
LOG.error('Delete cascaded network %s failed! Exception:%s',
|
||||||
|
network_id, str(e))
|
||||||
|
|
||||||
|
def get_csd_network_name(self, network_id):
|
||||||
|
return network_id
|
||||||
|
|
||||||
def network_delete(self, context, **kwargs):
|
def network_delete(self, context, **kwargs):
|
||||||
LOG.debug(_("network_delete received"))
|
LOG.debug(_("TRICIRCLE network_delete received"))
|
||||||
network_id = kwargs.get('network_id')
|
network_id = kwargs.get('network_id')
|
||||||
LOG.debug(_("Delete %s"), network_id)
|
csd_network_name = self.get_csd_network_name(network_id)
|
||||||
# The network may not be defined on this agent
|
network_ret = self.list_cascaded_network_by_name(csd_network_name)
|
||||||
lvm = self.local_vlan_map.get(network_id)
|
if(network_ret and (network_ret.get('networks'))):
|
||||||
if lvm:
|
cascaded_net = network_ret['networks'][0]
|
||||||
self.reclaim_local_vlan(network_id)
|
self.delete_cascaded_network_by_id(cascaded_net['id'])
|
||||||
else:
|
else:
|
||||||
LOG.debug(_("Network %s not used on agent."), network_id)
|
LOG.error('TRICIRCLE List cascaded network %s failed when '
|
||||||
|
'call network_delete!', csd_network_name)
|
||||||
|
LOG.debug(_("TRICIRCLE Network %s was deleted successfully."),
|
||||||
|
network_id)
|
||||||
|
|
||||||
def port_update(self, context, **kwargs):
|
def port_update(self, context, **kwargs):
|
||||||
port = kwargs.get('port')
|
port = kwargs.get('port')
|
||||||
@@ -565,8 +580,7 @@ class OVSNeutronAgent(n_rpc.RpcCallback,
|
|||||||
LOG.error(_("No port id is specified, cannot destroy port"))
|
LOG.error(_("No port id is specified, cannot destroy port"))
|
||||||
return
|
return
|
||||||
|
|
||||||
openStackClients = self.get_cascaded_neutron_client()
|
neutronClient = self.get_cascaded_neutron_client()
|
||||||
neutronClient = openStackClients.neutron()
|
|
||||||
bodyResponse = neutronClient.delete_port(port_id)
|
bodyResponse = neutronClient.delete_port(port_id)
|
||||||
LOG.debug(_('destroy port, Response:%s'), str(bodyResponse))
|
LOG.debug(_('destroy port, Response:%s'), str(bodyResponse))
|
||||||
return bodyResponse
|
return bodyResponse
|
||||||
@@ -1151,9 +1165,10 @@ class OVSNeutronAgent(n_rpc.RpcCallback,
|
|||||||
self.iter_num = self.iter_num + 1
|
self.iter_num = self.iter_num + 1
|
||||||
|
|
||||||
def daemon_loop(self):
|
def daemon_loop(self):
|
||||||
with polling.get_polling_manager(
|
# with polling.get_polling_manager(
|
||||||
self.minimize_polling) as pm:
|
# self.minimize_polling) as pm:
|
||||||
self.rpc_loop()
|
self.rpc_loop()
|
||||||
|
|
||||||
# with polling.get_polling_manager(
|
# with polling.get_polling_manager(
|
||||||
# self.minimize_polling,
|
# self.minimize_polling,
|
||||||
# self.root_helper,
|
# self.root_helper,
|
||||||
@@ -1221,14 +1236,14 @@ def main():
|
|||||||
LOG.error(_('%s Agent terminated!'), e)
|
LOG.error(_('%s Agent terminated!'), e)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
is_xen_compute_host = 'rootwrap-xen-dom0' in agent_config['root_helper']
|
# is_xen_compute_host = 'rootwrap-xen-dom0' in agent_config['root_helper']
|
||||||
if is_xen_compute_host:
|
# if is_xen_compute_host:
|
||||||
# Force ip_lib to always use the root helper to ensure that ip
|
# # Force ip_lib to always use the root helper to ensure that ip
|
||||||
# commands target xen dom0 rather than domU.
|
# # commands target xen dom0 rather than domU.
|
||||||
cfg.CONF.set_default('ip_lib_force_root', True)
|
# cfg.CONF.set_default('ip_lib_force_root', True)
|
||||||
|
|
||||||
agent = OVSNeutronAgent(**agent_config)
|
agent = OVSNeutronAgent(**agent_config)
|
||||||
signal.signal(signal.SIGTERM, agent._handle_sigterm)
|
# signal.signal(signal.SIGTERM, agent._handle_sigterm)
|
||||||
|
|
||||||
# Start everything.
|
# Start everything.
|
||||||
LOG.info(_("Agent initialized successfully, now running... "))
|
LOG.info(_("Agent initialized successfully, now running... "))
|
||||||
|
|||||||
Reference in New Issue
Block a user