<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 6, 2018 at 12:30 PM Artem Goncharov <<a href="mailto:artem.goncharov@gmail.com">artem.goncharov@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, 6 Dec 2018, 19:12 Melvin Hillsman, <<a href="mailto:mrhillsman@gmail.com" target="_blank">mrhillsman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid9" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">Hi everyone,</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid10" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid91" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">We have spent some time working to get an idea of what official SDKs would look like. We had some sessions during the Berlin summit[0][1] and there was a lot of great feedback.</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid12" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid13" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">Currently the following SDKs are generally considered usable for their respective language; there are others of course:</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid14" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid15" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">openstacksdk (Python)</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid16" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">gophercloud (Go)</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid17" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">pkgcloud (JavaScript)</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid18" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">openstack4j (Java)</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid19" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">rust-openstack (Rust)</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid20" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">fog-openstack (Ruby)</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid21" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">php-opencloud (PHP)</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid22" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid23" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">After many discussions it seems SDK validation essentially should be about confirming cloud state pre/post SDK interaction rather than API support. An example is that when I use pkgcloud and ask that a VM be created, does the VM exist, in the way I asked it exist, rather than are there specific API calls that are being hit along the way to creating my VM.</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid24" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid116" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">I am putting this email out to keep the community informed of what has been discussed in this space but also and most importantly to get feedback and support for this work. It would be great to get a set of official and community SDKs, get them setup with CI testing for validation (not changing their current CI for unit/functional/acceptance testing; unless asked to help do this), and connect the results to the updated project navigator SDK section. A list of scenarios has been provided as a good starting point for cloud state checks.[2]</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid26" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid941" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">Essentially the proposal is to deploy OpenStack from upstream (devstack or other), stand up a VM within the cloud, grab all the SDKs, run acceptance tests, report pass/fail results, update project navigator. Of course there are details to be worked out and I do have a few questions that I hope would help get everyone interested on the same page via this thread.</span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid417" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid842" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line gmail-m_2188702558516685175m_-7140857836486938434gmail-list-start-number1"><ol start="1" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-list-number1"><li><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">Does this make sense?</span></li></ol></div></div></blockquote></div><div><br></div><div>As a representative of a public cloud operator I say yes. It definitely makes sense to let users know, which SDKs are certified to work to have understanding what they can use. However then comes the question, that each public operator has own "tricks" and possibly even extension services, which make SDK behave not as expected. I do really see a need to provide a regular way in each of those SDKs to add and (I really don't want this, but need unfortunately) sometimes override services implementation if those are changed in some way.</div><div>So the certification make sense, but the CI question probably goes in the direction of OpenLab</div></blockquote><div><br></div><div>Yes this is definitely something to consider; public cloud tricks and extensions. An idea that was floated is to have an upstream cloud to run against that passes all interop powered programs to run the SDKs against. Even though SDKs provide more coverage an SDK that works against a service that is certified should work in any cloud that is certified? <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid843" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><ol start="2" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-list-number1"><li><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">Would folks be interested in a SDK SIG or does it make more sense to request an item on the API SIG's agenda?</span></li></ol></div></div></blockquote></div><div>Both has pro and cons, but I am neutral here</div><div><br></div></blockquote><div><br></div><div>Same, just wanted to get it out there and hopefully get API SIG members feedback so as not to hijack any of their agendas or creep on their scope without consent.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div></div><div><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid844" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><ol start="3" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-list-number1"><li><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">Bi-weekly discussions a good cadence?</span></li></ol></div></div></blockquote></div><div>Yes. The regular communication is a requirement.</div><div> </div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div></div><div><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid856" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><ol start="4" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-list-number1"><li><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">Who is interested in tackling this together?</span></li></ol></div></div></blockquote></div><div><br></div><div>I do, but not alone</div></blockquote><div><br></div><div>Haha, agreed, but we definitely should work on it and be consistent even if the initial set of folks is small. We have a large community to lean on and should rather than simply going at it alone.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid419" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid59" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid60" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><br></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid66" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">[0] </span><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-"><a href="https://etherpad.openstack.org/p/BER-better-expose-what-we-produce" target="_blank">https://etherpad.openstack.org/p/BER-better-expose-what-we-produce</a></span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid87" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">[1] </span><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-"><a href="https://etherpad.openstack.org/p/BER-sdk-certification" target="_blank">https://etherpad.openstack.org/p/BER-sdk-certification</a></span></div><div id="gmail-m_2188702558516685175m_-7140857836486938434gmail-magicdomid864" class="gmail-m_2188702558516685175m_-7140857836486938434gmail-ace-line"><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-">[2] </span><span class="gmail-m_2188702558516685175m_-7140857836486938434gmail-"><a href="https://docs.google.com/spreadsheets/d/1cdzFeV5I4Wk9FK57yqQmp5JJdGfKzEOdB3Vtt9vnVJM" target="_blank">https://docs.google.com/spreadsheets/d/1cdzFeV5I4Wk9FK57yqQmp5JJdGfKzEOdB3Vtt9vnVJM</a></span></div></div><div dir="ltr"><br clear="all"><br>-- <br><div dir="ltr" class="gmail-m_2188702558516685175m_-7140857836486938434gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:small"><div dir="ltr"><div dir="ltr">Kind regards,<br><br>Melvin Hillsman</div><div dir="ltr"><a href="mailto:mrhillsman@gmail.com" style="color:rgb(17,85,204)" target="_blank">mrhillsman@gmail.com</a><br>mobile: (832) 264-2646<br></div></div></div></div></div></div></div></div></div></div></blockquote></div><div><br></div><div>Regards,</div><div>Artem Goncharov</div><div>gtema</div><div>OpenTelekomCloud</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr" class="gmail-m_2188702558516685175m_-7140857836486938434gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:small"><div dir="ltr"><div dir="ltr"></div></div></div></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:small"><div dir="ltr"><div dir="ltr">Kind regards,<br><br>Melvin Hillsman</div><div dir="ltr"><a href="mailto:mrhillsman@gmail.com" style="color:rgb(17,85,204)" target="_blank">mrhillsman@gmail.com</a><br>mobile: (832) 264-2646<br></div></div></div></div></div></div></div></div></div></div>