[openstack-dev] [Fuel] Plugins improvement

Dmitry Ukov dukov at mirantis.com
Mon Nov 24 10:49:51 UTC 2014


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141124/f4ac897c/attachment.html>


More information about the OpenStack-dev mailing list