Merge "SL prometheus support for kqueen metrics"
diff --git a/apache/server/site/barbican.yml b/apache/server/site/barbican.yml
index 78c9f02..55f5cf5 100644
--- a/apache/server/site/barbican.yml
+++ b/apache/server/site/barbican.yml
@@ -30,11 +30,11 @@
             port: 9311
           log:
             custom:
-              format: >-
-                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+              format: 'combined'
+              file: '/var/log/barbican/barbican-api.log'
             error:
               enabled: true
-              format: '%M'
+              file: '/var/log/barbican/barbican-api.log'
         barbican_admin:
           enabled: false
           available: true
@@ -48,3 +48,14 @@
             user: barbican
             group: barbican
             display_name: '%{GROUP}'
+          host:
+            address: ${_param:apache_barbican_api_address}
+            name: ${_param:apache_barbican_api_host}
+            port: 9312
+          log:
+            custom:
+              format: 'combined'
+              file: '/var/log/barbican/barbican-api.log'
+            error:
+              enabled: true
+              file: '/var/log/barbican/barbican-api.log'
diff --git a/ceilometer/server/cluster.yml b/ceilometer/server/cluster.yml
index 11488fb..6f8d3f8 100644
--- a/ceilometer/server/cluster.yml
+++ b/ceilometer/server/cluster.yml
@@ -13,7 +13,7 @@
       secret: ${_param:ceilometer_secret_key}
       ttl: 86400
       publisher:
-        default:
+        default: {}
       bind:
         host: ${_param:cluster_local_address}
         port: 8777
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index 76a077d..6e716f9 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -165,7 +165,7 @@
                 default: "http://127.0.0.1:8080"
               TEST_K8S_CONFORMANCE_IMAGE:
                 type: string
-                default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.7.5-2_1504192939316"
+                default: "docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.8.9-7"
 
               TEST_TEMPEST_IMAGE:
                 type: string
diff --git a/jenkins/client/job/deploy/lab/init.yml b/jenkins/client/job/deploy/lab/init.yml
index 52ec947..6d197a1 100644
--- a/jenkins/client/job/deploy/lab/init.yml
+++ b/jenkins/client/job/deploy/lab/init.yml
@@ -1,6 +1,5 @@
 classes:
   - system.jenkins.client.job.deploy.lab.cicd
-  - system.jenkins.client.job.deploy.lab.test-devops-portal-cicd
   - system.jenkins.client.job.deploy.lab.demo
   - system.jenkins.client.job.deploy.lab.cleanup
   - system.jenkins.client.job.deploy.lab.release.mcp05
