<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:x="urn:schemas-microsoft-com:office:excel" 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 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        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;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
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.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:Consolas;
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:Consolas;
        color:#1F497D;}
.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;}
--></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=EN-US link=blue vlink=purple style='word-wrap: break-word;-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'><div class=WordSection1><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Hi Ziad,<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Thanks for your responses.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>So Swift will authenticate against Keystone directly with the method you describe below? But is there an actual sync mechanism to sync keystone(tenant) -> swift(account)? account_autocreate provides the lazy option.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Sorry for repeating this (and may be Swift folks can possibly help): What API/method does Rackspace dashboard use to manage accounts in Swift? Essentially, is there any exposed API access for managing accounts in Swift (non-lazy option). The swift_auth.py appears to only handle auth cases including Swift auth but does not actually provide account management (Swift account CRUD).<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Divyesh<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'><o:p> </o:p></span></p><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"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Ziad Sawalha [mailto:ziad.sawalha@rackspace.com] <br><b>Sent:</b> Monday, July 18, 2011 11:41 AM<br><b>To:</b> Khandeshi, Divyesh; 'openstack@lists.launchpad.net'<br><b>Subject:</b> Re: [Openstack] [Keystone] [Swift] Keystone Tenant vs Swift Account<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><span style='font-size:10.5pt;color:black'>Hi Divyesh – additional info I just got:<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.5pt;color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.5pt;color:black'>"r</span><span class=apple-style-span><span style='font-size:13.5pt;color:black'>un with account_autocreate = True. As long as account ids == tenant names, you should be fine.  For example, if you request /v1.0/AUTH_foobar and you have the foobar tenant then it will try to authorize against the foobar tenant.</span></span><span style='font-size:10.5pt;color:black'>"<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.5pt;color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.5pt;color:black'>Z<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.5pt;color:black'><o:p> </o:p></span></p></div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='color:black'>From: </span></b><span style='color:black'>"Khandeshi, Divyesh" <<a href="mailto:divyesh.khandeshi@hp.com">divyesh.khandeshi@hp.com</a>><br><b>Date: </b>Mon, 18 Jul 2011 15:47:31 +0100<br><b>To: </b>Ziad Sawalha <<a href="mailto:ziad.sawalha@rackspace.com">ziad.sawalha@rackspace.com</a>>, "<a href="mailto:'openstack@lists.launchpad.net">'openstack@lists.launchpad.net</a>'" <<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>><br><b>Subject: </b>RE: [Openstack] [Keystone] [Swift] Keystone Tenant vs Swift Account<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.5pt;color:black'><o:p> </o:p></span></p></div><div><div><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Ziad,</span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'> </span><span style='color:black'><o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in'><span style='font-family:Consolas;color:#1F497D'>1.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:#1F497D'>  </span><span style='font-family:Consolas;color:#1F497D'>You mention that Nova has a shim for lazy syncing of accounts with Keystone. What about Swift? Or the account_autocreate (in proxy-server.conf) the only option to achieve this?</span><span style='color:black'><o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in'><span style='font-family:Consolas;color:#1F497D'>2.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:#1F497D'>  </span><span style='font-family:Consolas;color:#1F497D'>As to the Rackspace dashboard, what API does it use for provisioning? Is it a Rackspace-only API or some undocumented/unexposed Account management API in Swift?</span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'> </span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Thanks</span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'> </span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'>Divyesh</span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'> </span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:Consolas;color:#1F497D'> </span><span style='color:black'><o:p></o:p></span></p><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:black'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'> <a href="mailto:openstack-bounces+divyesh.khandeshi=hp.com@lists.launchpad.net">openstack-bounces+divyesh.khandeshi=hp.com@lists.launchpad.net</a> [<a href="mailto:openstack-bounces+divyesh.khandeshi=hp.com@lists.launchpad.net">mailto:openstack-bounces+divyesh.khandeshi=hp.com@lists.launchpad.net</a>] <b>On Behalf Of </b>Ziad Sawalha<br><b>Sent:</b> Saturday, July 16, 2011 3:30 PM<br><b>To:</b> Nguyen, Liem Manh; <a href="mailto:'openstack@lists.launchpad.net">'openstack@lists.launchpad.net</a>'<br><b>Subject:</b> Re: [Openstack] [Keystone] [Swift] Keystone Tenant vs Swift Account</span><span style='color:black'><o:p></o:p></span></p></div></div><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Swift account and tenant should be the same. This does not prescribe that Swift not store them locally (Nova still stores projects).<br><br>The synchronization can be lazy (Nova does this with a shim in Keystone. If a request is authorized by Keystone on a tenant that does not have a corresponding project, it creates it right there and then). Or it can be proactive (as opposed to lazy).<br><br>For proactive provisioning (where accounts would be synched to swift when they are created.<br><br>Summarizing:<br>Lazy provisioning: Users and tenants are created as authenticated requests come in to the openstack service for the first time.<br>Proactive provisioning: Users and tenants are created in all services as they are created in Keystone.<br>,Ote: my personal preference is for lazy provisioning.<br><br>For proactive provisioning, we would need a service to own orchestration (or provisioning or order fullfilment - pick your model). We don't have one today. The Dashboard does some of that. Rackspace does it using non-openstack components which contain Rackspace business logic.<br>Will this ever become an OpenStack project or wiL this always live in the business systems of the operator (an enterprise deploying and operating openstack)...<br><br>Z</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif";color:black'><br> </span><span style='color:black'><o:p></o:p></span></p><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:black'>From</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>: Nguyen, Liem Manh [<a href="mailto:liem_m_nguyen@hp.com">mailto:liem_m_nguyen@hp.com</a>] <br><b>Sent</b>: Friday, July 15, 2011 05:56 PM<br><b>To</b>: <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a> <<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>> <br><b>Subject</b>: [Openstack] [Keystone] [Swift] Keystone Tenant vs Swift Account <br></span><span style='font-size:12.0pt;font-family:"Times New Roman","serif";color:black'> </span><span style='color:black'><o:p></o:p></span></p></div><p class=MsoNormal><span style='color:black'>Hi,<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>For Nova, the Keystone Tenant maps to a Nova project, and according to the “Finalize Auth integration” blueprint, the Nova project is going away (“no more project/roleuser info in nova”).  <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>What about Swift’s account?  I assume the Keystone tenant would map to a Swift account.  How would this mapping occur?  Would Swift still maintain account information in the db and these will get synchronized with Keystone tenant information (i.e., auto-create accounts), or would Swift get rid of the account concept and have a mapping between tenant and containers instead?  If there is any existing blue-print/docs on Keystone/Swift integration plan for Diablo, that would be greatly appreciated.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Liem<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New";color:black'>This email may include confidential information. If you received it in error, please delete it.</span><span style='color:black'><o:p></o:p></span></p></div></div><p class=MsoNormal><span style='font-size:10.5pt;font-family:"Courier New";color:black'>This email may include confidential information. If you received it in error, please delete it.</span><span style='font-size:10.5pt;color:black'><o:p></o:p></span></p></div></body></html>