Merge "Convert Swift ringbuilder to composable services format"
authorJenkins <jenkins@review.openstack.org>
Mon, 25 Jul 2016 15:58:33 +0000 (15:58 +0000)
committerGerrit Code Review <review@openstack.org>
Mon, 25 Jul 2016 15:58:33 +0000 (15:58 +0000)
129 files changed:
environments/puppet-pacemaker.yaml
network/endpoints/endpoint_data.yaml
network/endpoints/endpoint_map.yaml
overcloud.yaml
puppet/ceph-storage.yaml
puppet/cinder-storage.yaml
puppet/compute.yaml
puppet/controller.yaml
puppet/hieradata/compute.yaml
puppet/hieradata/database.yaml
puppet/manifests/overcloud_controller_pacemaker.pp
puppet/services/ceilometer-agent-central.yaml
puppet/services/ceilometer-agent-compute.yaml
puppet/services/ceilometer-agent-notification.yaml
puppet/services/ceilometer-api.yaml
puppet/services/ceilometer-base.yaml
puppet/services/ceilometer-collector.yaml
puppet/services/ceilometer-expirer.yaml
puppet/services/ceph-base.yaml
puppet/services/ceph-client.yaml
puppet/services/ceph-external.yaml
puppet/services/ceph-mon.yaml
puppet/services/ceph-osd.yaml
puppet/services/cinder-api.yaml
puppet/services/cinder-base.yaml
puppet/services/cinder-scheduler.yaml
puppet/services/cinder-volume.yaml
puppet/services/database/mongodb-base.yaml
puppet/services/database/mongodb.yaml
puppet/services/database/mysql.yaml
puppet/services/database/redis-base.yaml
puppet/services/database/redis.yaml
puppet/services/glance-api.yaml
puppet/services/glance-registry.yaml
puppet/services/gnocchi-api.yaml
puppet/services/gnocchi-base.yaml
puppet/services/gnocchi-metricd.yaml
puppet/services/gnocchi-statsd.yaml
puppet/services/haproxy.yaml
puppet/services/heat-api-cfn.yaml
puppet/services/heat-api-cloudwatch.yaml
puppet/services/heat-api.yaml
puppet/services/heat-base.yaml
puppet/services/heat-engine.yaml
puppet/services/horizon.yaml
puppet/services/ironic-api.yaml
puppet/services/ironic-base.yaml
puppet/services/ironic-conductor.yaml
puppet/services/keepalived.yaml
puppet/services/kernel.yaml
puppet/services/keystone.yaml
puppet/services/memcached.yaml
puppet/services/neutron-base.yaml
puppet/services/neutron-compute-plugin-midonet.yaml
puppet/services/neutron-compute-plugin-nuage.yaml
puppet/services/neutron-compute-plugin-opencontrail.yaml
puppet/services/neutron-compute-plugin-plumgrid.yaml
puppet/services/neutron-dhcp.yaml
puppet/services/neutron-l3.yaml
puppet/services/neutron-metadata.yaml
puppet/services/neutron-midonet.yaml
puppet/services/neutron-ovs-agent.yaml
puppet/services/neutron-plugin-ml2.yaml
puppet/services/neutron-plugin-nuage.yaml
puppet/services/neutron-plugin-opencontrail.yaml
puppet/services/neutron-plugin-plumgrid.yaml
puppet/services/neutron-server.yaml
puppet/services/nova-api.yaml
puppet/services/nova-base.yaml
puppet/services/nova-compute.yaml
puppet/services/nova-conductor.yaml
puppet/services/nova-consoleauth.yaml
puppet/services/nova-libvirt.yaml
puppet/services/nova-scheduler.yaml
puppet/services/nova-vncproxy.yaml
puppet/services/pacemaker.yaml
puppet/services/pacemaker/ceilometer-agent-central.yaml
puppet/services/pacemaker/ceilometer-agent-notification.yaml
puppet/services/pacemaker/ceilometer-api.yaml
puppet/services/pacemaker/ceilometer-collector.yaml
puppet/services/pacemaker/cinder-api.yaml
puppet/services/pacemaker/cinder-scheduler.yaml
puppet/services/pacemaker/cinder-volume.yaml
puppet/services/pacemaker/database/mongodb.yaml
puppet/services/pacemaker/database/mysql.yaml
puppet/services/pacemaker/database/redis.yaml
puppet/services/pacemaker/glance-api.yaml
puppet/services/pacemaker/glance-registry.yaml
puppet/services/pacemaker/gnocchi-api.yaml
puppet/services/pacemaker/gnocchi-metricd.yaml
puppet/services/pacemaker/gnocchi-statsd.yaml
puppet/services/pacemaker/haproxy.yaml
puppet/services/pacemaker/heat-api-cfn.yaml
puppet/services/pacemaker/heat-api-cloudwatch.yaml
puppet/services/pacemaker/heat-api.yaml
puppet/services/pacemaker/heat-engine.yaml
puppet/services/pacemaker/horizon.yaml [new file with mode: 0644]
puppet/services/pacemaker/keystone.yaml
puppet/services/pacemaker/memcached.yaml
puppet/services/pacemaker/neutron-dhcp.yaml
puppet/services/pacemaker/neutron-l3.yaml
puppet/services/pacemaker/neutron-metadata.yaml
puppet/services/pacemaker/neutron-midonet.yaml
puppet/services/pacemaker/neutron-ovs-agent.yaml
puppet/services/pacemaker/neutron-plugin-ml2.yaml
puppet/services/pacemaker/neutron-plugin-nuage.yaml
puppet/services/pacemaker/neutron-plugin-opencontrail.yaml
puppet/services/pacemaker/neutron-plugin-plumgrid.yaml
puppet/services/pacemaker/neutron-server.yaml
puppet/services/pacemaker/nova-api.yaml
puppet/services/pacemaker/nova-conductor.yaml
puppet/services/pacemaker/nova-consoleauth.yaml
puppet/services/pacemaker/nova-scheduler.yaml
puppet/services/pacemaker/nova-vncproxy.yaml
puppet/services/pacemaker/rabbitmq.yaml
puppet/services/pacemaker/sahara-api.yaml
puppet/services/pacemaker/sahara-engine.yaml
puppet/services/rabbitmq.yaml
puppet/services/sahara-api.yaml
puppet/services/sahara-base.yaml
puppet/services/sahara-engine.yaml
puppet/services/services.yaml
puppet/services/snmp.yaml
puppet/services/swift-proxy.yaml
puppet/services/swift-storage.yaml
puppet/services/time/ntp.yaml
puppet/services/time/timezone.yaml
puppet/swift-storage.yaml
tools/yaml-validate.py

index 6116dee..8674e00 100644 (file)
@@ -50,3 +50,4 @@ resource_registry:
   OS::TripleO::Services::GnocchiMetricd: ../puppet/services/pacemaker/gnocchi-metricd.yaml
   OS::TripleO::Services::GnocchiStatsd: ../puppet/services/pacemaker/gnocchi-statsd.yaml
   OS::TripleO::Services::MySQL: ../puppet/services/pacemaker/database/mysql.yaml