diff --git a/jenkins/client/job/deploy/lab/test-devops-portal-cicd.yml b/jenkins/client/job/deploy/lab/test-devops-portal-cicd.yml
deleted file mode 100644
index 8dfc70e..0000000
--- a/jenkins/client/job/deploy/lab/test-devops-portal-cicd.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-parameters:
-  jenkins:
-    client:
-      job_template:
-        deploy_heat_test_cicd:
-          name: deploy-heat-{{name}}
-          jobs:
-            - name: test-cicd-lab-dev
-              lab: cicd_lab_dev
-          template:
-            type: workflow-scm
-            concurrent: true
-            display_name: "Deploy {{name}} heat stack"
-            scm:
-              type: git
-              url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
-              credentials: "gerrit"
-              script: test-func-devops-portal-pipeline.groovy
-            param:
-              # heat
-              HEAT_STACK_DELETE:
-                type: boolean
-                default: 'true'
-                description: "Delete heat stack at the end of job"
-              HEAT_STACK_REUSE:
-                type: boolean
-                default: 'false'
-                description: "Reuse existing stack and only orchestrate deployment"
-              HEAT_STACK_KEEP_INTACT:
-                type: boolean
-                default: 'false'
-                description: "Save current deployment status without re-orchestrating"
-              HEAT_TEMPLATE_URL:
-                type: string
-                default: "${_param:jenkins_gerrit_url}/mk/heat-templates"
-              HEAT_TEMPLATE_CREDENTIALS:
-                type: string
-                default: "gerrit"
-              HEAT_TEMPLATE_BRANCH:
-                type: string
-                default: "master"
-              HEAT_STACK_NAME:
-                type: string
-                description: Heat stack name. Will be generated if missing.
-              HEAT_STACK_TEMPLATE:
-                type: string
-                default: "{{lab}}"
-              HEAT_STACK_ENVIRONMENT:
-                type: string
-                default: "devcloud"
-              HEAT_STACK_ZONE:
-                type: string
-                default: "mcp-oss"
-              HEAT_STACK_PUBLIC_NET:
-                type: string
-                default: "public"
-
-              # salt master
-              SALT_MASTER_CREDENTIALS:
-                type: string
-                default: "salt-qa-credentials"
-              SSH_PUBLIC_KEY:
-                type: string
-                description: "User's public SSH key to be able to login when stack is deployed"
-
-              # openstack api
-              OPENSTACK_API_URL:
-                type: string
-                default: "https://cloud-cz.bud.mirantis.net:5000"
-              OPENSTACK_API_CREDENTIALS:
-                type: string
-                default: "openstack-devcloud-credentials"
-              OPENSTACK_API_PROJECT:
-                type: string
-                default: "mcp-oss"
-              OPENSTACK_API_CLIENT:
-                type: string
-                default: ""
-              OPENSTACK_API_VERSION:
-                type: string
-                default: "3"
-              OPENSTACK_API_PROJECT_DOMAIN:
-                type: string
-                default: "default"
-              OPENSTACK_API_USER_DOMAIN_ID:
-                type: string
-                default: "default"
-              OPENSTACK_API_PROJECT_ID:
-                type: string
-                default: ""
-              OPENSTACK_API_USER_DOMAIN:
-                type: string
-                default: "default"
-
-              # devops-portal-tests
-              DEVOPS_PORTAL_TESTS_URL:
-                type: string
-                default: "${_param:jenkins_gerrit_url}/oss/devops-portal-tests"
-              DEVOPS_PORTAL_TESTS_CREDENTIALS:
-                type: string
-                default: "gerrit"
-              DEVOPS_PORTAL_TESTS_BRANCH:
-                type: string
-                default: "master"
-              DEVOPS_PORTAL_TESTS_RUN_LOCAL:
-                type: boolean
-                default: 'true'
-                description: "Run on swarm master node"
-              DEVOPS_PORTAL_TESTS_CONFIG:
-                type: string
-                description: "Path to the service-configuration file in json-format"
-              DEVOPS_PORTAL_TESTS_MARK:
-                type: string
-                default: "ALL"
-                description: "Mark specific tests to run: healthcheck, functional (default = all)"
diff --git a/jenkins/client/job/deploy/update/cloud_update.yml b/jenkins/client/job/deploy/update/cloud_update.yml
new file mode 100644
index 0000000..8fc84ee
--- /dev/null
+++ b/jenkins/client/job/deploy/update/cloud_update.yml
@@ -0,0 +1,150 @@
+#
+# Jobs to update cloud packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-update-cloud:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - update cloud"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
+            credentials: "gerrit"
+            script: cloud-update.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            SNAPSHOT_NAME:
+              type: string
+              default: "updateSnapshot1"
+              description: "Live snapshot name"
+            CFG_NODE_PROVIDER:
+              type: string
+              default: ""
+              description: "Physical machine hosting Salt-Master VM (ex. kvm01*)"
+            INTERACTIVE:
+              type: boolean
+              default: 'false'
+              description: "Ask interactive questions during pipeline run"
+            PER_NODE:
+              type: boolean
+              default: 'true'
+              description: "Target nodes will be managed one by one"
+            ROLLBACK_BY_REDEPLOY:
+              type: boolean
+              default: 'false'
+              description: "Omit taking live snapshots. Rollback is planned to be done by redeployment"
+            STOP_SERVICES:
+              type: boolean
+              default: 'true'
+              description: "Stop API services before update"
+            TARGET_UPDATES:
+              type: string
+              default: "cfg,ctl,prx,msg,dbs"
+              description: "Comma separated list of nodes to update (Valid values are cfg,ctl,prx,msg,dbs,log,mon,mtr,ntw,nal,gtw-virtual,cmn,rgw,cid,cmp,kvm,osd,gtw-physical)"
+            TARGET_ROLLBACKS:
+              type: string
+              default: ""
+              description: "Comma separated list of nodes to rollback (Valid values are ctl,prx,msg,dbs,log,mon,mtr,ntw,nal,gtw-virtual,cmn,rgw,cmp,kvm,osd,gtw-physical)"
+            TARGET_MERGES:
+              type: string
+              default: ""
+              description: "Comma separated list of nodes to merge (Valid values are cfg,ctl,prx,msg,dbs,log,mon,mtr,ntw,nal,gtw-virtual,cmn,rgw,cid)"
+            CTL_TARGET:
+              type: string
+              default: "ctl*"
+              description: "Salt targeted CTL nodes (ex. ctl*)"
+            PRX_TARGET:
+              type: string
+              default: "prx*"
+              description: "Salt targeted PRX nodes (ex. prx*)"
+            MSG_TARGET:
+              type: string
+              default: "msg*"
+              description: "Salt targeted MSG nodes (ex. msg*)"
+            DBS_TARGET:
+              type: string
+              default: "dbs*"
+              description: "Salt targeted DBS nodes (ex. dbs*)"
+            LOG_TARGET:
+              type: string
+              default: "log*"
+              description: "Salt targeted LOG nodes (ex. log*)"
+            MON_TARGET:
+              type: string
+              default: "mon*"
+              description: "Salt targeted MON nodes (ex. mon*)"
+            MTR_TARGET:
+              type: string
+              default: "mtr*"
+              description: "Salt targeted MTR nodes (ex. mtr*)"
+            NTW_TARGET:
+              type: string
+              default: "ntw*"
+              description: "Salt targeted NTW nodes (ex. ntw*)"
+            NAL_TARGET:
+              type: string
+              default: "nal*"
+              description: "Salt targeted NAL nodes (ex. nal*)"
+            CMN_TARGET:
+              type: string
+              default: "cmn*"
+              description: "Salt targeted CMN nodes (ex. cmn*)"
+            RGW_TARGET:
+              type: string
+              default: "rgw*"
+              description: "Salt targeted RGW nodes (ex. rgw*)"
+            CID_TARGET:
+              type: string
+              default: "cid*"
+              description: "Salt targeted CID nodes (ex. cid*)"
+            CMP_TARGET:
+              type: string
+              default: "cmp001*"
+              description: "Salt targeted physical compute nodes (ex. cmp001*)"
+            KVM_TARGET:
+              type: string
+              default: "kvm01*"
+              description: "Salt targeted physical KVM nodes (ex. kvm01*)"
+            CEPH_OSD_TARGET:
+              type: string
+              default: "osd001*"
+              description: "Salt targeted physical Ceph OSD nodes (ex. osd001*)"
+            GTW_TARGET:
+              type: string
+              default: "gtw01*"
+              description: "Salt targeted physical or virtual GTW nodes (ex. gtw01*)"
+            REBOOT:
+              type: boolean
+              default: 'false'
+              description: "Reboot nodes after update"
+            ROLLBACK_PKG_VERSIONS:
+              type: string
+              default: ""
+              description: "Space separated list of pkgs=versions to rollback to on physical targeted machines (ex. pkg_name1=pkg_version1 pkg_name2=pkg_version2)"
+            PURGE_PKGS:
+              type: string
+              default: ""
+              description: "Space separated list of pkgs=versions to be purged on physical targeted machines (ex. pkg_name1=pkg_version1 pkg_name2=pkg_version2)"
+            REMOVE_PKGS:
+              type: string
+              default: ""
+              description: "Space separated list of pkgs=versions to be removed on physical targeted machines (ex. pkg_name1=pkg_version1 pkg_name2=pkg_version2)"
+            RESTORE_GALERA:
+              type: boolean
+              default: 'false'
+              description: "Restore Galera DB"
+            RESTORE_CONTRAIL_DB:
+              type: boolean
+              default: 'false'
+              description: "Restore Cassandra and Zookeeper DBs for OpenContrail"
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index 0b10ff2..fb1f5cf 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -14,3 +14,4 @@
   - system.jenkins.client.job.deploy.update.restore_cassandra
   - system.jenkins.client.job.deploy.update.restore_zookeeper
   - system.jenkins.client.job.deploy.update.virt_snapshot
