[openstack-dev] [Fuel] Plugins improvement

Dmitriy Shulyak dshulyak at mirantis.com
Mon Nov 24 11:25:14 UTC 2014


I tried to reproduce this behavior with tasks.yaml:

# Deployment is required for controllers
- role: ['controller']
  stage: post_deployment
  type: puppet
  parameters:
    puppet_manifest: site.pp
    puppet_modules: "puppet/:/etc/puppet/modules"
    timeout: 360

And actually plugin was built successfully, so as Tatyana and Alex said -
the problem is not with puppet_modules format.

I would sugest to update fuel-plugin-builder, and if this issue will be
reproduced - you can show your plugin on gerrit review or personal github,
and we can try to build it.


On Mon, Nov 24, 2014 at 1:05 PM, Tatyana Leontovich <
tleontovich at mirantis.com> wrote:

> Guys,
> task like
> - role: ['controller']
> stage: post_deployment
> type: puppet
> parameters:
> puppet_manifest: puppet/site.pp
> puppet_modules: puppet/modules/
> timeout: 360
> works fine for me, so  I believe your task should looks like
>
> cat tasks.yaml
> # This tasks will be applied on controller nodes,
> # here you can also specify several roles, for example
> # ['cinder', 'compute'] will be applied only on
> # cinder and compute nodes
> - role: ['controller']
>   stage: post_deployment
>   type: puppet
>   parameters:
>     puppet_manifest: install_keystone_ldap.pp
>     puppet_modules: /etc/puppet/modules/"
>
> And be sure that install_keystone_ldap.pp thos one invoke other manifests
>
> Best,
> Tatyana
>
> On Mon, Nov 24, 2014 at 12:49 PM, Dmitry Ukov <dukov at mirantis.com> wrote:
>
>> Unfortunately this does not work
>>
>> cat tasks.yaml
>> # This tasks will be applied on controller nodes,
>> # here you can also specify several roles, for example
>> # ['cinder', 'compute'] will be applied only on
>> # cinder and compute nodes
>> - role: ['controller']
>>   stage: post_deployment
>>   type: puppet
>>   parameters:
>>     puppet_manifest: install_keystone_ldap.pp
>>     puppet_modules: "puppet/:/etc/puppet/modules/"
>>
>>
>> fpb --build .
>> /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).
>>   warnings.warn(msg, UserWarning)
>> 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
>> Traceback (most recent call last):
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/cli.py",
>> line 90, in main
>>     perform_action(args)
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/cli.py",
>> line 77, in perform_action
>>     actions.BuildPlugin(args.build).run()
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/actions/build.py",
>> line 42, in run
>>     self.check()
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/actions/build.py",
>> line 99, in check
>>     self._check_structure()
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/actions/build.py",
>> line 111, in _check_structure
>>     ValidatorManager(self.plugin_path).get_validator().validate()
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/validator_v1.py",
>> line 39, in validate
>>     self.check_schemas()
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/validator_v1.py",
>> line 46, in check_schemas
>>     self.validate_file_by_schema(v1.TASKS_SCHEMA, self.tasks_path)
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/base.py",
>> line 47, in validate_file_by_schema
>>     self.validate_schema(data, schema, path)
>>   File
>> "/home/dukov/git/fuel/fuel-plugins/fuel_plugin_builder/fuel_plugin_builder/validators/base.py",
>> line 43, in validate_schema
>>     value_path, path, exc.message))
>> 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
>>
>>
>> On Mon, Nov 24, 2014 at 2:34 PM, Aleksandr Didenko <adidenko at mirantis.com
>> > wrote:
>>
>>> Hi,
>>>
>>> according to [1] you should be able to use:
>>>
>>> puppet_modules: "puppet/:/etc/puppet/modules/"
>>>
>>> This is valid string yaml parameter that should be parsed just fine.
>>>
>>> [1]
>>> https://github.com/stackforge/fuel-web/blob/master/tasklib/tasklib/actions/puppet.py#L61-L62
>>>
>>> Regards
>>> --
>>> Alex
>>>
>>>
>>> On Mon, Nov 24, 2014 at 12:07 PM, Dmitry Ukov <dukov at mirantis.com>
>>> wrote:
>>>
>>>> Hello All,
>>>> Current implementation of plugins in Fuel unpacks plugin tarball
>>>> into /var/www/nailgun/plugins/.
>>>> If we implement deployment part of plugin using puppet there is a
>>>> setting
>>>> puppet_modules:
>>>>
>>>> This setting should specify path to modules folder. As soon as main
>>>> deployment part of plugin is implemented as a Puppet module module
>>>> path setting should be:
>>>>
>>>> puppet_modules: puppet/
>>>>
>>>> There is big probability that plugin implementation will require some
>>>> custom resources and functions which are implemented in fuel-library (e.g.
>>>> service config resources, stdlib functions e.t.c). So in order to use
>>>> them plugin developer has to copy them from fuel-library into plugin
>>>> (if i'm not missing something). This is not really convenient from my
>>>> perspective.
>>>>
>>>> I'd like to suggest to treat puppet_modules parameter as an array and
>>>> pass it to puppet binary as
>>>> # puppet apply --modulepath=<modulepath1>:<modulepath2>
>>>> This will allow to add /etc/puppet/modules as module path and use
>>>> resources and functions form fuel-library.
>>>>
>>>> P.S.:
>>>> puppet_modules: "puppet/:/etc/puppet/moules/: <- is not allowed by yaml
>>>> parser (and yaml format I believe)
>>>>
>>>> Any suggestions here?
>>>>
>>>>
>>>> --
>>>> Kind regards
>>>> Dmitry Ukov
>>>> IT Engineer
>>>> Mirantis, Inc.
>>>>
>>>>
>>>> _______________________________________________
>>>> OpenStack-dev mailing list
>>>> OpenStack-dev at lists.openstack.org
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>>
>>
>>
>> --
>> Kind regards
>> Dmitry Ukov
>> IT Engineer
>> Mirantis, Inc.
>>
>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141124/50eaeb7f/attachment-0001.html>


More information about the OpenStack-dev mailing list