+  OS::TripleO::Services::Horizon: ../puppet/services/pacemaker/horizon.yaml
index f1dee04..5afcf5d 100644 (file)
@@ -146,15 +146,15 @@ Nova:
     Internal:
         vip_param: NovaApi
         uri_suffixes:
-            '': /v2.1/%(tenant_id)s
+            '': /v2.1
     Public:
         vip_param: Public
         uri_suffixes:
-            '': /v2.1/%(tenant_id)s
+            '': /v2.1
     Admin:
         vip_param: NovaApi
         uri_suffixes:
-            '': /v2.1/%(tenant_id)s
+            '': /v2.1
     port: 8774
 
 NovaVNCProxy:
index 43b9921..e1b8984 100644 (file)
@@ -1688,7 +1688,7 @@ outputs:
                   IP_ADDRESS: {get_param: NovaApiVirtualIP}
             - ':'
             - get_param: [EndpointMap, NovaAdmin, port]
-            - /v2.1/%(tenant_id)s
+            - /v2.1
         uri_no_suffix:
           list_join:
           - ''
@@ -1727,7 +1727,7 @@ outputs:
                   IP_ADDRESS: {get_param: NovaApiVirtualIP}
             - ':'
             - get_param: [EndpointMap, NovaInternal, port]
-            - /v2.1/%(tenant_id)s
+            - /v2.1
         uri_no_suffix:
           list_join:
           - ''
@@ -1766,7 +1766,7 @@ outputs:
                   IP_ADDRESS: {get_param: PublicVirtualIP}
             - ':'
             - get_param: [EndpointMap, NovaPublic, port]
-            - /v2.1/%(tenant_id)s
+            - /v2.1
         uri_no_suffix:
           list_join:
           - ''
index 0e33ec1..7b8a1e7 100644 (file)
@@ -718,6 +718,7 @@ resources:
           ServerMetadata: {get_param: ServerMetadata}
           SchedulerHints: {get_param: ControllerSchedulerHints}
           ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
+          ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
 
   ComputeServiceChain:
 
@@ -780,6 +781,7 @@ resources:
           SchedulerHints: {get_param: NovaComputeSchedulerHints}
           NodeIndex: '%index%'
           ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
+          ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
 
   BlockStorageServiceChain:
     type: OS::TripleO::Services
@@ -813,6 +815,7 @@ resources:
           SchedulerHints: {get_param: BlockStorageSchedulerHints}
           NodeIndex: '%index%'
           ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
+          ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
 
   ObjectStorageServiceChain:
     type: OS::TripleO::Services
@@ -847,6 +850,7 @@ resources:
           SchedulerHints: {get_param: ObjectStorageSchedulerHints}
           NodeIndex: '%index%'
           ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
+          ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
 
   CephStorageServiceChain:
     type: OS::TripleO::Services
@@ -880,6 +884,7 @@ resources:
           SchedulerHints: {get_param: CephStorageSchedulerHints}
           NodeIndex: '%index%'
           ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
+          ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
 
   ControllerIpListMap:
     type: OS::TripleO::Network::Ports::NetIpListMap
index b294814..77ca4dc 100644 (file)
@@ -91,6 +91,9 @@ parameters:
   ServiceConfigSettings:
     type: json
     default: {}
+  ServiceNames:
+    type: comma_delimited_list
+    default: []
   ConfigCommand:
     type: string
     description: Command which will be run whenever configuration data changes
@@ -247,6 +250,7 @@ resources:
             - heat_config_%{::deploy_config_name}
             - ceph_extraconfig
             - extraconfig
+            - service_names
             - service_configs
             - ceph_cluster # provided by CephClusterConfig
             - ceph
@@ -256,6 +260,9 @@ resources:
             - network
           merge_behavior: deeper
           datafiles:
+            service_names:
+              mapped_data:
+                service_names: {get_param: ServiceNames}
             service_configs:
               mapped_data: {get_param: ServiceConfigSettings}
             common:
index 0591802..edd81b9 100644 (file)
@@ -91,6 +91,9 @@ parameters:
   ServiceConfigSettings:
     type: json
     default: {}
+  ServiceNames:
+    type: comma_delimited_list
+    default: []
   ConfigCommand:
     type: string
     description: Command which will be run whenever configuration data changes
@@ -253,6 +256,7 @@ resources:
             - heat_config_%{::deploy_config_name}
             - volume_extraconfig
             - extraconfig
+            - service_names
             - service_configs
             - volume
             - all_nodes # provided by allNodesConfig
@@ -261,6 +265,9 @@ resources:
             - network
           merge_behavior: deeper
           datafiles:
+            service_names:
+              mapped_data:
+                service_names: {get_param: ServiceNames}
             service_configs:
               mapped_data: {get_param: ServiceConfigSettings}
             common:
index d4fdea3..0e02916 100644 (file)
@@ -212,6 +212,9 @@ parameters:
   ServiceConfigSettings:
     type: json
     default: {}
+  ServiceNames:
+    type: comma_delimited_list
+    default: []
   ConfigCommand:
     type: string
     description: Command which will be run whenever configuration data changes
@@ -361,6 +364,7 @@ resources:
             - heat_config_%{::deploy_config_name}
             - compute_extraconfig
             - extraconfig
+            - service_names
             - service_configs
             - compute
             - ceph_cluster # provided by CephClusterConfig
@@ -376,6 +380,9 @@ resources:
             - neutron_opencontrail_data  # Optionally provided by ComputeExtraConfigPre
           merge_behavior: deeper
           datafiles:
+            service_names:
+              mapped_data:
+                service_names: {get_param: ServiceNames}
             service_configs:
               mapped_data: {get_param: ServiceConfigSettings}
             compute_extraconfig:
index 10bcb67..679fd90 100644 (file)
@@ -318,6 +318,9 @@ parameters:
   ServiceConfigSettings:
     type: json
     default: {}
+  ServiceNames:
+    type: comma_delimited_list
+    default: []
   ConfigCommand:
     type: string
     description: Command which will be run whenever configuration data changes
@@ -551,24 +554,6 @@ resources:
         corosync_ipv6: {get_param: CorosyncIPv6}
         memcached_ipv6: {get_param: MemcachedIPv6}
         nova_password: {get_param: NovaPassword}
-        nova_dsn:
-          list_join:
-            - ''
-            - - {get_param: [EndpointMap, MysqlInternal, protocol]}
-              - '://nova:'
-              - {get_param: NovaPassword}
-              - '@'
-              - {get_param: [EndpointMap, MysqlInternal, host]}
-              - '/nova'
-        nova_api_dsn:
-          list_join:
-            - ''
-            - - {get_param: [EndpointMap, MysqlInternal, protocol]}
-              - '://nova_api:'
-              - {get_param: NovaPassword}
-              - '@'
-              - {get_param: [EndpointMap, MysqlInternal, host]}
-              - '/nova_api'
         upgrade_level_nova_compute: {get_param: UpgradeLevelNovaCompute}
         instance_name_template: {get_param: InstanceNameTemplate}
         nova_public_url: {get_param: [EndpointMap, NovaPublic, uri]}
@@ -640,6 +625,7 @@ resources:
             - controller_extraconfig
             - extraconfig
             - service_configs
+            - service_names
             - controller
             - database
             - object
