import six
from io import BytesIO
+from six import StringIO
from teuthology import misc as teuthology
from tasks.scrub import Scrubber
from tasks.util.rados import cmd_erasure_code_profile
self.pgid = self.manager.get_object_pg_with_shard(self.pool,
self.object_name,
self.osd)
- self.remote = self.manager.ctx.\
- cluster.only('osd.{o}'.format(o=self.osd)).remotes.keys()[0]
+ self.remote = next(iter(self.manager.ctx.\
+ cluster.only('osd.{o}'.format(o=self.osd)).remotes.keys()))
path = self.manager.get_filepath().format(id=self.osd)
self.paths = ("--data-path {path} --journal-path {path}/journal".
format(path=path))
if watch_channel is not None:
args.append("--watch-channel")
args.append(watch_channel)
- return self.controller.run(args=args, wait=False, stdout=BytesIO(), stdin=run.PIPE)
+ return self.controller.run(args=args, wait=False, stdout=StringIO(), stdin=run.PIPE)
def get_mon_socks(self):
"""
def osd_admin_socket(self, osd_id, command, check_status=True, timeout=0, stdout=None):
if stdout is None:
- stdout = BytesIO()
+ stdout = StringIO()
return self.admin_socket('osd', osd_id, command, check_status, timeout, stdout)
def find_remote(self, service_type, service_id):
to the admin socket
"""
if stdout is None:
- stdout = BytesIO()
+ stdout = StringIO()
remote = self.find_remote(service_type, service_id)
five seconds and try again.
"""
if stdout is None:
- stdout = BytesIO()
+ stdout = StringIO()
tries = 0
while True:
proc = self.admin_socket(service_type, service_id,
"""
Get osd statuses sorted by states that the osds are in.
"""
- osd_lines = filter(
+ osd_lines = list(filter(
lambda x: x.startswith('osd.') and (("up" in x) or ("down" in x)),
- self.raw_osd_status().split('\n'))
+ self.raw_osd_status().split('\n')))
self.log(osd_lines)
in_osds = [int(i[4:].split()[0])
for i in filter(lambda x: " in " in x, osd_lines)]
"""
with self.lock:
if self.pools:
- return random.choice(self.pools.keys())
+ return random.sample(self.pools.keys(), 1)[0]
def get_pool_pg_num(self, pool_name):
"""