components/openstack/neutron/files/neutron-dhcp-agent
branchs11u2-sru
changeset 3619 639868f63ef4
parent 3178 77584387a894
child 4156 4b1def16fe9b
--- 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