Merge "Do not use fixture salt_deployed where it is not needed"
diff --git a/tcp_tests/managers/envmanager_heat.py b/tcp_tests/managers/envmanager_heat.py
index 9ee26a6..77ba079 100644
--- a/tcp_tests/managers/envmanager_heat.py
+++ b/tcp_tests/managers/envmanager_heat.py
@@ -530,11 +530,10 @@
 
         if env_files_list:
             fields['environment_files'] = env_files_list
-
         self.__stacks.create(**fields)
         self.wait_of_stack_status(EXPECTED_STACK_STATUS, tries=140)
-        LOG.info("Stack '{0}' created"
-                 .format(self.__config.hardware.heat_stack_name))
+        LOG.info("Stack '{0}' created".format(
+            self.__config.hardware.heat_stack_name))
 
     def stop(self):
         """Stop environment"""
diff --git a/tcp_tests/templates/_heat_environments/eu-cloud.env b/tcp_tests/templates/_heat_environments/eu-cloud.env
index e053283..7f670c5 100644
--- a/tcp_tests/templates/_heat_environments/eu-cloud.env
+++ b/tcp_tests/templates/_heat_environments/eu-cloud.env
@@ -19,6 +19,7 @@
   dbs_flavor: system.compact.openstack.database
   msg_flavor: system.compact.openstack.message_queue
   mon_flavor: system.compact.stacklight.server
+  mdb_flavor: system.compact.openstack.telemetry
   log_flavor: system.compact.stacklight.log
   mtr_flavor: system.compact.stacklight.telemetry
   cmp_flavor: system.virtual.openstack.compute
diff --git a/tcp_tests/templates/bm-cicd-pike-ovs-maas/salt-context-cookiecutter-openstack_ovs.yaml b/tcp_tests/templates/bm-cicd-pike-ovs-maas/salt-context-cookiecutter-openstack_ovs.yaml
index b9c826d..a1a81ad 100644
--- a/tcp_tests/templates/bm-cicd-pike-ovs-maas/salt-context-cookiecutter-openstack_ovs.yaml
+++ b/tcp_tests/templates/bm-cicd-pike-ovs-maas/salt-context-cookiecutter-openstack_ovs.yaml
@@ -932,3 +932,13 @@
   octavia_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2Oc8MmxBOgcG2ioijXmZ1Jil+LzPoMUyLwZujQoI3fc5Sfm45y1t22NR966G8jqnHVIKe/JaLT0W3x5bCr4rAsIYptTEu+oqW24nsrcsisZeS36apk3g71cp5Up9kf6ZBaSTFFaBfavxEo1XcaR0213vhWOE/5HpdIolDVnxvt4czXS/oiNNj+M9zOMr57IJ4SPiptKdXx4qWouGGq65JBGZQ7YNFKMtV2l1/YEHj8F1YWwNg6ZfuZvySkSv29D5zUkoxcPAPp6HPJTyQT7WRWbnM54TLgd1ggym9R83j0/VqdFXYhJDVkT6vbYgAwqXS16SsYfR7/U0/UMXmsg0z
   cinder_backup_engine: 'ceph'
   cinder_ceph_backup_pool_name: 'backups'
+  openstack_keystone_security:
+    disable_user_account_days_inactive: 7
+    lockout_failure_attempts: 60
+    lockout_duration: 600
+    password_expires_days: 730
+    unique_last_password_count: 5
+    minimum_password_age: 0
+    password_regex: "'^[a-zA-Z0-9~!@#%^&\\*_=+]{32,}$$'"
+    password_regex_description: "Your password could contains capital letters, lowercase letters, digits, symbols '~ ! @ # % ^ & * _ = +' and have a minimum length of 32 characters"
+    change_password_upon_first_use: False
\ No newline at end of file
diff --git a/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-cookiecutter.yaml b/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-cookiecutter.yaml
index 213ca41..5fc114a 100644
--- a/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-cookiecutter.yaml
+++ b/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-cookiecutter.yaml
@@ -250,7 +250,7 @@
   tenant_network_gateway: 10.167.6.1
   tenant_network_netmask: 255.255.255.0
   tenant_network_subnet: 10.167.6.0/24
