Merge "Adds stop and disable for libvirtd on upgrade to containers"
authorJenkins <jenkins@review.openstack.org>
Wed, 2 Aug 2017 01:29:22 +0000 (01:29 +0000)
committerGerrit Code Review <review@openstack.org>
Wed, 2 Aug 2017 01:29:22 +0000 (01:29 +0000)
44 files changed:
docker/services/aodh-api.yaml
docker/services/aodh-evaluator.yaml
docker/services/aodh-listener.yaml
docker/services/aodh-notifier.yaml
docker/services/cinder-api.yaml
docker/services/cinder-backup.yaml
docker/services/cinder-scheduler.yaml
docker/services/cinder-volume.yaml
docker/services/congress.yaml
docker/services/database/mysql-client.yaml [deleted file]
docker/services/ec2-api.yaml
docker/services/glance-api.yaml
docker/services/gnocchi-metricd.yaml
docker/services/gnocchi-statsd.yaml
docker/services/heat-engine.yaml
docker/services/ironic-api.yaml
docker/services/ironic-conductor.yaml
docker/services/keystone.yaml
docker/services/manila-api.yaml
docker/services/manila-scheduler.yaml
docker/services/manila-share.yaml
docker/services/mistral-api.yaml
docker/services/mistral-engine.yaml
docker/services/mistral-executor.yaml
docker/services/neutron-api.yaml
docker/services/nova-api.yaml
docker/services/nova-compute.yaml
docker/services/nova-conductor.yaml
docker/services/nova-consoleauth.yaml
docker/services/nova-ironic.yaml
docker/services/nova-libvirt.yaml
docker/services/nova-placement.yaml
docker/services/nova-scheduler.yaml
docker/services/nova-vnc-proxy.yaml
docker/services/octavia-api.yaml
docker/services/pacemaker/cinder-backup.yaml
docker/services/pacemaker/cinder-volume.yaml
docker/services/panko-api.yaml
docker/services/sahara-api.yaml
docker/services/sahara-engine.yaml
docker/services/tacker.yaml
docker/services/zaqar.yaml
environments/docker.yaml
tools/yaml-validate.py

index 70b43eb..8afb6d2 100644 (file)
@@ -49,6 +49,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhApiPuppetBase:
       type: ../../puppet/services/aodh-api.yaml
       properties:
