<div dir="ltr">Hi Dmitry,<div><div><br></div><div>Our current validation implementation is based on jsonschema,</div><div>we will figure out how to hack/configure it to provide more human</div><div>readable message</div></div><div><br></div><div>Thanks,</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 24, 2014 at 2:34 PM, Dmitry Ukov <span dir="ltr"><<a href="mailto:dukov@mirantis.com" target="_blank">dukov@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That was my fault. I did not expect that timeout parameter is a mandatory requirement for task. Every thing works perfectly fine.<div>Thanks for the help.</div></div><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Mon, Nov 24, 2014 at 3:05 PM, Tatyana Leontovich <span dir="ltr"><<a href="mailto:tleontovich@mirantis.com" target="_blank">tleontovich@mirantis.com</a>></span> wrote:<br></span><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Guys,<br></div>task like <br><span>- role: ['controller']<br>stage: post_deployment<br>type: puppet<br>parameters:<br></span>puppet_manifest: puppet/site.pp<br>puppet_modules: puppet/modules/<br>timeout: 360<br>works fine for me, so  I believe your task should looks like<span><br><br><div>cat tasks.yaml </div><div># This tasks will be applied on controller nodes,</div><div># here you can also specify several roles, for example</div><div># ['cinder', 'compute'] will be applied only on</div><div># cinder and compute nodes</div><div>- role: ['controller']</div><div>  stage: post_deployment</div><div>  type: puppet</div><div>  parameters:</div><div>    puppet_manifest: install_keystone_ldap.pp</div></span><div>    puppet_modules: /etc/puppet/modules/"</div><br></div>And be sure that  install_keystone_ldap.pp thos one invoke other manifests<br><br></div>Best,<br></div>Tatyana<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 24, 2014 at 12:49 PM, Dmitry Ukov <span dir="ltr"><<a href="mailto:dukov@mirantis.com" target="_blank">dukov@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Unfortunately this does not work<div><br><div><div>cat tasks.yaml </div><div># This tasks will be applied on controller nodes,</div><div># here you can also specify several roles, for example</div><div># ['cinder', 'compute'] will be applied only on</div><div># cinder and compute nodes</div><div>- role: ['controller']</div><div>  stage: post_deployment</div><div>  type: puppet</div><div>  parameters:</div><div>    puppet_manifest: install_keystone_ldap.pp</div><div>    puppet_modules: "puppet/:/etc/puppet/modules/"</div><div><br></div><div><br></div><div>fpb --build .</div><div>/home/dukov/dev/.plugins_ldap/local/lib/python2.7/site-packages/pkg_resources.py:1045: UserWarning: /home/dukov/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).</div><div>  warnings.warn(msg, UserWarning)</div><div>2014-11-24 13:48:32 ERROR 15026 (cli) Wrong value format "0 -> parameters", for file "./tasks.yaml", {'puppet_modules': 'puppet/:/etc/puppet/modules/', 'puppet_manifest': 'install_keystone_ldap.pp'} is not valid under any of the given schemas</div><div>Traceback (most recent call last):</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/cli.py", line 90, in main</div><div>    perform_action(args)</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/cli.py", line 77, in perform_action</div><div>    actions.BuildPlugin(args.build).run()</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/actions/build.py", line 42, in run</div><div>    self.check()</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/actions/build.py", line 99, in check</div><div>    self._check_structure()</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/actions/build.py", line 111, in _check_structure</div><div>    ValidatorManager(self.plugin_path).get_validator().validate()</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/validator_v1.py", line 39, in validate</div><div>    self.check_schemas()</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/validator_v1.py", line 46, in check_schemas</div><div>    self.validate_file_by_schema(v1.TASKS_SCHEMA, self.tasks_path)</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/base.py", line 47, in validate_file_by_schema</div><div>    self.validate_schema(data, schema, path)</div><div>  File "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/base.py", line 43, in validate_schema</div><div>    value_path, path, exc.message))</div><div>ValidationError: Wrong value format "0 -> parameters", for file "./tasks.yaml", {'puppet_modules': 'puppet/:/etc/puppet/modules/', 'puppet_manifest': 'install_keystone_ldap.pp'} is not valid under any of the given schemas</div></div><div><br></div></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 24, 2014 at 2:34 PM, Aleksandr Didenko <span dir="ltr"><<a href="mailto:adidenko@mirantis.com" target="_blank">adidenko@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi,<br><br>according to [1] you should be able to use:<br><br>puppet_modules: "puppet/:/etc/puppet/<span>modules</span>/"<br><br></div>This is valid string yaml parameter that should be parsed just fine.<br><br>[1] <a href="https://github.com/stackforge/fuel-web/blob/master/tasklib/tasklib/actions/puppet.py#L61-L62" target="_blank">https://github.com/stackforge/fuel-web/blob/master/tasklib/tasklib/actions/puppet.py#L61-L62</a><br><br></div>Regards<br>--<br></div>Alex<br><div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Mon, Nov 24, 2014 at 12:07 PM, Dmitry Ukov <span dir="ltr"><<a href="mailto:dukov@mirantis.com" target="_blank">dukov@mirantis.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Hello All,<div>Current implementation of <span style="background:yellow"><span>plugins</span></span> in Fuel unpacks <span style="background:yellow"><span>plugin</span></span> tarball into /var/www/<span style="background:yellow"><span>nailgun</span></span>/<span style="background:yellow"><span>plugins</span></span>/.</div><div>If we implement deployment part of <span style="background:yellow"><span>plugin</span></span> using puppet there is a setting </div><div>puppet_modules:</div><div><br></div><div>This setting should specify path to modules folder. As soon as main deployment part of <span style="background:yellow"><span>plugin</span></span> is implemented as a Puppet module module path setting should be:</div><div><br></div><div>puppet_modules: puppet/</div><div><br></div><div>There is big probability that <span style="background:yellow"><span>plugin</span></span> implementation will require some custom resources and functions which are implemented in fuel-library (e.g. service <span style="background:yellow"><span>config</span></span> resources, <span style="background:yellow"><span>stdlib</span></span> functions e.t.c). So in order to use them <span style="background:yellow"><span>plugin</span></span> developer has to copy them from fuel-library into <span style="background:yellow"><span>plugin</span></span> (if <span style="background:yellow"><span>i'm</span></span> not missing something). This is not really convenient from my perspective.</div><div><br></div><div>I'd like to suggest to treat puppet_modules parameter as an array and pass it to puppet binary as</div><div># puppet apply --<span style="background:yellow"><span>modulepath</span></span>=<modulepath1>:<modulepath2></div><div>This will allow to add /etc/puppet/modules as module path and use resources and functions form fuel-library.</div><div><br></div><div>P.S.:</div><div>puppet_modules: "puppet/:/etc/puppet/<span>moules</span>/: <- is not allowed by <span>yaml</span> parser (and <span>yaml</span> format I believe)<br></div><div><br></div><div>Any suggestions here?</div><span><font color="#888888"><div><div><br></div><div><br></div>-- <br><div>Kind regards<div><span style="background:yellow"><span>Dmitry</span></span> <span style="background:yellow"><span>Ukov</span></span></div><div>IT Engineer</div><div><div><span style="background:yellow"><span>Mirantis</span></span>, Inc.</div></div><div><br></div></div>
</div></font></span></div>
<br></div></div>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</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></blockquote></div><br></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</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></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Kind regards<div>Dmitry Ukov</div><div>IT Engineer</div><div><div>Mirantis, Inc.</div></div><div><br></div></div>
</div>
</div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</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></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</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></blockquote></div></div></div><div><div class="h5"><br><br clear="all"><div><br></div>-- <br><div>Kind regards<div>Dmitry Ukov</div><div>IT Engineer</div><div><div>Mirantis, Inc.</div></div><div><br></div></div>
</div></div></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</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></blockquote></div><br></div>