<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi guys,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      I’m trying to get Heat to work … but everytime I try to create a stack, the engine will fail at getting the catalog.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Since everything is working fine (ceilometer,nova,cinder,glance), am I forgetting something?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">StackValidationFailed_Remote: Property error : WikiDatabase: ImageId The service catalog is empty.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Here is the catalog:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.identity.publicURL = http://IP:$(public_port)s/v2.0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.identity.adminURL = http://IP:$(admin_port)s/v2.0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.identity.internalURL = http://IP:$(public_port)s/v2.0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.identity.name = Identity Service<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.compute.publicURL = http://IP:8774/v2/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.compute.adminURL = http://IP:8774/v2/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.compute.internalURL = http://IP:8774/v2/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.compute.name = Compute Service<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.volume.publicURL = http://IP:8776/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.volume.adminURL = http://IP:8776/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.volume.internalURL = http://IP:8776/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.volume.name = Volume Service<o:p></o:p></span></p>
<p class="MsoNormal">catalog.RegionOne.ec2.publicURL = http://IP:8773/services/Cloud<o:p></o:p></p>
<p class="MsoNormal">catalog.RegionOne.ec2.adminURL = http://IP:8773/services/Admin<o:p></o:p></p>
<p class="MsoNormal">catalog.RegionOne.ec2.internalURL = http://IP:8773/services/Cloud<o:p></o:p></p>
<p class="MsoNormal">catalog.RegionOne.ec2.name = EC2 Service<o:p></o:p></p>
<p class="MsoNormal">catalog.RegionOne.image.publicURL = http://IP:9292/<o:p></o:p></p>
<p class="MsoNormal">catalog.RegionOne.image.adminURL = http://IP:9292/<o:p></o:p></p>
<p class="MsoNormal">catalog.RegionOne.image.internalURL = http://IP:9292/<o:p></o:p></p>
<p class="MsoNormal">catalog.RegionOne.image.name = Image Service<o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.object_store.publicURL = http://IP:8080/v1/AUTH_$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.object_store.adminURL = http://IP:8080/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.object_store.internalURL = http://IP:8080/v1/AUTH_$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.object_store.name = Swift Service<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.cloudformation.publicURL = http://IP:8000/v1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.cloudformation.adminURL = http://IP:8000/v1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.cloudformation.internalURL = http://IP:8000/v1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.cloudformation.name = Heat CloudFormation API<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.heat.publicURL = http://IP:8004/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.heat.adminURL = http://IP:8004/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.heat.internalURL = http://IP:8004/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.heat.name = Heat API<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.orchestration.publicURL = http://IP:8004/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.orchestration.adminURL = http://IP:8004/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.orchestration.internalURL = http://IP:8004/v1/$(tenant_id)s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.orchestration.name = Heat API<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.ceilometer.publicURL = http://IP:8777/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.ceilometer.adminURL = http://IP:8777/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.ceilometer.internalURL = http://IP:8777/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.ceilometer.name = Ceilometer Metering<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.metering.publicURL = http://IP:8777/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.metering.adminURL = http://IP:8777/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.metering.internalURL = http://IP:8777/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">catalog.RegionOne.metering.name = Ceilometer Metering<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">/etc/heat/heat.conf<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[DEFAULT]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">verbose = True<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">debug = True<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">use_stderr = False<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">log_file = /var/log/heat/engine.log<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">use_syslog = False<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat_stack_user_role = heat_stack_user<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">instance_connection_is_secure = 0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">instance_connection_https_validate_certificates = 1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">bind_host = 0.0.0.0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">bind_port = 8001<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat_metadata_server_url = http://IP:8000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat_waitcondition_server_url = http://IP:8000/v1/waitcondition<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat_watch_server_url = http://IP:8003<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">sql_connection = mysql://USER:PASSWORD@IP/heat<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">db_backend=heat.db.sqlalchemy.api<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">rpc_backend=heat.openstack.common.rpc.impl_kombu<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_encryption_key=AUTH_KEY<o:p></o:p></span></p>
<p class="MsoNormal">rabbit_host=localhost<o:p></o:p></p>
<p class="MsoNormal">rabbit_port=5672<o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[keystone_authtoken]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">admin_tenant_name = TENANT<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">admin_user = USER<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">admin_password = PASSWORD<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_host = IP<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_port = 35357<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_protocol = http<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_uri = http://IP:5000/v2.0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">admin_token = TOKEN<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[ec2authtoken]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_uri http://IP:5000/v2.0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[paste_deploy]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">api_paste_config=api-paste.ini<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">flavor = keystone<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">api-paste.ini<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation authurl authtoken context apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-keystone]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation authurl authtoken context apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-cfn]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = cfnversionnegotiation ec2authtoken authtoken context apicfnv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-cfn-standalone]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = cfnversionnegotiation ec2authtoken context apicfnv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[app:apicwapp]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.app_factory = heat.common.wsgi:app_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.app_factory = heat.api.cloudwatch:API<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[app:apicfnv1app]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.app_factory = heat.common.wsgi:app_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.app_factory = heat.api.cfn.v1:API<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:cfnversionnegotiation]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.wsgi:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.filter_factory = heat.api.cfn:version_negotiation_filter<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:ec2authtoken]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.api.aws.ec2token:EC2Token_filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-cloudwatch]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation ec2authtoken authtoken context apicwapp<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-cloudwatch-standalone]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation ec2authtoken context apicwapp<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-cfn-keystone]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation authurl authtoken context apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-cloudwatch-keystone]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation authurl authtoken context apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-custombackend]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation context custombackendauth apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-caching]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation authurl authtoken context cache apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-keystone+caching]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation authurl authtoken context cache apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-cachemanagement]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation authurl authtoken context cache cachemanage apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[pipeline:heat-api-keystone+cachemanagement]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = versionnegotiation auth-context cache cachemanage apiv1app<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[app:apiv1app]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.app_factory = heat.common.wsgi:app_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.app_factory = heat.api.openstack.v1:API<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:versionnegotiation]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.wsgi:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.filter_factory = heat.api.openstack:version_negotiation_filter<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:cache]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.wsgi:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.filter_factory = heat.api.middleware.cache:CacheFilter<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:cachemanage]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.wsgi:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.filter_factory = heat.api.middleware.cache_manage:CacheManageFilter<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:context]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.context:ContextMiddleware_filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:authurl]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.auth_url:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:authtoken]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:auth-context]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.wsgi:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">heat.filter_factory = keystone.middleware.heat_auth_token:KeystoneContextMiddleware<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:custombackendauth]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.custom_backend_auth:filter_factory<o:p></o:p></span></p>
</div>
</body>
</html>