@@ -68,7 +71,10 @@ outputs:
           - get_attr: [AodhApiPuppetBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [AodhApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index f75c57b..86bdfdf 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhEvaluatorBase:
     type: ../../puppet/services/aodh-evaluator.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [AodhEvaluatorBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [AodhEvaluatorBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhEvaluatorBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhEvaluatorBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 9db2ffb..3f986ab 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhListenerBase:
     type: ../../puppet/services/aodh-listener.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [AodhListenerBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [AodhListenerBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhListenerBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhListenerBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index c16c016..852120c 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhNotifierBase:
     type: ../../puppet/services/aodh-notifier.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [AodhNotifierBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [AodhNotifierBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhNotifierBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhNotifierBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 7804fdb..48faaf9 100644 (file)
@@ -49,6 +49,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-api.yaml
     properties:
@@ -66,7 +69,10 @@ outputs:
       service_name: {get_attr: [CinderBase, role_data, service_name]}
       config_settings: {get_attr: [CinderBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [CinderBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CinderBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
@@ -166,6 +172,8 @@ outputs:
             environment:
               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
 
+      metadata_settings:
+        get_attr: [CinderBase, role_data, metadata_settings]
       host_prep_tasks:
         - name: create persistent logs directory
           file:
index de637f3..33147d2 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-backup.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
       service_name: {get_attr: [CinderBase, role_data, service_name]}
       config_settings: {get_attr: [CinderBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [CinderBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CinderBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 1bae005..1ac3187 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-scheduler.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
       service_name: {get_attr: [CinderBase, role_data, service_name]}
       config_settings: {get_attr: [CinderBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [CinderBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CinderBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index ce81fbf..2ead0d5 100644 (file)
@@ -51,6 +51,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-volume.yaml
     properties:
@@ -75,6 +78,7 @@ outputs:
           - "\n"
           - - "include ::tripleo::profile::base::lvm"
             - get_attr: [CinderBase, role_data, step_config]
+            - get_attr: [MySQLClient, role_data, step_config]
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index e49682f..08170ce 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CongressBase:
     type: ../../puppet/services/congress.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [CongressBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [CongressBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CongressBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CongressBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
diff --git a/docker/services/database/mysql-client.yaml b/docker/services/database/mysql-client.yaml
deleted file mode 100644 (file)
index d45d58e..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-heat_template_version: pike
-
-description: >
-  Configuration for containerized MySQL clients
-
-parameters:
-  DockerMysqlClientConfigImage:
-    description: The container image to use for the mysql_client config_volume
-    type: string
-  ServiceData:
-    default: {}
-    description: Dictionary packing service data
-    type: json
-  ServiceNetMap:
-    default: {}
-    description: Mapping of service_name -> network name. Typically set
-                 via parameter_defaults in the resource registry.  This
-                 mapping overrides those in ServiceNetMapDefaults.
-    type: json
-  DefaultPasswords:
-    default: {}
-    type: json
-  RoleName:
-    default: ''
-    description: Role name on which the service is applied
-    type: string
-  RoleParameters:
-    default: {}
-    description: Parameters specific to the role
-    type: json
-  EndpointMap:
-    default: {}
-    description: Mapping of service endpoint -> protocol. Typically set
-                 via parameter_defaults in the resource registry.
-    type: json
-  EnableInternalTLS:
-    type: boolean
-    default: false
-  InternalTLSCAFile:
-    default: '/etc/ipa/ca.crt'
-    type: string
-    description: Specifies the default CA cert to use if TLS is used for
-                 services in the internal network.
-
-outputs:
-  role_data:
-    description: Role for setting mysql client parameters
-    value:
-      service_name: mysql_client
-      config_settings:
-        tripleo::profile::base::database::mysql::client::mysql_client_bind_address: {get_param: [ServiceNetMap, MysqlNetwork]}
-        tripleo::profile::base::database::mysql::client::enable_ssl: {get_param: EnableInternalTLS}
-        tripleo::profile::base::database::mysql::client::ssl_ca: {get_param: InternalTLSCAFile}
-      # BEGIN DOCKER SETTINGS #
-      step_config: ""
-      puppet_config:
-        config_volume: mysql_client
-        puppet_tags: file # set this even though file is the default
-        step_config: "include ::tripleo::profile::base::database::mysql::client"
-        config_image: {get_param: DockerMysqlClientConfigImage}
-      # no need for a docker config, this service only generates configuration files
-      docker_config: {}
index 9f1ecbc..1d4ddd3 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   Ec2ApiPuppetBase:
       type: ../../puppet/services/ec2-api.yaml
       properties:
@@ -58,7 +61,10 @@ outputs:
       service_name: {get_attr: [Ec2ApiPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [Ec2ApiPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [Ec2ApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [Ec2ApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [Ec2ApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index f4c724b..044eb28 100644 (file)
@@ -50,6 +50,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   GlanceApiPuppetBase:
     type: ../../puppet/services/glance-api.yaml
     properties:
@@ -70,7 +73,10 @@ outputs:
           - get_attr: [GlanceApiPuppetBase, role_data, config_settings]
           - glance::api::sync_db: false
       step_config: &step_config
-        get_attr: [GlanceApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [GlanceApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [GlanceApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 6778543..5a6958a 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   GnocchiMetricdBase:
     type: ../../puppet/services/gnocchi-metricd.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [GnocchiMetricdBase, role_data, service_name]}
       config_settings: {get_attr: [GnocchiMetricdBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [GnocchiMetricdBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [GnocchiMetricdBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [GnocchiMetricdBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 00d218d..19e658c 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   GnocchiStatsdBase:
     type: ../../puppet/services/gnocchi-statsd.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [GnocchiStatsdBase, role_data, service_name]}
       config_settings: {get_attr: [GnocchiStatsdBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [GnocchiStatsdBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [GnocchiStatsdBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [GnocchiStatsdBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 789f3f9..a20dc13 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   HeatBase:
     type: ../../puppet/services/heat-engine.yaml
     properties:
@@ -63,7 +66,10 @@ outputs:
           - get_attr: [HeatBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [HeatBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [HeatBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [HeatBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 90978f3..2a9735b 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   IronicApiBase:
     type: ../../puppet/services/ironic-api.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
           - get_attr: [IronicApiBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [IronicApiBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [IronicApiBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [IronicApiBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 6368bd2..37f4d46 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   IronicConductorBase:
     type: ../../puppet/services/ironic-conductor.yaml
     properties:
@@ -69,7 +72,10 @@ outputs:
           - ironic::pxe::http_root: /var/lib/ironic/httpboot
           - ironic::conductor::http_root: /var/lib/ironic/httpboot
       step_config: &step_config
-        get_attr: [IronicConductorBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [IronicConductorBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [IronicConductorBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 7ecfc32..c461f97 100644 (file)
@@ -55,6 +55,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   KeystoneBase:
     type: ../../puppet/services/keystone.yaml
     properties:
@@ -83,6 +86,7 @@ outputs:
           - "\n"
           - - "['Keystone_user', 'Keystone_endpoint', 'Keystone_domain', 'Keystone_tenant', 'Keystone_user_role', 'Keystone_role', 'Keystone_service'].each |String $val| { noop_resource($val) }"
             - {get_attr: [KeystoneBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [KeystoneBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index c33f409..7b2dbfa 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ManilaApiPuppetBase:
     type: ../../puppet/services/manila-api.yaml
     properties:
@@ -57,7 +60,10 @@ outputs:
       service_name: {get_attr: [ManilaApiPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [ManilaApiPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        {get_attr: [ManilaApiPuppetBase, role_data, step_config]}
+        list_join:
+          - "\n"
+          - - {get_attr: [ManilaApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ManilaApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 730d33f..7b5dfec 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ManilaSchedulerPuppetBase:
     type: ../../puppet/services/manila-scheduler.yaml
     properties:
@@ -57,7 +60,10 @@ outputs:
       service_name: {get_attr: [ManilaSchedulerPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [ManilaSchedulerPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        {get_attr: [ManilaSchedulerPuppetBase, role_data, step_config]}
+        list_join:
+          - "\n"
+          - - {get_attr: [ManilaSchedulerPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ManilaSchedulerPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index b427815..332ba86 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ManilaBase:
     type: ../../puppet/services/manila-share.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [ManilaBase, role_data, service_name]}
       config_settings: {get_attr: [ManilaBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [ManilaBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [ManilaBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ManilaBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 73db374..38b97ae 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   MistralApiBase:
     type: ../../puppet/services/mistral-api.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [MistralApiBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [MistralApiBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [MistralApiBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [MistralApiBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 4c6b300..2b498be 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   MistralBase:
     type: ../../puppet/services/mistral-engine.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
         map_merge:
           - get_attr: [MistralBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [MistralBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [MistralBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [MistralBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index ea54c57..e106fe4 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   MistralBase:
     type: ../../puppet/services/mistral-executor.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
         map_merge:
           - get_attr: [MistralBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [MistralBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [MistralBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [MistralBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index a9125c8..b4fce22 100644 (file)
@@ -49,6 +49,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NeutronBase:
     type: ../../puppet/services/neutron-api.yaml
     properties:
@@ -68,7 +71,10 @@ outputs:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [NeutronBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NeutronBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NeutronBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 4bec803..da46104 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaApiBase:
     type: ../../puppet/services/nova-api.yaml
     properties:
@@ -69,6 +72,7 @@ outputs:
           - "\n"
           - - "['Nova_cell_v2'].each |String $val| { noop_resource($val) }"
             - {get_attr: [NovaApiBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaApiBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
@@ -195,6 +199,8 @@ outputs:
             volumes: *nova_api_bootstrap_volumes
             user: root
             command: "/usr/bin/bootstrap_host_exec nova_api su nova -s /bin/bash -c '/usr/bin/nova-manage cell_v2 discover_hosts'"
+      metadata_settings:
+        get_attr: [NovaApiBase, role_data, metadata_settings]
       host_prep_tasks:
         - name: create persistent logs directory
           file:
index c6e848a..39d1740 100644 (file)
@@ -47,6 +47,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaComputeBase:
     type: ../../puppet/services/nova-compute.yaml
     properties:
@@ -66,7 +69,10 @@ outputs:
       config_settings:
         get_attr: [NovaComputeBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [NovaComputeBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaComputeBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       puppet_config:
         config_volume: nova_libvirt
         puppet_tags: nova_config,nova_paste_api_ini
index 9f66657..ae73705 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaConductorBase:
     type: ../../puppet/services/nova-conductor.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
       service_name: {get_attr: [NovaConductorBase, role_data, service_name]}
       config_settings: {get_attr: [NovaConductorBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaConductorBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaConductorBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaConductorBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 0d3d1ec..715a861 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaConsoleauthPuppetBase:
     type: ../../puppet/services/nova-consoleauth.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaConsoleauthPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [NovaConsoleauthPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaConsoleauthPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaConsoleauthPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaConsoleauthPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 17068b4..543758a 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaIronicBase:
     type: ../../puppet/services/nova-ironic.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaIronicBase, role_data, service_name]}
       config_settings: {get_attr: [NovaIronicBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaIronicBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaIronicBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       puppet_config:
         config_volume: nova
         puppet_tags: nova_config,nova_paste_api_ini
index 973b0eb..2f3851a 100644 (file)
@@ -74,6 +74,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaLibvirtBase:
     type: ../../puppet/services/nova-libvirt.yaml
     properties:
@@ -93,7 +96,10 @@ outputs:
       config_settings:
         get_attr: [NovaLibvirtBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [NovaLibvirtBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaLibvirtBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       puppet_config:
         config_volume: nova_libvirt
         puppet_tags: libvirtd_config,nova_config,file,exec
index 7350db2..d784ace 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaPlacementBase:
     type: ../../puppet/services/nova-placement.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
           - get_attr: [NovaPlacementBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [NovaPlacementBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaPlacementBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaPlacementBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
@@ -100,6 +106,8 @@ outputs:
                   - /var/log/containers/nova:/var/log/nova
             environment:
               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
+      metadata_settings:
+        get_attr: [NovaPlacementBase, role_data, metadata_settings]
       host_prep_tasks:
         - name: create persistent logs directory
           file:
index 5c1aa30..8d8a635 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaSchedulerBase:
     type: ../../puppet/services/nova-scheduler.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaSchedulerBase, role_data, service_name]}
       config_settings: {get_attr: [NovaSchedulerBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaSchedulerBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaSchedulerBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaSchedulerBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 37831ff..c5f651d 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaVncProxyPuppetBase:
     type: ../../puppet/services/nova-vnc-proxy.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaVncProxyPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [NovaVncProxyPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaVncProxyPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaVncProxyPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaVncProxyPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index f5b4bae..86730eb 100644 (file)
@@ -50,6 +50,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   OctaviaApiPuppetBase:
     type: ../../puppet/services/octavia-api.yaml
     properties:
@@ -67,7 +70,10 @@ outputs:
       service_name: {get_attr: [OctaviaApiPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [OctaviaApiPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [OctaviaApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [OctaviaApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [OctaviaApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 26ae9bc..c6a80ef 100644 (file)
@@ -52,6 +52,9 @@ parameters:
 
 resources:
 
+  MySQLClient:
+    type: ../../../puppet/services/database/mysql-client.yaml
+
   CinderBackupBase:
     type: ../../../puppet/services/cinder-backup.yaml
     properties:
@@ -82,7 +85,11 @@ outputs:
       puppet_config:
         config_volume: cinder
         puppet_tags: cinder_config,file,concat,file_line
-        step_config: {get_attr: [CinderBackupBase, role_data, step_config]}
+        step_config:
+          list_join:
+            - "\n"
+            - - {get_attr: [CinderBackupBase, role_data, step_config]}
+              - {get_attr: [MySQLClient, role_data, step_config]}
         config_image: {get_param: DockerCinderConfigImage}
       kolla_config:
         /var/lib/kolla/config_files/cinder_backup.json:
index 262e999..3c1b7a7 100644 (file)
@@ -48,6 +48,9 @@ parameters:
 
 resources:
 
+  MySQLClient:
+    type: ../../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../../puppet/services/cinder-volume.yaml
     properties:
@@ -76,7 +79,11 @@ outputs:
       puppet_config:
         config_volume: cinder
         puppet_tags: cinder_config,file,concat,file_line
-        step_config: {get_attr: [CinderBase, role_data, step_config]}
+        step_config:
+          list_join:
+            - "\n"
+            - - {get_attr: [CinderBase, role_data, step_config]}
+              - {get_attr: [MySQLClient, role_data, step_config]}
         config_image: {get_param: DockerCinderConfigImage}
       kolla_config:
         /var/lib/kolla/config_files/cinder_volume.json:
index ad2fa0f..01c1738 100644 (file)
@@ -51,6 +51,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   PankoApiPuppetBase:
     type: ../../puppet/services/panko-api.yaml
     properties:
@@ -71,7 +74,10 @@ outputs:
           - get_attr: [PankoApiPuppetBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [PankoApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [PankoApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [PankoApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index bff2fda..b0c3736 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   SaharaApiPuppetBase:
     type: ../../puppet/services/sahara-api.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
           - get_attr: [SaharaApiPuppetBase, role_data, config_settings]
           - sahara::sync_db: false
       step_config: &step_config
-        get_attr: [SaharaApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [SaharaApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [SaharaApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 01d4bb9..b166029 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   SaharaEnginePuppetBase:
     type: ../../puppet/services/sahara-engine.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
           - get_attr: [SaharaEnginePuppetBase, role_data, config_settings]
           - sahara::sync_db: false
       step_config: &step_config
-        get_attr: [SaharaEnginePuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [SaharaEnginePuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [SaharaEnginePuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index cdcb4d2..1b7d78c 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   TackerBase:
     type: ../../puppet/services/tacker.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [TackerBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [TackerBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [TackerBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [TackerBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index df57ad6..072c675 100644 (file)
@@ -53,6 +53,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ZaqarBase:
     type: ../../puppet/services/zaqar.yaml
     properties:
@@ -71,7 +74,10 @@ outputs:
       service_name: {get_attr: [ZaqarBase, role_data, service_name]}
       config_settings: {get_attr: [ZaqarBase, role_data, config_settings]}
       step_config: &step_config
-       get_attr: [ZaqarBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [ZaqarBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ZaqarBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 2c09483..0972da6 100644 (file)
@@ -34,7 +34,6 @@ resource_registry:
   OS::TripleO::Services::NeutronL3Agent: ../docker/services/neutron-l3.yaml
   OS::TripleO::Services::HAproxy: ../docker/services/haproxy.yaml
   OS::TripleO::Services::MySQL: ../docker/services/database/mysql.yaml
-  OS::TripleO::Services::MySQLClient: ../docker/services/database/mysql-client.yaml
   OS::TripleO::Services::RabbitMQ: ../docker/services/rabbitmq.yaml
   OS::TripleO::Services::MongoDb: ../docker/services/database/mongodb.yaml
   OS::TripleO::Services::Redis: ../docker/services/database/redis.yaml
index 374cd6e..3a2691d 100755 (executable)
@@ -207,6 +207,22 @@ def validate_hci_computehci_role(hci_role_filename, hci_role_tpl):
     return 0
 
 
+def search(item, check_item, check_key):
+    if check_item(item):
+        return True
+    elif isinstance(item, list):
+        for i in item:
+            if search(i, check_item, check_key):
+                return True
+    elif isinstance(item, dict):
+        for k in item.keys():
+            if check_key(k, item[k]):
+                return True
+            elif search(item[k], check_item, check_key):
+                return True
+    return False
+
+
 def validate_mysql_connection(settings):
     no_op = lambda *args: False
     error_status = [0]
@@ -228,25 +244,69 @@ def validate_mysql_connection(settings):
                 error_status[0] = 1
         return False
 
-    def search(item, check_item, check_key):
-        if check_item(item):
-            return True
-        elif isinstance(item, list):
-            for i in item:
-                if search(i, check_item, check_key):
-                    return True
-        elif isinstance(item, dict):
-            for k in item.keys():
-                if check_key(k, item[k]):
-                    return True
-                elif search(item[k], check_item, check_key):
-                    return True
-        return False
-
     search(settings, no_op, validate_mysql_uri)
     return error_status[0]
 
 
+def validate_docker_service_mysql_usage(filename, tpl):
+    no_op = lambda *args: False
+    included_res = []
+
+    def match_included_res(item):
+        is_config_setting = isinstance(item, list) and len(item) > 1 and \
+            item[1:] == ['role_data', 'config_settings']
+        if is_config_setting:
+            included_res.append(item[0])
+        return is_config_setting
+
+    def match_use_mysql_protocol(items):
+        return items == ['EndpointMap', 'MysqlInternal', 'protocol']
+
+    all_content = []
+
+    def read_all(incfile, inctpl):
+        # search for included content
+        content = inctpl['outputs']['role_data']['value'].get('config_settings',{})
+        all_content.append(content)
+        included_res[:] = []
+        if search(content, match_included_res, no_op):
+            files = [inctpl['resources'][x]['type'] for x in included_res]
+            # parse included content
+            for r, f in zip(included_res, files):
+                # disregard class names, only consider file names
+                if 'OS::' in f:
+                    continue
+                newfile = os.path.normpath(os.path.dirname(incfile)+'/'+f)
+                newtmp = yaml.load(open(newfile).read())
+                read_all(newfile, newtmp)
+
+    read_all(filename, tpl)
+    if search(all_content, match_use_mysql_protocol, no_op):
+        # ensure this service includes the mysqlclient service
+        resources = tpl['resources']
+        mysqlclient = [x for x in resources
+                       if resources[x]['type'].endswith('mysql-client.yaml')]
+        if len(mysqlclient) == 0:
+            print("ERROR: containerized service %s uses mysql but "
+                  "resource mysql-client.yaml is not used"
+                  % filename)
+            return 1
+
+        # and that mysql::client puppet module is included in puppet-config
+        match_mysqlclient = \
+            lambda x: x == [mysqlclient[0], 'role_data', 'step_config']
+        role_data = tpl['outputs']['role_data']
+        puppet_config = role_data['value']['puppet_config']['step_config']
+        if not search(puppet_config, match_mysqlclient, no_op):
+            print("ERROR: containerized service %s uses mysql but "
+                  "puppet_config section does not include "
+                  "::tripleo::profile::base::database::mysql::client"
+                  % filename)
+            return 1
+
+    return 0
+
+
 def validate_docker_service(filename, tpl):
     if 'outputs' in tpl and 'role_data' in tpl['outputs']:
         if 'value' not in tpl['outputs']['role_data']:
@@ -275,6 +335,10 @@ def validate_docker_service(filename, tpl):
                     return 1
 
         if 'puppet_config' in role_data:
+            if validate_docker_service_mysql_usage(filename, tpl):
+                print('ERROR: could not validate use of mysql service for %s.'
+                      % filename)
+                return 1
             puppet_config = role_data['puppet_config']
             for key in puppet_config:
                 if key in REQUIRED_DOCKER_PUPPET_CONFIG_SECTIONS: