From 3f96bdbe6542c2600def600514d577aea351ff3d Mon Sep 17 00:00:00 2001 From: maxbr Date: Mon, 19 Sep 2016 10:10:54 +0200 Subject: Fix table HTML JIRA: RELENG-12 Change-Id: I780c1fc0daab9ee2f2599c51f31eb416a2c7dbbf Signed-off-by: maxbr --- tools/pharos-dashboard/static/js/flot-pie-chart.js | 12 +++----- .../templates/account/user_list.html | 26 +++++++++------- .../templates/booking/booking_table.html | 20 ++++++------ .../templates/dashboard/ci_pods.html | 28 ++++++++--------- .../templates/dashboard/dev_pods.html | 36 +++++++++++----------- .../templates/dashboard/jenkins_slaves.html | 12 ++++---- .../templates/dashboard/resource_detail.html | 12 ++++---- .../templates/dashboard/server_table.html | 20 ++++++------ 8 files changed, 84 insertions(+), 82 deletions(-) (limited to 'tools') diff --git a/tools/pharos-dashboard/static/js/flot-pie-chart.js b/tools/pharos-dashboard/static/js/flot-pie-chart.js index 98d174e4..cf8d9769 100644 --- a/tools/pharos-dashboard/static/js/flot-pie-chart.js +++ b/tools/pharos-dashboard/static/js/flot-pie-chart.js @@ -4,14 +4,12 @@ function loadChartData(chart_id, url) { type: 'get', success: function (data) { var data = data['data']; - $(function () { - var plotObj = $.plot($("#" + chart_id), data, { - series: { - pie: { - show: true - } + var plotObj = $.plot($("#" + chart_id), data, { + series: { + pie: { + show: true } - }); + } }); }, failure: function (data) { diff --git a/tools/pharos-dashboard/templates/account/user_list.html b/tools/pharos-dashboard/templates/account/user_list.html index 7618dc95..c2b81938 100644 --- a/tools/pharos-dashboard/templates/account/user_list.html +++ b/tools/pharos-dashboard/templates/account/user_list.html @@ -13,18 +13,22 @@ {% for user in users %} - + {{ user.username }} - - + + {{ user.userprofile.company }} - - - Download - - - Download - + + + {% if user.userprofile.ssh_public_key %} + SSH + {% endif %} + + + {% if user.userprofile.pgp_public_key %} + GPG + {% endif %} + {% endfor %} @@ -39,4 +43,4 @@ }); }); -{% endblock tablejs %} \ No newline at end of file +{% endblock tablejs %} diff --git a/tools/pharos-dashboard/templates/booking/booking_table.html b/tools/pharos-dashboard/templates/booking/booking_table.html index 3d0b7575..216eaf57 100644 --- a/tools/pharos-dashboard/templates/booking/booking_table.html +++ b/tools/pharos-dashboard/templates/booking/booking_table.html @@ -13,21 +13,21 @@ {% for booking in bookings %} - + {{ booking.user.username }} - - + + {{ booking.purpose }} - - + + {{ booking.start }} - - + + {{ booking.end }} - - + {{ booking.get_jira_issue }} - + {% endfor %} \ No newline at end of file diff --git a/tools/pharos-dashboard/templates/dashboard/ci_pods.html b/tools/pharos-dashboard/templates/dashboard/ci_pods.html index a754252c..7ef62a43 100644 --- a/tools/pharos-dashboard/templates/dashboard/ci_pods.html +++ b/tools/pharos-dashboard/templates/dashboard/ci_pods.html @@ -17,29 +17,29 @@ {% for pod in ci_pods %} - + {{ pod.name }} - - + + {{ pod.slave.name }} - - + + {{ pod.slave.status }} - - + + {{ pod.slave.last_job_installer }} - - + + {{ pod.slave.last_job_scenario }} - - + + {{ pod.slave.last_job_branch }} - - + {{ pod.slave.last_job_name }} - + {% endfor %} diff --git a/tools/pharos-dashboard/templates/dashboard/dev_pods.html b/tools/pharos-dashboard/templates/dashboard/dev_pods.html index c4cb1ba7..2b4b0177 100644 --- a/tools/pharos-dashboard/templates/dashboard/dev_pods.html +++ b/tools/pharos-dashboard/templates/dashboard/dev_pods.html @@ -19,37 +19,37 @@ {% for pod, booking, utilization in dev_pods %} - + {{ pod.name }} - - + + {{ pod.slave.name }} - - + + {{ booking.user.username }} - - + + {{ booking.end }} - - + + {{ booking.purpose }} - - + + {{ utilization }} - - + + {{ pod.slave.status }} - - + + Book - - + + Info - + {% endfor %} diff --git a/tools/pharos-dashboard/templates/dashboard/jenkins_slaves.html b/tools/pharos-dashboard/templates/dashboard/jenkins_slaves.html index 830ed198..aa74507c 100644 --- a/tools/pharos-dashboard/templates/dashboard/jenkins_slaves.html +++ b/tools/pharos-dashboard/templates/dashboard/jenkins_slaves.html @@ -14,17 +14,17 @@ {% for slave in slaves %} - {{ slave.name }} - - + + {{ slave.status }} - - + {{ slave.last_job_name }} - + {% endfor %} diff --git a/tools/pharos-dashboard/templates/dashboard/resource_detail.html b/tools/pharos-dashboard/templates/dashboard/resource_detail.html index 6067e1ea..657d5656 100644 --- a/tools/pharos-dashboard/templates/dashboard/resource_detail.html +++ b/tools/pharos-dashboard/templates/dashboard/resource_detail.html @@ -164,15 +164,15 @@ {% for user in resource.vpn_users.all %} - + {{ user.username }} - - + + {{ user.email }} - - + + {{ user.userprofile.company }} - + {% endfor %} diff --git a/tools/pharos-dashboard/templates/dashboard/server_table.html b/tools/pharos-dashboard/templates/dashboard/server_table.html index fee7e8b1..f01bd603 100644 --- a/tools/pharos-dashboard/templates/dashboard/server_table.html +++ b/tools/pharos-dashboard/templates/dashboard/server_table.html @@ -10,21 +10,21 @@ {% for server in resource.server_set.all %} - + {{ server.name }} - - + + {{ server.model }} - - + + {{ server.cpu }} - - + + {{ server.ram }} - - + + {{ server.storage }} - + {% endfor %} \ No newline at end of file -- cgit 1.2.3-korg font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
.. This work is licensed under a Creative Commons Attribution 4.0 International
.. License.
.. http://creativecommons.org/licenses/by/4.0
.. (c) OPNFV, 2016 Huawei Technologies Co.,Ltd and others.

==============================================
Store Other Project's Test Results in InfluxDB
==============================================

Abstract
========

.. _Framework: https://wiki.opnfv.org/download/attachments/6827660/wiki.png?version=1&modificationDate=1470298075000&api=v2

This chapter illustrates how to run plug-in test cases and store test results
into community's InfluxDB. The framework is shown in Framework_.


.. image:: images/InfluxDB_store.png
   :width: 800px
   :alt: Store Other Project's Test Results in InfluxDB

Store Storperf Test Results into Community's InfluxDB
=====================================================

.. _Influxdb: https://git.opnfv.org/cgit/yardstick/tree/yardstick/dispatcher/influxdb.py
.. _Mingjiang: limingjiang@huawei.com
.. _Visual: https://wiki.opnfv.org/download/attachments/6827660/tc074.PNG?version=1&modificationDate=1470298075000&api=v2
.. _Login: http://testresults.opnfv.org/grafana/login

As shown in Framework_, there are two ways to store Storperf test results
into community's InfluxDB:

1. Yardstick executes Storperf test case (TC074), posting test job to Storperf
   container via ReST API. After the test job is completed, Yardstick reads
   test results via ReST API from Storperf and posts test data to the influxDB.

2. Additionally, Storperf can run tests by itself and post the test result
   directly to the InfluxDB. The method for posting data directly to influxDB
   will be supported in the future.

Our plan is to support rest-api in D release so that other testing projects can
call the rest-api to use yardstick dispatcher service to push data to yardstick's
influxdb database.

For now, influxdb only support line protocol, and the json protocol is deprecated.

Take ping test case for example, the raw_result is json format like this:
::

    "benchmark": {
        "timestamp": 1470315409.868095,
        "errors": "",
        "data": {
          "rtt": {
          "ares": 1.125
          }
        },
      "sequence": 1
      },
    "runner_id": 2625
  }

With the help of "influxdb_line_protocol", the json is transform to like below as a line string:
::

  'ping,deploy_scenario=unknown,host=athena.demo,installer=unknown,pod_name=unknown,
    runner_id=2625,scenarios=Ping,target=ares.demo,task_id=77755f38-1f6a-4667-a7f3-
      301c99963656,version=unknown rtt.ares=1.125 1470315409868094976'

So, for data output of json format, you just need to transform json into line format and call
influxdb api to post the data into the database. All this function has been implemented in Influxdb_.
If you need support on this, please contact Mingjiang_.
::

  curl -i -XPOST 'http://104.197.68.199:8086/write?db=yardstick' --
    data-binary 'ping,deploy_scenario=unknown,host=athena.demo,installer=unknown, ...'

Grafana will be used for visualizing the collected test data, which is shown in Visual_. Grafana
can be accessed by Login_.


.. image:: images/results_visualization.png
   :width: 800px
   :alt: results visualization