Convert Fn::Select to extended get_attr
authorSteve Baker <sbaker@redhat.com>
Fri, 18 Jul 2014 00:55:31 +0000 (12:55 +1200)
committerSteve Baker <sbaker@redhat.com>
Sun, 3 Aug 2014 20:57:52 +0000 (08:57 +1200)
Overcloud bootstrap_nodeid is now specified by parameter
BootStrapNodeResource with default value controller0.
This avoids the need to use Fn::Select on the mergy.py
built list of controllers to specify the first controller.

Change-Id: Id9cfeab50b90ceeeae51ea0e35997b7495b28cc4
Partial-Blueprint: tripleo-juno-remove-mergepy

12 files changed:
block-storage-nfs.yaml
block-storage.yaml
examples/scale2_hot.yaml
examples/scale_map_hot.yaml
examples/scale_map_result_hot.yaml
examples/scale_result_hot.yaml
nfs-server-source.yaml
nova-compute-instance.yaml
overcloud-source.yaml
swift-deploy.yaml
swift-storage-source.yaml
undercloud-source.yaml

index 9583576..8346c1f 100644 (file)
@@ -50,18 +50,18 @@ resources:
             get_attr: [ BlockStorageKey, SecretAccessKey ]
           stack_name: {get_param: 'AWS::StackName'}
       keystone:
-        host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+        host: {get_attr: [controller0, networks, ctlplane, 0]}
       cinder:
-        db: {list_join: ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] } , '/cinder']]}
+        db: {list_join: ['', ['mysql://cinder:unset@', {get_attr: [controller0, networks, ctlplane, 0]} , '/cinder']]}
         volume_size_mb: '5000'
         service-password:
           get_param: CinderPassword
         include_nfs_backend: 'true'
         nfs_shares:
-          - {list_join: ['', [{"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] } , ':/mnt/state/var/lib/nfs_share']]}
+          - {list_join: ['', [{get_attr: [controller0, networks, ctlplane, 0]} , ':/mnt/state/var/lib/nfs_share']]}
       admin-password: {get_param: AdminPassword}
       rabbit:
-        host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+        host: {get_attr: [controller0, networks, ctlplane, 0]}
         username: {get_param: RabbitUserName}
         password: {get_param: RabbitPassword}
       interfaces:
index 98f62c4..3e5f460 100644 (file)
@@ -29,9 +29,9 @@ resources:
       server: {get_resource: BlockStorage0}
       config: {get_resource: BlockStorageConfig}
       input_values:
-        controller_host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
-        cinder_dsn: {list_join: ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] } , '/cinder']]}
-        neutron_local_ip: {"Fn::Select": [0, "Fn::Select": [ctlplane, {get_attr: [BlockStorage0 , networks]}]]}
+        controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
+        cinder_dsn: {list_join: ['', ['mysql://cinder:unset@', {get_attr: [controller0, networks, ctlplane, 0]} , '/cinder']]}
+        neutron_local_ip: {get_attr: [BlockStorage0 , networks, ctlplane, 0]}
       signal_transport: NO_SIGNAL
   BlockStorageConfig:
     type: OS::Heat::StructuredConfig
index 0f3989c..eb50761 100644 (file)
@@ -55,14 +55,7 @@ resources:
           path: NovaCompute0Config.Metadata
       neutron:
         ovs:
-          local_ip:
-            Fn::Select:
-              - 0
-              - Fn::Select:
-                - ctlplane
-                - get_attr:
-                  - NovaCompute0
-                  - networks
+          local_ip: {get_attr: [NovaCompute0, networks, ctlplane, 0]}
       rabbit:
         username: {get_param: RabbitUserName}
         password: {get_param: RabbitPassword}
index 24c14dc..4a6d684 100644 (file)
@@ -30,25 +30,11 @@ resources:
             NovaCompute0:
               list_join:
               - ' '
-              - - Fn::Select:
-                  - 0
-                  - Fn::Select:
-                    - ctlplane
-                    - get_attr:
-                      - NovaCompute0
-                      - networks
-                - Fn::Select:
-                  - name
-                  - get_attr:
-                    - NovaCompute0
-                    - show
+              - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
+                - {get_attr: [NovaCompute0, show, name]}
                 - list_join:
                   - '.'