+  - system.jenkins.client.job.deploy.update.cloud_update
diff --git a/jenkins/client/job/opencontrail/git-mirrors/upstream.yml b/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
index af4c6ac..0f60c76 100644
--- a/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
+++ b/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
@@ -46,6 +46,8 @@
               branches: ${_param:contrail_dpdk_extra_branches}
             - name: contrail-dpdk
               branches: ${_param:contrail_dpdk_branches}
+            - name: contrail-third-party-cache-fixup
+              branches: ${_param:contrail_third_party_cache_fixup_branches}
           template:
             discard:
               build:
diff --git a/jenkins/client/job/opencontrail/init.yml b/jenkins/client/job/opencontrail/init.yml
index 34cc4e5..d2ecdb6 100644
--- a/jenkins/client/job/opencontrail/init.yml
+++ b/jenkins/client/job/opencontrail/init.yml
@@ -9,6 +9,7 @@
     contrail_ceilometer_plugin_branches: "master,R4.0,R4.1"
     contrail_kubernetes_branches: "master,origin-1.1,origin-1.1.3,release-1.1,release-1.2"
     contrail_dpdk_branches: "master,R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,R3.2.3.x,R4.0,R4.0.1,R4.1,contrail_dpdk_17_02,contrail_dpdk_17_05,contrail_dpdk_1_7,contrail_dpdk_2_0,contrail_dpdk_2_1"
