<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:70.85pt 70.85pt 70.85pt 70.85pt;}
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="SV" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">I have installed Heat on my controller node and it worked fine two days ago, but now I have encountered some problems.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I am still able to create stacks, but I can’t delete the stacks I have created. I can delete the instances manually, but when I try to delete the stacks I get this message:<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">Prohibited endpoint redirect http://[EXTERNAL_IP]:8004/v1/%5C519c6e2d263049adba404441f18aac40/stacks/stack4/e67ba337-3f5a-4184-ad45-8445cbfd2d0c<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 also get the same message when I do the command “heat stack-show”. I can’t find anything related to the problem in my heat logs.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">/var/log/apache2/error.log:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error] Internal Server Error: /horizon/project/stacks/<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error] Traceback (most recent call last):<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 115, in get_response<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     response = callback(request, *callback_args, **callback_kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 38, in dec<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return view_func(request, *args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 54, in dec<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return view_func(request, *args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 38, in dec<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return view_func(request, *args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 86, in dec<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return view_func(request, *args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 68, in view<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return self.dispatch(request, *args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 86, in dispatch<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return handler(request, *args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py", line 163, in post<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return self.get(request, *args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py", line 155, in get<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     handled = self.construct_tables()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py", line 146, in construct_tables<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     handled = self.handle_table(table)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py", line 121, in handle_table<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     handled = self._tables[name].maybe_handle()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/base.py", line 1256, in maybe_handle<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return self.take_action(action_name, obj_id)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/base.py", line 1189, in take_action<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     response = action.multiple(self, self.request, obj_ids)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/actions.py", line 263, in multiple<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return self.handle(data_table, request, object_ids)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/actions.py", line 617, in handle<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     exceptions.handle(request, ignore=ignore)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/tables/actions.py", line 601, in handle<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     self.action(request, datum_id)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/project/stacks/tables.py", line 46, in action<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     api.heat.stack_delete(request, stack_id)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/api/heat.py", line 60, in stack_delete<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return heatclient(request).stacks.delete(stack_id)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/heatclient/v1/stacks.py", line 117, in delete<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     self._delete("/stacks/%s" % stack_id)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/heatclient/common/base.py", line 64, in _delete<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     self.api.raw_request('DELETE', url)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/heatclient/common/http.py", line 212, in raw_request<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     return self._http_request(url, method, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]   File "/usr/lib/python2.7/dist-packages/heatclient/common/http.py", line 172, in _http_request<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error]     raise exc.InvalidEndpoint(message=message)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[Wed Nov 13 15:59:56 2013] [error] InvalidEndpoint: Prohibited endpoint redirect http://[EXTERNAL_IP]:8004/v1/%5C519c6e2d263049adba404441f18aab60/stacks/stack5/5141061b-67b4-4a15-b32f-bacfa15864dc<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">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">sql_connection = mysql://heat:heat@10.10.10.51/heat<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">[keystone_authtoken]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_host = 10.10.10.51<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_uri = http://10.10.10.51:35357/v2.0<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">admin_tenant_name = service<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">admin_user = heat<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">admin_password = heat<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">Everything else is commented.<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/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"># heat-api pipeline<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 = faultwrap versionnegotiation authtoken context apiv1app<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"># heat-api pipeline for standalone heat<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># ie. uses alternative auth backend that authenticates users against keystone<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># using username and password instead of validating token (which requires<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># an admin/service token).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># To enable, in heat.conf:<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">#   flavor = standalone<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-standalone]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = faultwrap versionnegotiation authpassword context apiv1app<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"># heat-api pipeline for custom cloud backends<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># i.e. in heat.conf:<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">#   flavor = custombackend<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-custombackend]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pipeline = faultwrap versionnegotiation context custombackendauth apiv1app<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"># heat-api-cfn pipeline<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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># heat-api-cfn pipeline for standalone heat<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># relies exclusively on authenticating with ec2 signed requests<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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># heat-api-cloudwatch pipeline<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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># heat-api-cloudwatch pipeline for standalone heat<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># relies exclusively on authenticating with ec2 signed requests<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"><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"><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"><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"><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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:faultwrap]<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:faultwrap_filter<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">[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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:cwversionnegotiation]<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.cloudwatch:version_negotiation_filter<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">[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"><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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Auth middleware that validates token against keystone<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 = heat.common.auth_token:filter_factory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">auth_uri = http://10.10.10.51:35357/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"># Auth middleware that validates username/password against keystone<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">[filter:authpassword]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">paste.filter_factory = heat.common.auth_password:filter_factory<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"># Auth middleware that validates against custom backend<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>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Any ideas?<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">/Therese<o:p></o:p></span></p>
</div>
</body>
</html>