-                  - - Fn::Select:
-                      - name
-                      - get_attr:
-                        - NovaCompute0
-                        - show
+                  - - {get_attr: [NovaCompute0, show, name]}
                     - 'local'
   NovaCompute0:
     type: FileInclude
index 69f0f24..4e65723 100644 (file)
@@ -46,69 +46,57 @@ resources:
           '
         - - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute0
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute0
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute0
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute0
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute0
-                      - show
                   - local
           - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute1
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute1
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute1
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute1
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute1
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute1
-                      - show
                   - local
           - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute2
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute2
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute2
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute2
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute2
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute2
-                      - show
                   - local
       os-collect-config:
         cfn:
@@ -165,69 +153,57 @@ resources:
           '
         - - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute0
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute0
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute0
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute0
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute0
-                      - show
                   - local
           - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute1
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute1
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute1
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute1
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute1
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute1
-                      - show
                   - local
           - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute2
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute2
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute2
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute2
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute2
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute2
-                      - show
                   - local
       os-collect-config:
         cfn:
@@ -284,69 +260,57 @@ resources:
           '
         - - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute0
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute0
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute0
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute0
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute0
-                      - show
                   - local
           - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute1
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute1
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute1
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute1
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute1
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute1
-                      - show
                   - local
           - list_join:
             - ' '
-            - - Fn::Select:
+            - - get_attr:
+                - NovaCompute2
+                - networks
+                - ctlplane
                 - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute2
-                    - networks
-              - Fn::Select:
+              - get_attr:
+                - NovaCompute2
+                - show
                 - name
-                - get_attr:
-                  - NovaCompute2
-                  - show
               - list_join:
                 - .
-                - - Fn::Select:
+                - - get_attr:
+                    - NovaCompute2
+                    - show
                     - name
-                    - get_attr:
-                      - NovaCompute2
-                      - show
                   - local
       os-collect-config:
         cfn:
index c9f865a..a1b2709 100644 (file)
@@ -42,13 +42,11 @@ resources:
       neutron:
         ovs:
           local_ip:
-            Fn::Select:
+            get_attr:
+            - NovaCompute0
+            - networks
+            - ctlplane
             - 0
-            - Fn::Select:
-              - ctlplane
-              - get_attr:
-                - NovaCompute0
-                - networks
       os-collect-config:
         cfn:
           access_key_id:
@@ -103,13 +101,11 @@ resources:
       neutron:
         ovs:
           local_ip:
-            Fn::Select:
+            get_attr:
+            - NovaCompute1
+            - networks
+            - ctlplane
             - 0
-            - Fn::Select:
-              - ctlplane
-              - get_attr:
-                - NovaCompute1
-                - networks
       os-collect-config:
         cfn:
           access_key_id:
@@ -164,13 +160,11 @@ resources:
       neutron:
         ovs:
           local_ip:
-            Fn::Select:
+            get_attr:
+            - NovaCompute2
+            - networks
+            - ctlplane
             - 0
-            - Fn::Select:
-              - ctlplane
-              - get_attr:
-                - NovaCompute2
-                - networks
       os-collect-config:
         cfn:
           access_key_id:
index bad7cce..63a1502 100644 (file)
@@ -9,20 +9,16 @@ resources:
             NovaCompute0:
               list_join:
               - ' '
-              - - Fn::Select:
+              - - get_attr:
+                  - NovaCompute0
+                  - networks
+                  - ctlplane
                   - 0
-                  - Fn::Select:
-                    - ctlplane
-                    - get_attr:
-                      - NovaCompute0
-                      - networks
             BlockStorage0:
               list_join:
               - ' '
-              - - Fn::Select:
+              - - get_attr:
+                  - BlockStorage0
+                  - networks
+                  - ctlplane
                   - 0
-                  - Fn::Select:
-                    - ctlplane
-                    - get_attr:
-                      - BlockStorage0
-                      - networks
index d8b3a71..597b42b 100644 (file)
@@ -207,7 +207,7 @@ resources:
         neutron_flat_networks: {get_param: NeutronFlatNetworks}
         neutron_host: {get_param: NeutronHost}
         neutron_dsn: {get_param: NeutronDSN}