-  tenant_telemetry_enabled: 'False'
+  tenant_telemetry_enabled: 'True'
   tenant_vlan: '20'
   upstream_proxy_enabled: 'False'
   use_default_network_scheme: 'True'
@@ -355,14 +355,24 @@
     -----END RSA PRIVATE KEY-----
   octavia_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2Oc8MmxBOgcG2ioijXmZ1Jil+LzPoMUyLwZujQoI3fc5Sfm45y1t22NR966G8jqnHVIKe/JaLT0W3x5bCr4rAsIYptTEu+oqW24nsrcsisZeS36apk3g71cp5Up9kf6ZBaSTFFaBfavxEo1XcaR0213vhWOE/5HpdIolDVnxvt4czXS/oiNNj+M9zOMr57IJ4SPiptKdXx4qWouGGq65JBGZQ7YNFKMtV2l1/YEHj8F1YWwNg6ZfuZvySkSv29D5zUkoxcPAPp6HPJTyQT7WRWbnM54TLgd1ggym9R83j0/VqdFXYhJDVkT6vbYgAwqXS16SsYfR7/U0/UMXmsg0z
   openstack_octavia_enabled: 'True'
-  octavia_health_manager_node01_address: 192.168.1.10
-  octavia_health_manager_node02_address: 192.168.1.11
-  octavia_health_manager_node03_address: 192.168.1.12
+  octavia_health_manager_node01_address: 192.168.10.10
+  octavia_health_manager_node02_address: 192.168.10.11
+  octavia_health_manager_node03_address: 192.168.10.12
   octavia_manager_cluster: 'True'
-  octavia_hm_bind_ip: 192.168.1.12
-  octavia_lb_mgmt_cidr: 192.168.1.0/24
-  octavia_lb_mgmt_allocation_pool_start: 192.168.1.2
-  octavia_lb_mgmt_allocation_pool_end: 192.168.1.200
+  octavia_hm_bind_ip: 192.168.10.12
+  octavia_lb_mgmt_cidr: 192.168.10.0/24
+  octavia_lb_mgmt_allocation_pool_start: 192.168.10.2
+  octavia_lb_mgmt_allocation_pool_end: 192.168.10.200
   cinder_backup_engine: 'ceph'
   cinder_ceph_backup_pool_name: 'backups'
-  jenkins_pipelines_branch: 'release/2019.2.0'
\ No newline at end of file
+  jenkins_pipelines_branch: 'release/2019.2.0'
+  openstack_keystone_security:
+    disable_user_account_days_inactive: 7
+    lockout_failure_attempts: 60
+    lockout_duration: 600
+    password_expires_days: 730
+    unique_last_password_count: 5
+    minimum_password_age: 0
+    password_regex: "'^[a-zA-Z0-9~!@#%^&\\*_=+]{32,}$$'"
+    password_regex_description: "Your password could contains capital letters, lowercase letters, digits, symbols '~ ! @ # % ^ & * _ = +' and have a minimum length of 32 characters"
+    change_password_upon_first_use: False
\ No newline at end of file
diff --git a/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-environment.yaml b/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-environment.yaml
index 76c4cf1..25d2e76 100644
--- a/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-environment.yaml
+++ b/tcp_tests/templates/heat-cicd-pike-dvr-sl/salt-context-environment.yaml
@@ -499,3 +499,35 @@
         ens4:
           role: single_ctl
 