+    contrail_third_party_cache_fixup_branches: "master"
   jenkins:
     client:
       view:
diff --git a/jenkins/client/job/oss/init.yml b/jenkins/client/job/oss/init.yml
index 9478ffd..5aecb0b 100644
--- a/jenkins/client/job/oss/init.yml
+++ b/jenkins/client/job/oss/init.yml
@@ -1,5 +1,6 @@
 classes:
   - system.jenkins.client.job.oss.test_devops_portal
+  - system.jenkins.client.job.oss.test_devops_portal_backend
   - system.jenkins.client.job.oss.test_devops_portal_nightly
   - system.jenkins.client.job.oss.test_pushkin_codebase
   - system.jenkins.client.job.oss.test_security_monkey_openstack
diff --git a/jenkins/client/job/oss/test_devops_portal_backend.yml b/jenkins/client/job/oss/test_devops_portal_backend.yml
new file mode 100644
index 0000000..26b1a87
--- /dev/null
+++ b/jenkins/client/job/oss/test_devops_portal_backend.yml
@@ -0,0 +1,104 @@
+parameters:
+  jenkins:
+    client:
+      job_template:
+        test-oss-devops-portal-backend:
+          name: test-oss-devops-portal-backend
+          discard:
+            build:
+              keep_num: 15
+            artifact:
+              keep_num: 15
+          template:
+            type: workflow-scm
+            concurrent: true
+            scm:
+              type: git
+              url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+              credentials: "gerrit"
+              script: test-devops-portal-backend-pipeline.groovy
+            param:
+              # heat
+              HEAT_STACK_NAME:
+                type: string
+                description: Heat stack name. Will be generated if missing.
+
+              # salt master
+              SALT_MASTER_CREDENTIALS:
+                type: string
+                default: "salt-qa-credentials"
+              SSH_PUBLIC_KEY:
+                type: string
+                description: "User's public SSH key to be able to login when stack is deployed"
+
+              # openstack api
+              OPENSTACK_API_URL:
+                type: string
+                default: "https://cloud-cz.bud.mirantis.net:5000"
+              OPENSTACK_API_CREDENTIALS:
+                type: string
+                default: "openstack-devcloud-credentials"
+              OPENSTACK_API_PROJECT:
+                type: string
+                default: "mcp-oss"
+              OPENSTACK_API_CLIENT:
+                type: string
+                default: ""
+              OPENSTACK_API_VERSION:
+                type: string
+                default: "3"
+              OPENSTACK_API_PROJECT_DOMAIN:
+                type: string
+                default: "default"
+              OPENSTACK_API_USER_DOMAIN_ID:
+                type: string
+                default: "default"
+              OPENSTACK_API_PROJECT_ID:
+                type: string
+                default: ""
+              OPENSTACK_API_USER_DOMAIN:
+                type: string
+                default: "default"
+
+              # devops-portal-tests
+              DEVOPS_PORTAL_TESTS_URL:
+                type: string
+                default: "${_param:jenkins_gerrit_url}/oss/devops-portal-tests"
+              DEVOPS_PORTAL_TESTS_CREDENTIALS:
+                type: string
+                default: "gerrit"
+              DEVOPS_PORTAL_TESTS_BRANCH:
+                type: string
+                default: "master"
+              DEVOPS_PORTAL_BIND_IP:
+                type: string
+                default: "0.0.0.0"
+              DEVOPS_PORTAL_BIND_PORT:
+                type: string
+                default: "8012"
+
+            # testrail
+            TESTRAIL_REPORT:
+                type: boolean
+                default: false
+            TESTRAIL_URL:
+                type: string
+                default: "https://mirantis.testrail.com"
+            TESTRAIL_QA_CREDENTIALS:
+                type: string
+                default: "oscore-qa-credentials"
+            TESTRAIL_PROJECT:
+                type: string
+                default: "Mirantis Cloud Platform"
+            TESTRAIL_PLAN:
+                type: string
+                default: "[MCP] [Auto] DevOps Portal"
+            TESTRAIL_SUITE:
+                type: string
+                default: "[MCP] DevOps Portal"
+            TESTRAIL_MILESTONE:
+                type: string
+                default: "MCP-Q18.1"
+            TESTRAIL_RUN:
+                type: string
+                default: "[MCP] [Auto] DevOps Portal test run"
diff --git a/jenkins/client/job/oss/test_devops_portal_nightly.yml b/jenkins/client/job/oss/test_devops_portal_nightly.yml
index 34a8bec..b654846 100644
--- a/jenkins/client/job/oss/test_devops_portal_nightly.yml
+++ b/jenkins/client/job/oss/test_devops_portal_nightly.yml
@@ -32,3 +32,27 @@
             NIGHTLY_BUILD:
                 type: boolean
                 default: true
