summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevan Goodwin <dgoodwin@redhat.com>2015-10-26 15:37:30 -0300
committerDevan Goodwin <dgoodwin@redhat.com>2015-10-27 13:22:28 -0300
commit201fd2f37d43419513b448cd99dd202a96bb8542 (patch)
tree8f5d4d0f2700d7ed7f03d40ee7a5d0cb8b176d12
parentefba9eb00b9bb8451cb73744c4a21f5c583e3d58 (diff)
downloadopenshift-201fd2f37d43419513b448cd99dd202a96bb8542.tar.gz
openshift-201fd2f37d43419513b448cd99dd202a96bb8542.tar.bz2
openshift-201fd2f37d43419513b448cd99dd202a96bb8542.tar.xz
openshift-201fd2f37d43419513b448cd99dd202a96bb8542.zip
Add uninstall subcommand.
-rw-r--r--utils/src/ooinstall/cli_installer.py21
-rw-r--r--utils/src/ooinstall/install_transactions.py11
2 files changed, 28 insertions, 4 deletions
diff --git a/utils/src/ooinstall/cli_installer.py b/utils/src/ooinstall/cli_installer.py
index 32b968794..91d501952 100644
--- a/utils/src/ooinstall/cli_installer.py
+++ b/utils/src/ooinstall/cli_installer.py
@@ -431,16 +431,30 @@ def cli(ctx, unattended, configuration, ansible_playbook_directory, ansible_conf
oo_cfg.settings['ansible_log_path'] = ctx.obj['ansible_log_path']
ctx.obj['oo_cfg'] = oo_cfg
+ install_transactions.set_config(oo_cfg)
@click.command()
@click.pass_context
def uninstall(ctx):
- #oo_cfg = ctx.obj['oo_cfg']
- click.echo("Running uninstall command.")
+ oo_cfg = ctx.obj['oo_cfg']
+
+ if len(oo_cfg.hosts) == 0:
+ click.echo("No hosts defined in: %s" % oo_cfg['configuration'])
+ sys.exit(1)
+
+ click.echo("OpenShift will be uninstalled from the following hosts:\n")
if not ctx.obj['unattended']:
# Prompt interactively to confirm:
- pass
+ for host in oo_cfg.hosts:
+ click.echo(" * %s" % host.name)
+ proceed = click.confirm("\nDo you wish to proceed?")
+ if not proceed:
+ click.echo("Uninstall cancelled.")
+ sys.exit(0)
+
+ install_transactions.run_uninstall_playbook()
+
@click.command()
@@ -448,7 +462,6 @@ def uninstall(ctx):
@click.pass_context
def install(ctx, force):
oo_cfg = ctx.obj['oo_cfg']
- install_transactions.set_config(oo_cfg)
if ctx.obj['unattended']:
error_if_missing_info(oo_cfg)
diff --git a/utils/src/ooinstall/install_transactions.py b/utils/src/ooinstall/install_transactions.py
index de53dc3c0..3306271c8 100644
--- a/utils/src/ooinstall/install_transactions.py
+++ b/utils/src/ooinstall/install_transactions.py
@@ -126,9 +126,20 @@ def run_main_playbook(hosts, hosts_to_run_on):
facts_env['ANSIBLE_CONFIG'] = CFG.settings['ansible_config']
return run_ansible(main_playbook_path, inventory_file, facts_env)
+
def run_ansible(playbook, inventory, env_vars):
return subprocess.call(['ansible-playbook',
'--inventory-file={}'.format(inventory),
playbook],
env=env_vars)
+def run_uninstall_playbook():
+ playbook = os.path.join(CFG.settings['ansible_playbook_directory'],
+ 'playbooks/adhoc/uninstall.yml')
+ inventory_file = generate_inventory(CFG.hosts)
+ facts_env = os.environ.copy()
+ if 'ansible_log_path' in CFG.settings:
+ facts_env['ANSIBLE_LOG_PATH'] = CFG.settings['ansible_log_path']
+ if 'ansible_config' in CFG.settings:
+ facts_env['ANSIBLE_CONFIG'] = CFG.settings['ansible_config']
+ return run_ansible(playbook, inventory_file, facts_env)