<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Thanks Jay. I have approved the direction for this, and have marked it as under discussion. I also added it to our next team meeting agenda so we can consider any alternate viewpoints before approving the specification as worded.
<div class=""><br class="">
</div>
<div class="">Adrian</div>
<div class=""><br class="">
</div>
<div class="">
<div>
<blockquote type="cite" class="">
<div class="">On Jun 4, 2015, at 9:12 PM, Jay Lau <<a href="mailto:jay.lau.513@gmail.com" class="">jay.lau.513@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
I have filed a bp for this<span class="Apple-converted-space"> </span><a href="https://blueprints.launchpad.net/magnum/+spec/auto-generate-name" class="">https://blueprints.launchpad.net/magnum/+spec/auto-generate-name</a><span class="Apple-converted-space"> </span>Thanks<br class="">
</div>
<div class="gmail_extra" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<br class="">
<div class="gmail_quote">2015-06-04 14:14 GMT+08:00 Jay Lau<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:jay.lau.513@gmail.com" target="_blank" class="">jay.lau.513@gmail.com</a>></span>:<br class="">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">
<div dir="ltr" class="">Thanks Adrian, I see. Clear now.<br class="">
</div>
<div class="HOEnZb">
<div class="h5">
<div class="gmail_extra"><br class="">
<div class="gmail_quote">2015-06-04 11:17 GMT+08:00 Adrian Otto<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:adrian.otto@rackspace.com" target="_blank" class="">adrian.otto@rackspace.com</a>></span>:<br class="">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">
<div dir="auto" class="">
<div class="">Jay,</div>
<span class="">
<div class=""><br class="">
On Jun 3, 2015, at 6:42 PM, Jay Lau <<a href="mailto:jay.lau.513@gmail.com" target="_blank" class="">jay.lau.513@gmail.com</a>> wrote:<br class="">
<br class="">
</div>
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" class="">Thanks Adrian, some questions and comments in-line.<br class="">
<div class="gmail_extra"><br class="">
<div class="gmail_quote">2015-06-03 10:29 GMT+08:00 Adrian Otto<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:adrian.otto@rackspace.com" target="_blank" class="">adrian.otto@rackspace.com</a>></span>:<br class="">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;" class="">I have reflected on this further and offer this suggestion:
<div class=""><br class="">
</div>
<div class="">1) Add a feature to Magnum to auto-generate human readable names, like Docker does for un-named containers, and ElasticSearch does for naming cluster nodes. Use this feature if no name is specified upon the creation of a Bay or Baymodel.</div>
</div>
</blockquote>
<div class="">+1 on this<span class="Apple-converted-space"> </span><br class="">
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;" class="">
<div class=""><br class="">
</div>
<div class="">-and-</div>
<div class=""><br class="">
</div>
<div class="">2) Add a configuration directives (default=FALSE) for allow_duplicate_bay_name and allow_duplicate_baymodel_name. If TRUE, duplicate named Bay and BayModel resources will be allowed, as they are today.</div>
<div class=""><br class="">
</div>
<div class="">This way, by default Magnum requires a unique name, and if none is specified, it will automatically generate a name. This way no additional burden is put on users who want to act on containers exclusively using UUIDs, and cloud operators can decide
if they want to enforce name uniqueness or not. </div>
<div class=""><br class="">
</div>
<div class="">In the case of clouds that want to allow sharing access to a BayModel between multiple tenants (example: a global BayModel named “kubernetes”) with allow_duplicate_baymodel_name set to FALSE, a user will still be allowed to</div>
</div>
</blockquote>
<div class="">Here should be allow_duplicate_baymodel set to TRUE?<span class="Apple-converted-space"> </span></div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>I know this is confusing, but yes, what I wrote was correct. Perhaps I could rephrase it to clarify:
<div class=""><br class="">
</div>
<div class="">Regardless of the setting of allow_duplicate_bay* settings, we should allow a user to create a BayModel with the same name as a global or shared one in order to override the one that already exists from another source with one supplied by the
user. When referred to by name, the one created by the user would be selected in the case where each has the same name assigned.</div>
<div class=""><span class=""><br class="">
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" class="">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;" class="">
<div class="">create a BayModel with the name “kubernetes” and it will override the global one. If a user-supplied BayModel is present with the same name as a global one, we shall automatically select the one owned by the tenant.</div>
</div>
</blockquote>
<div class="">+1 on this , one question is what does a "global BayModel" means? In Magnum, all BayModel belong to a tenant and seems there is no global BayModel?<br class="">
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>This is a concept we have not actually discussed, and we don't have today as a feature. The idea is that in addition to the BayModel resources that tenants create, we could also have ones that the cloud operator creates, and automatically expose to all
tenants in the system. I am referring to these as "global" BayModel resources as a potential future enhancement.</div>
<div class=""><br class="">
</div>
<div class="">The rationale for such a global resource is a way for the Cloud Operator to pre-define the COE's they support, and pre-seed the Magnum environment with such a configuration for all users. Implementing this would require a solution for how to handle
the ssh keypair, as one will need to be generated uniquely for every tenant. Perhaps we could have a procedure that a tenant uses to "activate" the BayModel by somehow adding their own public ssh key to a local subclass of it. Perhaps this could be implemented
as a user defined BayModel that has a parent_id set to the uuid of a parent baymodel. When we instantiate one, we would merge the two into a single resource.</div>
<div class=""><br class="">
</div>
<div class="">All of this is about anticipating possible future features. The only reason I am mentioning this is that I want us to think about where we might go with resource sharing so that our name uniqueness decision does not preclude us from later going
in this direction.</div>
<span class=""><font color="#888888" class="">
<div class=""><br class="">
</div>
<div class="">Adrian</div>
</font></span>
<div class="">
<div class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" class="">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;" class="">
<div class=""><br class="">
</div>
<div class="">About Sharing of BayModel Resources:</div>
<div class=""><br class="">
</div>
<div class="">Similarly, if we add features to allow one tenant to share a BayModel with another tenant (pending acceptance of the offered share), and duplicate names are allowed, then prefer in this order: 1) Use the resource owned by the same tenant, 2) Use
the resource shared by the other tenant (post acceptance only), 3) Use the global resource. If duplicates exist in the same scope of ownership, then raise an exception requiring the use of a UUID in that case to resolve the ambiguity.</div>
</div>
</blockquote>
<div class="">We can file a bp to trace this.<span class="Apple-converted-space"> </span><br class="">
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;" class="">
<div class=""><br class="">
</div>
<div class="">One expected drawback of this approach is that tools designed to integrate with one Magnum may not work the same with another Magnum if the allow_duplicate_bay* settings are changed from the default values on one but not the other. This should
be made clear in the comments above the configuration directive in the example config file.</div>
</div>
</blockquote>
<div class="">Just curious why do we need this feature? Different Magnum clusters might using different CoE engine. So you are mentioning the case all of the Magnum clusters are using same CoE engine? If so, yes, this should be made clear in configuration
file.<br class="">
<br class="">
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;" class=""><span class=""><font color="#888888" class="">
<div class=""></div>
<div class="">Adrian</div>
</font></span>
<div class="">
<div class="">
<div class=""><br class="">
</div>
<div class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On Jun 2, 2015, at 8:44 PM, Jay Lau <<a href="mailto:jay.lau.513@gmail.com" target="_blank" class="">jay.lau.513@gmail.com</a>> wrote:</div>
<br class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div class="">
<div class="">I think that we did not come to a conclusion in today's IRC meeting.<br class="">
<br class="">
</div>
Adrian proposed that Magnum generate a unique name just like what docker is doing for "docker run", the problem mentioned by Andrew Melton is that Magnum support multi tenant, we should support the case that bay/baymodel under different tenant can have same
name, the unique name is not required.<br class="">
<br class="">
</div>
Also we may need support name update as well if the end user specify a name by mistake and want to update it after the bay/baymodel was created.<br class="">
<br class="">
</div>
Hmm.., looking forward to more comments from you. Thanks.<br class="">
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">2015-06-02 23:34 GMT+08:00 Fox, Kevin M<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:Kevin.Fox@pnnl.gov" target="_blank" class="">Kevin.Fox@pnnl.gov</a>></span>:<br class="">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div class="">
<div style="direction: ltr; font-family: Tahoma; font-size: 10pt;" class="">Names can make writing generic orchestration templates that would go in the applications catalog easier. Humans are much better at inputting a name rather then a uuid. You can even
default a name in the text box and if they don't change any of the defaults, it will just work. You can't do that with a UUID since it is different on every cloud.<br class="">
<br class="">
Thanks,<br class="">
Kevin<br class="">
<div style="font-family: 'Times New Roman'; font-size: 16px;" class="">
<hr class="">
<div style="direction: ltr;" class=""><font size="2" face="Tahoma" class=""><b class="">From:</b><span class="Apple-converted-space"> </span>Jay Lau [<a href="mailto:jay.lau.513@gmail.com" target="_blank" class="">jay.lau.513@gmail.com</a>]<br class="">
<b class="">Sent:</b><span class="Apple-converted-space"> </span>Tuesday, June 02, 2015 12:33 AM<span class=""><br class="">
<b class="">To:</b><span class="Apple-converted-space"> </span>OpenStack Development Mailing List (not for usage questions)<br class="">
<b class="">Subject:</b><span class="Apple-converted-space"> </span>Re: [openstack-dev] [Magnum] Does Bay/Baymodel name should be a required option when creating a Bay/Baymodel<br class="">
</span></font><br class="">
</div>
<div class="">
<div class="">
<div class=""></div>
<div class="">
<div dir="ltr" class="">Thanks Adrian, imho making name as required can bring more convenient to end users because UUID is difficult to use. Without name, the end user need to retrieve the UUID of the bay/baymodel first before he did some operations for the
bay/baymodel, its really time consuming. We can discuss more in this week's IRC meeting. Thanks.<br class="">
<br class="">
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">2015-06-02 14:08 GMT+08:00 Adrian Otto<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:adrian.otto@rackspace.com" target="_blank" class="">adrian.otto@rackspace.com</a>></span>:<br class="">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div dir="auto" class="">
<div class="">-1. I disagree.</div>
<div class=""><br class="">
</div>
<div class="">I am not convinced that requiring names is a good idea. I've asked several times why there is a desire to require names, and I'm not seeing any persuasive arguments that are not already addressed by UUIDs. We have UUID values to allow for acting
upon an individual resource. Names are there as a convenience. Requiring names, especially unique names, would make Magnum harder to use for API users driving Magnum from other systems. I want to keep the friction as low as possible.<br class="">
<br class="">
I'm fine with replacing "None" with an empty string.</div>
<div class=""><br class="">
</div>
<div class="">Consistency with Nova would be a valid argument if we were being more restrictive, but that's not the case. We are more permissive. You can use Magnum in the same way you use Nova if you want, by adding names to all resources. I don't see the
wisdom in forcing that style of use without a technical reason for it.</div>
<div class=""><br class="">
Thanks,</div>
<div class=""><br class="">
<div class="">Adrian</div>
</div>
<div class="">
<div class="">
<div class=""><br class="">
On May 31, 2015, at 4:43 PM, Jay Lau <<a href="mailto:jay.lau.513@gmail.com" target="_blank" class="">jay.lau.513@gmail.com</a>> wrote:<br class="">
<br class="">
</div>
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div class="">
<div class=""><br class="">
</div>
Just want to use ML to trigger more discussion here. There are now bugs/patches tracing this, but seems more discussions are needed before we come to a conclusion.<br class="">
<br class="">
<a href="https://bugs.launchpad.net/magnum/+bug/1453732" target="_blank" class="">https://bugs.launchpad.net/magnum/+bug/1453732</a><br class="">
<a href="https://review.openstack.org/#/c/181839/" target="_blank" class="">https://review.openstack.org/#/c/181839/</a><br class="">
<a href="https://review.openstack.org/#/c/181837/" target="_blank" class="">https://review.openstack.org/#/c/181837/</a><br class="">
<a href="https://review.openstack.org/#/c/181847/" target="_blank" class="">https://review.openstack.org/#/c/181847/</a><br class="">
<a href="https://review.openstack.org/#/c/181843/" target="_blank" class="">https://review.openstack.org/#/c/181843/</a><br class="">
<br class="">
</div>
IMHO, making the Bay/Baymodel name as a MUST will bring more flexibility to end user as Magnum also support operating Bay/Baymodel via names and the name might be more meaningful to end users.<br class="">
<p class="">Perhaps we can borrow some iead from nova, the concept in magnum can be mapped to nova as following:</p>
<p class="">1) instance => bay<br class="">
2) flavor => baymodel</p>
<p class="">So I think that a solution might be as following:<br class="">
1) Make name as a MUST for both bay/baymodel<br class="">
2) Update magnum client to use following style for bay-create and baymodel-create: DO NOT add "--name" option</p>
<p class="">root@devstack007:/tmp# nova boot<br class="">
usage: nova boot [--flavor <flavor>] [--image <image>]<br class="">
[--image-with <key=value>] [--boot-volume <volume_id>]<br class="">
[--snapshot <snapshot_id>] [--min-count <number>]<br class="">
[--max-count <number>] [--meta <key=value>]<br class="">
[--file <dst-path=src-path>] [--key-name <key-name>]<br class="">
[--user-data <user-data>]<br class="">
[--availability-zone <availability-zone>]<br class="">
[--security-groups <security-groups>]<br class="">
[--block-device-mapping <dev-name=mapping>]<br class="">
[--block-device key1=value1[,key2=value2...]]<br class="">
[--swap <swap_size>]<br class="">
[--ephemeral size=<size>[,format=<format>]]<br class="">
[--hint <key=value>]<br class="">
[--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid>]<br class="">
[--config-drive <value>] [--poll]<br class="">
<name><br class="">
error: too few arguments<br class="">
Try 'nova help boot' for more information.<br class="">
root@devstack007:/tmp# nova flavor-create<br class="">
usage: nova flavor-create [--ephemeral <ephemeral>] [--swap <swap>]<br class="">
[--rxtx-factor <factor>] [--is-public <is-public>]<br class="">
<name> <id> <ram> <disk> <vcpus></p>
Please show your comments if any.<br class="">
</div>
<div class="">
<div class="">
<div class=""><br class="">
--<span class="Apple-converted-space"> </span><br class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">Thanks,<br class="">
<br class="">
</div>
Jay Lau (Guangya Liu)<br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<blockquote type="cite" class="">
<div class=""><span class="">__________________________________________________________________________</span><span class=""><br class="">
<span class="">OpenStack Development Mailing List (not for usage questions)</span><br class="">
<span class="">Unsubscribe:<span class="Apple-converted-space"> </span><a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe</span><br class="">
<span class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></span><br class="">
</span></div>
</blockquote>
</div>
<br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe:<span class="Apple-converted-space"> </span><a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<br class="">
--<span class="Apple-converted-space"> </span><br class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">Thanks,<br class="">
<br class="">
</div>
Jay Lau (Guangya Liu)<br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe:<span class="Apple-converted-space"> </span><a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<br class="">
--<span class="Apple-converted-space"> </span><br class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">Thanks,<br class="">
<br class="">
</div>
Jay Lau (Guangya Liu)<br class="">
</div>
</div>
</div>
</div>
</div>
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe:<span class="Apple-converted-space"> </span><a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</div>
<br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe:<span class="Apple-converted-space"> </span><a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<br class="">
--<span class="Apple-converted-space"> </span><br class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">Thanks,<br class="">
<br class="">
</div>
Jay Lau (Guangya Liu)<br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<blockquote type="cite" class="">
<div class=""><span class="">__________________________________________________________________________</span><br class="">
<span class="">OpenStack Development Mailing List (not for usage questions)</span><br class="">
<span class="">Unsubscribe:<span class="Apple-converted-space"> </span><a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe</span><br class="">
<span class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></span><br class="">
</div>
</blockquote>
</div>
</div>
</div>
</div>
<br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe:<span class="Apple-converted-space"> </span><a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" target="_blank" class="">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<br class="">
--<span class="Apple-converted-space"> </span><br class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">Thanks,<br class="">
<br class="">
</div>
Jay Lau (Guangya Liu)<br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<br class="">
--<span class="Apple-converted-space"> </span><br class="">
<div class="gmail_signature">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">Thanks,<br class="">
<br class="">
</div>
Jay Lau (Guangya Liu)<br class="">
</div>
</div>
</div>
</div>
</div>
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">__________________________________________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">OpenStack
Development Mailing List (not for usage questions)</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Unsubscribe:<span class="Apple-converted-space"> </span></span><a href="mailto:OpenStack-dev-request@lists.openstack.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">OpenStack-dev-request@lists.openstack.org</a><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">?subject:unsubscribe</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>