<div dir="ltr"><div>Hi,<br></div><div><br></div><div>Sorry for re-using the ancient ML thread.</div><div>Looking at recent xstatic-* repo reviews, I am a bit afraid that xstatic-cores do not have a common understanding on the principle of xstatic packages.<br></div><div>I hope all xstatic-cores re-read "Packing Software" in the horizon contributor docs [1], especially "Minified Javascript policy" [2], carefully.</div><div><br></div><div>Thanks,</div><div>Akihiro<br><br></div><div>[1] <a href="https://docs.openstack.org/horizon/latest/contributor/topics/packaging.html">https://docs.openstack.org/horizon/latest/contributor/topics/packaging.html</a><br></div><div>[2] <a href="https://docs.openstack.org/horizon/latest/contributor/topics/packaging.html#minified-javascript-policy">https://docs.openstack.org/horizon/latest/contributor/topics/packaging.html#minified-javascript-policy</a></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">2018年4月4日(水) 14:35 Xinni Ge <<a href="mailto:xinni.ge1990@gmail.com">xinni.ge1990@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Ivan and other Horizon team member,<div><br></div><div>Thanks for adding us into xstatic-core group. </div><div>But I still need your opinion and help to release the newly-added xstatic packages to pypi index.</div><div><br>Current `xstatic-core` group doesn't have the permission to PUSH SIGNED TAG, and I cannot release the first non-trivial version.</div><div><br></div><div>If I (or maybe Kaz) could be added into xstatic-release group, we can release all the 8 packages by ourselves.</div><div><br></div><div>Or, we are very appreciate if any member of xstatic-release could help to do it.</div><div><br></div><div>Just for your quick access, here is the link of access permission page of one xstatic package.</div><div><a href="https://review.openstack.org/#/admin/projects/openstack/xstatic-angular-material,access" target="_blank">https://review.openstack.org/#/admin/projects/openstack/xstatic-angular-material,access</a> </div><div><br></div><div>--</div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Best Regards,</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:12.8px">Xinni</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 29, 2018 at 9:59 AM, Kaz Shinohara <span dir="ltr"><<a href="mailto:ksnhr.tech@gmail.com" target="_blank">ksnhr.tech@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Ivan,<br>
<br>
<br>
Thank you very much.<br>
I've confirmed that all of us have been added to xstatic-core.<br>
<br>
As discussed, we will focus on the followings what we added for<br>
heat-dashboard, will not touch other xstatic repos as core.<br>
<br>
xstatic-angular-material<br>
xstatic-angular-notify<br>
xstatic-angular-uuid<br>
xstatic-angular-vis<br>
xstatic-filesaver<br>
xstatic-js-yaml<br>
xstatic-json2yaml<br>
xstatic-vis<br>
<br>
Regards,<br>
Kaz<br>
<div class="m_1608211868904346566HOEnZb"><div class="m_1608211868904346566h5"><br>
2018-03-29 5:40 GMT+09:00 Ivan Kolodyazhny <<a href="mailto:e0ne@e0ne.info" target="_blank">e0ne@e0ne.info</a>>:<br>
> Hi Kuz,<br>
><br>
> Don't worry, we're on the same page with you. I added both you, Xinni and<br>
> Keichii to the xstatic-core group. Thank you for your contributions!<br>
><br>
> Regards,<br>
> Ivan Kolodyazhny,<br>
> <a href="http://blog.e0ne.info/" rel="noreferrer" target="_blank">http://blog.e0ne.info/</a><br>
><br>
> On Wed, Mar 28, 2018 at 5:18 PM, Kaz Shinohara <<a href="mailto:ksnhr.tech@gmail.com" target="_blank">ksnhr.tech@gmail.com</a>> wrote:<br>
>><br>
>> Hi Ivan & Horizon folks<br>
>><br>
>><br>
>> AFAIK, Horizon team had conclusion that you will add the specific<br>
>> members to xstatic-core, correct ?<br>
>> Can I ask you to add the following members ?<br>
>> # All of tree are heat-dashboard core.<br>
>><br>
>> Kazunori Shinohara / <a href="mailto:ksnhr.tech@gmail.com" target="_blank">ksnhr.tech@gmail.com</a> #myself<br>
>> Xinni Ge / <a href="mailto:xinni.ge1990@gmail.com" target="_blank">xinni.ge1990@gmail.com</a><br>
>> Keiichi Hikita / <a href="mailto:keiichi.hikita@gmail.com" target="_blank">keiichi.hikita@gmail.com</a><br>
>><br>
>> Please give me a shout, if we are not on same page or any concern.<br>
>><br>
>> Regards,<br>
>> Kaz<br>
>><br>
>><br>
>> 2018-03-21 22:29 GMT+09:00 Kaz Shinohara <<a href="mailto:ksnhr.tech@gmail.com" target="_blank">ksnhr.tech@gmail.com</a>>:<br>
>> > Hi Ivan, Akihiro,<br>
>> ><br>
>> ><br>
>> > Thanks for your kind arrangement.<br>
>> > Looking forward to hearing your decision soon.<br>
>> ><br>
>> > Regards,<br>
>> > Kaz<br>
>> ><br>
>> > 2018-03-21 21:43 GMT+09:00 Ivan Kolodyazhny <<a href="mailto:e0ne@e0ne.info" target="_blank">e0ne@e0ne.info</a>>:<br>
>> >> HI Team,<br>
>> >><br>
>> >> From my perspective, I'm OK both with #2 and #3 options. I agree that<br>
>> >> #4<br>
>> >> could be too complicated for us. Anyway, we've got this topic on the<br>
>> >> meeting<br>
>> >> agenda [1] so we'll discuss it there too. I'll share our decision after<br>
>> >> the<br>
>> >> meeting.<br>
>> >><br>
>> >> [1] <a href="https://wiki.openstack.org/wiki/Meetings/Horizon" rel="noreferrer" target="_blank">https://wiki.openstack.org/wiki/Meetings/Horizon</a><br>
>> >><br>
>> >><br>
>> >><br>
>> >> Regards,<br>
>> >> Ivan Kolodyazhny,<br>
>> >> <a href="http://blog.e0ne.info/" rel="noreferrer" target="_blank">http://blog.e0ne.info/</a><br>
>> >><br>
>> >> On Tue, Mar 20, 2018 at 10:45 AM, Akihiro Motoki <<a href="mailto:amotoki@gmail.com" target="_blank">amotoki@gmail.com</a>><br>
>> >> wrote:<br>
>> >>><br>
>> >>> Hi Kaz and Ivan,<br>
>> >>><br>
>> >>> Yeah, it is worth discussed officially in the horizon team meeting or<br>
>> >>> the<br>
>> >>> mailing list thread to get a consensus.<br>
>> >>> Hopefully you can add this topic to the horizon meeting agenda.<br>
>> >>><br>
>> >>> After sending the previous mail, I noticed anther option. I see there<br>
>> >>> are<br>
>> >>> several options now.<br>
>> >>> (1) Keep xstatic-core and horizon-core same.<br>
>> >>> (2) Add specific members to xstatic-core<br>
>> >>> (3) Add specific horizon-plugin core to xstatic-core<br>
>> >>> (4) Split core membership into per-repo basis (perhaps too<br>
>> >>> complicated!!)<br>
>> >>><br>
>> >>> My current vote is (2) as xstatic-core needs to understand what is<br>
>> >>> xstatic<br>
>> >>> and how it is maintained.<br>
>> >>><br>
>> >>> Thanks,<br>
>> >>> Akihiro<br>
>> >>><br>
>> >>><br>
>> >>> 2018-03-20 17:17 GMT+09:00 Kaz Shinohara <<a href="mailto:ksnhr.tech@gmail.com" target="_blank">ksnhr.tech@gmail.com</a>>:<br>
>> >>>><br>
>> >>>> Hi Akihiro,<br>
>> >>>><br>
>> >>>><br>
>> >>>> Thanks for your comment.<br>
>> >>>> The background of my request to add us to xstatic-core comes from<br>
>> >>>> Ivan's comment in last PTG's etherpad for heat-dashboard discussion.<br>
>> >>>><br>
>> >>>> <a href="https://etherpad.openstack.org/p/heat-dashboard-ptg-rocky-discussion" rel="noreferrer" target="_blank">https://etherpad.openstack.org/p/heat-dashboard-ptg-rocky-discussion</a><br>
>> >>>> Line135, "we can share ownership if needed - e0ne"<br>
>> >>>><br>
>> >>>> Just in case, could you guys confirm unified opinion on this matter<br>
>> >>>> as<br>
>> >>>> Horizon team ?<br>
>> >>>><br>
>> >>>> Frankly speaking I'm feeling the benefit to make us xstatic-core<br>
>> >>>> because it's easier & smoother to manage what we are taking for<br>
>> >>>> heat-dashboard.<br>
>> >>>> On the other hand, I can understand what Akihiro you are saying, the<br>
>> >>>> newly added repos belong to Horizon project & being managed by not<br>
>> >>>> Horizon core is not consistent.<br>
>> >>>> Also having exception might make unexpected confusion in near future.<br>
>> >>>><br>
>> >>>> Eventually we will follow your opinion, let me hear Horizon team's<br>
>> >>>> conclusion.<br>
>> >>>><br>
>> >>>> Regards,<br>
>> >>>> Kaz<br>
>> >>>><br>
>> >>>><br>
>> >>>> 2018-03-20 12:58 GMT+09:00 Akihiro Motoki <<a href="mailto:amotoki@gmail.com" target="_blank">amotoki@gmail.com</a>>:<br>
>> >>>> > Hi Kaz,<br>
>> >>>> ><br>
>> >>>> > These repositories are under horizon project. It looks better to<br>
>> >>>> > keep<br>
>> >>>> > the<br>
>> >>>> > current core team.<br>
>> >>>> > It potentially brings some confusion if we treat some horizon<br>
>> >>>> > plugin<br>
>> >>>> > team<br>
>> >>>> > specially.<br>
>> >>>> > Reviewing xstatic repos would be a small burden, wo I think it<br>
>> >>>> > would<br>
>> >>>> > work<br>
>> >>>> > without problem even if only horizon-core can approve xstatic<br>
>> >>>> > reviews.<br>
>> >>>> ><br>
>> >>>> ><br>
>> >>>> > 2018-03-20 10:02 GMT+09:00 Kaz Shinohara <<a href="mailto:ksnhr.tech@gmail.com" target="_blank">ksnhr.tech@gmail.com</a>>:<br>
>> >>>> >><br>
>> >>>> >> Hi Ivan, Horizon folks,<br>
>> >>>> >><br>
>> >>>> >><br>
>> >>>> >> Now totally 8 xstatic-** repos for heat-dashboard have been<br>
>> >>>> >> landed.<br>
>> >>>> >><br>
>> >>>> >> In project-config for them, I've set same acl-config as the<br>
>> >>>> >> existing<br>
>> >>>> >> xstatic repos.<br>
>> >>>> >> It means only "xstatic-core" can manage the newly created repos on<br>
>> >>>> >> gerrit.<br>
>> >>>> >> Could you kindly add "heat-dashboard-core" into "xstatic-core"<br>
>> >>>> >> like as<br>
>> >>>> >> what horizon-core is doing ?<br>
>> >>>> >><br>
>> >>>> >> xstatic-core<br>
>> >>>> >> <a href="https://review.openstack.org/#/admin/groups/385,members" rel="noreferrer" target="_blank">https://review.openstack.org/#/admin/groups/385,members</a><br>
>> >>>> >><br>
>> >>>> >> heat-dashboard-core<br>
>> >>>> >> <a href="https://review.openstack.org/#/admin/groups/1844,members" rel="noreferrer" target="_blank">https://review.openstack.org/#/admin/groups/1844,members</a><br>
>> >>>> >><br>
>> >>>> >> Of course, we will surely touch only what we made, just would like<br>
>> >>>> >> to<br>
>> >>>> >> manage them smoothly by ourselves.<br>
>> >>>> >> In case we need to touch the other ones, will ask Horizon team for<br>
>> >>>> >> help.<br>
>> >>>> >><br>
>> >>>> >> Thanks in advance.<br>
>> >>>> >><br>
>> >>>> >> Regards,<br>
>> >>>> >> Kaz<br>
>> >>>> >><br>
>> >>>> >><br>
>> >>>> >> 2018-03-14 15:12 GMT+09:00 Xinni Ge <<a href="mailto:xinni.ge1990@gmail.com" target="_blank">xinni.ge1990@gmail.com</a>>:<br>
>> >>>> >> > Hi Horizon Team,<br>
>> >>>> >> ><br>
>> >>>> >> > I reported a bug about lack of ``ADD_XSTATIC_MODULES`` plugin<br>
>> >>>> >> > option,<br>
>> >>>> >> >  and submitted a patch for it.<br>
>> >>>> >> > Could you please help to review the patch.<br>
>> >>>> >> ><br>
>> >>>> >> > <a href="https://bugs.launchpad.net/horizon/+bug/1755339" rel="noreferrer" target="_blank">https://bugs.launchpad.net/horizon/+bug/1755339</a><br>
>> >>>> >> > <a href="https://review.openstack.org/#/c/552259/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/552259/</a><br>
>> >>>> >> ><br>
>> >>>> >> > Thank you very much.<br>
>> >>>> >> ><br>
>> >>>> >> > Best Regards,<br>
>> >>>> >> > Xinni<br>
>> >>>> >> ><br>
>> >>>> >> > On Tue, Mar 13, 2018 at 6:41 PM, Ivan Kolodyazhny<br>
>> >>>> >> > <<a href="mailto:e0ne@e0ne.info" target="_blank">e0ne@e0ne.info</a>><br>
>> >>>> >> > wrote:<br>
>> >>>> >> >><br>
>> >>>> >> >> Hi Kaz,<br>
>> >>>> >> >><br>
>> >>>> >> >> Thanks for cleaning this up. I put +1 on both of these patches<br>
>> >>>> >> >><br>
>> >>>> >> >> Regards,<br>
>> >>>> >> >> Ivan Kolodyazhny,<br>
>> >>>> >> >> <a href="http://blog.e0ne.info/" rel="noreferrer" target="_blank">http://blog.e0ne.info/</a><br>
>> >>>> >> >><br>
>> >>>> >> >> On Tue, Mar 13, 2018 at 4:48 AM, Kaz Shinohara<br>
>> >>>> >> >> <<a href="mailto:ksnhr.tech@gmail.com" target="_blank">ksnhr.tech@gmail.com</a>><br>
>> >>>> >> >> wrote:<br>
>> >>>> >> >>><br>
>> >>>> >> >>> Hi Ivan & Horizon folks,<br>
>> >>>> >> >>><br>
>> >>>> >> >>><br>
>> >>>> >> >>> Now we are submitting a couple of patches to have the new<br>
>> >>>> >> >>> xstatic<br>
>> >>>> >> >>> modules.<br>
>> >>>> >> >>> Let me request you to have review the following patches.<br>
>> >>>> >> >>> We need Horizon PTL's +1 to move these forward.<br>
>> >>>> >> >>><br>
>> >>>> >> >>> project-config<br>
>> >>>> >> >>> <a href="https://review.openstack.org/#/c/551978/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/551978/</a><br>
>> >>>> >> >>><br>
>> >>>> >> >>> governance<br>
>> >>>> >> >>> <a href="https://review.openstack.org/#/c/551980/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/551980/</a><br>
>> >>>> >> >>><br>
>> >>>> >> >>> Thanks in advance:)<br>
>> >>>> >> >>><br>
>> >>>> >> >>> Regards,<br>
>> >>>> >> >>> Kaz<br>
>> >>>> >> >>><br>
>> >>>> >> >>><br>
>> >>>> >> >>> 2018-03-12 20:00 GMT+09:00 Radomir Dopieralski<br>
>> >>>> >> >>> <<a href="mailto:openstack@sheep.art.pl" target="_blank">openstack@sheep.art.pl</a>>:<br>
>> >>>> >> >>> > Yes, please do that. We can then discuss in the review about<br>
>> >>>> >> >>> > technical<br>
>> >>>> >> >>> > details.<br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> > On Mon, Mar 12, 2018 at 2:54 AM, Xinni Ge<br>
>> >>>> >> >>> > <<a href="mailto:xinni.ge1990@gmail.com" target="_blank">xinni.ge1990@gmail.com</a>><br>
>> >>>> >> >>> > wrote:<br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> Hi, Akihiro<br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> Thanks for the quick reply.<br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> I agree with your opinion that BASE_XSTATIC_MODULES should<br>
>> >>>> >> >>> >> not<br>
>> >>>> >> >>> >> be<br>
>> >>>> >> >>> >> modified.<br>
>> >>>> >> >>> >> It is much better to enhance horizon plugin settings,<br>
>> >>>> >> >>> >>  and I think maybe there could be one option like<br>
>> >>>> >> >>> >> ADD_XSTATIC_MODULES.<br>
>> >>>> >> >>> >> This option adds the plugin's xstatic files in<br>
>> >>>> >> >>> >> STATICFILES_DIRS.<br>
>> >>>> >> >>> >> I am considering to add a bug report to describe it at<br>
>> >>>> >> >>> >> first,<br>
>> >>>> >> >>> >> and<br>
>> >>>> >> >>> >> give<br>
>> >>>> >> >>> >> a<br>
>> >>>> >> >>> >> patch later maybe.<br>
>> >>>> >> >>> >> Is that ok with the Horizon team?<br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> Best Regards.<br>
>> >>>> >> >>> >> Xinni<br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> On Fri, Mar 9, 2018 at 11:47 PM, Akihiro Motoki<br>
>> >>>> >> >>> >> <<a href="mailto:amotoki@gmail.com" target="_blank">amotoki@gmail.com</a>><br>
>> >>>> >> >>> >> wrote:<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> Hi Xinni,<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> 2018-03-09 12:05 GMT+09:00 Xinni Ge<br>
>> >>>> >> >>> >>> <<a href="mailto:xinni.ge1990@gmail.com" target="_blank">xinni.ge1990@gmail.com</a>>:<br>
>> >>>> >> >>> >>> > Hello Horizon Team,<br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > I would like to hear about your opinions about how to<br>
>> >>>> >> >>> >>> > add<br>
>> >>>> >> >>> >>> > new<br>
>> >>>> >> >>> >>> > xstatic<br>
>> >>>> >> >>> >>> > modules to horizon settings.<br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > As for Heat-dashboard project embedded 3rd-party files<br>
>> >>>> >> >>> >>> > issue,<br>
>> >>>> >> >>> >>> > thanks<br>
>> >>>> >> >>> >>> > for<br>
>> >>>> >> >>> >>> > your advices in Dublin PTG, we are now removing them and<br>
>> >>>> >> >>> >>> > referencing as<br>
>> >>>> >> >>> >>> > new<br>
>> >>>> >> >>> >>> > xstatic-* libs.<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> Thanks for moving this forward.<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> > So we installed the new xstatic files (not uploaded as<br>
>> >>>> >> >>> >>> > openstack<br>
>> >>>> >> >>> >>> > official<br>
>> >>>> >> >>> >>> > repos yet) in our development environment now, but<br>
>> >>>> >> >>> >>> > hesitate<br>
>> >>>> >> >>> >>> > to<br>
>> >>>> >> >>> >>> > decide<br>
>> >>>> >> >>> >>> > how to<br>
>> >>>> >> >>> >>> > add the new installed xstatic lib path to<br>
>> >>>> >> >>> >>> > STATICFILES_DIRS<br>
>> >>>> >> >>> >>> > in<br>
>> >>>> >> >>> >>> > openstack_dashboard.settings so that the static files<br>
>> >>>> >> >>> >>> > could<br>
>> >>>> >> >>> >>> > be<br>
>> >>>> >> >>> >>> > automatically<br>
>> >>>> >> >>> >>> > collected by *collectstatic* process.<br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > Currently Horizon defines BASE_XSTATIC_MODULES in<br>
>> >>>> >> >>> >>> > openstack_dashboard/utils/settings.py and the relevant<br>
>> >>>> >> >>> >>> > static<br>
>> >>>> >> >>> >>> > fils<br>
>> >>>> >> >>> >>> > are<br>
>> >>>> >> >>> >>> > added<br>
>> >>>> >> >>> >>> > to STATICFILES_DIRS before it updates any Horizon plugin<br>
>> >>>> >> >>> >>> > dashboard.<br>
>> >>>> >> >>> >>> > We may want new plugin setting keywords ( something<br>
>> >>>> >> >>> >>> > similar<br>
>> >>>> >> >>> >>> > to<br>
>> >>>> >> >>> >>> > ADD_JS_FILES)<br>
>> >>>> >> >>> >>> > to update horizon XSTATIC_MODULES (or directly update<br>
>> >>>> >> >>> >>> > STATICFILES_DIRS).<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> IMHO it is better to allow horizon plugins to add xstatic<br>
>> >>>> >> >>> >>> modules<br>
>> >>>> >> >>> >>> through horizon plugin settings. I don't think it is a<br>
>> >>>> >> >>> >>> good<br>
>> >>>> >> >>> >>> idea<br>
>> >>>> >> >>> >>> to<br>
>> >>>> >> >>> >>> add a new entry in BASE_XSTATIC_MODULES based on horizon<br>
>> >>>> >> >>> >>> plugin<br>
>> >>>> >> >>> >>> usages. It makes difficult to track why and where a<br>
>> >>>> >> >>> >>> xstatic<br>
>> >>>> >> >>> >>> module<br>
>> >>>> >> >>> >>> in<br>
>> >>>> >> >>> >>> BASE_XSTATIC_MODULES is used.<br>
>> >>>> >> >>> >>> Multiple horizon plugins can add a same entry, so horizon<br>
>> >>>> >> >>> >>> code<br>
>> >>>> >> >>> >>> to<br>
>> >>>> >> >>> >>> handle plugin settings should merge multiple entries to a<br>
>> >>>> >> >>> >>> single<br>
>> >>>> >> >>> >>> one<br>
>> >>>> >> >>> >>> hopefully.<br>
>> >>>> >> >>> >>> My vote is to enhance the horizon plugin settings.<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> Akihiro<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > Looking forward to hearing any suggestions from you<br>
>> >>>> >> >>> >>> > guys,<br>
>> >>>> >> >>> >>> > and<br>
>> >>>> >> >>> >>> > Best Regards,<br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > Xinni Ge<br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > __________________________________________________________________________<br>
>> >>>> >> >>> >>> > OpenStack Development Mailing List (not for usage<br>
>> >>>> >> >>> >>> > questions)<br>
>> >>>> >> >>> >>> > Unsubscribe:<br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> >> >>> >>> ><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> __________________________________________________________________________<br>
>> >>>> >> >>> >>> OpenStack Development Mailing List (not for usage<br>
>> >>>> >> >>> >>> questions)<br>
>> >>>> >> >>> >>> Unsubscribe:<br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>><br>
>> >>>> >> >>> >>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> --<br>
>> >>>> >> >>> >> 葛馨霓 Xinni Ge<br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> __________________________________________________________________________<br>
>> >>>> >> >>> >> OpenStack Development Mailing List (not for usage<br>
>> >>>> >> >>> >> questions)<br>
>> >>>> >> >>> >> Unsubscribe:<br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> >> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> >> >>> >><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> > __________________________________________________________________________<br>
>> >>>> >> >>> > OpenStack Development Mailing List (not for usage questions)<br>
>> >>>> >> >>> > Unsubscribe:<br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> > <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> >> >>> ><br>
>> >>>> >> >>><br>
>> >>>> >> >>><br>
>> >>>> >> >>><br>
>> >>>> >> >>><br>
>> >>>> >> >>><br>
>> >>>> >> >>> __________________________________________________________________________<br>
>> >>>> >> >>> OpenStack Development Mailing List (not for usage questions)<br>
>> >>>> >> >>> Unsubscribe:<br>
>> >>>> >> >>> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> >>><br>
>> >>>> >> >>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> >> >><br>
>> >>>> >> >><br>
>> >>>> >> >><br>
>> >>>> >> >><br>
>> >>>> >> >><br>
>> >>>> >> >><br>
>> >>>> >> >> __________________________________________________________________________<br>
>> >>>> >> >> OpenStack Development Mailing List (not for usage questions)<br>
>> >>>> >> >> Unsubscribe:<br>
>> >>>> >> >> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> >><br>
>> >>>> >> >> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> >> >><br>
>> >>>> >> ><br>
>> >>>> >> ><br>
>> >>>> >> ><br>
>> >>>> >> > --<br>
>> >>>> >> > 葛馨霓 Xinni Ge<br>
>> >>>> >> ><br>
>> >>>> >> ><br>
>> >>>> >> ><br>
>> >>>> >> ><br>
>> >>>> >> > __________________________________________________________________________<br>
>> >>>> >> > OpenStack Development Mailing List (not for usage questions)<br>
>> >>>> >> > Unsubscribe:<br>
>> >>>> >> > <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> ><br>
>> >>>> >> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> >> ><br>
>> >>>> >><br>
>> >>>> >><br>
>> >>>> >><br>
>> >>>> >> __________________________________________________________________________<br>
>> >>>> >> OpenStack Development Mailing List (not for usage questions)<br>
>> >>>> >> Unsubscribe:<br>
>> >>>> >> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> >> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> ><br>
>> >>>> ><br>
>> >>>> ><br>
>> >>>> ><br>
>> >>>> ><br>
>> >>>> > __________________________________________________________________________<br>
>> >>>> > OpenStack Development Mailing List (not for usage questions)<br>
>> >>>> > Unsubscribe:<br>
>> >>>> > <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>>> ><br>
>> >>>><br>
>> >>>><br>
>> >>>><br>
>> >>>> __________________________________________________________________________<br>
>> >>>> OpenStack Development Mailing List (not for usage questions)<br>
>> >>>> Unsubscribe:<br>
>> >>>> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>> __________________________________________________________________________<br>
>> >>> OpenStack Development Mailing List (not for usage questions)<br>
>> >>> Unsubscribe:<br>
>> >>> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >>><br>
>> >><br>
>> >><br>
>> >><br>
>> >> __________________________________________________________________________<br>
>> >> OpenStack Development Mailing List (not for usage questions)<br>
>> >> Unsubscribe:<br>
>> >> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> >> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> >><br>
>><br>
>> __________________________________________________________________________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
><br>
><br>
> __________________________________________________________________________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_1608211868904346566gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div>葛馨霓 Xinni Ge</div></div></div></div></div></div>
</div>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div>