Change naming and veriy test-scheduler function
[bottlenecks.git] / test-scheduler / server / src / step / monitor.py
diff --git a/test-scheduler/server/src/step/monitor.py b/test-scheduler/server/src/step/monitor.py
new file mode 100644 (file)
index 0000000..7322e5f
--- /dev/null
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD 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
+##############################################################################
+
+import json
+import os
+from src.step.test_step import TestStep
+
+
+class MonitorStep(TestStep):
+    __step_type__ = 'monitor'
+
+    def __init__(self, name, service, action, args):
+        super(MonitorStep, self).__init__(name, service, action, args)
+        self._argsParse()
+        self.action()
+
+    def _argsParse(self):
+        if self._call == "REST":
+            currentDirPath = os.path.dirname(os.path.abspath(__file__))
+            envDirPath = os.path.abspath(os.path.join(
+                currentDirPath, os.pardir, os.pardir, 'env'))
+            envFilePath = os.path.join(
+                envDirPath, "%s.json" % self._service['name'])
+            with open(envFilePath) as f:
+                propDict = json.load(f)
+                self._args['ip'] = propDict['ip']
+                self._args['port'] = propDict['port']
+                self._args['api'] = "%s/%s" % (
+                    propDict['api_map']['workload'], self._args['command'])
+                exclude = {'ip', 'port', 'api', 'command', 'method'}
+                self._args['req_body'] = {
+                    key: value for key, value in
+                    self._args.items() if key not in exclude}
+
+    def setUp(self):
+        print "monitor setUp"
+
+    def uninstall(self):
+        print "monitor uninstall"
+
+    def start(self):
+        print "monitor start...."
+
+    def stop(self):
+        print "monitor stop"
+
+
+if __name__ == "__main__":
+    service = {"name": "ansible", "call": "REST"}
+    monitor = MonitorStep(
+        "monitor_cpu", service, "start", **{"target": "abc:qq"})