<html 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=utf-8">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (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:PMingLiU;
        panose-1:2 2 5 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
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;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Calibri;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.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>
</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">I’ll be completely honest in that I do not know what precisely a strategy plugin is.  Perhaps we should have an irc discussion on the topic so you can educate me ;)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">That said, I assume Ansible loads the strategy plugin.  We already hide Ansible behind a network service (popen).  Is the issue that the strategy plugin needs to import a whole bunch of
 Ansible code?  If that is the concern, the strategy plugin can be written in ASL2.0, sit in our code base, and import stuff from Ansible proper, and it will still be sitting behind that popen once instantiated.  The popen I am talking about is the one used
 within kolla-ansible (the tool that used to be a shell script which is now python).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">I’m pretty sure if you give Jeffrey some requirements, he can implement one just as Sam did with kolla_docker.py.  If its ASL2.0 it can sit in the Kolla repo.  If it is not ASL2.0 it needs
 to sit somewhere else, probably upstream in Ansible itself.  There are only a few strategies for parallel runtime at present.  They would probably take more if it was made to be generic.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">One assumption I make is the strategy plugins can be specified at runtime in Ansible.  Is that the case?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">-steve<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0in 0in 0in 4.0pt;margin-left:3.75pt;margin-right:0in">
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-family:Calibri;color:black">From: </span>
</b><span style="font-family:Calibri;color:black">Michał Jastrzębski <inc007@gmail.com></span><span style="font-family:PMingLiU;color:black"><br>
</span><b><span style="font-family:Calibri;color:black">Reply-To: </span></b><span style="font-family:Calibri;color:black">"OpenStack Development Mailing List (not for usage questions)" <openstack-dev@lists.openstack.org><br>
<b>Date: </b>Friday, November 4, 2016 at 7:11 PM<br>
<b>To: </b>"OpenStack Development Mailing List (not for usage questions)" <openstack-dev@lists.openstack.org><br>
<b>Subject: </b>Re: [openstack-dev] [tc][kolla] Ansible module with GPLv3<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p>I read what you say Steven;) strategy plugin is not module, we don't use popen there. Also it will require importing GPL code from Ansible itself. Clint is right in this context. Writing it from scratch is not an option to (way to complex than docker stuff
 we did). Imho only option will be to write GPL driver that will be run with popen. Question is whether this driver can sit in Kolla repo or not, and if not, where?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Nov 4, 2016 6:51 PM, "Steven Dake (stdake)" <<a href="mailto:stdake@cisco.com">stdake@cisco.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri">Michal,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri">Have you read nothing I’ve said?  If its new code, write it as ASL2.0.  The fact that it plugs in or uses GPLv3 code is totally
 irrelevant since it is isolated by a network layer (specifically popen).</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri">Regards</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri">-steve</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Calibri"> </span><o:p></o:p></p>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0in 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="font-family:Calibri;color:black">From:
</span></b><span style="font-family:Calibri;color:black">Michał Jastrzębski <<a href="mailto:inc007@gmail.com" target="_blank">inc007@gmail.com</a>></span><span style="font-family:PMingLiU;color:black"><br>
</span><b><span style="font-family:Calibri;color:black">Reply-To: </span></b><span style="font-family:Calibri;color:black">"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<b>Date: </b>Friday, November 4, 2016 at 5:54 PM<br>
<b>To: </b>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<b>Subject: </b>Re: [openstack-dev] [tc][kolla] Ansible module with GPLv3</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<p>So as Clint mentioned, strategy plugins probably will be tainted by GPL. One of alternatives would be to create separate project for this single plugin, but I'd rather avoid that.
<o:p></o:p></p>
<p>Any other alternatives comes to mind?<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Nov 4, 2016 5:18 PM, "Fox, Kevin M" <<a href="mailto:Kevin.Fox@pnnl.gov" target="_blank">Kevin.Fox@pnnl.gov</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Must be gplv3 compatible. not necessarily gpl. apache license is compatible.<br>
<br>
Thanks,<br>
Kevin<br>
________________________________________<br>
From: Clint Byrum [<a href="mailto:clint@fewbar.com" target="_blank">clint@fewbar.com</a>]<br>
Sent: Friday, November 04, 2016 4:38 PM<br>
To: openstack-dev<br>
Subject: Re: [openstack-dev] [tc][kolla] Ansible module with GPLv3<br>
<br>
Excerpts from Jeremy Stanley's message of 2016-11-04 23:05:54 +0000:<br>
> On 2016-11-04 22:50:10 +0000 (+0000), Jeremy Stanley wrote:<br>
> [...]<br>
> > As I understand it, the challenge here is that plugins for Ansible<br>
> > will by definition be derivative works of Ansible and thus inherit<br>
> > their license choice. No amount of "clean room reimplementation"<br>
> > will solve that unless you also reimplement Ansible under a<br>
> > different license while you're at it.<br>
> [...]<br>
><br>
> Further research suggests I'm wrong on this front. I was assuming<br>
> Ansible was providing a Python plug-in API here, in which case<br>
> coding to that would potentially create a derivative work. Instead<br>
> it looks like for at least some things they refer to as plug-ins<br>
> they pass around a JSON data structure which upstream Ansible has<br>
> said in the past they do not consider to result in plug-ins becoming<br>
> derivative works of Ansible. For example:<br>
><br>
> <a href="https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/basic.py" target="_blank">
https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/basic.py</a><br>
<br>
Modules are not plugins.<br>
<br>
> <a href="https://groups.google.com/forum/#!topic/ansible-project/GLwe3vbwTQk" target="_blank">
https://groups.google.com/forum/#!topic/ansible-project/GLwe3vbwTQk</a><br>
<br>
Same here.<br>
<br>
> <a href="https://github.com/ansible/ansible/issues/8864" target="_blank">https://github.com/ansible/ansible/issues/8864</a><br>
<br>
This only refers to dynamic inventory, which is hardly even a plugin<br>
interface.<br>
<br>
Strategy plugins run in ansible itself and must import pieces of Ansible,<br>
and thus must be GPLv3:<br>
<br>
<a href="https://github.com/ansible/ansible/tree/devel/lib/ansible/plugins/strategy" target="_blank">https://github.com/ansible/ansible/tree/devel/lib/ansible/plugins/strategy</a><br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</blockquote>
</div>
</body>
</html>