X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=fuel%2Fdeploy%2Fcommon.py;h=6dbda67f32b4b1feb2e369ae9555d80f2cd9d3bc;hb=7b483cb5ddc4445d5a31886c08694a61bce50636;hp=cd5085c502d1b065db8109ce48bfda139c319fc8;hpb=dec530fc304187a7a467e2d923c9c18f3923f7c3;p=genesis.git diff --git a/fuel/deploy/common.py b/fuel/deploy/common.py index cd5085c..6dbda67 100644 --- a/fuel/deploy/common.py +++ b/fuel/deploy/common.py @@ -1,6 +1,7 @@ import subprocess import sys - +import os +import logging N = {'id': 0, 'status': 1, 'name': 2, 'cluster': 3, 'ip': 4, 'mac': 5, 'roles': 6, 'pending_roles': 7, 'online': 8} @@ -9,12 +10,36 @@ E = {'id': 0, 'status': 1, 'name': 2, 'mode': 3, 'release_id': 4, R = {'id': 0, 'name': 1, 'state': 2, 'operating_system': 3, 'version': 4} RO = {'name': 0, 'conflicts': 1} -def exec_cmd(cmd): +LOG = logging.getLogger(__name__) +LOG.setLevel(logging.DEBUG) +formatter = logging.Formatter('%(message)s') +out_handler = logging.StreamHandler(sys.stdout) +out_handler.setFormatter(formatter) +LOG.addHandler(out_handler) +out_handler = logging.FileHandler('autodeploy.log', mode='w') +out_handler.setFormatter(formatter) +LOG.addHandler(out_handler) + +def exec_cmd(cmd, check=True): + process = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + shell=True) + response = process.communicate()[0].strip() + return_code = process.returncode + if check: + if return_code > 0: + err(response) + else: + return response + return response, return_code + +def run_proc(cmd): process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) - return process.communicate()[0] + return process def parse(printout): parsed_list = [] @@ -24,6 +49,34 @@ def parse(printout): parsed_list.append(parsed) return parsed_list -def err(error_message): - sys.stderr.write(error_message) +def clean(lines): + parsed_list = [] + parsed = [] + for l in lines.strip().splitlines(): + parsed = [] + cluttered = [e.strip() for e in l.split(' ')] + for p in cluttered: + if p: + parsed.append(p) + parsed_list.append(parsed) + return parsed if len(parsed_list) == 1 else parsed_list + +def err(message): + LOG.error('%s\n' % message) sys.exit(1) + +def check_file_exists(file_path): + if not os.path.isfile(file_path): + err('ERROR: File %s not found\n' % file_path) + +def check_dir_exists(dir_path): + if not os.path.isdir(dir_path): + err('ERROR: Directory %s not found\n' % dir_path) + +def check_if_root(): + r = exec_cmd('whoami') + if r != 'root': + err('You need be root to run this application') + +def log(message): + LOG.debug('%s\n' % message)