From 19a3c7408d250171a838fd98bd923e77c65c93b0 Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Fri, 30 Sep 2016 17:24:31 +0200 Subject: Installer adapters This tool might be used by any project in OPNFV to retrieve information about the deployed OpenStack nodes. It is python based and using paramiko. It can: - get info about deployment - get the info about the nodes (ip, mac, ...) - stablish ssh connection even with ProxyCommand option - run remote commands - scp to/from nodes (i.e. fetch credentials from controller) Added FuelAdapter as an example. JIRA: RELENG-149 JIRA: RELENG-150 Change-Id: I49d8be96d754e0950e337aa2f88172341446fdd4 Signed-off-by: jose.lausuch --- utils/installer-adapter/InstallerHandler.py | 78 +++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 utils/installer-adapter/InstallerHandler.py (limited to 'utils/installer-adapter/InstallerHandler.py') diff --git a/utils/installer-adapter/InstallerHandler.py b/utils/installer-adapter/InstallerHandler.py new file mode 100644 index 000000000..b81b806ca --- /dev/null +++ b/utils/installer-adapter/InstallerHandler.py @@ -0,0 +1,78 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# Author: Jose Lausuch (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 +############################################################################## + +from FuelAdapter import FuelAdapter +from ApexAdapter import ApexAdapter +from CompassAdapter import CompassAdapter +from JoidAdapter import JoidAdapter + + +INSTALLERS = ["fuel", "apex", "compass", "joid"] + + +class InstallerHandler: + + def __init__(self, + installer, + installer_ip, + installer_user, + installer_pwd=None): + self.installer = installer.lower() + self.installer_ip = installer_ip + self.installer_user = installer_user + self.installer_pwd = installer_pwd + + if self.installer == INSTALLERS[0]: + self.InstallerAdapter = FuelAdapter(self.installer_ip, + self.installer_user, + self.installer_pwd) + elif self.installer == INSTALLERS[1]: + self.InstallerAdapter = ApexAdapter(self.installer_ip) + elif self.installer == INSTALLERS[2]: + self.InstallerAdapter = CompassAdapter(self.installer_ip) + elif self.installer == INSTALLERS[3]: + self.InstallerAdapter = JoidAdapter(self.installer_ip) + else: + print("Installer %s is not valid. " + "Please use one of the followings: %s" + % (self.installer, INSTALLERS)) + exit(1) + + def get_deployment_info(self): + return self.InstallerAdapter.get_deployment_info() + + def get_nodes(self, options=None): + return self.InstallerAdapter.get_nodes(options=options) + + def get_controller_ips(self, options=None): + return self.InstallerAdapter.get_controller_ips(options=options) + + def get_compute_ips(self, options=None): + return self.InstallerAdapter.get_compute_ips(options=options) + + def get_file_from_installer(self, + remote_path, + local_path, + options=None): + return self.InstallerAdapter.get_file_from_installer(remote_path, + local_path, + options=options) + + def get_file_from_controller(self, + remote_path, + local_path, + ip=None, + options=None): + return self.InstallerAdapter.get_file_from_controller(remote_path, + local_path, + ip=ip, + options=options) + + def get_all(self): + pass -- cgit 1.2.3-korg