Create Grafana dashboards according config file under root_path/dashboard 17/29117/5
authorchenjiankun <chenjiankun1@huawei.com>
Tue, 21 Feb 2017 07:26:51 +0000 (07:26 +0000)
committerchenjiankun <chenjiankun1@huawei.com>
Wed, 22 Feb 2017 01:32:33 +0000 (01:32 +0000)
JIRA: YARDSTICK-570

Currently we only create ping Grafana dashboard when create Grafana
docker container.
Actually we need to create some default dashboards.

Change-Id: Icee975ad8c1c960b27625274c775f1716edfa03e
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
api/resources/env_action.py

index 917681c..2d3496c 100644 (file)
@@ -9,15 +9,16 @@
 from __future__ import absolute_import
 
 import errno
-import json
 import logging
 import os
 import subprocess
 import threading
 import time
 import uuid
+import glob
 
 from six.moves import configparser
+from oslo_serialization import jsonutils
 
 from api import conf as api_conf
 from api.database.handler import AsyncTaskHandler
@@ -67,9 +68,13 @@ def _create_grafana(task_id):
 
 def _create_dashboard():
     url = 'http://admin:admin@%s:3000/api/dashboards/db' % api_conf.GATEWAY_IP
-    with open('../dashboard/ping_dashboard.json') as dashboard_json:
-        data = json.load(dashboard_json)
-    HttpClient().post(url, data)
+    path = os.path.join(config.YARDSTICK_REPOS_DIR, 'dashboard',
+                        '*dashboard.json')
+
+    for i in sorted(glob.iglob(path)):
+        with open(i) as f:
+            data = jsonutils.load(f)
+        HttpClient().post(url, data)
 
 
 def _create_data_source():