Array attributes are merged, i have checked out that this is the behaviour when using default attributes on attribute files and roles.
But when i try to define a default attribute on one recipe:
node.default['foo'] = ['bar']
The one that i have already on defaults.rb attribute file:
node.default['foo'] = ['littlebar']
Is overrided by the one i defined on the recipe, resulting node['foo'] = ['bar']
Defining on a role:
default_attributes (:foo => ['bar'])
Works as expected, and results on node['foo'] = ['littlebar','bar']
So what exactly node.default['x'] = value do on recipes? Looks like a direct override... O_o
--
Si necesitas una máquina para hacer algo y no la compras al final te darás cuenta de que has pagado lo mismo y no tienes la máquina.--Henry Ford
Alberto
My experience with this issue was similar, however I found that << doesn't
play nice with the autovivification.
Consequently I've been using this pattern as a workaround:
May be that recipes attr definitions just override attr files ones.
Mike: I have checked out that arrays merge works well on defaults attr
files + defaults on role. So environment and roles examples on the link,
are just examples, i think.
Can a opscode dev, explain what is the exactly behaviour with arrays on
attributes? Looks like it depends where you define the attr override works
as expected o_O
El 21/10/2013 16:22, "Luke Bradbury" luke.dolman@gmail.com escribió:
My experience with this issue was similar, however I found that << doesn't
play nice with the autovivification.
Consequently I've been using this pattern as a workaround:
May be that recipes attr definitions just override attr files ones.
Mike: I have checked out that arrays merge works well on defaults attr files + defaults on role. So environment and roles examples on the link, are just examples, i think.
Can a opscode dev, explain what is the exactly behaviour with arrays on attributes? Looks like it depends where you define the attr override works as expected o_O
El 21/10/2013 16:22, "Luke Bradbury" luke.dolman@gmail.com escribió:
My experience with this issue was similar, however I found that << doesn't play nice with the autovivification.
Consequently I've been using this pattern as a workaround:
Array attributes are merged, i have checked out that this is the behaviour when using default attributes on attribute files and roles.
But when i try to define a default attribute on one recipe:
node.default['foo'] = ['bar']
The one that i have already on defaults.rb attribute file:
node.default['foo'] = ['littlebar']
Is overrided by the one i defined on the recipe, resulting node['foo'] = ['bar']
Defining on a role:
default_attributes (:foo => ['bar'])
Works as expected, and results on node['foo'] = ['littlebar','bar']
So what exactly node.default['x'] = value do on recipes? Looks like a direct override... O_o
--
Si necesitas una máquina para hacer algo y no la compras al final te darás cuenta de que has pagado lo mismo y no tienes la máquina.--Henry Ford
Alberto
May be that recipes attr definitions just override attr files ones.
Mike: I have checked out that arrays merge works well on defaults attr
files + defaults on role. So environment and roles examples on the link,
are just examples, i think.
Can a opscode dev, explain what is the exactly behaviour with arrays on
attributes? Looks like it depends where you define the attr override works
as expected o_O
El 21/10/2013 16:22, "Luke Bradbury" luke.dolman@gmail.com escribió:
My experience with this issue was similar, however I found that <<
doesn't play nice with the autovivification.
Consequently I've been using this pattern as a workaround:
Array attributes are merged, i have checked out that this is the
behaviour when using default attributes on attribute files and roles.
But when i try to define a default attribute on one recipe:
node.default['foo'] = ['bar']
The one that i have already on defaults.rb attribute file:
node.default['foo'] = ['littlebar']
Is overrided by the one i defined on the recipe, resulting node['foo']
= ['bar']
Defining on a role:
default_attributes (:foo => ['bar'])
Works as expected, and results on node['foo'] = ['littlebar','bar']
So what exactly node.default['x'] = value do on recipes? Looks like a
direct override... O_o
--
Si necesitas una máquina para hacer algo y no la compras al final te
darás cuenta de que has pagado lo mismo y no tienes la máquina.--Henry Ford
Alberto