diff options
Diffstat (limited to 'tests/main.py')
-rw-r--r-- | tests/main.py | 82 |
1 files changed, 68 insertions, 14 deletions
diff --git a/tests/main.py b/tests/main.py index 50e0821b..db2fafd9 100644 --- a/tests/main.py +++ b/tests/main.py @@ -6,11 +6,21 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +import os +from os.path import isfile, join import sys +from alarm import Alarm import config +from consumer import get_consumer from image import Image +from instance import Instance +from inspector import get_inspector +from installer import get_installer import logger as doctor_log +from user import User +from network import Network +from monitor import get_monitor LOG = doctor_log.Logger('doctor').getLogger() @@ -20,38 +30,82 @@ class DoctorTest(object): def __init__(self, conf): self.conf = conf - self.image = Image(self.conf) + self.image = Image(self.conf, LOG) + self.user = User(self.conf, LOG) + self.network = Network(self.conf, LOG) + self.instance = Instance(self.conf, LOG) + self.alarm = Alarm(self.conf, LOG) + self.inspector = get_inspector(self.conf, LOG) + self.monitor = get_monitor(self.conf, + self.inspector.get_inspector_url(), + LOG) + self.consumer = get_consumer(self.conf, LOG) + self.installer = get_installer(self.conf, LOG) + + def setup(self): + # prepare the cloud env + self.installer.setup() + + # preparing VM image... + self.image.create() + + # creating test user... + self.user.create() + self.user.update_quota() + + # creating VM... + self.network.create() + self.instance.create() + self.instance.wait_for_vm_launch() + + # creating alarm... + self.alarm.create() + + # starting doctor sample components... + self.inspector.start() + self.monitor.start() + self.consumer.start() def run(self): """run doctor test""" try: LOG.info('doctor test starting.......') - # prepare the cloud env - # preparing VM image... - self.image.create() - - # creating test user... - - # creating VM... - - # creating alarm... - - # starting doctor sample components... + self.setup() # injecting host failure... + # NOTE (umar) add INTERFACE_NAME logic to host injection # verify the test results + # NOTE (umar) copy remote monitor.log file when monitor=collectd + except Exception as e: LOG.error('doctor test failed, Exception=%s' % e) sys.exit(1) finally: - self.image.delete() + self.cleanup() + + def cleanup(self): + self.alarm.delete() + self.instance.delete() + self.network.delete() + self.image.delete() + self.inspector.stop() + self.user.delete() + self.monitor.stop() + self.consumer.stop() + self.installer.cleanup() def main(): """doctor main""" - conf = config.prepare_conf() + doctor_root_dir = os.path.dirname(sys.path[0]) + config_file_dir = '{0}/{1}'.format(doctor_root_dir, 'etc/') + config_files = [join(config_file_dir, f) for f in os.listdir(config_file_dir) + if isfile(join(config_file_dir, f))] + + conf = config.prepare_conf(args=sys.argv[1:], + config_files=config_files) doctor = DoctorTest(conf) doctor.run() |