@@ -661,6 +647,9 @@ resources:
             - midonet_data #Optionally provided by AllNodesExtraConfig
           merge_behavior: deeper
           datafiles:
+            service_names:
+              mapped_data:
+                service_names: {get_param: ServiceNames}
             service_configs:
               mapped_data: {get_param: ServiceConfigSettings}
             controller_extraconfig:
@@ -807,8 +796,6 @@ resources:
                 nova::api::api_bind_address: {get_input: nova_api_network}
                 nova::api::metadata_listen: {get_input: nova_metadata_network}
                 nova::api::admin_password: {get_input: nova_password}
-                nova::database_connection: {get_input: nova_dsn}
-                nova::api_database_connection: {get_input: nova_api_dsn}
                 nova::glance_api_servers: {get_input: glance_api_servers}
                 nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
                 nova::api::instance_name_template: {get_input: instance_name_template}
@@ -816,8 +803,6 @@ resources:
                 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
                 nova::network::neutron::neutron_auth_url: {get_input: neutron_auth_url}
                 nova::vncproxy::host: {get_input: nova_api_network}
-                nova::db::mysql::password: {get_input: nova_password}
-                nova::db::mysql_api::password: {get_input: nova_password}
                 nova_enable_db_purge: {get_input: nova_enable_db_purge}
                 nova::keystone::auth::public_url: {get_input: nova_public_url}
                 nova::keystone::auth::internal_url: {get_input: nova_internal_url}
index 6272833..fe203be 100644 (file)
@@ -1,6 +1,5 @@
 # Hiera data here applies to all compute nodes
 
-nova::host: "%{::fqdn}"
 nova::notify_on_state_change: 'vm_and_task_state'
 nova::notification_driver: messagingv2
 nova::compute::instance_usage_audit: true
@@ -19,6 +18,4 @@ nova::compute::reserved_host_memory: 2048
 ceilometer::agent::auth::auth_tenant_name: 'service'
 ceilometer::agent::auth::auth_endpoint_type: 'internalURL'
 
-neutron::host: "%{::fqdn}"
-
 compute_classes: []
index 9aa1428..5591f7e 100644 (file)
@@ -1,18 +1,3 @@
-# Nova
-nova::db::mysql::user: nova
-nova::db::mysql::host: "%{hiera('mysql_virtual_ip')}"
-nova::db::mysql::dbname: nova
-nova::db::mysql::allowed_hosts:
-  - '%'
-  - "%{hiera('mysql_bind_host')}"
-
-nova::db::mysql_api::user: nova_api
-nova::db::mysql_api::host: "%{hiera('mysql_virtual_ip')}"
-nova::db::mysql_api::dbname: nova_api
-nova::db::mysql_api::allowed_hosts:
-  - '%'
-  - "%{hiera('mysql_bind_host')}"
-
 # Aodh
 aodh::db::mysql::user: aodh
 aodh::db::mysql::host: "%{hiera('mysql_virtual_ip')}"
index 3a6370e..9ebfb6d 100644 (file)
@@ -240,11 +240,6 @@ if hiera('step') >= 5 {
                   Pacemaker::Resource::Service[$::aodh::params::listener_service_name]],
     }
 
-    # The next step is to include this class in puppet-tripleo profiles directly.
-    # We couldn't do it directly in puppet-tripleo, otherwise CI would have break because
-    # of Puppet duplicated resource.
-    include ::tripleo::profile::pacemaker::apache
-
     #VSM
     if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
       pacemaker::resource::ocf { 'vsm-p' :
index 294e7dd..34735f7 100644 (file)
@@ -28,6 +28,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Central Agent role.
     value:
+      service_name: ceilometer-agent-central
       config_settings:
         map_merge:
           - get_attr: [CeilometerServiceBase, role_data, config_settings]
index 737836a..9e4d057 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Compute Agent role.
     value:
+      service_name: ceilometer-agent-compute
       config_settings:
         get_attr: [CeilometerServiceBase, role_data, config_settings]
       step_config: |
index 523dabb..b65e189 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Notification Agent role.
     value:
+      service_name: ceilometer-agent-notification
       config_settings:
         get_attr: [CeilometerServiceBase, role_data, config_settings]
       step_config: |
index 06c2ed1..5dce7c3 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer API role.
     value:
+      service_name: ceilometer-api
       config_settings:
         get_attr: [CeilometerServiceBase, role_data, config_settings]
       step_config: |
index 1dea785..40060a1 100644 (file)
@@ -62,6 +62,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer role.
     value:
+      service_name: ceilometer-base
       config_settings:
         ceilometer::db::database_connection:
           list_join:
@@ -98,7 +99,7 @@ outputs:
         ceilometer::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
         ceilometer::rabbit_port: {get_param: RabbitClientPort}
         ceilometer::db::mysql::user: ceilometer
-        ceilometer::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host]}
+        ceilometer::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
         ceilometer::db::mysql::dbname: ceilometer
         ceilometer::db::mysql::allowed_hosts:
           - '%'
index 2962721..540a465 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Collector role.
     value:
+      service_name: ceilometer-collector
       config_settings:
         get_attr: [CeilometerServiceBase, role_data, config_settings]
       step_config: |
index 796abe1..7816a85 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Expirer role.
     value:
+      service_name: ceilometer-expirer
       config_settings:
         get_attr: [CeilometerServiceBase, role_data, config_settings]
       step_config: |
index 065901b..76f649b 100644 (file)
@@ -57,6 +57,7 @@ outputs:
   role_data:
     description: Role data for the Ceph base service.
     value:
+      service_name: ceph-base
       config_settings:
         tripleo::profile::base::ceph::ceph_ipv6: {get_param: CephIPv6}
         tripleo::profile::base::ceph::enable_ceph_storage: {get_param: ControllerEnableCephStorage}
index ca920a5..fc23f71 100644 (file)
@@ -18,6 +18,7 @@ outputs:
   role_data:
     description: Role data for the Cinder OSD service.
     value:
+      service_name: ceph-client
       config_settings:
         get_attr: [CephBase, role_data, config_settings]
       step_config: |
index 4522f41..b656e24 100644 (file)
@@ -40,6 +40,7 @@ outputs:
   role_data:
     description: Role data for the Ceph External service.
     value:
+      service_name: ceph-external
       config_settings:
         tripleo::profile::base::ceph::ceph_mon_host: {get_param: CephExternalMonHost}
         ceph::profile::params::fsid: {get_param: CephClusterFSID}
index d6e3aa7..68a5945 100644 (file)
@@ -41,6 +41,7 @@ outputs:
   role_data:
     description: Role data for the Ceph Monitor service.
     value:
+      service_name: ceph-mon
       config_settings:
         map_merge:
           - get_attr: [CephBase, role_data, config_settings]
index 24f6028..eaba271 100644 (file)
@@ -18,6 +18,7 @@ outputs:
   role_data:
     description: Role data for the Cinder OSD service.
     value:
+      service_name: ceph-osd
       config_settings:
         get_attr: [CephBase, role_data, config_settings]
       step_config: |
index c53bef6..0b4817a 100644 (file)
@@ -30,6 +30,7 @@ outputs:
   role_data:
     description: Role data for the Cinder API role.
     value:
