--- a/components/openstack/neutron/files/neutron-dhcp-agent Mon Dec 08 12:01:59 2014 -0800
+++ b/components/openstack/neutron/files/neutron-dhcp-agent Mon Dec 08 15:34:49 2014 -0800
@@ -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