rebuild directory structure of Kibana dashboard 23/22323/1
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Thu, 22 Sep 2016 08:15:58 +0000 (16:15 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Thu, 22 Sep 2016 08:15:58 +0000 (16:15 +0800)
JIRA: FUNCTEST-465

Change-Id: Icecd350b2f67105c8aaa9d71fd76d24827515545
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
20 files changed:
utils/test/dashboard.tar.gz [new file with mode: 0644]
utils/test/dashboard/backup-db.sh [moved from utils/test/scripts/backup-db.sh with 100% similarity]
utils/test/dashboard/dashboard/__init__.py [new file with mode: 0644]
utils/test/dashboard/dashboard/common/__init__.py [new file with mode: 0644]
utils/test/dashboard/dashboard/common/elastic_access.py [moved from utils/test/scripts/shared_utils.py with 100% similarity]
utils/test/dashboard/dashboard/common/logger_utils.py [moved from utils/test/scripts/logger_utils.py with 94% similarity]
utils/test/dashboard/dashboard/conf/__init__.py [new file with mode: 0644]
utils/test/dashboard/dashboard/conf/config.py [moved from utils/test/scripts/config.py with 97% similarity]
utils/test/dashboard/dashboard/conf/testcases.py [moved from utils/test/scripts/testcases_parser.py with 91% similarity]
utils/test/dashboard/dashboard/elastic2kibana/__init__.py [new file with mode: 0644]
utils/test/dashboard/dashboard/elastic2kibana/main.py [moved from utils/test/scripts/create_kibana_dashboards.py with 94% similarity]
utils/test/dashboard/dashboard/elastic2kibana_main.py [new file with mode: 0644]
utils/test/dashboard/dashboard/functest/__init__.py [new file with mode: 0644]
utils/test/dashboard/dashboard/functest/testcases.yaml [moved from utils/test/scripts/testcases.yaml with 100% similarity]
utils/test/dashboard/dashboard/mongo2elastic/__init__.py [new file with mode: 0644]
utils/test/dashboard/dashboard/mongo2elastic/format.py [moved from utils/test/scripts/mongo2elastic_format.py with 100% similarity]
utils/test/dashboard/dashboard/mongo2elastic/main.py [moved from utils/test/scripts/mongo_to_elasticsearch.py with 92% similarity]
utils/test/dashboard/dashboard/mongo2elastic_main.py [new file with mode: 0644]
utils/test/dashboard/etc/config.ini [moved from utils/test/scripts/config.ini with 86% similarity]
utils/test/dashboard/kibana_cleanup.py [moved from utils/test/scripts/kibana_cleanup.py with 87% similarity]

diff --git a/utils/test/dashboard.tar.gz b/utils/test/dashboard.tar.gz
new file mode 100644 (file)
index 0000000..ef85f90
Binary files /dev/null and b/utils/test/dashboard.tar.gz differ
diff --git a/utils/test/dashboard/dashboard/__init__.py b/utils/test/dashboard/dashboard/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/utils/test/dashboard/dashboard/common/__init__.py b/utils/test/dashboard/dashboard/common/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
similarity index 94%
rename from utils/test/scripts/logger_utils.py
rename to utils/test/dashboard/dashboard/common/logger_utils.py
index 25d28a5..1830808 100644 (file)
@@ -57,9 +57,9 @@ class Logger(object):
         return self.logger
 
 
-class KibanaDashboardLogger(Logger):
+class DashboardLogger(Logger):
     file_path = '/var/log/kibana_dashboard'
 
     def __init__(self, logger_name):
-        super(KibanaDashboardLogger, self).__init__(logger_name)
+        super(DashboardLogger, self).__init__(logger_name)
 
diff --git a/utils/test/dashboard/dashboard/conf/__init__.py b/utils/test/dashboard/dashboard/conf/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
similarity index 97%
rename from utils/test/scripts/config.py
rename to utils/test/dashboard/dashboard/conf/config.py
index 2d447a7..2e0f1ca 100644 (file)
@@ -22,7 +22,7 @@ class APIConfig:
     """
 
     def __init__(self):
-        self._default_config_location = "./config.ini"
+        self._default_config_location = "../etc/config.ini"
         self.elastic_url = 'http://localhost:9200'
         self.elastic_creds = None
         self.destination = 'elasticsearch'
similarity index 91%
rename from utils/test/scripts/testcases_parser.py
rename to utils/test/dashboard/dashboard/conf/testcases.py
index cf95998..e120987 100644 (file)
@@ -1,7 +1,7 @@
 import yaml
 
 
-with open('./testcases.yaml') as f:
+with open('./functest/testcases.yaml') as f:
     testcases_yaml = yaml.safe_load(f)
 f.close()
 
diff --git a/utils/test/dashboard/dashboard/elastic2kibana/__init__.py b/utils/test/dashboard/dashboard/elastic2kibana/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
@@ -4,12 +4,11 @@ import urlparse
 
 import argparse
 
-import logger_utils
-import shared_utils
-import testcases_parser
-from config import APIConfig
+from common import logger_utils, elastic_access
+from conf import testcases
+from conf.config import APIConfig
 
-logger = logger_utils.KibanaDashboardLogger('elastic2kibana').get
+logger = logger_utils.DashboardLogger('elastic2kibana').get
 
 parser = argparse.ArgumentParser()
 parser.add_argument("-c", "--config-file",
@@ -18,6 +17,11 @@ parser.add_argument("-c", "--config-file",
 
 args = parser.parse_args()
 CONF = APIConfig().parse(args.config_file)
+base_elastic_url = CONF.elastic_url
+generate_inputs = CONF.is_js
+input_file_path = CONF.js_path
+kibana_url = CONF.kibana_url
+es_creds = CONF.elastic_creds
 
 _installers = {'fuel', 'apex', 'compass', 'joid'}
 
@@ -53,7 +57,7 @@ class KibanaDashboard(dict):
         for visualization in self._kibana_visualizations:
             url = urlparse.urljoin(base_elastic_url, '/.kibana/visualization/{}'.format(visualization.id))
             logger.debug("publishing visualization '{}'".format(url))
-            shared_utils.publish_json(visualization, es_creds, url)
+            elastic_access.publish_json(visualization, es_creds, url)
 
     def _construct_panels(self):
         size_x = 6
@@ -131,7 +135,7 @@ class KibanaDashboard(dict):
     def _publish(self):
         url = urlparse.urljoin(base_elastic_url, '/.kibana/dashboard/{}'.format(self.id))
         logger.debug("publishing dashboard '{}'".format(url))
-        shared_utils.publish_json(self, es_creds, url)
+        elastic_access.publish_json(self, es_creds, url)
 
     def publish(self):
         self._publish_visualizations()
@@ -282,8 +286,8 @@ def _get_pods_and_scenarios(project_name, case_name, installer):
         }
     })
 
-    elastic_data = shared_utils.get_elastic_docs(urlparse.urljoin(base_elastic_url, '/test_results/mongo2elastic'),
-                                                 es_creds, query_json)
+    elastic_data = elastic_access.get_elastic_docs(urlparse.urljoin(base_elastic_url, '/test_results/mongo2elastic'),
+                                                   es_creds, query_json)
 
     pods_and_scenarios = {}
 
@@ -312,7 +316,7 @@ def construct_dashboards():
     :return: list of KibanaDashboards
     """
     kibana_dashboards = []
-    for project, case_dicts in testcases_parser.testcases_yaml.items():
+    for project, case_dicts in testcases.testcases_yaml.items():
         for case in case_dicts:
             case_name = case.get('name')
             visualizations = case.get('visualizations')
@@ -359,13 +363,7 @@ def generate_js_inputs(js_file_path, kibana_url, dashboards):
         js_file_fdesc.write(str(js_dict).replace("u'", "'"))
 
 
-if __name__ == '__main__':
-    base_elastic_url = CONF.elastic_url
-    generate_inputs = CONF.is_js
-    input_file_path = CONF.js_path
-    kibana_url = CONF.kibana_url
-    es_creds = CONF.elastic_creds
-
+def main():
     dashboards = construct_dashboards()
 
     for kibana_dashboard in dashboards:
diff --git a/utils/test/dashboard/dashboard/elastic2kibana_main.py b/utils/test/dashboard/dashboard/elastic2kibana_main.py
new file mode 100644 (file)
index 0000000..3ec27cb
--- /dev/null
@@ -0,0 +1,4 @@
+from elastic2kibana.main import main
+
+if __name__ == '__main__':
+    main()
diff --git a/utils/test/dashboard/dashboard/functest/__init__.py b/utils/test/dashboard/dashboard/functest/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/utils/test/dashboard/dashboard/mongo2elastic/__init__.py b/utils/test/dashboard/dashboard/mongo2elastic/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
@@ -10,13 +10,12 @@ import uuid
 
 import argparse
 
-import logger_utils
-import mongo2elastic_format
-import shared_utils
-import testcases_parser
-from config import APIConfig
+from common import logger_utils, elastic_access
+from conf import testcases
+from conf.config import APIConfig
+from mongo2elastic import format
 
-logger = logger_utils.KibanaDashboardLogger('mongo2elastic').get
+logger = logger_utils.DashboardLogger('mongo2elastic').get
 
 parser = argparse.ArgumentParser()
 parser.add_argument("-c", "--config-file",
@@ -50,7 +49,7 @@ class DocumentPublisher:
     def format(self):
         try:
             if self._verify_document() and self.fmt:
-                self.is_formatted = vars(mongo2elastic_format)[self.fmt](self.doc)
+                self.is_formatted = vars(format)[self.fmt](self.doc)
             else:
                 self.is_formatted = False
         except Exception:
@@ -65,7 +64,7 @@ class DocumentPublisher:
             self._publish()
 
     def _publish(self):
-        status, data = shared_utils.publish_json(self.doc, self.creds, self.to)
+        status, data = elastic_access.publish_json(self.doc, self.creds, self.to)
         if status > 300:
             logger.error('Publish record[{}] failed, due to [{}]'
                          .format(self.doc, json.loads(data)['error']['reason']))
@@ -201,7 +200,7 @@ class DocumentsPublisher:
             exit(-1)
 
     def get_existed_docs(self):
-        self.existed_docs = shared_utils.get_elastic_docs_by_days(self.elastic_url, self.creds, self.days)
+        self.existed_docs = elastic_access.get_elastic_docs_by_days(self.elastic_url, self.creds, self.days)
         return self
 
     def publish(self):
@@ -231,10 +230,10 @@ def main():
     if to == 'elasticsearch':
         to = base_elastic_url
 
-    for project, case_dicts in testcases_parser.testcases_yaml.items():
+    for project, case_dicts in testcases.testcases_yaml.items():
         for case_dict in case_dicts:
             case = case_dict.get('name')
-            fmt = testcases_parser.compose_format(case_dict.get('format'))
+            fmt = testcases.compose_format(case_dict.get('format'))
             DocumentsPublisher(project,
                                case,
                                fmt,
@@ -242,7 +241,3 @@ def main():
                                base_elastic_url,
                                es_creds,
                                to).export().get_existed_docs().publish()
-
-
-if __name__ == '__main__':
-    main()
\ No newline at end of file
diff --git a/utils/test/dashboard/dashboard/mongo2elastic_main.py b/utils/test/dashboard/dashboard/mongo2elastic_main.py
new file mode 100644 (file)
index 0000000..141d8f3
--- /dev/null
@@ -0,0 +1,4 @@
+from mongo2elastic.main import main
+
+if __name__ == '__main__':
+    main()
similarity index 86%
rename from utils/test/scripts/config.ini
rename to utils/test/dashboard/etc/config.ini
index 63d283d..b94ac7b 100644 (file)
@@ -9,6 +9,6 @@ creds =
 destination = elasticsearch
 
 [kibana]
-url = http://10.63.243.17/kibana/app/kibana
+url = http://10.63.243.17:5601/app/kibana
 js = true
 js_path = /usr/share/nginx/html/kibana_dashboards/conf.js
similarity index 87%
rename from utils/test/scripts/kibana_cleanup.py
rename to utils/test/dashboard/kibana_cleanup.py
index d87d9a2..9ce4994 100644 (file)
@@ -4,7 +4,7 @@ import urlparse
 
 import argparse
 
-import shared_utils
+from dashboard.common import elastic_access
 
 logger = logging.getLogger('clear_kibana')
 logger.setLevel(logging.DEBUG)
@@ -14,10 +14,10 @@ logger.addHandler(file_handler)
 
 
 def delete_all(url, es_creds):
-    ids = shared_utils.get_elastic_docs(url, es_creds, body=None, field='_id')
+    ids = elastic_access.get_elastic_docs(url, es_creds, body=None, field='_id')
     for id in ids:
         del_url = '/'.join([url, id])
-        shared_utils.delete_request(del_url, es_creds)
+        elastic_access.delete_request(del_url, es_creds)
 
 
 if __name__ == '__main__':