+      service_name: cinder-api
       config_settings:
         map_merge:
           - get_attr: [CinderBase, role_data, config_settings]
index f6d2b64..adacc73 100644 (file)
@@ -40,6 +40,7 @@ outputs:
   role_data:
     description: Role data for the Cinder base service.
     value:
+      service_name: cinder-base
       config_settings:
         cinder::database_connection:
           list_join:
@@ -57,7 +58,7 @@ outputs:
         cinder::rabbit_password: {get_param: RabbitPassword}
         cinder::rabbit_port: {get_param: RabbitClientPort}
         cinder::db::mysql::user: cinder
-        cinder::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host]}
+        cinder::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
         cinder::db::mysql::dbname: cinder
         cinder::db::mysql::allowed_hosts:
           - '%'
index 6bdf86b..2e1e852 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Cinder Scheduler role.
     value:
+      service_name: cinder-scheduler
       config_settings:
         get_attr: [CinderBase, role_data, config_settings]
       step_config: |
index 41f3827..69a38b0 100644 (file)
@@ -59,6 +59,7 @@ outputs:
   role_data:
     description: Role data for the Cinder Volume role.
     value:
+      service_name: cinder-volume
       config_settings:
         map_merge:
           - get_attr: [CinderBase, role_data, config_settings]
index ecd1d31..ed0b92a 100644 (file)
@@ -24,6 +24,7 @@ outputs:
   role_data:
     description: Role data for the MongoDB base service.
     value:
+      service_name: mongodb-base
       config_settings:
         mongodb::server::nojournal: {get_param: MongoDbNoJournal}
         mongodb::server::ipv6: {get_param: MongoDbIPv6}
index c048870..c2d36fc 100644 (file)
@@ -19,6 +19,7 @@ outputs:
   role_data:
     description: Service mongodb using composable services.
     value:
+      service_name: mongodb
       config_settings:
         map_merge:
           - get_attr: [MongoDbBase, role_data, config_settings]
index 3a23650..992dc11 100644 (file)
@@ -15,6 +15,7 @@ outputs:
   role_data:
     description: Service MySQL using composable services.
     value:
+      service_name: mysql
       config_settings:
       step_config: |
         include ::tripleo::profile::base::database::mysql
index 77b3c9f..c7b083f 100644 (file)
@@ -13,6 +13,7 @@ outputs:
   role_data:
     description: Role data for the redis role.
     value:
+      service_name: redis-base
       config_settings:
        redis::requirepass: {get_param: RedisPassword}
        redis::masterauth: {get_param: RedisPassword}
index 2669592..080f72b 100644 (file)
@@ -18,6 +18,7 @@ outputs:
   role_data:
     description: Role data for the redis role.
     value:
+      service_name: redis
       config_settings:
         map_merge:
           - get_attr: [RedisBase, role_data, config_settings]
index f1f98a8..120c57f 100644 (file)
@@ -65,6 +65,7 @@ outputs:
   role_data:
     description: Role data for the Glance API role.
     value:
+      service_name: glance-api
       config_settings:
         glance::api::database_connection:
           list_join:
index d71157f..6d2144e 100644 (file)
@@ -26,6 +26,7 @@ outputs:
   role_data:
     description: Role data for the Glance Registry role.
     value:
+      service_name: glance-registry
       config_settings:
         glance::registry::database_connection:
           list_join:
@@ -42,7 +43,7 @@ outputs:
         glance::registry::debug: {get_param: Debug}
         glance::registry::workers: {get_param: GlanceWorkers}
         glance::db::mysql::user: glance
-        glance::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host]}
+        glance::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
         glance::db::mysql::dbname: glance
         glance::db::mysql::allowed_hosts:
           - '%'
index a7b203b..f687763 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Gnocchi role.
     value:
+      service_name: gnocchi-api
       config_settings:
         map_merge:
           - get_attr: [GnocchiServiceBase, role_data, config_settings]
index e49c440..fa00f73 100644 (file)
@@ -39,6 +39,7 @@ outputs:
   role_data:
     description: Shared role data for the Heat services.
     value:
+      service_name: gnocchi-base
       config_settings:
         #Gnocchi engine
         gnocchi::debug: {get_input: debug}
@@ -84,7 +85,7 @@ outputs:
         gnocchi::statsd::flush_delay: 10
         gnocchi::statsd::archive_policy_name: 'low'
         gnocchi::db::mysql::user: gnocchi
-        gnocchi::db::mysql::host: {get_param: [EndpointMap, MysqlVirtual, host]}
+        gnocchi::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
         gnocchi::db::mysql::dbname: gnocchi
         gnocchi::db::mysql::allowed_hosts:
           - '%'
index bafc8dd..2021538 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Gnocchi role.
     value:
+      service_name: gnocchi-metricd
       config_settings:
         map_merge:
           - get_attr: [GnocchiServiceBase, role_data, config_settings]
index 25abf49..4fef7af 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Gnocchi role.
     value:
+      service_name: gnocchi-statsd
       config_settings:
         map_merge:
           - get_attr: [GnocchiServiceBase, role_data, config_settings]
index 844637b..73b4000 100644 (file)
@@ -14,5 +14,6 @@ outputs:
   role_data:
     description: Role data for the HAproxy role.
     value:
+      service_name: haproxy
       step_config: |
         include ::tripleo::profile::base::haproxy
index c1f26c1..8d23733 100644 (file)
@@ -30,6 +30,7 @@ outputs:
   role_data:
     description: Role data for the Heat CloudFormation API role.
     value:
+      service_name: heat-api-cfn
       config_settings:
         map_merge:
           - get_attr: [HeatBase, role_data, config_settings]
index 2c56951..c996cf1 100644 (file)
@@ -22,6 +22,7 @@ outputs:
   role_data:
     description: Role data for the Heat Cloudwatch API role.
     value:
+      service_name: heat-api-cloudwatch
       config_settings:
         map_merge:
           - get_attr: [HeatBase, role_data, config_settings]
index d3461e6..41c7d9a 100644 (file)
@@ -30,6 +30,7 @@ outputs:
   role_data:
     description: Role data for the Heat API role.
     value:
+      service_name: heat-api
       config_settings:
         map_merge:
           - get_attr: [HeatBase, role_data, config_settings]
index 88e2794..2a7aeab 100644 (file)
@@ -31,6 +31,7 @@ outputs:
   role_data:
     description: Shared role data for the Heat services.
     value:
+      service_name: heat-base
       config_settings:
         heat::rabbit_userid: {get_param: RabbitUserName}
         heat::rabbit_password: {get_param: RabbitPassword}
index 77af55e..2fd0188 100644 (file)
@@ -35,6 +35,7 @@ outputs:
   role_data:
     description: Role data for the Heat Engine role.
     value:
+      service_name: heat-engine
       config_settings:
         map_merge:
           - get_attr: [HeatBase, role_data, config_settings]
@@ -55,7 +56,7 @@ outputs:
             heat::db::mysql::password: {get_param: HeatPassword}
             heat::keystone::domain::domain_password: {get_param: HeatStackDomainAdminPassword}
             heat::db::mysql::user: heat
-            heat::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host]}
+            heat::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
             heat::db::mysql::dbname: heat
             heat::db::mysql::allowed_hosts:
               - '%'
