--- a/components/openstack/neutron/files/neutron-dhcp-agent Fri Jan 09 14:26:04 2015 -0800
+++ b/components/openstack/neutron/files/neutron-dhcp-agent Fri Jan 09 16:31:51 2015 -0800
@@ -1,6 +1,6 @@
#!/usr/bin/python2.6
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
#
# 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
@@ -62,9 +62,22 @@
# first remove the IP
check_call(["/usr/bin/pfexec", "/usr/sbin/ipadm", "delete-ip",
ifname])
+ # get the tenant, evs, and vport name for the VNIC
+ cmd = ["/usr/sbin/dladm", "show-vnic", "-po",
+ "tenant,evs,vport", ifname]
+ p = Popen(cmd, stdout=PIPE, stderr=PIPE)
+ output, error = p.communicate()
+ if p.returncode != 0:
+ print "failed to retrieve Tenant, EVS," \
+ " and VPort info for a VNIC"
+ return smf_include.SMF_EXIT_ERR_FATAL
+ tenant, evs, vport = output.strip().split(':')
# next remove the VNIC
check_call(["/usr/bin/pfexec", "/usr/sbin/dladm", "delete-vnic",
ifname])
+ # remove the EVS VPort
+ check_call(["/usr/sbin/evsadm", "remove-vport", "-T", tenant,
+ "%s/%s" % (evs, vport)])
except CalledProcessError as err:
print "failed to remove datalinks used by DHCP agent: %s" % err
return smf_include.SMF_EXIT_ERR_FATAL