Merge "list detailed ports by node"
diff --git a/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py b/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py
index 2cc2f5c..d12ece4 100644
--- a/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py
+++ b/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py
@@ -104,6 +104,11 @@
return self._list_request('/nodes/%s/ports' % uuid)
@base.handle_errors
+ def list_node_ports_detail(self, uuid):
+ """List ports detail associated with the node."""
+ return self._list_request('/nodes/%s/ports/detail' % uuid)
+
+ @base.handle_errors
def list_nodestates(self, uuid):
"""List all existing states."""
return self._list_request('/nodes/%s/states' % uuid)
diff --git a/ironic_tempest_plugin/tests/api/admin/test_nodes.py b/ironic_tempest_plugin/tests/api/admin/test_nodes.py
index 3da3f3e..0d82577 100644
--- a/ironic_tempest_plugin/tests/api/admin/test_nodes.py
+++ b/ironic_tempest_plugin/tests/api/admin/test_nodes.py
@@ -95,6 +95,18 @@
self.assertIn(port['uuid'],
[p['uuid'] for p in body['ports']])
+ @decorators.idempotent_id('78c4ebd8-f83a-4df7-9653-9fb33a329730')
+ def test_node_ports_detail(self):
+ _, port = self.create_port(self.node['uuid'],
+ data_utils.rand_mac_address())
+ _, body = self.client.list_node_ports_detail(self.node['uuid'])
+ self.assertIn(port['uuid'],
+ [p['uuid'] for p in body['ports']])
+ self.assertIn(port['node_uuid'],
+ [p['node_uuid'] for p in body['ports']])
+ self.assertIn(port['address'],
+ [p['address'] for p in body['ports']])
+
@decorators.idempotent_id('72591acb-f215-49db-8395-710d14eb86ab')
def test_node_port_list_no_ports(self):
_, node = self.create_node(self.chassis['uuid'])