index 01cf579..022e3fb 100644 (file)
@@ -23,6 +23,7 @@ outputs:
   role_data:
     description: Role data for the Horizon role.
     value:
+      service_name: horizon
       config_settings:
         horizon::allowed_hosts: {get_param: HorizonAllowedHosts}
         neutron::plugins::ml2::mechanism_drivers:
index 5ab03fc..6f369f7 100644 (file)
@@ -24,6 +24,7 @@ outputs:
   role_data:
     description: Role data for the Ironic API role.
     value:
+      service_name: ironic-api
       config_settings:
         map_merge:
           - get_attr: [IronicBase, role_data, config_settings]
index df82bb6..fb9d4dd 100644 (file)
@@ -40,6 +40,7 @@ outputs:
   role_data:
     description: Role data for the Ironic role.
     value:
+      service_name: ironic-base
       config_settings:
         ironic::database_connection:
           list_join:
index 26d4e0e..574e5ae 100644 (file)
@@ -24,6 +24,7 @@ outputs:
   role_data:
     description: Role data for the Ironic conductor role.
     value:
+      service_name: ironic-conductor
       config_settings:
         map_merge:
           - get_attr: [IronicBase, role_data, config_settings]
index 09ce26b..95a401c 100644 (file)
@@ -14,5 +14,6 @@ outputs:
   role_data:
     description: Role data for the Keepalived role.
     value:
+      service_name: keepalived
       step_config: |
         include ::tripleo::profile::base::keepalived
index b429c5e..9e8a53f 100644 (file)
@@ -14,5 +14,6 @@ outputs:
   role_data:
     description: Role data for the Kernel modules
     value:
+      service_name: kernel
       step_config: |
         include ::tripleo::profile::base::kernel
index 404ce6c..83bab34 100644 (file)
@@ -92,6 +92,7 @@ outputs:
   role_data:
     description: Role data for the Keystone role.
     value:
+      service_name: keystone
       config_settings:
         keystone::database_connection:
           list_join:
index fcd0adc..55f8c08 100644 (file)
@@ -14,6 +14,7 @@ outputs:
   role_data:
     description: Role data for the Memcached role.
     value:
+      service_name: memcached
       config_settings:
       step_config: |
         include ::tripleo::profile::base::memcached
index 8bd8d98..301759c 100644 (file)
@@ -47,6 +47,7 @@ outputs:
   role_data:
     description: Role data for the Neutron base service.
     value:
+      service_name: neutron-base
       config_settings:
         neutron::rabbit_password: {get_param: RabbitPassword}
         neutron::rabbit_user: {get_param: RabbitUserName}
@@ -60,3 +61,4 @@ outputs:
             params:
               PLUGINS: {get_param: NeutronServicePlugins}
         neutron::debug: {get_param: Debug}
+        neutron::host: '"%{::fqdn}"'
index c3b65c4..f08afd1 100644 (file)
@@ -14,6 +14,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Compute Plumgrid plugin
     value:
+      service_name: neutron-compute-plugin-midonet
       config_settings:
       step_config: |
         include ::tripleo::profile::base::neutron::agents::midonet
index c5fbeec..f6e2f3a 100644 (file)
@@ -18,6 +18,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Compute Nuage plugin
     value:
+      service_name: neutron-compute-plugin-nuage
       config_settings:
         tripleo::profile::base::neutron::agents::nuage::nova_os_tenant_name: 'service'
         tripleo::profile::base::neutron::agents::nuage::nova_os_password: {get_param: NovaPassword}
index 2c79c56..b95a655 100644 (file)
@@ -14,6 +14,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Compute OpenContrail plugin
     value:
+      service_name: neutron-compute-plugin-opencontrail
       config_settings:
       step_config: |
         include ::tripleo::profile::base::neutron::opencontrail::vrouter
index b8ec389..064ac9e 100644 (file)
@@ -14,6 +14,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Compute Plumgrid plugin
     value:
+      service_name: neutron-compute-plugin-plumgrid
       config_settings:
       step_config: |
         include tripleo::profile::base::neutron::plumgrid
index 5d02bc9..5b903ea 100644 (file)
@@ -23,6 +23,7 @@ outputs:
   role_data:
     description: Role data for the Neutron DHCP agent service.
     value:
+      service_name: neutron-dhcp
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
index 20c82dc..0e56861 100644 (file)
@@ -26,6 +26,7 @@ outputs:
   role_data:
     description: Role data for the Neutron L3 agent service.
     value:
+      service_name: neutron-l3
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
index e221b3a..04c80e0 100644 (file)
@@ -31,6 +31,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Metadata agent service.
     value:
+      service_name: neutron-metadata
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
index 736c01c..d48d97f 100644 (file)
@@ -36,6 +36,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Midonet plugin and services
     value:
+      service_name: neutron-midonet
       config_settings:
         tripleo::profile::base::neutron::midonet::admin_password: {get_param: AdminPassword}
         tripleo::profile::base::neutron::midonet::keystone_admin_token: {get_param: AdminToken}
index 0e1dbb2..30caeec 100644 (file)
@@ -47,6 +47,7 @@ outputs:
   role_data:
     description: Role data for the Neutron OVS agent service.
     value:
+      service_name: neutron-ovs-agent
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
index ff13d5d..3511b2f 100644 (file)
@@ -61,6 +61,7 @@ outputs:
   role_data:
     description: Role data for the Neutron ML2 plugin.
     value:
+      service_name: neutron-plugin-ml2
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
index 3c3d8b6..3889f84 100644 (file)
@@ -59,6 +59,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Nuage plugin
     value:
+      service_name: neutron-plugin-nuage
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
index 9c58c03..1d23c49 100644 (file)
@@ -42,6 +42,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Opencontrail plugin
     value:
+      service_name: neutron-plugin-opencontrail
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
index a0ac46e..484d163 100644 (file)
@@ -80,6 +80,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Plumgrid plugin
     value:
+      service_name: neutron-plugin-plumgrid
       config_settings:
         neutron::plugins::plumgrid::connection:
           list_join:
index d759d42..61af11f 100644 (file)
@@ -22,9 +22,9 @@ parameters:
     description: Allow automatic l3-agent failover
     type: string
   NeutronL3HA:
-    default: 'False'
-    description: Whether to enable l3-agent HA
-    type: string
+    default: false
+    description: Whether to enable HA for virtual routers
+    type: boolean
   NovaPassword:
     description: The password for the nova service and db account, used by nova-api.
     type: string
@@ -39,6 +39,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Server agent service.
     value:
+      service_name: neutron-server
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
@@ -66,7 +67,7 @@ outputs:
             neutron::server::notifications::password: {get_param: NovaPassword}
             neutron::db::mysql::password: {get_param: NeutronPassword}
             neutron::db::mysql::user: neutron
-            neutron::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host]}
+            neutron::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
             neutron::db::mysql::dbname: ovs_neutron
             neutron::db::mysql::allowed_hosts:
               - '%'
index 0ff159d..f6c4105 100644 (file)
@@ -17,11 +17,14 @@ parameters:
 resources:
   NovaBase:
     type: ./nova-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Nova API service.
     value:
