summaryrefslogtreecommitdiff
path: root/qa/tasks/devstack.py
diff options
context:
space:
mode:
Diffstat (limited to 'qa/tasks/devstack.py')
-rw-r--r--qa/tasks/devstack.py36
1 files changed, 14 insertions, 22 deletions
diff --git a/qa/tasks/devstack.py b/qa/tasks/devstack.py
index 943a9ffffa2..8e08c038931 100644
--- a/qa/tasks/devstack.py
+++ b/qa/tasks/devstack.py
@@ -1,9 +1,11 @@
#!/usr/bin/env python
import contextlib
import logging
-from cStringIO import StringIO
+from io import BytesIO
import textwrap
from configparser import ConfigParser
+
+import six
import time
from teuthology.orchestra import run
@@ -140,7 +142,7 @@ def distribute_ceph_keys(devstack_node, ceph_node):
log.info("Copying Ceph keys to DevStack node...")
def copy_key(from_remote, key_name, to_remote, dest_path, owner):
- key_stringio = StringIO()
+ key_stringio = BytesIO()
from_remote.run(
args=['sudo', 'ceph', 'auth', 'get-or-create', key_name],
stdout=key_stringio)
@@ -172,14 +174,8 @@ def distribute_ceph_keys(devstack_node, ceph_node):
def set_libvirt_secret(devstack_node, ceph_node):
log.info("Setting libvirt secret...")
- cinder_key_stringio = StringIO()
- ceph_node.run(args=['sudo', 'ceph', 'auth', 'get-key', 'client.cinder'],
- stdout=cinder_key_stringio)
- cinder_key = cinder_key_stringio.getvalue().strip()
-
- uuid_stringio = StringIO()
- devstack_node.run(args=['uuidgen'], stdout=uuid_stringio)
- uuid = uuid_stringio.getvalue().strip()
+ cinder_key = ceph_node.sh('sudo ceph auth get-key client.cinder').strip()
+ uuid = devstack_node.sh('uuidgen').strip()
secret_path = '/tmp/secret.xml'
secret_template = textwrap.dedent("""
@@ -210,7 +206,7 @@ def update_devstack_config_files(devstack_node, secret_uuid):
parser.read_file(config_stream)
for (key, value) in update_dict.items():
parser.set(section, key, value)
- out_stream = StringIO()
+ out_stream = six.StringIO()
parser.write(out_stream)
out_stream.seek(0)
return out_stream
@@ -254,8 +250,8 @@ def update_devstack_config_files(devstack_node, secret_uuid):
for update in updates:
file_name = update['name']
options = update['options']
- config_str = misc.get_file(devstack_node, file_name, sudo=True)
- config_stream = StringIO(config_str)
+ config_data = misc.get_file(devstack_node, file_name, sudo=True)
+ config_stream = six.StringIO(config_data)
backup_config(devstack_node, file_name)
new_config_stream = update_config(file_name, config_stream, options)
misc.sudo_write_file(devstack_node, file_name, new_config_stream)
@@ -352,21 +348,17 @@ def create_volume(devstack_node, ceph_node, vol_name, size):
size=size))
args = ['source', 'devstack/openrc', run.Raw('&&'), 'cinder', 'create',
'--display-name', vol_name, size]
- out_stream = StringIO()
- devstack_node.run(args=args, stdout=out_stream, wait=True)
- vol_info = parse_os_table(out_stream.getvalue())
+ cinder_create = devstack_node.sh(args, wait=True)
+ vol_info = parse_os_table(cinder_create)
log.debug("Volume info: %s", str(vol_info))
- out_stream = StringIO()
try:
- ceph_node.run(args="rbd --id cinder ls -l volumes", stdout=out_stream,
- wait=True)
+ rbd_output = ceph_node.sh("rbd --id cinder ls -l volumes", wait=True)
except run.CommandFailedError:
log.debug("Original rbd call failed; retrying without '--id cinder'")
- ceph_node.run(args="rbd ls -l volumes", stdout=out_stream,
- wait=True)
+ rbd_output = ceph_node.sh("rbd ls -l volumes", wait=True)
- assert vol_info['id'] in out_stream.getvalue(), \
+ assert vol_info['id'] in rbd_output, \
"Volume not found on Ceph cluster"
assert vol_info['size'] == size, \
"Volume size on Ceph cluster is different than specified"