<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:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
text-align:left;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:black;}
h2
{mso-style-priority:9;
mso-style-link:"Heading 2 Char";
margin-top:10.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:.25in;
margin-bottom:.0001pt;
text-align:left;
text-indent:-.25in;
page-break-after:avoid;
mso-list:l1 level1 lfo1;
font-size:14.0pt;
font-family:"Cambria","serif";
color:#4F81BD;
font-weight:bold;}
h3
{mso-style-priority:9;
mso-style-link:"Heading 3 Char";
margin-top:10.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:27.0pt;
margin-bottom:.0001pt;
text-align:left;
text-indent:-.25in;
page-break-after:avoid;
mso-list:l0 level1 lfo2;
font-size:13.0pt;
font-family:"Cambria","serif";
color:#4F81BD;
font-weight:bold;}
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;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:7.5pt;
margin-left:0in;
text-align:left;
background:#EEEEEE;
font-size:10.0pt;
font-family:Consolas;}
span.apple-converted-space
{mso-style-name:apple-converted-space;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.Heading2Char
{mso-style-name:"Heading 2 Char";
mso-style-priority:9;
mso-style-link:"Heading 2";
font-family:"Cambria","serif";
color:#4F81BD;
font-weight:bold;}
span.Heading3Char
{mso-style-name:"Heading 3 Char";
mso-style-priority:9;
mso-style-link:"Heading 3";
font-family:"Cambria","serif";
color:#4F81BD;
font-weight:bold;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
background:#EEEEEE;}
span.pre
{mso-style-name:pre;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:440298801;
mso-list-type:hybrid;
mso-list-template-ids:-976043504 1897327186 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-style-link:"Heading 3";
mso-level-text:"%1\.1";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:27.0pt;
text-indent:-.25in;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:1.25in;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:1.75in;
text-indent:-.25in;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:2.25in;
text-indent:-.25in;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:2.75in;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:3.25in;
text-indent:-.25in;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:3.75in;
text-indent:-.25in;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:4.25in;
text-indent:-9.0pt;}
@list l1
{mso-list-id:1144812355;
mso-list-template-ids:-1765663876;}
@list l1:level1
{mso-level-style-link:"Heading 2";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.25in;
text-indent:-.25in;}
@list l1:level2
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:21.0pt;
text-indent:-21.0pt;}
@list l1:level3
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;}
@list l1:level4
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;}
@list l1:level5
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.75in;}
@list l1:level6
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.75in;}
@list l1:level7
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l1:level8
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l1:level9
{mso-level-legal-format:yes;
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l1:level1 lfo3
{mso-level-start-at:3;}
@list l1:level2 lfo3
{mso-level-start-at:2;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></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 bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">This is my Icehouse documentation, I don’t know if it will work with Havana:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Mark<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<h3 style="margin-left:21.0pt;text-indent:-21.0pt;mso-list:l1 level2 lfo3"><![if !supportLists]><span style="mso-list:Ignore">1.2<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Keystone files changed (WSGI):<o:p></o:p></h3>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>NOTE</b>: The Apache2 WSGI configuration scripts below replace the “/etc/init.d/keystone” startup script<o:p></o:p></p>
<p align="left" style="mso-margin-top-alt:6.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:0in;text-align:left;background:white">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">Create/configure file “</span><span class="pre"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333;background:white">/etc/apache2/sites-available/keystone.conf”
</span></span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">to match your keystone installation and server<span style="background:white">.</span>
<o:p></o:p></span></p>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">WSGIDaemonProcess keystone user=keystone group=nogroup processes=6<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">Listen 0.0.0.0:5000<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><VirtualHost _default_:5000><o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> LogLevel debug<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> ErrorLog /var/log/keystone/keystone.log<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLEngine on<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLCertificateFile /etc/keystone/ssl/certs/keystone.pem<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLCertificateKeyFile /etc/keystone/ssl/private/keystonekey.pem<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLProtocol all -SSLv2<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLVerifyClient none<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> WSGIScriptAlias / /usr/lib/cgi-bin/keystone/main<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> WSGIProcessGroup keystone<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SetEnv nokeepalive ssl-unclean-shutdown<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"></VirtualHost><o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">Listen 0.0.0.0:35357<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><VirtualHost _default_:35357><o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> LogLevel debug<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> ErrorLog /var/log/keystone/keystone.log<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLEngine on<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLCertificateFile /etc/keystone/ssl/certs/keystone.pem<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLCertificateKeyFile /etc/keystone/ssl/private/keystonekey.pem<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLProtocol all -SSLv2<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SSLVerifyClient none<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> WSGIScriptAlias / /usr/lib/cgi-bin/keystone/admin<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> WSGIProcessGroup keystone<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> SetEnv nokeepalive ssl-unclean-shutdown<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"></VirtualHost> <o:p></o:p></span></pre>
<p style="mso-margin-top-alt:6.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:0in">
<b><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:#333333"><o:p> </o:p></span></b></p>
<p align="left" style="margin:0in;margin-bottom:.0001pt;text-align:left"><b><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:#333333">Note</span></b><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:#333333">:
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">By changing the SSL_Engine variable in this file you can turn on and off the Apache2-SSL frontend to Keystone.<o:p></o:p></span></p>
<p align="left" style="margin:0in;margin-bottom:.0001pt;text-align:left"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></p>
<p class="MsoNormal">Now link keystone sites-enabled to keystone sites-available
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:windowtext">
<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#F2F2F2">sudo ln -s /etc/apache2/sites-available/keystone.conf /etc/apache2/sites-enabled/keystone.conf
<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></p>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">Create directory “/usr/lib/cgi-bin/keystone”<o:p></o:p></span></p>
<p style="margin:0in;margin-bottom:.0001pt;background:#F2F2F2"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">sudo mkdir /usr/lib/cgi-bin<o:p></o:p></span></p>
<p style="margin:0in;margin-bottom:.0001pt;background:#F2F2F2"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">sudo mkdir /usr/lib/cgi-bin/keystone<o:p></o:p></span></p>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></p>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">Create file “/usr/lib/cgi-bin/keystone/admin”.<o:p></o:p></span></p>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">import logging<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">import os<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from paste import deploy<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.openstack.common import gettextutils<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.common import dependency<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.common import environment<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.common import sql<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone import config<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.openstack.common import log<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone import service<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># NOTE(blk-u):<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># gettextutils.install() must run to set _ before importing any modules that<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># contain static translated strings.<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">gettextutils.install('keystone', lazy=True)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">CONF = config.CONF<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">config.configure()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">sql.initialize()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">config.set_default_for_default_log_levels()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">CONF(project='keystone')<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">config.setup_logging()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">environment.use_stdlib()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">#name = os.path.basename(__file__)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">name = "admin"<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">if CONF.debug:<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> CONF.log_opt_values(log.getLogger(CONF.prog), logging.DEBUG)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">drivers = service.load_backends()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># NOTE(ldbragst): 'application' is required in this context by WSGI spec.<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># The following is a reference to Python Paste Deploy documentation<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># http://pythonpaste.org/deploy/<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">application = deploy.loadapp('config:%s' % config.find_paste_config(),<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> name=name)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">dependency.resolve_future_dependencies()<o:p></o:p></span></pre>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></p>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">Also create file “/usr/lib/cgi-bin/keystone/main”.
<o:p></o:p></span></p>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">import logging<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">import os<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from paste import deploy<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.openstack.common import gettextutils<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.common import dependency<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.common import environment<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.common import sql<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone import config<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone.openstack.common import log<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">from keystone import service<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># NOTE(blk-u):<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># gettextutils.install() must run to set _ before importing any modules that<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># contain static translated strings.<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">gettextutils.install('keystone', lazy=True)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">CONF = config.CONF<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">config.configure()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">sql.initialize()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">config.set_default_for_default_log_levels()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">CONF(project='keystone')<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">config.setup_logging()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">environment.use_stdlib()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">#name = os.path.basename(__file__)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">name = "main"<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">if CONF.debug:<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> CONF.log_opt_values(log.getLogger(CONF.prog), logging.DEBUG)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">drivers = service.load_backends()<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># NOTE(ldbragst): 'application' is required in this context by WSGI spec.<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># The following is a reference to Python Paste Deploy documentation<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"># http://pythonpaste.org/deploy/<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">application = deploy.loadapp('config:%s' % config.find_paste_config(),<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"> name=name)<o:p></o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></pre>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">dependency.resolve_future_dependencies()<o:p></o:p></span></pre>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333"><o:p> </o:p></span></p>
<p align="left" style="margin:0in;margin-bottom:.0001pt;text-align:left"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#333333">If the keystone service is running, shut it down because the Apache2 service will now start it up with as
many instances of keystone as are specified on the first line of file “/etc/apache2/sites-available/keystone.conf”.<o:p></o:p></span></p>
<pre style="margin:0in;margin-bottom:.0001pt"><span style="color:#333333">sudo service keystone stop</span><span style="font-family:"Courier New";color:#333333"><o:p></o:p></span></pre>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext"> mike.hearn [mailto:mike.hearn@oracle.com]
<br>
<b>Sent:</b> Monday, March 31, 2014 10:22 AM<br>
<b>To:</b> openstack@lists.openstack.org<br>
<b>Subject:</b> [Openstack] keystone/HTTPD config issue<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222">Hoping someone can offer some help / guidance.<br>
<br>
I am trying to configure keystone to run in HTTPD.<span class="apple-converted-space"> </span><br>
Release: Havana<br>
OS: EL 6.5<br>
<br>
Following documentation I have configured a VirtualHost in my webserver and made the necessary updates in keystone.conf (admin_port, public_port, admin_endpoint, public_endpoint, external driver)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222">Before updating endpoints in the keystone repo I ran an initial keystone cmd to verify the original endpoints and to test the httpd setup
was functioning correctly e.g.<i><br>
$ keystone --os-endpoint<span class="apple-converted-space"> </span><a href="http://xxxxxxx:8080/keystone/admin/v2.0" target="_blank"><span style="color:#1155CC">http://xxxxxxx:8080/keystone/admin/v2.0</span></a><span class="apple-converted-space"> </span>--os-token
xxxxxxxx service-get keystone</i><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222"><br>
This failed with errors showing up in the webserver log files.<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222"><br>
<i>[VirtualHost: xxxxxxx:8080] from paste import deploy<br>
[VirtualHost: xxxxxxx:8080] ImportError: cannot import name deploy</i><br>
<br>
The error is obviously linked to the keystone.wsgi file (as linked frpm keystone/admin) and its attempt to import the paste module<br>
e.g. (extract from keystone.wsgi)<br>
<br>
<i>from paste import deploy<br>
from keystone.openstack.common import gettextutils</i><br>
<br>
I did some research and found an older but similar issue occurred with the <i>keystone-all</i> file. The fix was to ensure that the import of gettextutils occured before the import of deploy from paste. (<a href="https://github.com/redhat-openstack/keystone/commit/e053026a" target="_blank"><span style="color:#1155CC">https://github.com/redhat-openstack/keystone/commit/e053026a</span></a>)<br>
<br>
I moved the import of gettextutils above the paste import in keystone.wsgi which did remove the paste import error. However, the webserver log file now shows a segfault after re-running the keystone cmd above<br>
<br>
<i>[VirtualHost: xxxxxxx:8080] Premature end of script headers: admin<br>
[VirtualHost: xxxxxxx:8080] Request Failed for : /keystone/admin/v2.0/OS-KSADM/services/keystone, Resp Code : [500]<br>
[VirtualHost: main] child pid 9671 exit signal Segmentation fault (11)</i><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222">I also looked in /var/log/messages and see:<br>
<i> kernel: httpd.worker[9705]: segfault at 0 ip 00007f509a7cf86f sp 00007f508e432fb8 error 4 in<span class="apple-converted-space"> </span><a href="http://libc-2.12.so/" target="_blank"><span style="color:#1155CC">libc-2.12.so</span></a>[7f509a69c000+18b000]</i><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222">So at this point I need to ask :<span class="apple-converted-space"><i> </i></span><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222">1 - Was I correct to update keystone.wsgi and move the<span class="apple-converted-space"> </span><i>import gettextutils<span class="apple-converted-space"> </span></i>above<span class="apple-converted-space"> </span><i>import
deploy ?</i><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt;background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222">2 - Has anyone come across similar issues when configuring keystone to run in HTTPD<span class="apple-converted-space"><i> </i></span><i><br>
<br>
</i>I'd gratefully appreciate any help and advic<i>e<span class="apple-converted-space"> </span></i>on solving or trouble shooting<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222">Cheers<o:p></o:p></span></p>
</div>
</div>
</div>
</body>
</html>