+      service_name: nova-api
       config_settings:
         map_merge:
           - get_attr: [NovaBase, role_data, config_settings]
index 7de14f6..c94e024 100644 (file)
@@ -4,6 +4,15 @@ description: >
   OpenStack Nova base service. Shared for all Nova services.
 
 parameters:
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  NovaPassword:
+    description: The password for the nova service and db account, used by nova-api.
+    type: string
+    hidden: true
   RabbitPassword:
     description: The password for RabbitMQ
     type: string
@@ -29,11 +38,45 @@ parameters:
 
 outputs:
   role_data:
-    description: Role data for the Neutron base service.
+    description: Role data for the Nova base service.
     value:
+      service_name: nova-base
       config_settings:
         nova::rabbit_password: {get_param: RabbitPassword}
         nova::rabbit_user: {get_param: RabbitUserName}
         nova::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
         nova::rabbit_port: {get_param: RabbitClientPort}
+        nova::database_connection:
+          list_join:
+            - ''
+            - - {get_param: [EndpointMap, MysqlInternal, protocol]}
+              - '://nova:'
+              - {get_param: NovaPassword}
+              - '@'
+              - {get_param: [EndpointMap, MysqlInternal, host]}
+              - '/nova'
+        nova::api_database_connection:
+          list_join:
+            - ''
+            - - {get_param: [EndpointMap, MysqlInternal, protocol]}
+              - '://nova_api:'
+              - {get_param: NovaPassword}
+              - '@'
+              - {get_param: [EndpointMap, MysqlInternal, host]}
+              - '/nova_api'
+        nova::db::mysql::password: {get_input: nova_password}
+        nova::db::mysql::user: nova
+        nova::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
+        nova::db::mysql::dbname: nova
+        nova::db::mysql::allowed_hosts:
+          - '%'
+          - "%{hiera('mysql_bind_host')}"
+        nova::db::mysql_api::password: {get_input: nova_password}
+        nova::db::mysql_api::user: nova_api
+        nova::db::mysql_api::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
+        nova::db::mysql_api::dbname: nova_api
+        nova::db::mysql_api::allowed_hosts:
+          - '%'
+          - "%{hiera('mysql_bind_host')}"
         nova::debug: {get_param: Debug}
+        nova::host: '"%{::fqdn}"'
index 679586f..341bd97 100644 (file)
@@ -13,11 +13,14 @@ parameters:
 resources:
   NovaBase:
     type: ./nova-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Nova Compute service.
     value:
+      service_name: nova-compute
       config_settings:
         map_merge:
           - get_attr: [NovaBase, role_data, config_settings]
index 412dd27..c334de4 100644 (file)
@@ -17,11 +17,14 @@ parameters:
 resources:
   NovaBase:
     type: ./nova-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Nova Conductor service.
     value:
+      service_name: nova-conductor
       config_settings:
         map_merge:
           - get_attr: [NovaBase, role_data, config_settings]
index 791c544..0e7bf3b 100644 (file)
@@ -13,11 +13,14 @@ parameters:
 resources:
   NovaBase:
     type: ./nova-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Nova Consoleauth service.
     value:
+      service_name: nova-consoleauth
       config_settings:
         get_attr: [NovaBase, role_data, config_settings]
       step_config: |
index e3309c3..087ad27 100644 (file)
@@ -13,11 +13,14 @@ parameters:
 resources:
   NovaBase:
     type: ./nova-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Libvirt service.
     value:
+      service_name: nova-libvirt
       config_settings:
         map_merge:
           - get_attr: [NovaBase, role_data, config_settings]
index 65ed664..4187b72 100644 (file)
@@ -13,11 +13,14 @@ parameters:
 resources:
   NovaBase:
     type: ./nova-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Nova Scheduler service.
     value:
+      service_name: nova-scheduler
       config_settings:
         map_merge:
           - get_attr: [NovaBase, role_data, config_settings]
index 93a25ab..d8e04cc 100644 (file)
@@ -13,11 +13,14 @@ parameters:
 resources:
   NovaBase:
     type: ./nova-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Nova Vncproxy service.
     value:
+      service_name: nova-vncproxy
       config_settings:
         get_attr: [NovaBase, role_data, config_settings]
       step_config: |
index dc1d6e4..3b78bef 100644 (file)
@@ -14,6 +14,7 @@ outputs:
   role_data:
     description: Role data for the Pacemaker role.
     value:
+      service_name: pacemaker
       config_settings:
       step_config: |
         include ::tripleo::profile::base::pacemaker
index 8fb7bd2..3ba78fc 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Central Agent pacemaker role.
     value:
+      service_name: ceilometer-agent-central
       config_settings:
         map_merge:
           - get_attr: [CeilometerServiceBase, role_data, config_settings]
index 5470978..0fb008c 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Notification Agent pacemaker role.
     value:
+      service_name: ceilometer-agent-notification
       config_settings:
         map_merge:
           - get_attr: [CeilometerServiceBase, role_data, config_settings]
index d45b157..5cd8bb8 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer API pacemaker role.
     value:
+      service_name: ceilometer-api
       config_settings:
         map_merge:
           - get_attr: [CeilometerServiceBase, role_data, config_settings]
index 487a557..9e3671e 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Ceilometer Collector pacemaker role.
     value:
+      service_name: ceilometer-collector
       config_settings:
         map_merge:
           - get_attr: [CeilometerServiceBase, role_data, config_settings]
index 0f66cc0..d1313b2 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Cinder API role.
     value:
+      service_name: cinder-api
       config_settings:
         map_merge:
           - get_attr: [CinderApiBase, role_data, config_settings]
index d1472c0..c4e0a34 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Cinder Scheduler role.
     value:
+      service_name: cinder-scheduler
       config_settings:
         map_merge:
           - get_attr: [CinderSchedulerBase, role_data, config_settings]
index ee4e6ce..3e28039 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Cinder Volume role.
     value:
+      service_name: cinder-volume
       config_settings:
         map_merge:
           - get_attr: [CinderVolumeBase, role_data, config_settings]
index b2e9e0b..c09f93a 100644 (file)
@@ -19,6 +19,7 @@ outputs:
   role_data:
     description: Service mongodb using composable services.
     value:
+      service_name: mongodb
       config_settings:
         map_merge:
           - get_attr: [MongoDbBase, role_data, config_settings]
index 1cecbfa..cc9dc94 100644 (file)
@@ -15,6 +15,7 @@ outputs:
   role_data:
     description: Service MySQL with Pacemaker using composable services.
     value:
+      service_name: mysql
       config_settings:
       step_config: |
         include ::tripleo::profile::pacemaker::database::mysql
index 0e46f8a..3cd8d16 100644 (file)
@@ -18,11 +18,11 @@ outputs:
   role_data:
     description: Role data for the Redis pacemaker role.
     value:
+      service_name: redis
       config_settings:
         map_merge:
           - get_attr: [RedisBase, role_data, config_settings]
-          - tripleo::profile::pacemaker::database::redis::redis_vip: {get_input: redis_vip}
-            redis::service_manage: false
+          - redis::service_manage: false
             redis::notify_service: false
       step_config: |
         include ::tripleo::profile::pacemaker::database::redis