-        neutron_local_ip: {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ NovaCompute0, networks ]}]]}
+        neutron_local_ip: {get_attr: [NovaCompute0, networks, ctlplane, 0]}
         neutron_tenant_network_type: {get_param: NeutronNetworkType}
         neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
         neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
index acca8ea..d6f7eb3 100644 (file)
@@ -283,6 +283,10 @@ parameters:
     description: Keystone key for signing tokens.
     type: string
     hidden: true
+  BootstrapNodeResource:
+    default: controller0
+    description: Name of the bootstrap controller resource
+    type: string
 resources:
   ControlVirtualIP:
     type: OS::Neutron::Port
@@ -313,13 +317,13 @@ resources:
     Path: nova-compute-instance.yaml
     SubKey: resources.NovaCompute0Deploy
     parameters:
-        NovaApiHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
-        KeystoneHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
-        NeutronHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
-        GlanceHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
-        NovaDSN: {list_join: ['', ['mysql://nova:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}, '/nova']]}
-        CeilometerDSN: {list_join: ['', ['mysql://ceilometer:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}, '/ceilometer']]}
-        NeutronDSN: {list_join: ['', ['mysql://neutron:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}, '/ovs_neutron']]}
+        NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+        KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+        NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+        GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+        NovaDSN: {list_join: ['', ['mysql://nova:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/nova']]}
+        CeilometerDSN: {list_join: ['', ['mysql://ceilometer:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/ceilometer']]}
+        NeutronDSN: {list_join: ['', ['mysql://neutron:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/ovs_neutron']]}
         NeutronNetworkType: "gre"
         NeutronEnableTunnelling: "True"
         NeutronFlatNetworks:
@@ -360,18 +364,7 @@ resources:
           public_interface_ip:
             get_param: NeutronPublicInterfaceIP
         bootstrap_host:
-          bootstrap_nodeid:
-            Fn::Select:
-            - 0
-            - Fn::Select:
-              - 0
-              - Merge::Map:
-                  controller0:
-                  - Fn::Select:
-                    - name
-                    - get_attr:
-                      - controller0
-                      - show
+          bootstrap_nodeid: {get_attr: [{get_param: BootstrapNodeResource}, show, name]}
           nodeid: {get_input: bootstack_nodeid}
         cinder:
           db: mysql://cinder:unset@localhost/cinder
@@ -389,7 +382,7 @@ resources:
           nodes:
             Merge::Map:
               controller0:
-                ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+                ip: {get_attr: [controller0, networks, ctlplane, 0]}
         pacemaker:
           stonith_enabled : false
           recheck_interval : 5
@@ -432,7 +425,7 @@ resources:
               nodes:
                 Merge::Map:
                   controller0:
-                    {"Fn::Select": [ name, {get_attr: [controller0, show]} ] }
+                    {get_attr: [controller0, show, name]}
         keystone:
           db: mysql://keystone:unset@localhost/keystone
           host:
@@ -445,7 +438,7 @@ resources:
           nodes:
             Merge::Map:
               controller0:
-                ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+                ip: {get_attr: [controller0, networks, ctlplane, 0]}
           cluster_name:
             list_join:
               - '-'
@@ -513,7 +506,7 @@ resources:
                 get_param: ControlVirtualInterface
               priority: 101
               virtual_ips:
-              - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+              - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
                 interface:
                   get_param: ControlVirtualInterface
             - vrrp_instance_name: VI_PUBLIC
@@ -522,7 +515,7 @@ resources:
                 get_param: PublicVirtualInterface
               priority: 101
               virtual_ips:
-              - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [PublicVirtualIP, fixed_ips]]]}
+              - ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
                 interface:
                   get_param: PublicVirtualInterface
           vrrp_sync_groups:
@@ -536,27 +529,27 @@ resources:
           priority: 101
         virtual_ips:
             -
-              ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+              ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
               interface:
                 get_param: ControlVirtualInterface
             -
-              ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [PublicVirtualIP, fixed_ips]]]}
+              ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
               interface:
                 get_param: PublicVirtualInterface
         haproxy:
           nodes:
             Merge::Map:
               controller0:
-                ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
-                name: {"Fn::Select": [ name, {get_attr: [controller0, show]} ] }
+                ip: {get_attr: [controller0, networks, ctlplane, 0]}
+                name: {get_attr: [controller0, show, name]}
           net_binds:
-            - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+            - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
           services:
             - name: keystone_admin
               port: 35357
               net_binds: &public_binds
-                - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
-                - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [PublicVirtualIP, fixed_ips]]]}
+                - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+                - ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
             - name: keystone_public
               port: 5000
               net_binds: *public_binds
