Skip to content

Commit 4b14c40

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "tests: Improve logging for executed commands"
2 parents dabaec5 + b3cb85f commit 4b14c40

2 files changed

Lines changed: 40 additions & 14 deletions

File tree

openstackclient/tests/functional/base.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
# License for the specific language governing permissions and limitations
1111
# under the License.
1212

13+
import logging
1314
import os
1415
import shlex
1516
import subprocess
@@ -18,22 +19,30 @@
1819
from tempest.lib import exceptions
1920
import testtools
2021

21-
2222
ADMIN_CLOUD = os.environ.get('OS_ADMIN_CLOUD', 'devstack-admin')
23+
LOG = logging.getLogger(__name__)
2324

2425

2526
def execute(cmd, fail_ok=False, merge_stderr=False):
2627
"""Executes specified command for the given action."""
28+
LOG.debug('Executing: %s', cmd)
2729
cmdlist = shlex.split(cmd)
2830
stdout = subprocess.PIPE
2931
stderr = subprocess.STDOUT if merge_stderr else subprocess.PIPE
32+
3033
proc = subprocess.Popen(cmdlist, stdout=stdout, stderr=stderr)
31-
result, result_err = proc.communicate()
32-
result = result.decode('utf-8')
34+
35+
result_out, result_err = proc.communicate()
36+
result_out = result_out.decode('utf-8')
37+
LOG.debug('stdout: %s', result_out)
38+
LOG.debug('stderr: %s', result_err)
39+
3340
if not fail_ok and proc.returncode != 0:
34-
raise exceptions.CommandFailed(proc.returncode, cmd, result,
35-
result_err)
36-
return result
41+
raise exceptions.CommandFailed(
42+
proc.returncode, cmd, result_out, result_err,
43+
)
44+
45+
return result_out
3746

3847

3948
class TestCase(testtools.TestCase):

openstackclient/tests/functional/compute/v2/test_server.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,19 +1195,19 @@ def test_server_add_remove_port(self):
11951195
def test_server_add_remove_volume(self):
11961196
volume_wait_for = volume_common.BaseVolumeTests.wait_for_status
11971197

1198-
name = uuid.uuid4().hex
1198+
server_name = uuid.uuid4().hex
11991199
cmd_output = json.loads(self.openstack(
12001200
'server create -f json ' +
12011201
'--network private ' +
12021202
'--flavor ' + self.flavor_name + ' ' +
12031203
'--image ' + self.image_name + ' ' +
12041204
'--wait ' +
1205-
name
1205+
server_name
12061206
))
12071207

12081208
self.assertIsNotNone(cmd_output['id'])
1209-
self.assertEqual(name, cmd_output['name'])
1210-
self.addCleanup(self.openstack, 'server delete --wait ' + name)
1209+
self.assertEqual(server_name, cmd_output['name'])
1210+
self.addCleanup(self.openstack, 'server delete --wait ' + server_name)
12111211
server_id = cmd_output['id']
12121212

12131213
volume_name = uuid.uuid4().hex
@@ -1225,7 +1225,7 @@ def test_server_add_remove_volume(self):
12251225

12261226
cmd_output = json.loads(self.openstack(
12271227
'server add volume -f json ' +
1228-
name + ' ' +
1228+
server_name + ' ' +
12291229
volume_name + ' ' +
12301230
'--tag bar'
12311231
))
@@ -1237,16 +1237,33 @@ def test_server_add_remove_volume(self):
12371237

12381238
cmd_output = json.loads(self.openstack(
12391239
'server volume list -f json ' +
1240-
name
1240+
server_name
12411241
))
12421242

12431243
self.assertEqual(volume_attachment_id, cmd_output[0]['ID'])
12441244
self.assertEqual(server_id, cmd_output[0]['Server ID'])
12451245
self.assertEqual(volume_id, cmd_output[0]['Volume ID'])
12461246

12471247
volume_wait_for('volume', volume_name, 'in-use')
1248-
self.openstack('server remove volume ' + name + ' ' + volume_name)
1248+
1249+
cmd_output = json.loads(self.openstack(
1250+
'server event list -f json ' +
1251+
server_name
1252+
))
1253+
self.assertEqual(2, len(cmd_output))
1254+
self.assertIn('attach_volume', {x['Action'] for x in cmd_output})
1255+
1256+
self.openstack(
1257+
'server remove volume ' + server_name + ' ' + volume_name
1258+
)
12491259
volume_wait_for('volume', volume_name, 'available')
12501260

1251-
raw_output = self.openstack('server volume list ' + name)
1261+
cmd_output = json.loads(self.openstack(
1262+
'server event list -f json ' +
1263+
server_name
1264+
))
1265+
self.assertEqual(3, len(cmd_output))
1266+
self.assertIn('detach_volume', {x['Action'] for x in cmd_output})
1267+
1268+
raw_output = self.openstack('server volume list ' + server_name)
12521269
self.assertEqual('\n', raw_output)

0 commit comments

Comments
 (0)