summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/compute
diff options
context:
space:
mode:
authorStephen Finucane <sfinucan@redhat.com>2020-11-04 10:14:00 +0000
committerStephen Finucane <sfinucan@redhat.com>2021-01-06 12:02:24 +0000
commit03776d82e58622b30b90260ed9c374b0cfc70f2b (patch)
tree5dc89681a2ea6d8ae00680a769f113b24a9e47c8 /openstackclient/tests/functional/compute
parentf2c49142f057c2783bea46367ca66e4c19067c2e (diff)
downloadpython-openstackclient-03776d82e58622b30b90260ed9c374b0cfc70f2b.tar.gz
compute: Fix 'server * -f yaml' output
Make use of 'FormattableColumn'-derived formatters, which provide better output than what we were using before, particularly for the YAML output format. For example, compare before for the 'server show' command: $ openstack --os-compute-api-version 2.79 server show test-server -f yaml ... addresses: private=fdff:77e3:9bb4:0:f816:3eff:fe6d:a944, 10.0.0.44 flavor: disk='1', ephemeral='0', extra_specs.hw_rng:allowed='True', original_name='m1.tiny', ram='512', swap='0', vcpus='1' ... To after: $ openstack --os-compute-api-version 2.79 server show test-server -f yaml ... addresses: private: - fdff:77e3:9bb4:0:f816:3eff:fe6d:a944 - 10.0.0.44 flavor: disk: 1 ephemeral: 0 extra_specs: hw_rng:allowed: 'True' original_name: m1.tiny ram: 512 swap: 0 vcpus: 1 ... Similarly, compare before for 'server list': $ openstack --os-compute-api-version 2.79 server list -f yaml - ... Networks: private=fdff:77e3:9bb4:0:f816:3eff:fe6d:a944, 10.0.0.44 Power State: Running Properties: '' ... To after: $ openstack --os-compute-api-version 2.79 server list -f yaml - ... Networks: private: - fdff:77e3:9bb4:0:f816:3eff:fe6d:a944 - 10.0.0.44 Power State: 1 Properties: {} ... We also fix the human-readable output for the 'tags' field. Before: $ openstack --os-compute-api-version 2.79 server list ... | tags | ['bar', 'foo'] | After: $ openstack --os-compute-api-version 2.79 server list ... | tags | bar, foo | Change-Id: I7a8349106e211c57c4577b75326b39b88bd9ac1e Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient/tests/functional/compute')
-rw-r--r--openstackclient/tests/functional/compute/v2/test_server.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/openstackclient/tests/functional/compute/v2/test_server.py b/openstackclient/tests/functional/compute/v2/test_server.py
index 44d9c61f..bad3f93d 100644
--- a/openstackclient/tests/functional/compute/v2/test_server.py
+++ b/openstackclient/tests/functional/compute/v2/test_server.py
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import itertools
import json
import time
import uuid
@@ -346,6 +347,14 @@ class ServerTests(common.ComputeTestCase):
# DevStack without cells.
self.skipTest("No Network service present")
+ def _chain_addresses(addresses):
+ # Flatten a dict of lists mapping network names to IP addresses,
+ # returning only the IP addresses
+ #
+ # >>> _chain_addresses({'private': ['10.1.0.32', '172.24.5.41']})
+ # ['10.1.0.32', '172.24.5.41']
+ return itertools.chain(*[*addresses.values()])
+
cmd_output = self.server_create()
name = cmd_output['name']
self.wait_for_status(name, "ACTIVE")
@@ -387,7 +396,7 @@ class ServerTests(common.ComputeTestCase):
'server show -f json ' +
name
))
- if floating_ip not in cmd_output['addresses']:
+ if floating_ip not in _chain_addresses(cmd_output['addresses']):
# Hang out for a bit and try again
print('retrying floating IP check')
wait_time += 10
@@ -397,7 +406,7 @@ class ServerTests(common.ComputeTestCase):
self.assertIn(
floating_ip,
- cmd_output['addresses'],
+ _chain_addresses(cmd_output['addresses']),
)
# detach ip
@@ -417,7 +426,7 @@ class ServerTests(common.ComputeTestCase):
'server show -f json ' +
name
))
- if floating_ip in cmd_output['addresses']:
+ if floating_ip in _chain_addresses(cmd_output['addresses']):
# Hang out for a bit and try again
print('retrying floating IP check')
wait_time += 10
@@ -431,7 +440,7 @@ class ServerTests(common.ComputeTestCase):
))
self.assertNotIn(
floating_ip,
- cmd_output['addresses'],
+ _chain_addresses(cmd_output['addresses']),
)
def test_server_reboot(self):
@@ -856,8 +865,7 @@ class ServerTests(common.ComputeTestCase):
server = json.loads(self.openstack(
'server show -f json ' + server_name
))
- self.assertIsNotNone(server['addresses'])
- self.assertEqual('', server['addresses'])
+ self.assertEqual({}, server['addresses'])
def test_server_create_with_security_group(self):
"""Test server create with security group ID and name"""