@@ -630,39 +623,27 @@ resources:
       config: {get_resource: controllerConfig}
       server: {get_resource: controller0}
       input_values:
-        bootstack_nodeid:
-          Fn::Select:
-          - name
-          - get_attr:
-            - controller0
-            - show
-        controller_host:
-          Fn::Select:
-            - 0
-            - Fn::Select:
-              - ctlplane
-              - get_attr:
-                - controller0
-                - networks
+        bootstack_nodeid: {get_attr: [controller0, show, name]}
+        controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
         controller_virtual_ip:
-          {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+          {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
         heat.watch_server_url:
           list_join:
             - ''
             - - 'http://'
-              - {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+              - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
               - ':8003'
         heat.metadata_server_url:
           list_join:
             - ''
             - - 'http://'
-              - {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+              - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
               - ':8000'
         heat.waitcondition_server_url:
           list_join:
             - ''
             - - 'http://'
-              - {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+              - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
               - ':8000/v1/waitcondition'
   allNodesConfig:
     type: OS::Heat::StructuredConfig
@@ -678,25 +659,11 @@ resources:
                   NovaCompute0:
                     list_join:
                     - ' '
-                    - - Fn::Select:
-                        - 0
-                        - Fn::Select:
-                          - ctlplane
-                          - get_attr:
-                            - NovaCompute0
-                            - networks
-                      - Fn::Select:
-                        - name
-                        - get_attr:
-                          - NovaCompute0
-                          - show
+                    - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
+                      - {get_attr: [NovaCompute0, show, name]}
                       - list_join:
                         - '.'
-                        - - Fn::Select:
-                            - name
-                            - get_attr:
-                              - NovaCompute0
-                              - show
+                        - - {get_attr: [NovaCompute0, show, name]}
                           - 'novalocal'
             - list_join:
               - "\n"
@@ -704,25 +671,11 @@ resources:
                   controller0:
                     list_join:
                     - ' '
-                    - - Fn::Select:
-                        - 0
-                        - Fn::Select:
-                          - ctlplane
-                          - get_attr:
-                            - controller0
-                            - networks
-                      - Fn::Select:
-                        - name
-                        - get_attr:
-                          - controller0
-                          - show
+                    - - {get_attr: [controller0, networks, ctlplane, 0]}
+                      - {get_attr: [controller0, show, name]}
                       - list_join:
                         - '.'
-                        - - Fn::Select:
-                            - name
-                            - get_attr:
-                              - controller0
-                              - show
+                        - - {get_attr: [controller0, show, name]}
                           - 'novalocal'
                       - {get_param: CloudName}
         rabbit:
@@ -731,7 +684,7 @@ resources:
               - ','
               - Merge::Map:
                   controller0:
-                    {"Fn::Select": [ name, {get_attr: [controller0, show]} ] }
+                    {get_attr: [controller0, show, name]}
   controller0SSLDeployment:
     type: OS::Heat::StructuredDeployment
     properties:
@@ -739,14 +692,7 @@ resources:
       server: {get_resource: controller0}
       signal_transport: NO_SIGNAL
       input_values:
-        controller_host:
-          Fn::Select:
-            - 0
-            - Fn::Select:
-              - ctlplane
-              - get_attr:
-                - controller0
-                - networks
+        controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
         ssl_certificate: {get_param: SSLCertificate}
         ssl_key: {get_param: SSLKey}
         ssl_ca_certificate: {get_param: SSLCACertificate}
@@ -765,11 +711,5 @@ outputs:
       list_join:
       - ''
       - - http://
-        - Fn::Select:
-          - ip_address
-          - Fn::Select:
-            - 0
-            - get_attr:
-              - ControlVirtualIP
-              - fixed_ips
+        - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
         - :5000/v2.0/
index 2da242e..eaa0131 100644 (file)
@@ -28,19 +28,13 @@ resources:
                 list_join:
                 - ''
                 - - 'r1z1-'
-                  - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+                  - {get_attr: [controller0, networks, ctlplane, 0]}
                   - ':%PORT%/d1'
               SwiftStorage0:
                 list_join:
                 - ''
                 - - 'r1z1-'
-                  - Fn::Select:
-                    - 0
-                    - Fn::Select:
-                      - 'ctlplane'
-                      - get_attr:
-                        - SwiftStorage0
-                        - networks
+                  - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
                   - ':%PORT%/d1'
         swift_proxy_memcache:
           list_join:
@@ -51,5 +45,5 @@ resources:
                     - ', '
                     - - list_join:
                         - ''
-                        - - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+                        - - {get_attr: [controller0, networks, ctlplane, 0]}
                           - ':11211'
index 92bcf27..d653966 100644 (file)
@@ -35,7 +35,7 @@ resources:
       config: {get_resource: SwiftKeystoneConfig}
       signal_transport: NO_SIGNAL
       input_values:
-        keystone_host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+        keystone_host: {get_attr: [controller0, networks, ctlplane, 0]}
   SwiftStorage0Deploy:
     type: OS::Heat::StructuredDeployment
     properties:
@@ -43,7 +43,7 @@ resources:
       config: {get_resource: SwiftConfig}
       signal_transport: NO_SIGNAL
       input_values:
-        neutron_local_ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [SwiftStorage0, networks]} ]} ] }
+        neutron_local_ip: {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
         swift_hash_suffix: {get_param: SwiftHashSuffix}
         swift_password: {get_param: SwiftPassword}
         swift_devices:
@@ -54,19 +54,13 @@ resources:
                 list_join:
                 - ''
                 - - 'r1z1-'
-                  - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+                  - {get_attr: [controller0, networks, ctlplane, 0]}
                   - ':%PORT%/d1'
               SwiftStorage0:
                 list_join:
                 - ''
                 - - 'r1z1-'
-                  - Fn::Select:
-                    - 0
-                    - Fn::Select:
-                      - 'ctlplane'
-                      - get_attr:
-                        - SwiftStorage0
-                        - networks
+                  - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
                   - ':%PORT%/d1'
         swift_proxy_memcache:
           list_join:
@@ -77,5 +71,5 @@ resources:
                     - ', '
                     - - list_join:
                         - ''
-                        - - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+                        - - {get_attr: [controller0, networks, ctlplane, 0]}
                           - ':11211'
index e39eb5e..be743ce 100644 (file)
@@ -198,18 +198,7 @@ resources:
         admin-token:
           get_param: AdminToken
         bootstrap_host:
-          bootstrap_nodeid:
-            Fn::Select:
-            - 0
-            - Fn::Select:
-              - 0
-              - Merge::Map:
-                  undercloud:
-                  - Fn::Select:
-                    - name
-                    - get_attr:
-                      - undercloud
-                      - show
+          bootstrap_nodeid: {get_attr: [undercloud, show, name]}
           nodeid: {get_input: bootstack_nodeid}
         bootstack:
           public_interface_ip:
@@ -315,36 +304,33 @@ resources:
       server: {get_resource: undercloud}
       input_values:
         bootstack_nodeid:
-          Fn::Select:
-            - name
-            - get_attr:
-              - undercloud
-              - show
+          get_attr:
+          - undercloud
+          - show
+          - name
         controller_host:
-          Fn::Select:
-            - 0
-            - Fn::Select:
-              - ctlplane
-              - get_attr:
-                - undercloud
-                - networks
+          get_attr:
+          - undercloud
+          - networks
+          - ctlplane
+          - 0
         heat.watch_server_url:
           list_join:
             - ''
             - - 'http://'
-              - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ undercloud, networks ]}]]}
+              - get_attr: [undercloud, networks, ctlplane, 0]
               - ':8003'
         heat.metadata_server_url:
           list_join:
             - ''
             - - 'http://'
-              - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ undercloud, networks ]}]]}
+              - {get_attr: [undercloud, networks, ctlplane, 0]}
               - ':8000'
         heat.waitcondition_server_url:
           list_join:
             - ''
             - - 'http://'
-              - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ undercloud, networks ]}]]}
+              - {get_attr: [undercloud, networks, ctlplane, 0]}
               - ':8000/v1/waitcondition'
   00_undercloudPassthroughDeployment:
     type: OS::Heat::StructuredDeployment