index 5a581dc..bc611b0 100644 (file)
@@ -45,6 +45,7 @@ outputs:
   role_data:
     description: Role data for the Glance role.
     value:
+      service_name: glance-api
       config_settings:
         map_merge:
           - get_attr: [GlanceApiBase, role_data, config_settings]
index 8b88cb9..72ca939 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Glance role.
     value:
+      service_name: glance-registry
       config_settings:
         map_merge:
           - get_attr: [GlanceRegistryBase, role_data, config_settings]
index ac5355d..6c01bc5 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Gnocchi role.
     value:
+      service_name: gnocchi-api
       config_settings:
         map_merge:
           - get_attr: [GnocchiServiceBase, role_data, config_settings]
index 8a5562e..4895bac 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Gnocchi role.
     value:
+      service_name: gnocchi-metricd
       config_settings:
         map_merge:
           - get_attr: [GnocchiServiceBase, role_data, config_settings]
index 8625b4e..2760df3 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Gnocchi role.
     value:
+      service_name: gnocchi-statsd
       config_settings:
         map_merge:
           - get_attr: [GnocchiServiceBase, role_data, config_settings]
index c2ca281..811a669 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the HAproxy with pacemaker role.
     value:
+      service_name: haproxy
       config_settings:
         map_merge:
           - get_attr: [LoadbalancerServiceBase, role_data, config_settings]
index 780c295..bf01ced 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Heat CloudFormation API role.
     value:
+      service_name: heat-api-cfn
       config_settings:
         map_merge:
           - get_attr: [HeatApiCfnBase, role_data, config_settings]
index 2fa82fe..6ee844d 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Heat Cloudwatch API role.
     value:
+      service_name: heat-api-cloudwatch
       config_settings:
         map_merge:
            - get_attr: [HeatApiCloudwatchBase, role_data, config_settings]
index be897a5..1460442 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the Heat API role.
     value:
+      service_name: heat-api
       config_settings:
         map_merge:
           - get_attr: [HeatApiBase, role_data, config_settings]
index a8ed5c0..450917f 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Heat engine role.
     value:
+      service_name: heat-engine
       config_settings:
         map_merge:
           - get_attr: [HeatEngineBase, role_data, config_settings]
diff --git a/puppet/services/pacemaker/horizon.yaml b/puppet/services/pacemaker/horizon.yaml
new file mode 100644 (file)
index 0000000..f8b5ad0
--- /dev/null
@@ -0,0 +1,29 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Horizon service with Pacemaker configured with Puppet.
+
+parameters:
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+
+resources:
+
+  HorizonBase:
+    type: ../horizon.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
+
+outputs:
+  role_data:
+    description: Role data for the Horizon role.
+    value:
+      service_name: horizon
+      config_settings:
+        get_attr: [HorizonBase, role_data, config_settings]
+      step_config: |
+        include ::tripleo::profile::base::horizon
+        include ::tripleo::profile::pacemaker::apache
index 04e9036..f5f136d 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Keystone pacemaker role.
     value:
+      service_name: keystone
       config_settings:
         map_merge:
           - get_attr: [KeystoneServiceBase, role_data, config_settings]
index 9a11855..43cd528 100644 (file)
@@ -19,6 +19,7 @@ outputs:
   role_data:
     description: Role data for the Memcached pacemaker role.
     value:
+      service_name: memcached
       config_settings:
         map_merge:
           - get_attr: [MemcachedServiceBase, role_data, config_settings]
index 6f51437..312e275 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Neutron DHCP role.
     value:
+      service_name: neutron-dhcp
       config_settings:
         map_merge:
           - get_attr: [NeutronDhcpBase, role_data, config_settings]
index cb9c32d..8607614 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Neutron L3 role.
     value:
+      service_name: neutron-l3
       config_settings:
         map_merge:
           - get_attr: [NeutronL3Base, role_data, config_settings]
index 1c74b26..96f3fb4 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Metadata role.
     value:
+      service_name: neutron-metadata
       config_settings:
         map_merge:
           - get_attr: [NeutronMetadataBase, role_data, config_settings]
index f9fd992..3c185da 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Midonet plugin.
     value:
+      service_name: neutron-midonet
       config_settings:
         map_merge:
           - get_attr: [NeutronMidonetBase, role_data, config_settings]
index a17d7a6..214dc1c 100644 (file)
@@ -19,6 +19,7 @@ outputs:
   role_data:
     description: Role data for the Neutron OVS agent service.
     value:
+      service_name: neutron-ovs-agent
       config_settings:
         get_attr: [NeutronOvsBase, role_data, config_settings]
       step_config: |
index 9091b5b..a4c4a5e 100644 (file)
@@ -19,6 +19,7 @@ outputs:
   role_data:
     description: Role data for the Neutron ML2 plugin.
     value:
+      service_name: neutron-plugin-ml2
       config_settings:
         map_merge:
           - get_attr: [NeutronMl2Base, role_data, config_settings]
index 704d922..64ad0f4 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Neutron Nuage plugin.
     value:
+      service_name: neutron-plugin-nuage
       config_settings:
         map_merge:
           - get_attr: [NeutronPluginNuageBase, role_data, config_settings]
index d8c7550..f2fd5b9 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Neutron OpenContrail plugin.
     value:
+      service_name: neutron-plugin-opencontrail
       config_settings:
         map_merge:
           - get_attr: [NeutronPluginOpenContrail, role_data, config_settings]
index c2e8eaa..9ceaf00 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Neutron PLUMgrid plugin.
     value:
+      service_name: neutron-plugin-plumgrid
       config_settings:
         map_merge:
           - get_attr: [NeutronPluginPlumgridBase, role_data, config_settings]
index 60599e7..74234a8 100644 (file)
@@ -9,6 +9,10 @@ parameters:
     description: Mapping of service endpoint -> protocol. Typically set
                  via parameter_defaults in the resource registry.
     type: json
+  NeutronL3HA:
+    default: true
+    description: Whether to enable HA for virtual routers
+    type: boolean
 
 resources:
 
@@ -21,10 +25,12 @@ outputs:
   role_data:
     description: Role data for the Neutron Server.
     value:
+      service_name: neutron-server
       config_settings:
         map_merge:
           - get_attr: [NeutronServerBase, role_data, config_settings]
           - neutron::server::enabled: false
             neutron::server::manage_service: false
+            neutron::server::l3_ha: {get_param: NeutronL3HA}
       step_config: |
         include ::tripleo::profile::pacemaker::neutron::server
index 1b5011b..467955f 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Nova API role.
     value:
+      service_name: nova-api
       config_settings:
         map_merge:
           - get_attr: [NovaApiBase, role_data, config_settings]
index a484f0d..fe0b00f 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Nova Conductor role.
     value:
+      service_name: nova-conductor
       config_settings:
         map_merge:
           - get_attr: [NovaConductorBase, role_data, config_settings]
index f9b6b05..cc683eb 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Nova Consoleauth role.
     value:
+      service_name: nova-consoleauth
       config_settings:
         map_merge:
           - get_attr: [NovaConsoleauthBase, role_data, config_settings]
index 0032cbe..dbb643c 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Nova Scheduler role.
     value:
