On 27 August 2014 01:28, David Hill <david.h...@ubisoft.com> wrote: > Hi Kieran, > > Sorry I typed too fast! The patch I applied wasn't the good one > (that's what happens when you have sooooo many tabs in a browser). > This fixed my problem (and many bugs) ! Perhaps this patch should be > backported to Icehouse.
Glad to hear that. I thought I'd done a backport already, but here it is now: https://review.openstack.org/#/c/117445/ Cheers, Kieran > > Dave > > > -----Original Message----- > From: David Hill > Sent: 26-Aug-14 11:16 AM > To: 'Kieran Spear' > Cc: openstack > Subject: RE: [Openstack] Heat: 2014.1.2-0 vs Keystone > > Hi Kieran, > > Thank you very much for the information! I didn't know there was a patch > about that. > The downside of knowing that is that I applied the patch and I still get the > same error! :( > > [root@ctrl02 keystone]# keystone catalog > 'NoneType' object has no attribute 'has_service_catalog' > > PS: I restarted the process too > > Dave > > > -----Original Message----- > From: Kieran Spear [mailto:kisp...@gmail.com] > Sent: 25-Aug-14 11:42 PM > To: David Hill > Cc: openstack > Subject: Re: [Openstack] Heat: 2014.1.2-0 vs Keystone > > Hi David, > > If you're using the templated catalog, by default you won't be able to > get a v3 token. You'll need to either: > > 1) Switch to the SQL catalog backend, or > 2) Apply this fix to Keystone: > https://bugs.launchpad.net/keystone/+bug/1313458 > > Cheers, > Kieran > > > > On 26 August 2014 07:39, David Hill <david.h...@ubisoft.com> wrote: >> Hi guys, >> >> >> >> It appears that in Icehouse (well in my setup and probably >> the setup of some other guys too) the catalog won't be returned when the >> keystone v3 api is being used.... >> >> What am I missing? >> >> >> >> [root@labctrl ~]# keystone catalog >> >> 'NoneType' object has no attribute 'has_service_catalog' >> >> >> >> >> >> Catalog: >> >> catalog.RegionOne.identity.publicURL = http://IP:$(public_port)s/v3 >> >> catalog.RegionOne.identity.adminURL = http://IP:$(admin_port)s/v3 >> >> catalog.RegionOne.identity.internalURL = http://IP:$(public_port)s/v3 >> >> catalog.RegionOne.identity.name = Identity Service >> >> >> >> >> >> Keystone-paste.ini >> >> [pipeline:api_v3] >> >> pipeline = sizelimit url_normalize build_auth_context token_auth >> admin_token_auth xml_body_v3 json_body ec2_extension_v3 s3_extension >> simple_cert_extension service_v3 >> >> >> >> Thanks, >> >> >> >> Dave >> >> >> >> >> >> From: David Hill >> Sent: 25-Aug-14 4:11 PM >> To: openstack >> Subject: Re: [Openstack] Heat: 2014.1.2-0 vs Keystone >> >> >> >> Hi guys, >> >> >> >> This is what heat-engine gets back : >> >> RESP BODY: {"token": {"methods": ["token"], "roles": [{"id": >> "59bd5c58fe344eeab3bc3443b82155a0", "name": "Member"}, {"id": >> "9fe2ff9ee4384b1894a90878d3e92bab", "name": "_member_"}, {"id": >> "c119300b61bb4bfeafdf9ccc8ea3efae", "name": "Admin"}, {"id": >> "e80ca12406714be799fc9066d5978dbb", "name": "Owner"}], "expires_at": >> "2014-08-26T20:07:11.000000Z", "project": {"domain": {"id": "default", >> "name": "Default"}, "id": "85bcc32e66b54c8bb52f28cb58319758", "name": >> "monitoring"}, "catalog": {}, "extras": {}, "user": {"domain": {"id": >> "default", "name": "Default"}, "id": "ccba454033204a7ba96b67ddaaacf00a", >> "name": "monitoring"}, "issued_at": "2014-08-25T20:07:12.589937Z"}} >> >> _send_request /usr/lib/python2.6/site-packages/keystoneclient/session.py:297 >> >> >> >> Notice the catalog": {} ? I'm not sure but... shouldn't contain the actual >> catalog? >> >> >> >> Dave >> >> >> >> From: David Hill >> Sent: 25-Aug-14 4:41 AM >> To: 'openstack' >> Subject: Heat: 2014.1.2-0 vs Keystone >> >> >> >> Hi guys, >> >> >> >> I'm trying to get Heat to work ... but everytime I try to create a >> stack, the engine will fail at getting the catalog. >> >> Since everything is working fine (ceilometer,nova,cinder,glance), am I >> forgetting something? >> >> >> >> StackValidationFailed_Remote: Property error : WikiDatabase: ImageId The >> service catalog is empty. >> >> >> >> >> >> Here is the catalog: >> >> catalog.RegionOne.identity.publicURL = http://IP:$(public_port)s/v2.0 >> >> catalog.RegionOne.identity.adminURL = http://IP:$(admin_port)s/v2.0 >> >> catalog.RegionOne.identity.internalURL = http://IP:$(public_port)s/v2.0 >> >> catalog.RegionOne.identity.name = Identity Service >> >> catalog.RegionOne.compute.publicURL = http://IP:8774/v2/$(tenant_id)s >> >> catalog.RegionOne.compute.adminURL = http://IP:8774/v2/$(tenant_id)s >> >> catalog.RegionOne.compute.internalURL = http://IP:8774/v2/$(tenant_id)s >> >> catalog.RegionOne.compute.name = Compute Service >> >> catalog.RegionOne.volume.publicURL = http://IP:8776/v1/$(tenant_id)s >> >> catalog.RegionOne.volume.adminURL = http://IP:8776/v1/$(tenant_id)s >> >> catalog.RegionOne.volume.internalURL = http://IP:8776/v1/$(tenant_id)s >> >> catalog.RegionOne.volume.name = Volume Service >> >> catalog.RegionOne.ec2.publicURL = http://IP:8773/services/Cloud >> >> catalog.RegionOne.ec2.adminURL = http://IP:8773/services/Admin >> >> catalog.RegionOne.ec2.internalURL = http://IP:8773/services/Cloud >> >> catalog.RegionOne.ec2.name = EC2 Service >> >> catalog.RegionOne.image.publicURL = http://IP:9292/ >> >> catalog.RegionOne.image.adminURL = http://IP:9292/ >> >> catalog.RegionOne.image.internalURL = http://IP:9292/ >> >> catalog.RegionOne.image.name = Image Service >> >> catalog.RegionOne.object_store.publicURL = >> http://IP:8080/v1/AUTH_$(tenant_id)s >> >> catalog.RegionOne.object_store.adminURL = http://IP:8080/ >> >> catalog.RegionOne.object_store.internalURL = >> http://IP:8080/v1/AUTH_$(tenant_id)s >> >> catalog.RegionOne.object_store.name = Swift Service >> >> catalog.RegionOne.cloudformation.publicURL = http://IP:8000/v1 >> >> catalog.RegionOne.cloudformation.adminURL = http://IP:8000/v1 >> >> catalog.RegionOne.cloudformation.internalURL = http://IP:8000/v1 >> >> catalog.RegionOne.cloudformation.name = Heat CloudFormation API >> >> catalog.RegionOne.heat.publicURL = http://IP:8004/v1/$(tenant_id)s >> >> catalog.RegionOne.heat.adminURL = http://IP:8004/v1/$(tenant_id)s >> >> catalog.RegionOne.heat.internalURL = http://IP:8004/v1/$(tenant_id)s >> >> catalog.RegionOne.heat.name = Heat API >> >> catalog.RegionOne.orchestration.publicURL = http://IP:8004/v1/$(tenant_id)s >> >> catalog.RegionOne.orchestration.adminURL = http://IP:8004/v1/$(tenant_id)s >> >> catalog.RegionOne.orchestration.internalURL = >> http://IP:8004/v1/$(tenant_id)s >> >> catalog.RegionOne.orchestration.name = Heat API >> >> catalog.RegionOne.ceilometer.publicURL = http://IP:8777/ >> >> catalog.RegionOne.ceilometer.adminURL = http://IP:8777/ >> >> catalog.RegionOne.ceilometer.internalURL = http://IP:8777/ >> >> catalog.RegionOne.ceilometer.name = Ceilometer Metering >> >> catalog.RegionOne.metering.publicURL = http://IP:8777/ >> >> catalog.RegionOne.metering.adminURL = http://IP:8777/ >> >> catalog.RegionOne.metering.internalURL = http://IP:8777/ >> >> catalog.RegionOne.metering.name = Ceilometer Metering >> >> >> >> >> >> >> >> /etc/heat/heat.conf >> >> >> >> >> >> [DEFAULT] >> >> verbose = True >> >> debug = True >> >> use_stderr = False >> >> log_file = /var/log/heat/engine.log >> >> use_syslog = False >> >> heat_stack_user_role = heat_stack_user >> >> instance_connection_is_secure = 0 >> >> instance_connection_https_validate_certificates = 1 >> >> bind_host = 0.0.0.0 >> >> bind_port = 8001 >> >> heat_metadata_server_url = http://IP:8000 >> >> heat_waitcondition_server_url = http://IP:8000/v1/waitcondition >> >> heat_watch_server_url = http://IP:8003 >> >> sql_connection = mysql://USER:PASSWORD@IP/heat >> >> db_backend=heat.db.sqlalchemy.api >> >> rpc_backend=heat.openstack.common.rpc.impl_kombu >> >> auth_encryption_key=AUTH_KEY >> >> rabbit_host=localhost >> >> rabbit_port=5672 >> >> >> >> [keystone_authtoken] >> >> admin_tenant_name = TENANT >> >> admin_user = USER >> >> admin_password = PASSWORD >> >> auth_host = IP >> >> auth_port = 35357 >> >> auth_protocol = http >> >> auth_uri = http://IP:5000/v2.0 >> >> admin_token = TOKEN >> >> >> >> [ec2authtoken] >> >> auth_uri http://IP:5000/v2.0 >> >> >> >> [paste_deploy] >> >> api_paste_config=api-paste.ini >> >> flavor = keystone >> >> >> >> >> >> >> >> api-paste.ini >> >> >> >> [pipeline:heat-api] >> >> pipeline = versionnegotiation authurl authtoken context apiv1app >> >> [pipeline:heat-api-keystone] >> >> pipeline = versionnegotiation authurl authtoken context apiv1app >> >> [pipeline:heat-api-cfn] >> >> pipeline = cfnversionnegotiation ec2authtoken authtoken context apicfnv1app >> >> [pipeline:heat-api-cfn-standalone] >> >> pipeline = cfnversionnegotiation ec2authtoken context apicfnv1app >> >> [app:apicwapp] >> >> paste.app_factory = heat.common.wsgi:app_factory >> >> heat.app_factory = heat.api.cloudwatch:API >> >> [app:apicfnv1app] >> >> paste.app_factory = heat.common.wsgi:app_factory >> >> heat.app_factory = heat.api.cfn.v1:API >> >> [filter:cfnversionnegotiation] >> >> paste.filter_factory = heat.common.wsgi:filter_factory >> >> heat.filter_factory = heat.api.cfn:version_negotiation_filter >> >> [filter:ec2authtoken] >> >> paste.filter_factory = heat.api.aws.ec2token:EC2Token_filter_factory >> >> [pipeline:heat-api-cloudwatch] >> >> pipeline = versionnegotiation ec2authtoken authtoken context apicwapp >> >> [pipeline:heat-api-cloudwatch-standalone] >> >> pipeline = versionnegotiation ec2authtoken context apicwapp >> >> [pipeline:heat-api-cfn-keystone] >> >> pipeline = versionnegotiation authurl authtoken context apiv1app >> >> [pipeline:heat-api-cloudwatch-keystone] >> >> pipeline = versionnegotiation authurl authtoken context apiv1app >> >> [pipeline:heat-api-custombackend] >> >> pipeline = versionnegotiation context custombackendauth apiv1app >> >> [pipeline:heat-api-caching] >> >> pipeline = versionnegotiation authurl authtoken context cache apiv1app >> >> [pipeline:heat-api-keystone+caching] >> >> pipeline = versionnegotiation authurl authtoken context cache apiv1app >> >> [pipeline:heat-api-cachemanagement] >> >> pipeline = versionnegotiation authurl authtoken context cache cachemanage >> apiv1app >> >> [pipeline:heat-api-keystone+cachemanagement] >> >> pipeline = versionnegotiation auth-context cache cachemanage apiv1app >> >> [app:apiv1app] >> >> paste.app_factory = heat.common.wsgi:app_factory >> >> heat.app_factory = heat.api.openstack.v1:API >> >> [filter:versionnegotiation] >> >> paste.filter_factory = heat.common.wsgi:filter_factory >> >> heat.filter_factory = heat.api.openstack:version_negotiation_filter >> >> [filter:cache] >> >> paste.filter_factory = heat.common.wsgi:filter_factory >> >> heat.filter_factory = heat.api.middleware.cache:CacheFilter >> >> [filter:cachemanage] >> >> paste.filter_factory = heat.common.wsgi:filter_factory >> >> heat.filter_factory = heat.api.middleware.cache_manage:CacheManageFilter >> >> [filter:context] >> >> paste.filter_factory = heat.common.context:ContextMiddleware_filter_factory >> >> [filter:authurl] >> >> paste.filter_factory = heat.common.auth_url:filter_factory >> >> [filter:authtoken] >> >> paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory >> >> [filter:auth-context] >> >> paste.filter_factory = heat.common.wsgi:filter_factory >> >> heat.filter_factory = >> keystone.middleware.heat_auth_token:KeystoneContextMiddleware >> >> [filter:custombackendauth] >> >> paste.filter_factory = heat.common.custom_backend_auth:filter_factory >> >> >> _______________________________________________ >> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack >> Post to : openstack@lists.openstack.org >> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack >> _______________________________________________ Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack Post to : openstack@lists.openstack.org Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack