Merge "Add release notes job to zuul template"
diff --git a/neutron_tempest_plugin/scenario/test_trunk.py b/neutron_tempest_plugin/scenario/test_trunk.py
index 2ff7e5d..f7568c5 100644
--- a/neutron_tempest_plugin/scenario/test_trunk.py
+++ b/neutron_tempest_plugin/scenario/test_trunk.py
@@ -29,13 +29,11 @@
CONF = config.CONF
CONFIGURE_VLAN_INTERFACE_COMMANDS = (
- 'IFACE=$(PATH=$PATH:/usr/sbin ip l | grep "^[0-9]*: e" |'
- 'cut -d \: -f 2) && '
- 'sudo su -c '
- '"ip l a link $IFACE name $IFACE.%(tag)d type vlan id %(tag)d &&'
- 'ip l s up dev $IFACE.%(tag)d && '
- '{ ps -ef | grep -q "dhclient .*$IFACE.%(tag)d" || '
- 'dhclient $IFACE.%(tag)d"; }')
+ 'IFACE=$(PATH=$PATH:/usr/sbin ip l | grep "^[0-9]*: e"|cut -d \: -f 2) &&'
+ 'sudo ip l a link $IFACE name $IFACE.%(tag)d type vlan id %(tag)d &&'
+ 'sudo ip l s up dev $IFACE.%(tag)d && '
+ 'ps -ef | grep -q "[d]hclient .*$IFACE.%(tag)d" || '
+ 'sudo dhclient $IFACE.%(tag)d;')
class TrunkTest(base.BaseTempestTestCase):
@@ -141,7 +139,6 @@
CONF.validation.image_ssh_user,
self.keypair['private_key'])
- @utils.unstable_test("bug 1766701")
@decorators.idempotent_id('bb13fe28-f152-4000-8131-37890a40c79e')
def test_trunk_subport_lifecycle(self):
"""Test trunk creation and subport transition to ACTIVE status.
@@ -222,7 +219,6 @@
CONF.validation.image_ssh_user,
self.keypair['private_key'])
- @utils.unstable_test('bug 1766701')
@testtools.skipUnless(
CONF.neutron_plugin_options.image_is_advanced,
"Advanced image is required to run this test.")
diff --git a/neutron_tempest_plugin/services/network/json/network_client.py b/neutron_tempest_plugin/services/network/json/network_client.py
index b316ce4..a28d668 100644
--- a/neutron_tempest_plugin/services/network/json/network_client.py
+++ b/neutron_tempest_plugin/services/network/json/network_client.py
@@ -461,6 +461,12 @@
body = jsonutils.loads(body)
return service_client.ResponseBody(resp, body)
+ def delete_agent(self, agent_id):
+ uri = '%s/agents/%s' % (self.uri_prefix, agent_id)
+ resp, body = self.delete(uri)
+ self.expected_success(204, resp.status)
+ return service_client.ResponseBody(resp, body)
+
def list_routers_on_l3_agent(self, agent_id):
uri = '%s/agents/%s/l3-routers' % (self.uri_prefix, agent_id)
resp, body = self.get(uri)
diff --git a/releasenotes/notes/agents-client-delete-method-de1a7fb3f845999c.yaml b/releasenotes/notes/agents-client-delete-method-de1a7fb3f845999c.yaml
new file mode 100644
index 0000000..01c94f4
--- /dev/null
+++ b/releasenotes/notes/agents-client-delete-method-de1a7fb3f845999c.yaml
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ Added a new method ``delete_agent`` to the AgentsClient class that
+ implements agent deletion according to the neutron API.
+ https://developer.openstack.org/api-ref/network/v2/index.html#delete-agent
+