Switch to dict format for docker_puppet_tasks
authorSteve Baker <sbaker@redhat.com>
Tue, 28 Feb 2017 23:34:51 +0000 (23:34 +0000)
committerSteve Baker <sbaker@redhat.com>
Wed, 1 Mar 2017 03:14:49 +0000 (03:14 +0000)
This change gives the option of docker-puppet.py data to be in a dict
as well as a list. This allows docker_puppet_tasks data to use the
same keys as the top level puppet config data.

If the yaql fu can be worked out to build the top level data,
docker-puppet.py can later drop the list format entirely.

Change-Id: I7e2294c6c898d2340421c93516296ccf120aa6d2

docker/docker-puppet.py
docker/services/database/mongodb.yaml
docker/services/database/mysql.yaml
docker/services/keystone.yaml

index 86c8ec9..d9496af 100755 (executable)
@@ -87,6 +87,15 @@ configs = {}
 for service in (json_data or []):
     if service is None:
         continue
+    if isinstance(service, dict):
+        service = [
+            service.get('config_volume'),
+            service.get('puppet_tags'),
+            service.get('step_config'),
+            service.get('config_image'),
+            service.get('volumes', []),
+        ]
+
     config_volume = service[0] or ''
     puppet_tags = service[1] or ''
     manifest = service[2] or ''
index cc28846..127f883 100644 (file)
@@ -88,11 +88,13 @@ outputs:
       docker_puppet_tasks:
         # MySQL database initialization occurs only on single node
         step_2:
-          - 'mongodb_init_tasks'
-          - 'mongodb_database,mongodb_user,mongodb_replset'
-          - 'include ::tripleo::profile::base::database::mongodb'
-          - list_join:
+          config_volume: 'mongodb_init_tasks'
+          puppet_tags: 'mongodb_database,mongodb_user,mongodb_replset'
+          step_config: 'include ::tripleo::profile::base::database::mongodb'
+          config_image:
+            list_join:
             - '/'
             - [ {get_param: DockerNamespace}, {get_param: DockerMongodbImage} ]
-          - - "mongodb:/var/lib/mongodb"
-            - "logs:/var/log/kolla:ro"
+          volumes:
+          - "mongodb:/var/lib/mongodb/"
+          - "logs:/var/log/kolla:ro"
index 2ef068d..5809396 100644 (file)
@@ -120,11 +120,13 @@ outputs:
       docker_puppet_tasks:
         # MySQL database initialization occurs only on single node
         step_2:
-          - 'mysql_init_tasks'
-          - 'mysql_database,mysql_grant,mysql_user'
-          - 'include ::tripleo::profile::base::database::mysql'
-          - list_join:
-            - '/'
-            - [ {get_param: DockerNamespace}, {get_param: DockerMysqlImage} ]
-          - - "mariadb:/var/lib/mysql/:ro"
+          config_volume: 'mysql_init_tasks'
+          puppet_tags: 'mysql_database,mysql_grant,mysql_user'
+          step_config: 'include ::tripleo::profile::base::database::mysql'
+          config_image:
+            list_join:
+              - '/'
+              - [ {get_param: DockerNamespace}, {get_param: DockerMysqlImage} ]
+          volumes:
+            - "mariadb:/var/lib/mysql/:ro"
             - "/var/lib/config-data/mysql/root:/root:ro" #provides .my.cnf
index 2bf8fa0..644326e 100644 (file)
@@ -145,9 +145,10 @@ outputs:
       docker_puppet_tasks:
         # Keystone endpoint creation occurs only on single node
         step_3:
-          - 'keystone_init_tasks'
-          - 'keystone_config,keystone_domain_config,keystone_endpoint,keystone_identity_provider,keystone_paste_ini,keystone_role,keystone_service,keystone_tenant,keystone_user,keystone_user_role,keystone_domain'
-          - 'include ::tripleo::profile::base::keystone'
-          - list_join:
+          config_volume: 'keystone_init_tasks'
+          puppet_tags: 'keystone_config,keystone_domain_config,keystone_endpoint,keystone_identity_provider,keystone_paste_ini,keystone_role,keystone_service,keystone_tenant,keystone_user,keystone_user_role,keystone_domain'
+          step_config: 'include ::tripleo::profile::base::keystone'
+          config_image:
+            list_join:
             - '/'
             - [ {get_param: DockerNamespace}, {get_param: DockerKeystoneImage} ]