Merge changes from topics 'prototypes/xci/config/pinned-versions-bump-dates', 'protot...
authorMarkos Chandras <mchandras@suse.de>
Mon, 3 Jul 2017 21:46:37 +0000 (21:46 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Mon, 3 Jul 2017 21:46:37 +0000 (21:46 +0000)
* changes:
  prototypes: xci: scripts: Update SHA dates
  prototypes: xci: update-osa-version-files: Add support for updating bifrost SHAs

15 files changed:
jjb/barometer/barometer-upload-artifact.sh
jjb/barometer/barometer.yml
jjb/ci_gate_security/opnfv-ci-gate-security.yml
jjb/dovetail/dovetail-ci-jobs.yml
jjb/dovetail/dovetail-run.sh
jjb/functest/functest-loop.sh
jjb/functest/functest-suite.sh
jjb/functest/set-functest-env.sh
jjb/xci/bifrost-periodic-jobs.yml
jjb/xci/osa-periodic-jobs.yml
prototypes/xci/README.rst
utils/jenkins-jnlp-connect.sh
utils/test/reporting/pages/app/scripts/controllers/testvisual.controller.js
utils/test/reporting/pages/app/views/commons/testCaseVisual.html
utils/test/testapi/opnfv_testapi/resources/handlers.py

index 887c492..817cc57 100644 (file)
@@ -17,12 +17,12 @@ echo "Uploading the barometer RPMs to artifacts.opnfv.org"
 echo "---------------------------------------------------"
 echo
 
-gsutil -m cp -r $RPM_DIR/* $OPNFV_ARTIFACT_URL > $WORKSPACE/gsutil.log 2>&1
+gsutil -m cp -r $RPM_DIR/* gs://$OPNFV_ARTIFACT_URL > $WORKSPACE/gsutil.log 2>&1
 
 # Check if the RPMs were pushed
-gsutil ls $OPNFV_ARTIFACT_URL > /dev/null 2>&1
+gsutil ls gs://$OPNFV_ARTIFACT_URL > /dev/null 2>&1
 if [[ $? -ne 0 ]]; then
-  echo "Problem while uploading barometer RPMs to $OPNFV_ARTIFACT_URL!"
+  echo "Problem while uploading barometer RPMs to gs://$OPNFV_ARTIFACT_URL!"
   echo "Check log $WORKSPACE/gsutil.log on the appropriate build server"
   exit 1
 fi
index c8fb9e2..2d3e972 100644 (file)
         - shell: |
             pwd
             cd src
-            ./install_build_deps.sh
             make clobber
             make
 
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
+        - barometer-project-parameter:
+            gs-pathname: '{gs-pathname}'
         - 'opnfv-build-centos-defaults'
 
     scm:
index 489dbc5..e2f6ceb 100644 (file)
@@ -77,7 +77,7 @@
                     comment-contains-value: 'reverify'
             projects:
               - project-compare-type: 'REG_EXP'
-                project-pattern: 'sandbox|releng|octopus|pharos|functest'
+                project-pattern: 'apex|armband|bamboo|barometer|bottlenecks|calipso|compass4nfv|conductor|cooper|functest|octopus|pharos|releng|sandbox'
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
             !include-raw:
                 - ./anteater-clone-all-repos.sh
                 - ./anteater-security-audit-weekly.sh
+
index 9fdce31..6bcaea2 100644 (file)
             name: DOVETAIL_REPO_DIR
             default: "/home/opnfv/dovetail"
             description: "Directory where the dovetail repository is cloned"
+        - string:
+            name: SUT_BRANCH
+            default: '{branch}'
+            description: "SUT branch"
 
     scm:
         - git-scm
index d423e9d..85bc54d 100755 (executable)
@@ -52,7 +52,12 @@ releng_repo=${WORKSPACE}/releng
 git clone https://gerrit.opnfv.org/gerrit/releng ${releng_repo} >/dev/null
 
 if [[ ${INSTALLER_TYPE} != 'joid' ]]; then
+    echo "SUT branch is $SUT_BRANCH"
+    echo "dovetail branch is $BRANCH"
+    BRANCH_BACKUP=$BRANCH
+    export BRANCH=$SUT_BRANCH
     ${releng_repo}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} >${redirect}
+    export BRANCH=$BRANCH_BACKUP
 fi
 
 if [[ -f $OPENRC ]]; then
index 6768906..a590d9f 100755 (executable)
@@ -2,7 +2,7 @@
 set +e
 
 [[ "$PUSH_RESULTS_TO_DB" == "true" ]] && flags+="-r"
-cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/run_tests.py -t all ${flags}"
+cmd="run_tests -t all ${flags}"
 
 container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
 docker exec $container_id $cmd
index 5d1ed28..469a577 100755 (executable)
@@ -10,7 +10,7 @@ global_ret_val=0
 
 tests=($(echo $FUNCTEST_SUITE_NAME | tr "," "\n"))
 for test in ${tests[@]}; do
-    cmd="python /home/opnfv/repos/functest/functest/ci/run_tests.py -t $test"
+    cmd="run_tests -t $test"
     docker exec $container_id $cmd
     let global_ret_val+=$?
 done
index 558e248..01cab5e 100755 (executable)
@@ -90,7 +90,7 @@ if [ $(docker ps | grep "${FUNCTEST_IMAGE}:${DOCKER_TAG}" | wc -l) == 0 ]; then
     exit 1
 fi
 
-cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/prepare_env.py start"
+cmd="prepare_env start"
 
 echo "Executing command inside the docker: ${cmd}"
 docker exec ${container_id} ${cmd}
index 3e9ff67..9773cfd 100644 (file)
     # trigger is disabled until we know which jobs we will have
     # and adjust stuff accordingly
     triggers:
-        - timed: '#@midnight'
+        - timed: ''  # '@midnight'
 
     builders:
         - description-setter:
index 56a4b18..722b077 100644 (file)
     # trigger is disabled until we know which jobs we will have
     # and adjust stuff accordingly
     triggers:
-        - timed: '#@midnight'
+        - timed: ''  # '@midnight'
 
     builders:
         - description-setter:
index b65abde..ecb8e19 100644 (file)
@@ -196,8 +196,10 @@ on each run.
 To enable it, you need to export the different DEV_PATH vars:
 
 - export OPNFV_RELENG_DEV_PATH=/opt/releng/
-- export OPENSTACK_BIFROST_DEV_PATH=/opt/bifrost
-- export OPENSTACK_OSA_DEV_PATH=/opt/openstack-ansible
+- export OPENSTACK_BIFROST_DEV_PATH=/opt/bifrost/
+- export OPENSTACK_OSA_DEV_PATH=/opt/openstack-ansible/
+
+Please note the trailing slahses.
 
 This will cause the deployment to pick the development copies stored at the
 specified directories, and use them instead of cloning those on every run.
index 8fce2e0..c46ca89 100755 (executable)
@@ -61,8 +61,8 @@ main () {
     #make pid dir
     pidfile="/var/run/$jenkinsuser/jenkins_jnlp_pid"
     if ! [ -d /var/run/$jenkinsuser/ ]; then
-        mkdir /var/run/$jenkinsuser/
-        chown $jenkinsuser:$jenkinsuser /var/run/$jenkinsuser/
+        sudo mkdir /var/run/$jenkinsuser/
+        sudo chown $jenkinsuser:$jenkinsuser /var/run/$jenkinsuser/
     fi
 
     if [[ $skip_monit != true ]]; then
index def8e72..ae51e4a 100644 (file)
@@ -16,7 +16,7 @@ angular.module('opnfvApp')
             $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.bottlenecks = "870,192,983,419";
             $scope.noPopArea1 = "26,8,1190,180";
             $scope.noPopArea2 = "1018,193,1190,590";
             $scope.noPopArea3 = "37,455,1003,584";
index 74eb56e..4de4e18 100644 (file)
@@ -20,7 +20,7 @@
                  <area shape="rect" coords={{vsperf}} alt="test" href="{{vsperfurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('vsperf')" />
                   <area shape="rect" coords={{stor}} alt="test" href="{{storperfurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('storperf')"/>
                    <area shape="rect" coords={{qtip}} alt="test" href="{{qtipurl}}"  onmouseover="pop(event)" ng-mouseover="myTrigger('qtip')" />
-                    <area shape="rect" coords={{bootleneck}} alt="test"  href="{{bottlenecksurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('bootlenecks')" />
+                    <area shape="rect" coords={{bottlenecks}} alt="test"  href="{{bottlenecksurl}}" onmouseover="pop(event)" ng-mouseover="myTrigger('bottlenecks')" />
                      <area shape="rect" coords={{noPopArea1}} alt="test" onmouseover="pophide(event)"  />
                       <area shape="rect" coords={{noPopArea2}} alt="test"  onmouseover="pophide(event)"  />
                        <area shape="rect" coords={{noPopArea3}} alt="test"  onmouseover="pophide(event)"  />
             $('#popup').hide();
             return true;
         }
-    </script>
\ No newline at end of file
+    </script>
index 5c98c48..c7fed8f 100644 (file)
@@ -101,55 +101,71 @@ class GenericApiHandler(web.RequestHandler):
     @web.asynchronous
     @gen.coroutine
     def _list(self, query=None, res_op=None, *args, **kwargs):
-        if query is None:
-            query = {}
-        data = []
         sort = kwargs.get('sort')
         page = kwargs.get('page', 0)
         last = kwargs.get('last', 0)
         per_page = kwargs.get('per_page', 0)
-
+        if query is None:
+            query = {}
         cursor = self._eval_db(self.table, 'find', query)
         records_count = yield cursor.count()
-        records_nr = records_count
-        if (records_count > last) and (last > 0):
-            records_nr = last
-
-        pipelines = list()
-        if query:
-            pipelines.append({'$match': query})
-        if sort:
-            pipelines.append({'$sort': sort})
-
-        if page > 0:
-            total_pages, remainder = divmod(records_nr, per_page)
-            if remainder > 0:
-                total_pages += 1
-            pipelines.append({'$skip': (page - 1) * per_page})
-            pipelines.append({'$limit': per_page})
-        elif last > 0:
-            pipelines.append({'$limit': last})
-
+        total_pages = self._calc_total_pages(records_count,
+                                             last,
+                                             page,
+                                             per_page)
+        pipelines = self._set_pipelines(query, sort, last, page, per_page)
         cursor = self._eval_db(self.table,
                                'aggregate',
                                pipelines,
                                allowDiskUse=True)
-
+        data = list()
         while (yield cursor.fetch_next):
             data.append(self.format_data(cursor.next_object()))
         if res_op is None:
             res = {self.table: data}
         else:
             res = res_op(data, *args)
-        if page:
+        if total_pages > 0:
             res.update({
                 'pagination': {
-                    'current_page': page,
+                    'current_page': kwargs.get('page'),
                     'total_pages': total_pages
                 }
             })
         self.finish_request(res)
 
+    @staticmethod
+    def _calc_total_pages(records_count, last, page, per_page):
+        records_nr = records_count
+        if (records_count > last) and (last > 0):
+            records_nr = last
+
+        total_pages = 0
+        if page > 0:
+            total_pages, remainder = divmod(records_nr, per_page)
+            if remainder > 0:
+                total_pages += 1
+        if page > total_pages:
+            raises.BadRequest(
+                'Request page > total_pages [{}]'.format(total_pages))
+        return total_pages
+
+    @staticmethod
+    def _set_pipelines(query, sort, last, page, per_page):
+        pipelines = list()
+        if query:
+            pipelines.append({'$match': query})
+        if sort:
+            pipelines.append({'$sort': sort})
+
+        if page > 0:
+            pipelines.append({'$skip': (page - 1) * per_page})
+            pipelines.append({'$limit': per_page})
+        elif last > 0:
+            pipelines.append({'$limit': last})
+
+        return pipelines
+
     @web.asynchronous
     @gen.coroutine
     @check.not_exist