<p dir="ltr">Andrew,</p>
<p dir="ltr">The stubs + deprecation warning is exactly the approach I believewe should take for renaming/moving tasks.</p>
<p dir="ltr">If it was possible for a plugin to override a task, but preserve the fields from the original task, we could avoid such scenarios. What I mean is that if the following task:<br></p>
<p dir="ltr">- id: workloads_collector_add<br>
  type: puppet<br>
  version: 2.0.0<br>
  groups: [primary-controller]<br>
  required_for: [deploy_end]<br>
  requires: [keystone, primary-keystone]<br>
  parameters:<br>
    puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/keystone/workloads_collector_add.pp<br>
    puppet_modules: /etc/puppet/modules<br>
    timeout: 1800</p>
<p dir="ltr">If we could override the groups field only, a plugin developer would not need to copy and paste the dependencies and other parameters. But until that works, we should effectively deprecate top level tasks whenever possible.</p>
<div class="gmail_quote">On Mar 22, 2016 2:52 AM, "Andrew Woodward" <<a href="mailto:xarses@gmail.com">xarses@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I've mocked up the change to implementation using the already landed changes to ceph as an example<div><br></div><div><a href="https://review.openstack.org/295571" target="_blank">https://review.openstack.org/295571</a> </div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Mar 21, 2016 at 3:44 PM Andrew Woodward <<a href="mailto:xarses@gmail.com" target="_blank">xarses@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>We had originally planned for the FFEs for both fuel-openstack-tasks[1] and fuel-remove-conflict-openstack to [2] to close on 3/20, This would have placed them before changes that conflict with fuel-refactor-osnailyfacter-for-puppet-master-compatibility [3].</div><div><br></div><div>[1] <a href="http://lists.openstack.org/pipermail/openstack-dev/2016-March/088297.html" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2016-March/088297.html</a></div><div>[2] <a href="http://lists.openstack.org/pipermail/openstack-dev/2016-March/088298.html" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2016-March/088298.html</a></div><div>[3] <a href="http://lists.openstack.org/pipermail/openstack-dev/2016-March/089028.html" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2016-March/089028.html</a></div><div><br></div><div>However we found this morning that the changes from [2], and more of issue [1] will result in further issues such as [4], where as the task files move, any task that explicitly relied on it, now no longer is in the same path.</div><div><br></div><div>[4] <a href="https://review.openstack.org/#/c/295170/" target="_blank">https://review.openstack.org/#/c/295170/</a></div><div><br></div><div>Due to this newly identified issue with backwards comparability. It appears that [4] shows that we have plugins using interfaces that we don't have formal coverage for so If we introduce this set of changes, we will cause breakage for plugins that use fuel's current tasks.</div><div><br></div><div>From a deprecation standpoint we don't have a way to deal with this, unless  fuel-openstack-tasks [1] lands after fuel-refactor-osnailyfacter-for-puppet-master-compatibility [3]. In this case we can take advantage of the class include stubs, leaving a copy in the old location (osnailyfacter/modular/roles/compute.pp) pointing to the new include location (include openstack_tasks::roles::compute) and adding a warning for deprecation. The tasks includes in the new location openstack_tasks/examples/roles/compute.pp would simply include the updated class location w/o the warning.</div><div><br></div><div>This would take care of [1] and it's review [5]</div><div><br></div><div>[5] <a href="https://review.openstack.org/283332" target="_blank">https://review.openstack.org/283332</a></div><div><br></div><div>This still leaves [2] un-addressed, we still have 3 open CR for it:</div><div><br></div><div>[6] Compute <a href="https://review.openstack.org/285567" target="_blank">https://review.openstack.org/285567</a></div><div>[7] Cinder <a href="https://review.openstack.org/294736" target="_blank">https://review.openstack.org/294736</a></div><div>[8] Swift <a href="https://review.openstack.org/294979" target="_blank">https://review.openstack.org/294979</a></div><div><br></div><div>Compute [6] is in good shape, while Cinder [7] and Swift [8] are not. For these do we want to continue to land them, if so what do we want to do about the now deprecated openstack:: tasks? We could leave them in place with a warning since we would not be using them</div><div><br></div></div><div dir="ltr">-- <br></div><div dir="ltr"><p dir="ltr">--</p><p dir="ltr"><span style="font-size:13.1999998092651px">Andrew Woodward</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Mirantis</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Fuel Community Ambassador</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Ceph Community</span></p>
</div></blockquote></div><div dir="ltr">-- <br></div><div dir="ltr"><p dir="ltr">--</p><p dir="ltr"><span style="font-size:13.1999998092651px">Andrew Woodward</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Mirantis</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Fuel Community Ambassador</span></p><p dir="ltr"><span style="font-size:13.1999998092651px">Ceph Community</span></p>
</div>
<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></blockquote></div>