aboutsummaryrefslogtreecommitdiffstats
path: root/docs/testing/user/userguide/nsb
diff options
context:
space:
mode:
authorRex Lee <limingjiang@huawei.com>2019-03-30 04:12:53 +0000
committerGerrit Code Review <gerrit@opnfv.org>2019-03-30 04:12:53 +0000
commit7548f560bef0d833ae778a4ea9d81b3cc2c3d463 (patch)
treef038f1c87e9cd6ac8d2a532141b3039667eba61c /docs/testing/user/userguide/nsb
parent6c587908f4bb925f97cc8592a099ef14940c393d (diff)
parent85899baa90714ae15add21a330316793071168ae (diff)
Merge "Yardstick verify job could base on the filetype to run the test"
Diffstat (limited to 'docs/testing/user/userguide/nsb')
0 files changed, 0 insertions, 0 deletions
t */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#!/usr/bin/env python

# Copyright (c) 2016 Orange and others.
#
# 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
#
# Usage example (note: Fuel actually uses key-based auth, not user/pass):
#   from opnfv.utils.Credentials import Credentials as credentials
#   credentials("fuel", "10.20.0.2", "user", "password").fetch('./openrc')
#

import os

import opnfv.installer_adapters.InstallerHandler as ins_handler
import opnfv.utils.Connection as con
import opnfv.utils.OPNFVLogger as logger


class Credentials(object):

    def __init__(self, installer, ip, user, password=None):
        self.installer = installer
        self.ip = ip
        self.logger = logger.Logger("Credentials", level="DEBUG").getLogger()
        self.connection = con.Connection()

        if self.__check_installer_name(self.installer) != os.EX_OK:
            self.logger.error("Installer %s not supported!" % self.installer)
            return os.EX_CONFIG
        else:
            self.logger.debug("Installer %s supported." % self.installer)

        if self.connection.verify_connectivity(self.ip) != os.EX_OK:
            self.logger.error("Installer %s not reachable!" % self.ip)
            return os.EX_UNAVAILABLE
        else:
            self.logger.debug("IP %s is reachable!" % self.ip)

        self.logger.debug(
            "Trying to stablish ssh connection to %s ..." % self.ip)
        self.handler = ins_handler.InstallerHandler(installer,
                                                    ip,
                                                    user,
                                                    password)

    def __check_installer_name(self, installer):
        if installer not in ("apex", "compass", "daisy", "fuel", "joid"):
            return os.EX_CONFIG
        else:
            return os.EX_OK

    def __check_path(self, path):
        try:
            with open(path, 'a'):
                os.utime(path, None)
            return os.EX_OK
        except IOError as e:
            self.logger.error(e)
            return os.EX_IOERR

    def __fetch_creds_apex(self, target_path):
        # TODO
        pass

    def __fetch_creds_compass(self, target_path):
        # TODO
        pass

    def __fetch_creds_daisy(self, target_path):
        # TODO
        pass

    def __fetch_creds_fuel(self, target_path):
        # TODO
        pass

    def __fetch_creds_joid(self, target_path):
        # TODO
        pass

    def fetch(self, target_path):
        if self.__check_path(target_path) != os.EX_OK:
            self.logger.error(
                "Target path %s does not exist!" % target_path)
            return os.EX_IOERR
        else:
            self.logger.debug("Target path correct.")

        self.logger.info("Fetching credentials from the deployment...")
        if self.installer == "apex":
            self.__fetch_creds_apex(target_path)
        elif self.installer == "compass":
            self.__fetch_creds_compass(target_path)
        elif self.installer == "daisy":
            self.__fetch_creds_daisy(target_path)
        elif self.installer == "fuel":
            self.__fetch_creds_fuel(target_path)
        elif self.installer == "joid":
            self.__fetch_creds_joid(target_path)