summaryrefslogtreecommitdiffstats
path: root/testsuites/posca/testcase_dashboard/system_bandwidth.py
blob: e95ff21432f886c8200a52fcb1d8a7563ea25947 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/python
##############################################################################
# Copyright (c) 2015 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 ConfigParser
from elasticsearch import Elasticsearch
import json
import os
import utils.logger as log
from utils.parser import Parser as conf_parser

LOG = log.Logger(__name__).getLogger()
config = ConfigParser.ConfigParser()
es = Elasticsearch()
dashboard_dir = os.path.join(conf_parser.test_dir,
                             "posca",
                             "testcase_dashboard")


def dashboard_send_data(runner_config, test_data):
    global es
    es_ip = runner_config['dashboard_ip'].split(':')
    es = Elasticsearch([{'host': es_ip[0]}])
    res = es.index(index="bottlenecks",
                   doc_type=test_data["testcase"],
                   body=test_data["data_body"])
    if res['created'] == "False":
        LOG.error("date send to kibana have errors ", test_data["data_body"])


def dashboard_system_bandwidth(runner_config):
    global es
    es_ip = runner_config['dashboard_ip'].split(':')
    es = Elasticsearch([{'host': es_ip[0]}])
    # Create bottlenecks index
    with open(dashboard_dir + 'posca_system_bandwidth_index_pattern.json')\
            as index_pattern:
        doc = json.load(index_pattern)
    res = es.index(
        index=".kibana",
        doc_type="index-pattern",
        id="bottlenecks",
        body=doc)
    if res['created'] == "True":
        LOG.info("bottlenecks index-pattern has created")
    else:
        LOG.info("bottlenecks index-pattern has existed")

    with open(dashboard_dir + 'posca_system_bandwidth_config.json')\
            as index_config:
        doc = json.load(index_config)
    res = es.index(index=".kibana", doc_type="config", id="4.6.1", body=doc)
    if res['created'] == "True":
        LOG.info("bottlenecks config has created")
    else:
        LOG.info("bottlenecks config has existed")

    # Configure discover panel
    with open(dashboard_dir + 'posca_system_bandwidth_discover.json')\
            as index_discover:
        doc = json.load(index_discover)
    res = es.index(
        index=".kibana",
        doc_type="search",
        id="system_bandwidth",
        body=doc)
    if res['created'] == "True":
        LOG.info("system_bandwidth search has created")
    else:
        LOG.info("system_bandwidth search has existed")

    # Create testing data in line graph
    # Create testing data in line graph
    with open(dashboard_dir + 'posca_system_bandwidth_line_data.json')\
            as line_data:
        doc = json.load(line_data)
    res = es.index(
        index=".kibana",
        doc_type="visualization",
        id="system_bandwidth_line-date",
        body=doc)
    if res['created'] == "True":
        LOG.info("system_bandwidth_line-date visualization has created")
    else:
        LOG.info("system_bandwidth_line-date visualization has existed")

    # Create comparison results in line chart
    with open(dashboard_dir + 'posca_system_bandwidth_line_char.json')\
            as line_char:
        doc = json.load(line_char)
    res = es.index(
        index=".kibana",
        doc_type="visualization",
        id="system_bandwidth_line-char",
        body=doc)
    if res['created'] == "True":
        LOG.info("system_bandwidth_line-char visualization has created")
    else:
        LOG.info("system_bandwidth_line-char visualization has existed")

    # Create monitoring data in table
    with open(dashboard_dir + 'posca_system_bandwidth_terms_data.json')\
            as terms_char:
        doc = json.load(terms_char)
    res = es.index(index=".kibana", doc_type="visualization",
                   id="system_bandwidth_terms_data", body=doc)
    if res['created'] == "True":
        LOG.info("system_bandwidth_terms_data visualization has created")
    else:
        LOG.info("system_bandwidth_terms_data visualization has existed")

    # Create dashboard
    with open(dashboard_dir + 'posca_system_bandwidth_dashboard.json')\
            as dashboard:
        doc = json.load(dashboard)
    res = es.index(
        index=".kibana",
        doc_type="dashboard",
        id="system_bandwidth_dashboard",
        body=doc)
    if res['created'] == "True":
        LOG.info("system_bandwidth dashboard has created")
    else:
        LOG.info("system_bandwidth dashboard has existed")