refactor the monitor
[doctor.git] / tests / main.py
index 46f0c89..6644b54 100644 (file)
@@ -6,12 +6,19 @@
 # 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 image import Image
+from instance import Instance
+from inspector import get_inspector
 import logger as doctor_log
 from user import User
+from network import Network
+from monitor import get_monitor
 
 
 LOG = doctor_log.Logger('doctor').getLogger()
@@ -23,6 +30,13 @@ class DoctorTest(object):
         self.conf = 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)
 
     def setup(self):
         # prepare the cloud env
@@ -34,6 +48,18 @@ class DoctorTest(object):
         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()
+
     def run(self):
         """run doctor test"""
         try:
@@ -52,13 +78,24 @@ class DoctorTest(object):
             self.cleanup()
 
     def cleanup(self):
+        self.alarm.delete()
+        self.instance.delete()
+        self.network.delete()
         self.image.delete()
         self.user.delete()
+        self.inspector.stop()
+        self.monitor.stop()
 
 
 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()