+            TESTRAIL_REPORT:
+                type: boolean
+                default: false
+            TESTRAIL_URL:
+                type: string
+                default: "https://mirantis.testrail.com"
+            TESTRAIL_QA_CREDENTIALS:
+                type: string
+                default: "oscore-qa-credentials"
+            TESTRAIL_PROJECT:
+                type: string
+                default: "Mirantis Cloud Platform"
+            TESTRAIL_PLAN:
+                type: string
+                default: "[MCP] [Auto] DevOps Portal"
+            TESTRAIL_SUITE:
+                type: string
+                default: "[MCP] DevOps Portal"
+            TESTRAIL_MILESTONE:
+                type: string
+                default: "MCP-Q18.1"
+            TESTRAIL_RUN:
+                type: string
+                default: "[MCP] [Auto] DevOps Portal test run"
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
index 35df28b..bebc115 100644
--- a/jenkins/client/job/salt-models/tests.yml
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -67,6 +67,9 @@
               CONFIG_NODE_NAME_PATTERN:
                 type: string
                 default: "{{config_node_name}}"
+              RECLASS_VERSION:
+                type: string
+                default: "master"
               MAX_CPU_PER_JOB:
                 type: string
                 default: "2"
@@ -180,6 +183,10 @@
               RECLASS_IGNORE_CLASS_NOTFOUND:
                 type: boolean
                 default: "{{reclass_ignore_class_notfound}}"
+              RECLASS_VERSION:
+                type: string
+                default: "master"
+                description: "Version (branch) of Reclass we will use"
               LEGACY_TEST_MODE:
                 type: boolean
                 default: "{{legacy_test_mode}}"
@@ -341,6 +348,10 @@
             SYSTEM_GIT_REF:
               type: string
               default: ""
+            RECLASS_VERSION:
+              type: string
+              default: "master"
+              description: "Version (branch) of Reclass we will use"
             MAX_CPU_PER_JOB:
               type: string
               default: "2"
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
index b0546c3..168dcfd 100644
--- a/jenkins/client/job/validate.yml
+++ b/jenkins/client/job/validate.yml
@@ -234,7 +234,7 @@
             TEMPEST_TEST_PATTERN:
               type: string
               default: "set=smoke"
-              description: Use set=smoke (or identity,full...] or just test name
+              description: Use set=smoke (or identity,full...) or just test name
             TEMPEST_ENDPOINT_TYPE:
               type: choice
               choices:
@@ -276,11 +276,11 @@
               description: Credentials to the Salt API
             TEMPEST_TARGET_NODE:
               type: string
-              default: ""
+              default: "${_param:cicd_control_node03_hostname}.${_param:cluster_domain}"
               description: Node where container with tempest will be run
             TEST_IMAGE:
               type: string
-              default: "rallyforge/rally"
+              default: "xrally/xrally-openstack:0.9.1"
               description: Docker image to use for running Rally/Tempest
             TARGET_NODES:
               type: string
@@ -296,7 +296,7 @@
               description: If you have any problems with timeouts (e.g. while waiting for node to be up/down), please increase this value
             SKIP_LIST_PATH:
               type: string
-              default: "/home/rally/cvp-configuration/tempest/skip-list.yaml"
+              default: "cvp-configuration/tempest/skip-list.yaml"
               description: path to skip-list file inside container
             PROXY:
               type: string
@@ -305,7 +305,7 @@
             TEMPEST_TEST_PATTERN:
               type: string
               default: "set=smoke"
-              description: Use set=smoke (or identity,full...] or just test name
+              description: Use set=smoke (or identity,full...) or just test name
             MANUAL_CONFIRMATION:
               type: boolean
               default: 'false'
@@ -316,7 +316,7 @@
               description: Can be repo url (local or remote) or path to folder (inside container) with Tempest
             TOOLS_REPO:
               type: string
-              default: "${_param:gerrit_public_host}/cvp-configuration"
+              default: "https://github.com/Mirantis/cvp-configuration"
               description: URL of repo where testing tools, scenarios, configs are located.
         cvp-perf:
           type: workflow-scm