+    mdb01:
+      reclass_storage_name: openstack_telemetry_node01
+      roles:
+      - linux_system_codename_xenial
+      - openstack_telemetry
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
+    mdb02:
+      reclass_storage_name: openstack_telemetry_node02
+      roles:
+      - linux_system_codename_xenial
+      - openstack_telemetry
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
+    mdb03:
+      reclass_storage_name: openstack_telemetry_node03
+      roles:
+      - linux_system_codename_xenial
+      - openstack_telemetry
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
diff --git a/tcp_tests/templates/heat-cicd-pike-dvr-sl/underlay.hot b/tcp_tests/templates/heat-cicd-pike-dvr-sl/underlay.hot
index be3f68b..ea0cb7a 100644
--- a/tcp_tests/templates/heat-cicd-pike-dvr-sl/underlay.hot
+++ b/tcp_tests/templates/heat-cicd-pike-dvr-sl/underlay.hot
@@ -64,6 +64,8 @@
     type: string
   prx_flavor:
     type: string
+  mdb_flavor:
+    type: string
 
   net_public:
     type: string
@@ -959,6 +961,58 @@
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
+  openstack_telemetry_cluster:
+    type: MCP::MultipleInstance
+    depends_on: [control_cluster]
+    properties:
+      env_name: { get_param: env_name }
+      mcp_version: { get_param: mcp_version }
+      instance_domain: {get_param: instance_domain}
+      instance01_name: mdb01
+      instance02_name: mdb02
+      instance03_name: mdb03
+      instance_flavor: {get_param: mdb_flavor}
+      network: { get_attr: [networks, network] }
+      underlay_userdata: { get_file: ./underlay-userdata.yaml }
+      instance01_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '84' ]
+      instance02_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '85' ]
+      instance03_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '86' ]
+      instance01_tenant_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, tenant_net_prefix] }, '84' ]
+      instance02_tenant_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, tenant_net_prefix] }, '85' ]
+      instance03_tenant_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, tenant_net_prefix] }, '86' ]
+      instance01_external_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, external_net_prefix] }, '84' ]
+      instance02_external_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, external_net_prefix] }, '85' ]
+      instance03_external_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, external_net_prefix] }, '86' ]
+
+      instance_config_host: { get_attr: [cfg01_node, instance_address] }
+
 outputs:
 
   control_subnet_cidr:
diff --git a/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-cookiecutter.yaml b/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-cookiecutter.yaml
index b05f2fd..aa79b74 100644
--- a/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-cookiecutter.yaml
+++ b/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-cookiecutter.yaml
@@ -256,6 +256,7 @@
   use_default_network_scheme: 'True'
   version: proposed
   vnf_onboarding_enabled: 'False'
+  tenant_telemetry_enabled: 'True'
   openstack_telemetry_address: 10.167.4.83
   openstack_telemetry_hostname: mdb
   openstack_telemetry_node01_address: 10.167.4.84
@@ -356,14 +357,24 @@
     -----END RSA PRIVATE KEY-----
   octavia_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2Oc8MmxBOgcG2ioijXmZ1Jil+LzPoMUyLwZujQoI3fc5Sfm45y1t22NR966G8jqnHVIKe/JaLT0W3x5bCr4rAsIYptTEu+oqW24nsrcsisZeS36apk3g71cp5Up9kf6ZBaSTFFaBfavxEo1XcaR0213vhWOE/5HpdIolDVnxvt4czXS/oiNNj+M9zOMr57IJ4SPiptKdXx4qWouGGq65JBGZQ7YNFKMtV2l1/YEHj8F1YWwNg6ZfuZvySkSv29D5zUkoxcPAPp6HPJTyQT7WRWbnM54TLgd1ggym9R83j0/VqdFXYhJDVkT6vbYgAwqXS16SsYfR7/U0/UMXmsg0z
   openstack_octavia_enabled: 'True'
-  octavia_health_manager_node01_address: 192.168.1.10
-  octavia_health_manager_node02_address: 192.168.1.11
-  octavia_health_manager_node03_address: 192.168.1.12
+  octavia_health_manager_node01_address: 192.168.10.10
+  octavia_health_manager_node02_address: 192.168.10.11
+  octavia_health_manager_node03_address: 192.168.10.12
   octavia_manager_cluster: 'True'