+      service_name: nova-scheduler
       config_settings:
         map_merge:
           - get_attr: [NovaSchedulerBase, role_data, config_settings]
index 5239524..8fb07d5 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Nova Vncproxy role.
     value:
+      service_name: nova-vncproxy
       config_settings:
         map_merge:
           - get_attr: [NovaVncproxyBase, role_data, config_settings]
index 20fb2e4..b01caee 100644 (file)
@@ -20,6 +20,7 @@ outputs:
   role_data:
     description: Role data for the RabbitMQ pacemaker role.
     value:
+      service_name: rabbitmq
       config_settings:
         map_merge:
           - get_attr: [RabbitMQServiceBase, role_data, config_settings]
index a5db77c..a4dfa13 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Sahara API role.
     value:
+      service_name: sahara-api
       config_settings:
         map_merge:
           - get_attr: [SaharaApiBase, role_data, config_settings]
index 129f88b..31d9bea 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role data for the Sahara Engine role.
     value:
+      service_name: sahara-engine
       config_settings:
         map_merge:
           - get_attr: [SaharaEngineBase, role_data, config_settings]
index 3688c4a..7b4b10e 100644 (file)
@@ -30,6 +30,7 @@ outputs:
   role_data:
     description: Role data for the RabbitMQ role.
     value:
+      service_name: rabbitmq
       config_settings:
         rabbitmq::file_limit: {get_param: RabbitFDLimit}
         rabbitmq::default_user: {get_param: RabbitUserName}
index 93bf738..a0a98b1 100644 (file)
@@ -34,6 +34,7 @@ outputs:
   role_data:
     description: Role data for the Sahara API role.
     value:
+      service_name: sahara-api
       config_settings:
         map_merge:
           - get_attr: [SaharaBase, role_data, config_settings]
index 275d753..72fc33a 100644 (file)
@@ -31,6 +31,7 @@ outputs:
   role_data:
     description: Role data for the Sahara base service.
     value:
+      service_name: sahara-base
       config_settings:
         sahara::rabbit_password: {get_param: RabbitPassword}
         sahara::rabbit_user: {get_param: RabbitUserName}
index f0411a3..b799e27 100644 (file)
@@ -23,6 +23,7 @@ outputs:
   role_data:
     description: Role data for the Sahara Engine role.
     value:
+      service_name: sahara-engine
       config_settings:
         map_merge:
           - get_attr: [SaharaBase, role_data, config_settings]
@@ -38,7 +39,7 @@ outputs:
             sahara::database_connection: *sahara_dsn
             sahara::db::mysql::password: {get_param: SaharaPassword}
             sahara::db::mysql::user: sahara
-            sahara::db::mysql::host: {get_param: [EndpointMap, MysqlVirtual, host]}
+            sahara::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
             sahara::db::mysql::dbname: sahara
             sahara::db::mysql::allowed_hosts:
               - '%'
index 91f0e04..64a0f98 100644 (file)
@@ -30,5 +30,6 @@ outputs:
   role_data:
     description: Combined Role data for this set of services.
     value:
+      service_names: {get_attr: [ServiceChain, role_data, service_name]}
       config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}}
       step_config: {list_join: ["\n", {get_attr: [ServiceChain, role_data, step_config]}]}
index 24ee293..36e510b 100644 (file)
@@ -24,6 +24,7 @@ outputs:
   role_data:
     description: Role data for the SNMP services
     value:
+      service_name: snmp
       config_settings:
         snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
         snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
index 930b9e3..3ae1b01 100644 (file)
@@ -35,6 +35,7 @@ outputs:
   role_data:
     description: Role data for the Swift proxy service.
     value:
+      service_name: swift-proxy
       config_settings:
         # Swift
         swift::proxy::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri]}
index 980c95f..02746a9 100644 (file)
@@ -36,6 +36,7 @@ outputs:
   role_data:
     description: Role data for the Swift Proxy role.
     value:
+      service_name: swift-storage
       config_settings:
         # Swift
         swift::storage::all::mount_check: {get_param: SwiftMountCheck}
index 930dca4..a0e51fe 100644 (file)
@@ -21,6 +21,7 @@ outputs:
   role_data:
     description: Role ntp using composable services.
     value:
+      service_name: ntp
       config_settings:
         ntp::ntpservers: {get_param: NtpServer}
       step_config: |
index 13fda98..805c905 100644 (file)
@@ -18,6 +18,7 @@ outputs:
   role_data:
     description: Timezone role using composable services.
     value:
+      service_name: timezone
       config_settings:
         timezone::timezone: {get_param: TimeZone}
       step_config: |
index fd5e26a..034592a 100644 (file)
@@ -96,6 +96,9 @@ parameters:
   ServiceConfigSettings:
     type: json
     default: {}
+  ServiceNames:
+    type: comma_delimited_list
+    default: []
   ConfigCommand:
     type: string
     description: Command which will be run whenever configuration data changes
@@ -239,6 +242,7 @@ resources:
             - heat_config_%{::deploy_config_name}
             - object_extraconfig
             - extraconfig
+            - service_names
             - service_configs
             - object
             - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
@@ -248,6 +252,9 @@ resources:
             - network
           merge_behavior: deeper
           datafiles:
+            service_names:
+              mapped_data:
+                service_names: {get_param: ServiceNames}
             service_configs:
               mapped_data: {get_param: ServiceConfigSettings}
             common:
index 2da873d..34219ef 100755 (executable)
@@ -21,23 +21,49 @@ def exit_usage():
     print('Usage %s <yaml file or directory>' % sys.argv[0])
     sys.exit(1)
 
+
+def validate_service(filename, tpl):
+    if 'outputs' in tpl and 'role_data' in tpl['outputs']:
+        if 'value' not in tpl['outputs']['role_data']:
+            print('ERROR: invalid role_data for filename: %s'
+                  % filename)
+            return 1
+        role_data = tpl['outputs']['role_data']['value']
+        if 'service_name' not in role_data:
+            print('ERROR: service_name is required in role_data for %s.'
+                  % filename)
+            return 1
+        if (role_data['service_name'] !=
+                os.path.basename(filename).split('.')[0]):
+            print('ERROR: service_name should match file name for service: %s.'
+                  % filename)
+            return 1
+    return 0
+
+
 def validate(filename):
     print('Validating %s' % filename)
+    retval = 0
     try:
         tpl = yaml.load(open(filename).read())
+
+        if (filename.startswith('./puppet/services/') and
+                filename != './puppet/services/services.yaml'):
+            retval = validate_service(filename, tpl)
+
     except Exception:
         print(traceback.format_exc())
         return 1
     # yaml is OK, now walk the parameters and output a warning for unused ones
     for p in tpl.get('parameters', {}):
         str_p = '\'%s\'' % p
-        in_resources =  str_p in str(tpl.get('resources', {}))
-        in_outputs =  str_p in str(tpl.get('outputs', {}))
+        in_resources = str_p in str(tpl.get('resources', {}))
+        in_outputs = str_p in str(tpl.get('outputs', {}))
         if not in_resources and not in_outputs:
             print('Warning: parameter %s in template %s appears to be unused'
                   % (p, filename))
 
-    return 0
+    return retval
 
 if len(sys.argv) < 2:
     exit_usage()