diff options
Diffstat (limited to 'qtip')
-rw-r--r-- | qtip/api/cmd/server.py | 31 | ||||
-rw-r--r-- | qtip/base/error.py | 16 | ||||
-rw-r--r-- | qtip/cli/commands/cmd_plan.py | 5 | ||||
-rw-r--r-- | qtip/collector/parser/grep.py | 5 | ||||
-rw-r--r-- | qtip/driver/ansible/__init__.py (renamed from qtip/api/cmd/__init__.py) | 0 | ||||
-rw-r--r-- | qtip/driver/ansible/ansible.py (renamed from qtip/driver/ansible.py) | 2 | ||||
-rw-r--r-- | qtip/driver/ansible/playbook/bwn_ng.yaml | 23 | ||||
-rw-r--r-- | qtip/driver/ansible/playbook/inxi.yaml | 23 | ||||
-rw-r--r-- | qtip/driver/ansible/playbook/prepare_env.yaml | 42 | ||||
-rw-r--r-- | qtip/driver/ansible/playbook/top.yaml | 10 | ||||
-rw-r--r-- | qtip/loader/file.py | 4 | ||||
-rw-r--r-- | qtip/loader/yaml_file.py | 4 | ||||
-rw-r--r-- | qtip/runner/__init__.py | 12 | ||||
-rw-r--r-- | qtip/util/dev.py | 17 | ||||
-rw-r--r-- | qtip/util/formula.py | 6 |
15 files changed, 138 insertions, 62 deletions
diff --git a/qtip/api/cmd/server.py b/qtip/api/cmd/server.py deleted file mode 100644 index eea45ad3..00000000 --- a/qtip/api/cmd/server.py +++ /dev/null @@ -1,31 +0,0 @@ -############################################################################## -# Copyright (c) 2016 ZTE Corp 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 -############################################################################## - -from flask import Flask -from flask_restful import Api -from flask_restful_swagger import swagger - -import legacy.api.router.mapper as mapper - -app = Flask(__name__) -api = swagger.docs(Api(app), apiVersion='0.1', description='QTIP API specs') - - -def add_routers(): - for (handler, url) in mapper.mappers: - api.add_resource(handler, url) - - -def main(): - add_routers() - app.run(host='0.0.0.0') - - -if __name__ == "__main__": - main() diff --git a/qtip/base/error.py b/qtip/base/error.py index a055aa8d..f23d8cd9 100644 --- a/qtip/base/error.py +++ b/qtip/base/error.py @@ -12,16 +12,16 @@ class BaseError(Exception): pass -class InvalidContent(BaseError): +class InvalidContentError(BaseError): def __init__(self, filename, excinfo=None): self.filename = filename self.excinfo = excinfo -class NotFound(BaseError): - def __init__(self, module, package='qtip'): - self.package = package - self.module = module +class NotFoundError(BaseError): + def __init__(self, needle, heystack='qtip'): + self.needle = needle + self.heystack = heystack class ToBeDoneError(BaseError): @@ -29,9 +29,3 @@ class ToBeDoneError(BaseError): def __init__(self, method, module): self.method = method self.module = module - - -def make_tbd(method, module='qtip'): - def tbd(): - raise ToBeDoneError(method, module) - return tbd diff --git a/qtip/cli/commands/cmd_plan.py b/qtip/cli/commands/cmd_plan.py index 0c0a3c12..c1dd7cf6 100644 --- a/qtip/cli/commands/cmd_plan.py +++ b/qtip/cli/commands/cmd_plan.py @@ -24,11 +24,8 @@ def cli(ctx): @cli.command('init', help='Initialize Environment') -@click.option('--inst_type', prompt='Installer Type') -@click.option('--inst_ip', prompt='Installer IP') -@click.option('--ext_net', prompt='Openstack External Network') @pass_context -def init(ctx, inst_type, inst_ip, ext_net): +def init(ctx): pass diff --git a/qtip/collector/parser/grep.py b/qtip/collector/parser/grep.py index d7ada485..c3274bc2 100644 --- a/qtip/collector/parser/grep.py +++ b/qtip/collector/parser/grep.py @@ -29,5 +29,6 @@ class GrepParser(BaseActor): def grep_in_file(filename, regex): - with open(filename, 'r') as f: - return filter(lambda x: x is not None, [re.search(regex, line) for line in f]) + with open(filename, "r") as outfile: + return filter(lambda x: x is not None, + list(re.finditer(regex, outfile.read(), re.MULTILINE))) diff --git a/qtip/api/cmd/__init__.py b/qtip/driver/ansible/__init__.py index e69de29b..e69de29b 100644 --- a/qtip/api/cmd/__init__.py +++ b/qtip/driver/ansible/__init__.py diff --git a/qtip/driver/ansible.py b/qtip/driver/ansible/ansible.py index 04e9f9bd..cd17625d 100644 --- a/qtip/driver/ansible.py +++ b/qtip/driver/ansible/ansible.py @@ -7,7 +7,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from base import BaseDriver +from qtip.driver.base import BaseDriver class AnsibleDriver(BaseDriver): diff --git a/qtip/driver/ansible/playbook/bwn_ng.yaml b/qtip/driver/ansible/playbook/bwn_ng.yaml new file mode 100644 index 00000000..99477856 --- /dev/null +++ b/qtip/driver/ansible/playbook/bwn_ng.yaml @@ -0,0 +1,23 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## +- name: Install bwm-ng when CentOS + yum: + name: bwm-ng + state: present + when: ansible_os_family == "RedHat" + +- name: Install bwm-ng when Ubuntu + apt: + name: bwm-ng + state: present + update_cache: yes + when: ansible_os_family == "Debian" + +- name: Run bwm-ng + shell: bwm-ng -o plain -c 1 > $HOME/qtip_result/bwm-dump.log
\ No newline at end of file diff --git a/qtip/driver/ansible/playbook/inxi.yaml b/qtip/driver/ansible/playbook/inxi.yaml new file mode 100644 index 00000000..f6a0311d --- /dev/null +++ b/qtip/driver/ansible/playbook/inxi.yaml @@ -0,0 +1,23 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## +- name: Install Inxi when CentOS + yum: + name: inxi + state: present + when: ansible_os_family == "RedHat" + +- name: Install Inxi when Ubuntu + apt: + name: inxi + state: present + update_cache: yes + when: ansible_os_family == "Debian" + +- name: Run inxi + shell: inxi -b -c0 -n > $HOME/qtip_result/inxi.log diff --git a/qtip/driver/ansible/playbook/prepare_env.yaml b/qtip/driver/ansible/playbook/prepare_env.yaml new file mode 100644 index 00000000..0595d988 --- /dev/null +++ b/qtip/driver/ansible/playbook/prepare_env.yaml @@ -0,0 +1,42 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## +- name: Epel Release install when CentOS + yum: + name: epel-release + state: present + when: ansible_os_family == "RedHat" + +- name: Software Properties Common + apt: + name: software-properties-common + state: present + when: ansible_os_family == "Debian" + +- name: Adding ubuntu backport main repo + apt_repository: + repo: deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}}-backports main restricted universe multiverse + state: present + when: ansible_os_family == "Debian" + +- name: Adding ubuntu main repo + apt_repository: + repo: deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}} main restricted universe multiverse + when: ansible_os_family == "Debian" + +- name: Install ansible copy dependencies if remote host has selinux enabled + yum: + name: libselinux-python + state: present + when: ansible_os_family == "RedHat" + +- name: Install ansiblle copy dependencies if remote host has selinux enaled + apt: + name: python-selinux + state: present + when: ansible_os_family == "Debian" diff --git a/qtip/driver/ansible/playbook/top.yaml b/qtip/driver/ansible/playbook/top.yaml new file mode 100644 index 00000000..8de7e3d6 --- /dev/null +++ b/qtip/driver/ansible/playbook/top.yaml @@ -0,0 +1,10 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## +- name: Collect cpu usage + shell: top -bn1 > $HOME/qtip_result/top.log diff --git a/qtip/loader/file.py b/qtip/loader/file.py index 0ea4d5b6..038f57dd 100644 --- a/qtip/loader/file.py +++ b/qtip/loader/file.py @@ -12,7 +12,7 @@ from os import listdir from os import path from qtip.base.constant import BaseProp -from qtip.base.error import NotFound +from qtip.base.error import NotFoundError from qtip.loader.base import BaseLoader @@ -35,7 +35,7 @@ class FileLoader(BaseLoader): abspath = path.join(p, self.RELATIVE_PATH, name) if path.exists(abspath): return abspath - raise NotFound(name, paths) + raise NotFoundError(name, paths) @classmethod def list_all(cls, paths=None): diff --git a/qtip/loader/yaml_file.py b/qtip/loader/yaml_file.py index 8b78a47c..7ff838f9 100644 --- a/qtip/loader/yaml_file.py +++ b/qtip/loader/yaml_file.py @@ -10,7 +10,7 @@ from os import path import yaml -from qtip.base.error import InvalidContent +from qtip.base.error import InvalidContentError from qtip.base.constant import BaseProp from qtip.loader.file import FileLoader @@ -25,6 +25,6 @@ class YamlFileLoader(FileLoader): with open(abspath, 'r') as stream: content = yaml.safe_load(stream) if not isinstance(content, dict): - raise InvalidContent(abspath) + raise InvalidContentError(abspath) self.content = content self.name = content.get(BaseProp.NAME, path.splitext(name)[0]) diff --git a/qtip/runner/__init__.py b/qtip/runner/__init__.py index 79c38850..52c43a14 100644 --- a/qtip/runner/__init__.py +++ b/qtip/runner/__init__.py @@ -8,7 +8,7 @@ ############################################################################## from qtip.base.constant import PkgName, BaseProp -from qtip.base.error import NotFound +from qtip.base.error import NotFoundError from qtip.collector.stdout import StdoutCollector from qtip.driver.random import RandomDriver from qtip.reporter.console import ConsoleReporter @@ -28,16 +28,16 @@ class Runner(object): if driver_name == 'random': self.driver = RandomDriver() else: - raise NotFound(driver_name, heystack=PkgName.DRIVER) + raise NotFoundError(driver_name, heystack=PkgName.DRIVER) if collector_name == 'stdout': self.collector = StdoutCollector() else: - raise NotFound(collector_name, - heystack=PkgName.COLLECTOR) + raise NotFoundError(collector_name, + heystack=PkgName.COLLECTOR) if reporter_name == 'console': self.reporter = ConsoleReporter() else: - raise NotFound(reporter_name, - heystack=PkgName.REPORTER) + raise NotFoundError(reporter_name, + heystack=PkgName.REPORTER) diff --git a/qtip/util/dev.py b/qtip/util/dev.py new file mode 100644 index 00000000..b77bf1eb --- /dev/null +++ b/qtip/util/dev.py @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + + +from qtip.base.error import ToBeDoneError + + +def create_to_be_done(method, module='qtip'): + def tbd(): + raise ToBeDoneError(method, module) + return tbd diff --git a/qtip/util/formula.py b/qtip/util/formula.py index cdfbae86..e92d21f3 100644 --- a/qtip/util/formula.py +++ b/qtip/util/formula.py @@ -9,7 +9,7 @@ import numpy -from qtip.base.error import make_tbd +from qtip.util.dev import create_to_be_done from qtip.base.constant import FormulaName @@ -17,10 +17,10 @@ MAPPING = { FormulaName.ARITHMETIC_MEAN: numpy.mean, FormulaName.WEIGHTED_ARITHMETIC_MEAN: numpy.average, # TODO(yujunz) find or implement the method - FormulaName.GEOMETRIC_MEAN: make_tbd(FormulaName.GEOMETRIC_MEAN, __name__), + FormulaName.GEOMETRIC_MEAN: create_to_be_done(FormulaName.GEOMETRIC_MEAN, __name__), # TODO(yujunz) find or implement the method FormulaName.WEIGHTED_GEOMETRIC_MEAN: - make_tbd(FormulaName.GEOMETRIC_MEAN, __name__)} + create_to_be_done(FormulaName.GEOMETRIC_MEAN, __name__)} class Formula: |