ceph/tasks/chef.py

52 lines
1.5 KiB
Python
Raw Normal View History

"""
Chef-solo task
"""
import logging
from teuthology.orchestra import run
from teuthology import misc
log = logging.getLogger(__name__)
def task(ctx, config):
"""
Run chef-solo on all nodes.
Optional parameters:
tasks:
-chef
script_url: # override default location for solo-from-scratch for Chef
chef_repo: # override default Chef repo used by solo-from-scratch
chef_branch: # to choose a different upstream branch for ceph-qa-chef
"""
log.info('Running chef-solo...')
if config is None:
config = {}
assert isinstance(config, dict), "chef - need config"
chef_script = config.get('script_url', 'http://git.ceph.com/?p=ceph-qa-chef.git;a=blob_plain;f=solo/solo-from-scratch;hb=HEAD')
chef_repo = config.get('chef_repo', "")
chef_branch = config.get('chef_branch', "")
run.wait(
ctx.cluster.run(
args=[
'wget',
# '-q',
'-O-',
# 'https://raw.github.com/ceph/ceph-qa-chef/master/solo/solo-from-scratch',
chef_script,
run.Raw('|'),
run.Raw('CHEF_REPO={repo}'.format(repo=chef_repo)),
run.Raw('CHEF_BRANCH={branch}'.format(branch=chef_branch)),
'sh',
'-x',
],
wait=False,
)
)
log.info('Reconnecting after ceph-qa-chef run')
misc.reconnect(ctx, 10) #Reconnect for ulimit and other ceph-qa-chef changes