-  octavia_hm_bind_ip: 192.168.1.12
-  octavia_lb_mgmt_cidr: 192.168.1.0/24
-  octavia_lb_mgmt_allocation_pool_start: 192.168.1.2
-  octavia_lb_mgmt_allocation_pool_end: 192.168.1.200
+  octavia_hm_bind_ip: 192.168.10.12
+  octavia_lb_mgmt_cidr: 192.168.10.0/24
+  octavia_lb_mgmt_allocation_pool_start: 192.168.10.2
+  octavia_lb_mgmt_allocation_pool_end: 192.168.10.200
   cinder_backup_engine: 'ceph'
   cinder_ceph_backup_pool_name: 'backups'
-  jenkins_pipelines_branch: 'release/2019.2.0'
\ No newline at end of file
+  jenkins_pipelines_branch: 'release/2019.2.0'
+  openstack_keystone_security:
+    disable_user_account_days_inactive: 7
+    lockout_failure_attempts: 60
+    lockout_duration: 600
+    password_expires_days: 730
+    unique_last_password_count: 5
+    minimum_password_age: 0
+    password_regex: "'^[a-zA-Z0-9~!@#%^&\\*_=+]{32,}$$'"
+    password_regex_description: "Your password could contains capital letters, lowercase letters, digits, symbols '~ ! @ # % ^ & * _ = +' and have a minimum length of 32 characters"
+    change_password_upon_first_use: False
\ No newline at end of file
diff --git a/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-environment.yaml b/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-environment.yaml
index 6b3ca8e..25d2e76 100644
--- a/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-environment.yaml
+++ b/tcp_tests/templates/heat-cicd-queens-dvr-sl/salt-context-environment.yaml
@@ -498,3 +498,36 @@
           role: single_dhcp
         ens4:
           role: single_ctl
+
+    mdb01:
+      reclass_storage_name: openstack_telemetry_node01
+      roles:
+      - linux_system_codename_xenial
+      - openstack_telemetry
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
+    mdb02:
+      reclass_storage_name: openstack_telemetry_node02
+      roles:
+      - linux_system_codename_xenial
+      - openstack_telemetry
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
+    mdb03:
+      reclass_storage_name: openstack_telemetry_node03
+      roles:
+      - linux_system_codename_xenial
+      - openstack_telemetry
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
diff --git a/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot b/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot
index 7f1602d..f759b3a 100644
--- a/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot
+++ b/tcp_tests/templates/heat-cicd-queens-dvr-sl/underlay.hot
@@ -64,6 +64,8 @@
     type: string
   prx_flavor:
     type: string
+  mdb_flavor:
+    type: string
 
   net_public:
     type: string
@@ -959,6 +961,58 @@
 
       instance_config_host: { get_attr: [cfg01_node, instance_address] }
 
+  openstack_telemetry_cluster:
+    type: MCP::MultipleInstance
+    depends_on: [control_cluster]
+    properties:
+      env_name: { get_param: env_name }
+      mcp_version: { get_param: mcp_version }
+      instance_domain: {get_param: instance_domain}
+      instance01_name: mdb01
+      instance02_name: mdb02
+      instance03_name: mdb03
+      instance_flavor: {get_param: mdb_flavor}
+      network: { get_attr: [networks, network] }
+      underlay_userdata: { get_file: ./underlay-userdata.yaml }
+      instance01_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '84' ]
+      instance02_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '85' ]
+      instance03_control_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, control_net_prefix] }, '86' ]
+      instance01_tenant_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, tenant_net_prefix] }, '84' ]
+      instance02_tenant_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, tenant_net_prefix] }, '85' ]
+      instance03_tenant_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, tenant_net_prefix] }, '86' ]
+      instance01_external_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, external_net_prefix] }, '84' ]
+      instance02_external_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, external_net_prefix] }, '85' ]
+      instance03_external_net_static_ip:
+        list_join:
+        - '.'
+        - [ { get_attr: [networks, external_net_prefix] }, '86' ]
+
+      instance_config_host: { get_attr: [cfg01_node, instance_address] }
+
 outputs:
 
   control_subnet_cidr: