components/openstack/neutron/files/neutron-dhcp-agent
changeset 3524 ad6a9e0880b9
parent 1944 56ac2df1785b
child 3998 5bd484384122
--- 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