diff options
Diffstat (limited to 'functest/cli/commands/cli_env.py')
-rw-r--r-- | functest/cli/commands/cli_env.py | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/functest/cli/commands/cli_env.py b/functest/cli/commands/cli_env.py new file mode 100644 index 00000000..57201264 --- /dev/null +++ b/functest/cli/commands/cli_env.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python +# +# jose.lausuch@ericsson.com +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +# + +import os + +import click +import git + +import functest.utils.functest_utils as ft_utils + +ENV_FILE = "/home/opnfv/functest/conf/env_active" +FUNCTEST_REPO = ft_utils.FUNCTEST_REPO + + +class CliEnv: + def __init__(self): + pass + + def prepare(self): + if self.status(verbose=False) == 0: + answer = raw_input("It seems that the environment has been " + "already prepared. Do you want to do " + "it again? [y|n]\n") + while True: + if answer.lower() in ["y", "yes"]: + os.remove(ENV_FILE) + break + elif answer.lower() in ["n", "no"]: + return + else: + answer = raw_input("Invalid answer. Please type [y|n]\n") + + cmd = ("python %s/ci/prepare_env.py start" % FUNCTEST_REPO) + ft_utils.execute_command(cmd) + + def show(self): + CI_INSTALLER_TYPE = os.getenv('INSTALLER_TYPE') + if CI_INSTALLER_TYPE is None: + CI_INSTALLER_TYPE = "Unknown" + CI_INSTALLER_IP = os.getenv('INSTALLER_IP') + if CI_INSTALLER_IP is None: + CI_INSTALLER_IP = "Unknown" + CI_INSTALLER = ("%s, %s" % (CI_INSTALLER_TYPE, CI_INSTALLER_IP)) + + CI_SCENARIO = os.getenv('DEPLOY_SCENARIO') + if CI_SCENARIO is None: + CI_SCENARIO = "Unknown" + + CI_NODE = os.getenv('NODE_NAME') + if CI_NODE is None: + CI_NODE = "Unknown" + + repo = git.Repo(FUNCTEST_REPO) + branch = repo.head.reference + GIT_BRANCH = branch.name + GIT_HASH = branch.commit.hexsha + + CI_BUILD_TAG = os.getenv('BUILD_TAG') + if CI_BUILD_TAG is not None: + CI_BUILD_TAG = CI_BUILD_TAG.lstrip( + "jenkins-").lstrip("functest").lstrip("-") + + CI_DEBUG = os.getenv('CI_DEBUG') + if CI_DEBUG is None: + CI_DEBUG = "false" + + STATUS = "not ready" + if self.status(verbose=False) == 0: + STATUS = "ready" + + click.echo("+======================================================+") + click.echo("| Functest Environment info |") + click.echo("+======================================================+") + click.echo("| INSTALLER: %s|" % CI_INSTALLER.ljust(41)) + click.echo("| SCENARIO: %s|" % CI_SCENARIO.ljust(41)) + click.echo("| POD: %s|" % CI_NODE.ljust(41)) + click.echo("| GIT BRACNH: %s|" % GIT_BRANCH.ljust(41)) + click.echo("| GIT HASH: %s|" % GIT_HASH.ljust(41)) + if CI_BUILD_TAG: + click.echo("| BUILD TAG: %s|" % CI_BUILD_TAG.ljust(41)) + click.echo("| DEBUG FLAG: %s|" % CI_DEBUG.ljust(41)) + click.echo("+------------------------------------------------------+") + click.echo("| STATUS: %s|" % STATUS.ljust(41)) + click.echo("+------------------------------------------------------+") + click.echo("") + + def status(self, verbose=True): + ret_val = 0 + if not os.path.isfile(ENV_FILE): + if verbose: + click.echo("Functest environment is not installed.\n") + ret_val = 1 + elif verbose: + click.echo("Functest environment ready to run tests.\n") + + return ret_val |