Python part for osd-upgrade with graph
Change-Id: I7896e705fbb2911fe3446c59d25fd70c5d808c7a
This commit is contained in:
parent
0dfe021b41
commit
064ed577d4
|
@ -20,10 +20,12 @@ import time
|
|||
from cliff import command as cmd
|
||||
|
||||
from fuelclient.objects import environment as env_obj
|
||||
from fuelclient.objects import release as rel_obj
|
||||
|
||||
from octane.handlers import backup_restore
|
||||
from octane import magic_consts
|
||||
from octane.util import apt
|
||||
from octane.util import deployment as deploy
|
||||
from octane.util import env
|
||||
from octane.util import fuel_client
|
||||
from octane.util import ssh
|
||||
|
@ -183,6 +185,17 @@ def get_repos_for_upgrade(orig_env, seed_env):
|
|||
return results
|
||||
|
||||
|
||||
def add_upgrade_attrs_to_settings(env, repos, ceph_rel, hosts):
|
||||
attrs = env.get_settings_data()
|
||||
attrs['editable']['repo_setup']['upgrade_osd'] = {'value': repos,
|
||||
'type': 'hidden'}
|
||||
attrs['editable']['common']['ceph_upgrade_release'] = {'value': ceph_rel,
|
||||
'type': 'hidden'}
|
||||
attrs['editable']['common']['ceph_upgrade_hostnames'] = {'value': hosts,
|
||||
'type': 'hidden'}
|
||||
env.set_settings_data(attrs)
|
||||
|
||||
|
||||
def upgrade_osd(orig_env_id, seed_env_id, user, password):
|
||||
with fuel_client.set_auth_context(
|
||||
backup_restore.NailgunCredentialsContext(user, password)):
|
||||
|
@ -214,6 +227,26 @@ def upgrade_osd(orig_env_id, seed_env_id, user, password):
|
|||
raise Exception(msg)
|
||||
|
||||
|
||||
def upgrade_osd_with_graph(orig_env_id, seed_env_id):
|
||||
orig_env = env_obj.Environment(orig_env_id)
|
||||
seed_env = env_obj.Environment(seed_env_id)
|
||||
seed_repos = get_repos_for_upgrade(orig_env, seed_env)
|
||||
seed_rel = rel_obj.Release(seed_env.data['release_id'])
|
||||
ceph_rel = magic_consts.CEPH_RELEASES.get(seed_rel.data['version'])
|
||||
osd_nodes = list(env.get_nodes(orig_env, ["ceph-osd"]))
|
||||
hostnames = [n.data['hostname'] for n in osd_nodes]
|
||||
|
||||
add_upgrade_attrs_to_settings(orig_env, seed_repos, ceph_rel, hostnames)
|
||||
add_upgrade_attrs_to_settings(seed_env, seed_repos, ceph_rel, hostnames)
|
||||
|
||||
deploy.upload_graph(orig_env_id, 'orig')
|
||||
deploy.upload_graph(seed_env_id, 'seed')
|
||||
|
||||
deploy.execute_graph_and_wait('upgrade-osd-pre', orig_env_id)
|
||||
deploy.execute_graph_and_wait('upgrade-osd', seed_env_id)
|
||||
deploy.execute_graph_and_wait('upgrade-osd-post', orig_env_id)
|
||||
|
||||
|
||||
class UpgradeOSDCommand(cmd.Command):
|
||||
"""Upgrade osd servers"""
|
||||
|
||||
|
@ -236,9 +269,18 @@ class UpgradeOSDCommand(cmd.Command):
|
|||
dest="admin_password",
|
||||
required=True,
|
||||
help="Fuel admin password")
|
||||
parser.add_argument(
|
||||
'--with-graph', action='store_true',
|
||||
help='EXPERIMENTAL: Use Fuel deployment graphs'
|
||||
' instead of python-based commands.')
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
if parsed_args.with_graph:
|
||||
upgrade_osd_with_graph(
|
||||
parsed_args.orig_env_id,
|
||||
parsed_args.seed_env_id)
|
||||
else:
|
||||
upgrade_osd(
|
||||
parsed_args.orig_env_id,
|
||||
parsed_args.seed_env_id,
|
||||
|
|
|
@ -169,3 +169,7 @@ COMPUTE_PREUPGRADE_PACKAGES = {
|
|||
|
||||
ASTUTE_YAML = "/etc/fuel/astute.yaml"
|
||||
CINDER_CONF = "/etc/cinder/cinder.conf"
|
||||
|
||||
CEPH_RELEASES = {'kilo-7.0': 'firefly',
|
||||
'liberty-8.0': 'hammer',
|
||||
'mitaka-9.0': 'hammer'}
|
||||
|
|
Loading…
Reference in New Issue