aboutsummaryrefslogtreecommitdiffstats
path: root/qtip
diff options
context:
space:
mode:
Diffstat (limited to 'qtip')
-rw-r--r--qtip/api/cmd/server.py31
-rw-r--r--qtip/base/error.py16
-rw-r--r--qtip/cli/commands/cmd_plan.py5
-rw-r--r--qtip/collector/parser/grep.py5
-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.yaml23
-rw-r--r--qtip/driver/ansible/playbook/inxi.yaml23
-rw-r--r--qtip/driver/ansible/playbook/prepare_env.yaml42
-rw-r--r--qtip/driver/ansible/playbook/top.yaml10
-rw-r--r--qtip/loader/file.py4
-rw-r--r--qtip/loader/yaml_file.py4
-rw-r--r--qtip/runner/__init__.py12
-rw-r--r--qtip/util/dev.py17
-rw-r--r--qtip/util/formula.py6
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: