[chef-dev] Re: Setting node attributes with a knife plugin


Chronological Thread 
  • From: Christopher Brown < >
  • To: , Chef Dev < >
  • Subject: [chef-dev] Re: Setting node attributes with a knife plugin
  • Date: Thu, 26 Jan 2012 07:16:19 -0800

I've added a work item for us to explore doing this efficiently (i.e.
not requiring a full node save) and perhaps as a beginning to general
node delta / diff rather than full node change.  Can't promise
anything on what this will look like, or when, only that we are
considering it too and that it's an interesting case.

Cheers,
Chris

Christopher Brown, Chief Technical Officer, Opscode, Inc.
T: (425) 502-5522, E: 

IRC, Github: skeptomai
Twitter: @skeptomai


On Tue, Jan 24, 2012 at 9:29 AM,  
< >
 wrote:
> Hi,
>
> I was wondering if anyone has an idea how to decently change a single 
> attribute
> of a node when that attribute is passed on the command line as an argument 
> for
> a knife plugin.
>
> Let's say the plugin's name is 'node set_attr'
> E.g. if I run
>  knife node set_attr NODENAME apache.dir "/tmp"
> I want to achieve that node['apache']['dir'] == "/tmp".
>
> The only way I came up with is something along the lines of:
>
> 
>  = @name_args[0]
> 
>  = @name_args[1]
> 
>  = @name_args[2]
>
> 
>  = Chef::Node.load(@nodename)
>
>  ruby_command = "@node." + @attribute + "=" + @new_value
>  eval(ruby_command)
> 
>
> However imo eval'ing this is kind of ugly, are there any better ways?
>
> My actual use case is the creation of encrypted attribute values via [1] and
> applying them directly to a node, however the encryption stuff itself is
> trivial. The only thing I am not very happy about* - as mentioned above - is
> using eval to set the attribute.
>
> If this is not the right place to ask ruby questions about non-chef-core
> related things, I apologize sincerely.
>
> Kind regards,
>
> Oscar
>
> * besides not having tests for the plugin and catching all sorts of errors 
> that
> could occur
>
> [1] https://github.com/oscarschneider/openssldemo/blob/master/node_secret.rb



--



Archive powered by MHonArc 2.6.16.

§