summaryrefslogtreecommitdiffstats
path: root/testsuites/posca/testcase_dashboard/posca_stress_ping.py
blob: 64ce383526aee7f0284839804d79229f04581b8d (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
#!/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
##############################################################################
'''This file realize a function of creating dashboard of stress ping test'''
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_path = os.path.join(conf_parser.test_dir,
                              "posca",
                              "testcase_dashboard")
dashboard_dir = dashboard_path + "/"


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 %s", test_data["data_body"])


def posca_stress_ping(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_stress_ping_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_stress_ping_discover.json')\
            as index_discover:
        doc = json.load(index_discover)
    res = es.index(
        index=".kibana",
        doc_type="search",
        id="posca_stress_ping",
        body=doc)
    if res['created'] == "True":
        LOG.info("posca_stress_ping search has created")
    else:
        LOG.info("posca_stress_ping search has existed")

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

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

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