Merge "Fix Compass4nfv workspace permissions"
authorJun Li <matthew.lijun@huawei.com>
Wed, 7 Jun 2017 03:04:53 +0000 (03:04 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Wed, 7 Jun 2017 03:04:53 +0000 (03:04 +0000)
19 files changed:
UPSTREAM [new file with mode: 0644]
jjb/apex/apex.yml
jjb/apex/apex.yml.j2
jjb/storperf/storperf.yml
jjb/xci/bifrost-verify-jobs.yml
jjb/xci/bifrost-verify.sh
utils/test/reporting/api/api/handlers/testcases.py
utils/test/reporting/pages/app/images/overview.png
utils/test/reporting/pages/app/scripts/controllers/testvisual.controller.js
utils/test/reporting/pages/app/styles/custome.css
utils/test/reporting/pages/app/views/commons/testCaseVisual.html
utils/test/reporting/pages/app/views/modal/testcasedetail.html
utils/test/testapi/3rd_party/static/testapi-ui/assets/img/OpenStack_Project_Refstack_mascot_90x90.png [deleted file]
utils/test/testapi/3rd_party/static/testapi-ui/assets/img/openstack-logo.png [deleted file]
utils/test/testapi/3rd_party/static/testapi-ui/assets/img/refstack-logo.png [deleted file]
utils/test/testapi/3rd_party/static/testapi-ui/assets/img/testapi-logo.png [new file with mode: 0644]
utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html
utils/test/testapi/3rd_party/static/testapi-ui/components/results/resultsController.js
utils/test/testapi/opnfv_testapi/resources/result_handlers.py

diff --git a/UPSTREAM b/UPSTREAM
new file mode 100644 (file)
index 0000000..65e44f5
--- /dev/null
+++ b/UPSTREAM
@@ -0,0 +1,448 @@
+# Upstream contributions, bitergia will crawl this and extract the relevant information
+# system is one of Gerrit, Bugzilla, Launchpad (insert more)
+#
+# All the contributions listed in this file are merged commits. Contributions under
+# review, in progress and abandoned are not included.
+# The latest contribution included in this file is 453130 and it is dated 2017-05-23.
+# Contributions from Yolanda Robla Mota have not been included yet.
+# The gerrit query used to list contributions is
+#   status:merged AND (owner: "Markos Chandras" OR owner: "Fatih Degirmenci")
+---
+-
+  url: https://review.openstack.org/#/c/453130/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/466422/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/466421/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/466249/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/465927/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/465686/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/465685/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/464759/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/464180/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/464629/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/463359/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/463313/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/463301/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/463300/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/462488/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/450970/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/463299/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/462863/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/461754/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/462859/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/462443/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/461755/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/461018/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/461017/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/461050/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/458616/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/460617/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/458797/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/453128/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459984/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/460071/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459779/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459775/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459332/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459331/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459330/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459715/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459702/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459684/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459599/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/459461/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/458801/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/457709/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/458246/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/458420/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/458419/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/450634/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/457695/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/455290/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/455461/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/448800/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/453609/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/453798/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/453577/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/453574/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/449183/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/452079/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/452160/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/450384/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/450210/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/451848/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/451426/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/450239/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/450095/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/448625/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/447444/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/447435/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/441041/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/444197/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/439938/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/444033/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/442224/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/428345/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/440614/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/439946/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/441042/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/439940/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/433517/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/435433/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/437010/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/436948/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/436000/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/436066/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/436085/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/435994/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/434328/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/433532/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/427682/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/428704/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/430864/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/428716/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/427744/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/426844/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/424853/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/410639/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/407970/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/387441/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/398317/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/401991/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/400150/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/404315/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/389171/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/401164/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/400712/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/392002/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/388242/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/392003/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/392986/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/392004/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/389079/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/388158/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/388840/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/388780/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/388847/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/388748/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/381576/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/381575/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/378532/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/386002/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/381574/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/381541/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/376303/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/379835/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/376534/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/375350/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/371602/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/370258/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/370584/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/363458/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/366835/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/363896/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/353165/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/361652/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/358477/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/359922/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/357268/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/357718/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/356964/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/355485/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/355431/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/355668/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/202056/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/202180/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/192397/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/192720/
+  system: Gerrit
+-
+  url: https://review.openstack.org/#/c/163149/
+  system: Gerrit
index 50502d7..5974383 100644 (file)
                     GERRIT_REFSPEC=$GERRIT_REFSPEC
                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                    GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT
                   node-parameters: true
                   kill-phase-on: FAILURE
                   abort-all-job: true
index 84a899f..41a4ee7 100644 (file)
                     GERRIT_REFSPEC=$GERRIT_REFSPEC
                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                     GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                    GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT
                   node-parameters: true
                   kill-phase-on: FAILURE
                   abort-all-job: true
index cd40050..bdb12e3 100644 (file)
             name: DOCKER_TAG
             default: '{docker-tag}'
             description: 'Tag to pull docker image'
+        - choice:
+            name: DISK_TYPE
+            choices:
+                - 'SSD'
+                - 'HDD'
+            description: 'The type of hard disk that Cinder uses'
+        - string:
+            name: AGENT_COUNT
+            description: 'The number of slave agents to start. Defaults to the cinder node count'
+        - string:
+            name: VOLUME_SIZE
+            description: 'Size of Cinder volume (in GB)'
+        - string:
+            name: WORKLOADS
+            default: 'ws,wr,rs,rr,rw'
+            description: 'Workloads to run'
+        - string:
+            name: BLOCK_SIZES
+            default: 2048,8192,16384
+            description: 'Block sizes for VM I/O operations'
+        - string:
+            name: QUEUE_DEPTHS
+            default: 1,2,4
+            description: 'Number of simultaneous I/O operations to keep active'
+        - string:
+            name: STEADY_STATE_SAMPLES
+            default: '10'
+            description: 'Number of samples to use (1 per minute) to measure steady state'
+        - string:
+            name: DEADLINE
+            description: 'Maximum run time in minutes if steady state cannot be found. Defaults to 3 times steady state samples'
+        - choice:
+            name: TEST_CASE
+            choices:
+                - 'snia_steady_state'
+            description: 'The test case to run'
 
     scm:
         - git-scm
index c6da9f4..319f8eb 100644 (file)
@@ -20,9 +20,9 @@
 # distros
 #--------------------------------
     distro:
-        - 'trusty':
+        - 'xenial':
             disabled: false
-            dib-os-release: 'trusty'
+            dib-os-release: 'xenial'
             dib-os-element: 'ubuntu-minimal'
             dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl'
             extra-dib-elements: 'openssh-server'
index 2e6f227..b522b89 100755 (executable)
@@ -89,7 +89,7 @@ function cleanup_and_upload() {
 }
 
 # check distro to see if we support it
-if [[ ! "$DISTRO" =~ (trusty|centos7|suse) ]]; then
+if [[ ! "$DISTRO" =~ (xenial|centos7|suse) ]]; then
     echo "Distro $DISTRO is not supported!"
     exit 1
 fi
index 110ac4c..2b91186 100644 (file)
@@ -20,7 +20,7 @@ class TestCases(BaseHandler):
 
         url = '{}/projects/{}/cases'.format(conf.base_url, project)
         cases = requests.get(url).json().get('testcases', [])
-        data = [t['name'] for t in cases]
+        data = [{t['name']: t['catalog_description']} for t in cases]
         self.write(json_encode(data))
 
 
index 14dbbff..f1688cf 100644 (file)
Binary files a/utils/test/reporting/pages/app/images/overview.png and b/utils/test/reporting/pages/app/images/overview.png differ
index 7082aed..def8e72 100644 (file)
 angular.module('opnfvApp')
     .controller('testVisualController', ['$scope', '$state', '$stateParams', 'TableFactory', 'ngDialog', '$http', '$loading',
         function($scope, $state, $stateParams, TableFactory, ngDialog, $http, $loading) {
-            $scope.dovet = "59,222,156,317";
-            $scope.functest = "203,163,334,365";
-            $scope.yardstick = "398,161,513,384";
-            $scope.vsperf = "567,163,673,350";
-            $scope.stor = "686,165,789,341";
-            $scope.qtip = "802,164,905,341";
-            $scope.bootleneck = "917,161,1022,338";
-            $scope.noPopArea1 = "30,11,1243,146";
-            $scope.noPopArea2 = "1041,157,1250,561";
-            $scope.noPopArea3 = "15,392,1027,561";
+            $scope.dovet = "50,168,177,443";
+            $scope.functest = "194,173,356,442";
+            $scope.yardstick = "377,183,521,412";
+            $scope.vsperf = "542,185,640,414";
+            $scope.stor = "658,187,750,410";
+            $scope.qtip = "769,190,852,416";
+            $scope.bootleneck = "870,192,983,419";
+            $scope.noPopArea1 = "26,8,1190,180";
+            $scope.noPopArea2 = "1018,193,1190,590";
+            $scope.noPopArea3 = "37,455,1003,584";
 
             init();
             $scope.showSelectValue = 0;
@@ -51,20 +51,41 @@ angular.module('opnfvApp')
                 $http.get(url, config).then(function(response) {
                     if (response.status == 200) {
                         $scope.tableData = response.data;
+
+                        $scope.tableData = constructObjectArray($scope.tableData);
+                        console.log($scope.tableData);
                         $loading.finish('Key');
 
 
+
                     }
                 })
             }
 
+            //construct key value for tableData
+            function constructObjectArray(array) {
+                var templateArray = [];
+                for (var i = 0; i < array.length; i++) {
+                    var key = Object.keys(array[i])[0];
+                    var value = array[i][key];
+                    var temp = {
+                        'key': key,
+                        'value': value
+                    };
+                    templateArray.push(temp);
+
+                }
+
+                return templateArray;
+            }
+
             function getDetail(casename) {
                 TableFactory.getProjectTestCaseDetail().get({
                     'project': $scope.modalName,
                     'testcase': casename
                 }).$promise.then(function(response) {
                     if (response != null) {
-                        $scope.project_name_modal = response.project_name;
+                        $scope.name_modal = response.name;
                         $scope.description_modal = response.description;
                         openTestDetail();
                     }
@@ -108,4 +129,4 @@ angular.module('opnfvApp')
 
 
         }
-    ]);
\ No newline at end of file
+    ]);
index 7ab869b..8e567ca 100644 (file)
@@ -71,6 +71,7 @@ html {
     border-radius: 5px 5px 5px 5px;
     background-color: #f3f3f4;
     opacity: 0.9;
+    width: 200px;
 }
 
 .ngdialog.ngdialog.ngdialog-theme-default .ngdialog-content {
index 9d146ba..74eb56e 100644 (file)
@@ -4,7 +4,7 @@
 <div class="row">
 
 
-    <div class="row  border-bottom white-bg dashboard-header" style="border-radius: 5px 5px 5px 5px ">
+    <div class="row  border-bottom white-bg dashboard-header" style="border-radius: 5px 5px 5px 5px;width:90%;margin-left:30px; ">
 
         <h3>OPNFV Test ecosystem
             <small> *mouse over display test case list</small>
@@ -70,7 +70,7 @@
     </div>
 
 
-    <div id="popup" class="popup" style="width: 20%;height: 35%" dw-loading="Key">
+    <div id="popup" class="popup" style="width: 40%;height: 35%" dw-loading="Key">
 
         <div ng-show="tableData.length==0">
             <center>
@@ -90,7 +90,8 @@
 
                 <tbody>
                     <tr dir-paginate="data in tableData | itemsPerPage: 8  track by $index ">
-                        <td><a ng-click="getDetail(data)"> {{data}}</a></td>
+                        <td ng-if="data.value!=null"><a ng-click="getDetail(data.key)"> {{data.value}}</a></td>
+                        <td ng-if="data.value==null"><a ng-click="getDetail(data.key)"> null</a></td>
                         <tr>
 
                 </tbody>
index 8918b3f..db6f712 100644 (file)
@@ -2,6 +2,6 @@
 <div class="hr-line-dashed"></div>
 
 
-<strong> name</strong>: {{project_name_modal}}<br>
+<strong> name</strong>: {{name_modal}}<br>
 
-<strong>description</strong>: {{description_modal}}<br>
\ No newline at end of file
+<strong>description</strong>: {{description_modal}}<br>
diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/OpenStack_Project_Refstack_mascot_90x90.png b/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/OpenStack_Project_Refstack_mascot_90x90.png
deleted file mode 100755 (executable)
index 4695090..0000000
Binary files a/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/OpenStack_Project_Refstack_mascot_90x90.png and /dev/null differ
diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/openstack-logo.png b/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/openstack-logo.png
deleted file mode 100644 (file)
index 826bf2e..0000000
Binary files a/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/openstack-logo.png and /dev/null differ
diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/refstack-logo.png b/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/refstack-logo.png
deleted file mode 100755 (executable)
index fc45f3e..0000000
Binary files a/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/refstack-logo.png and /dev/null differ
diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/testapi-logo.png b/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/testapi-logo.png
new file mode 100644 (file)
index 0000000..ff78eb1
Binary files /dev/null and b/utils/test/testapi/3rd_party/static/testapi-ui/assets/img/testapi-logo.png differ
index 2a43cd1..3056e1d 100644 (file)
 <div cg-busy="{promise:ctrl.resultsRequest,message:'Loading'}"></div>
 
 <div ng-show="ctrl.data" class="results-table">
-    <table ng-show="ctrl.data" class="table table-striped table-hover">
+    <table ng-data="ctrl.data.result" ng-show="ctrl.data" class="table table-striped table-hover">
         <thead>
             <tr>
-                <th ng-if="ctrl.isUserResults"></th>
-                <th>Upload Date</th>
-                <th>Test Run ID</th>
-                <th ng-if="ctrl.isUserResults">Vendor</th>
-                <th ng-if="ctrl.isUserResults">Product (version)</th>
-                <th ng-if="ctrl.isUserResults">Target Program</th>
-                <th ng-if="ctrl.isUserResults">Guideline</th>
-                <th ng-if="ctrl.isUserResults">Verified</th>
-                <th ng-if="ctrl.isUserResults">Shared</th>
+                <th>ID</th>
+                <th>Pod</th>
+                <th>Project</th>
+                <th>Test Case</th>
+                <th>Installer</th>
+                <th>Version</th>
+                <th>Scenario</th>
+                <th>Criteria</th>
+                <th>Start Date</th>
+                <th>Stop Date</th>
             </tr>
         </thead>
 
         <tbody>
             <tr ng-repeat-start="(index, result) in ctrl.data.results">
-                <td ng-if="ctrl.isUserResults">
-                    <a ng-if="!result.expanded"
-                       class="glyphicon glyphicon-plus"
-                       ng-click="result.expanded = true">
-                    </a>
-                    <a ng-if="result.expanded"
-                       class="glyphicon glyphicon-minus"
-                       ng-click="result.expanded = false">
-                    </a>
-                </td>
-                <td>{{result.created_at}}</td>
-                <td><a ui-sref="resultsDetail({testID: result.id})">
-                        {{result.id.slice(0, 8)}}...{{result.id.slice(-8)}}
-                    </a>
-                </td>
-                <td ng-if="ctrl.isUserResults">
-                    {{ctrl.vendors[result.product_version.product_info.organization_id].name || '-'}}
-                </td>
-                <td ng-if="ctrl.isUserResults">{{result.product_version.product_info.name || '-'}}
-                    <span ng-if="result.product_version.version">
-                        ({{result.product_version.version}})
-                    </span>
-                </td>
-                <td ng-if="ctrl.isUserResults">{{ctrl.targetMappings[result.meta.target] || '-'}}</td>
-                <td ng-if="ctrl.isUserResults">{{result.meta.guideline.slice(0, -5) || '-'}}</td>
-                <td ng-if="ctrl.isUserResults">
-                    <span ng-if="result.verification_status" class="glyphicon glyphicon-ok"></span>
-                    <span ng-if="!result.verification_status">-</span>
-
-                </td>
-                <td ng-if="ctrl.isUserResults">
-                    <span ng-show="result.meta.shared" class="glyphicon glyphicon-share"></span>
-                </td>
+                <td>{{ result._id }}</td>
+                <td>{{ result.pod_name }}</td>
+                <td>{{ result.project_name }}</td>
+                <td>{{ result.case_name }}</td>
+                <td>{{ result.installer }}</td>
+                <td>{{ result.version }}</td>
+                <td>{{ result.scenario }}</td>
+                <td>{{ result.criteria }}</td>
+                <td>{{ result.start_date }}</td>
+                <td>{{ result.stop_date }}</td>
             </tr>
-            <tr ng-if="result.expanded" ng-repeat-end>
-                <td></td>
-                <td colspan="3">
-                    <strong>Publicly Shared:</strong>
-                    <span ng-if="result.meta.shared == 'true' && !result.sharedEdit">Yes</span>
-                    <span ng-if="!result.meta.shared && !result.sharedEdit">
-                        <em>No</em>
-                    </span>
-                    <select ng-if="result.sharedEdit"
-                            ng-model="result.meta.shared"
-                            class="form-inline">
-                            <option value="true">Yes</option>
-                            <option value="">No</option>
-                    </select>
-                    <a ng-if="!result.sharedEdit"
-                       ng-click="result.sharedEdit = true"
-                       title="Edit"
-                       class="glyphicon glyphicon-pencil"></a>
-                    <a ng-if="result.sharedEdit"
-                       ng-click="ctrl.associateMeta(index,'shared',result.meta.shared)"
-                       title="Save"
-                       class="glyphicon glyphicon-floppy-disk"></a>
-                    <br />
-
-                    <strong>Associated Guideline:</strong>
-                    <span ng-if="!result.meta.guideline && !result.guidelineEdit">
-                        <em>None</em>
-                    </span>
-                    <span ng-if="result.meta.guideline && !result.guidelineEdit">
-                        {{result.meta.guideline.slice(0, -5)}}
-                    </span>
-                    <select ng-if="result.guidelineEdit"
-                            ng-model="result.meta.guideline"
-                            ng-options="o as o.slice(0, -5) for o in ctrl.versionList"
-                            class="form-inline">
-                        <option value="">None</option>
-                    </select>
-                    <a ng-if="!result.guidelineEdit"
-                       ng-click="ctrl.getVersionList();result.guidelineEdit = true"
-                       title="Edit"
-                       class="glyphicon glyphicon-pencil"></a>
-                    <a ng-if="result.guidelineEdit"
-                       ng-click="ctrl.associateMeta(index, 'guideline', result.meta.guideline)"
-                       title="Save"
-                       class="glyphicon glyphicon-floppy-disk">
-                    </a>
-                    <br />
-
-                    <strong>Associated Target Program:</strong>
-                    <span ng-if="!result.meta.target && !result.targetEdit">
-                        <em>None</em>
-                    </span>
-                    <span ng-if="result.meta.target && !result.targetEdit">
-                        {{ctrl.targetMappings[result.meta.target]}}</span>
-                    <select ng-if="result.targetEdit"
-                            ng-model="result.meta.target"
-                            class="form-inline">
-                        <option value="">None</option>
-                        <option value="platform">OpenStack Powered Platform</option>
-                        <option value="compute">OpenStack Powered Compute</option>
-                        <option value="object">OpenStack Powered Object Storage</option>
-                    </select>
-                    <a ng-if="!result.targetEdit"
-                       ng-click="result.targetEdit = true;"
-                       title="Edit"
-                       class="glyphicon glyphicon-pencil">
-                    </a>
-                    <a ng-if="result.targetEdit"
-                       ng-click="ctrl.associateMeta(index, 'target', result.meta.target)"
-                       title="Save"
-                       class="glyphicon glyphicon-floppy-disk">
-                    </a>
-                    <br />
-
-                    <strong>Associated Product:</strong>
-                    <span ng-if="!result.product_version && !result.productEdit">
-                        <em>None</em>
-                    </span>
-                    <span ng-if="result.product_version && !result.productEdit">
-                        <span ng-if="ctrl.products[result.product_version.product_info.id].product_type == 0">
-                            <a ui-sref="distro({id: result.product_version.product_info.id})">
-                                {{ctrl.products[result.product_version.product_info.id].name}}
-                                <small ng-if="result.product_version.version">
-                                    ({{result.product_version.version}})
-                                </small>
-                            </a>
-                        </span>
-                        <span ng-if="ctrl.products[result.product_version.product_info.id].product_type != 0">
-                            <a ui-sref="cloud({id: result.product_version.product_info.id})">
-                                {{ctrl.products[result.product_version.product_info.id].name}}
-                                <small ng-if="result.product_version.version">
-                                    ({{result.product_version.version}})
-                                </small>
-                            </a>
-                        </span>
-                    </span>
-
-                    <select ng-if="result.productEdit"
-                            ng-options="product as product.name for product in ctrl.products | arrayConverter | orderBy: 'name' track by product.id"
-                            ng-model="result.selectedProduct"
-                            ng-change="ctrl.getProductVersions(result)">
-                        <option value="">-- No Product --</option>
-                    </select>
-
-                    <span ng-if="result.productVersions.length && result.productEdit">
-                        <span class="glyphicon glyphicon-arrow-right" style="padding-right:3px;color:#303030;"></span>
-                        Version:
-                        <select ng-options="version as version.version for version in result.productVersions | orderBy: 'version' track by version.id"
-                                ng-model="result.selectedVersion">
-                        </select>
-
-                    </span>
-                    <a ng-if="!result.productEdit"
-                       ng-click="ctrl.prepVersionEdit(result)"
-                       title="Edit"
-                       class="glyphicon glyphicon-pencil">
-                    </a>
-                    <a ng-if="result.productEdit"
-                       ng-click="ctrl.associateProductVersion(result)"
-                       confirm="Once you associate this test to this product, ownership
-                                will be transferred to the product's vendor admins.
-                                Continue?"
-                       title="Save"
-                       class="glyphicon glyphicon-floppy-disk">
-                    </a>
-                    <br />
-                </td>
+            <tr ng-repeat-end=>
             </tr>
         </tbody>
     </table>
index 2b0338c..39ace00 100644 (file)
@@ -38,7 +38,6 @@
         ctrl.associateMeta = associateMeta;
         ctrl.getVersionList = getVersionList;
         ctrl.getUserProducts = getUserProducts;
-        ctrl.getVendors = getVendors;
         ctrl.associateProductVersion = associateProductVersion;
         ctrl.getProductVersions = getProductVersions;
         ctrl.prepVersionEdit = prepVersionEdit;
             ctrl.update();
         }
 
-        ctrl.getVendors();
-
         /**
          * This will contact the TestAPI API to get a listing of test run
          * results.
             ctrl.resultsRequest =
                 $http.get(content_url).success(function (data) {
                     ctrl.data = data;
-                    ctrl.totalItems = ctrl.data.pagination.total_pages *
-                        ctrl.itemsPerPage;
-                    ctrl.currentPage = ctrl.data.pagination.current_page;
+                    ctrl.totalItems = 20 // ctrl.data.pagination.total_pages * ctrl.itemsPerPage;
+                    ctrl.currentPage = 1 // ctrl.data.pagination.current_page;
                 }).error(function (error) {
                     ctrl.data = null;
                     ctrl.totalItems = 0;
                 });
         }
 
-        /**
-         * This will contact the TestAPI API to get a listing of
-         * vendors.
-         */
-        function getVendors() {
-            var contentUrl = testapiApiUrl + '/vendors';
-            ctrl.vendorsRequest =
-                $http.get(contentUrl).success(function (data) {
-                    ctrl.vendors = {};
-                    data.vendors.forEach(function(vendor) {
-                        ctrl.vendors[vendor.id] = vendor;
-                    });
-                }).error(function (error) {
-                    ctrl.vendors = null;
-                    ctrl.showError = true;
-                    ctrl.error =
-                        'Error retrieving vendor listing from server: ' +
-                        angular.toJson(error);
-                });
-        }
-
         /**
          * Send a PUT request to the API server to associate a product with
          * a test result.
index 214706f..b84d1e3 100644 (file)
@@ -47,7 +47,7 @@ class GenericResultHandler(handlers.GenericApiHandler):
                     query['start_date'] = obj
             elif k == 'trust_indicator':
                 query[k + '.current'] = float(v)
-            elif k != 'last':
+            elif k != 'last' and k != 'page':
                 query[k] = v
         return query
 
@@ -126,6 +126,10 @@ class ResultsCLHandler(GenericResultHandler):
         if last is not None:
             last = self.get_int('last', last)
 
+        page = self.get_query_argument('page', 0)
+        if page:
+            last = 20
+
         self._list(query=self.set_query(),
                    sort=[('start_date', -1)],
                    last=last)