[chef-dev] RE: Re: Re: Re: Re: ::File notation


Chronological Thread 
  • From: Adam Jacob < >
  • To: Andrea Campi < >, Akzhan Abdulin < >
  • Cc: Noah Kantrowitz < >, Mike < >, Avishai Ish-Shalom < >, Chef Dev < >
  • Subject: [chef-dev] RE: Re: Re: Re: Re: ::File notation
  • Date: Wed, 17 Apr 2013 15:51:44 +0000
  • Accept-language: en-US

Yeah – I’m not clear this is a problem in the vast majority of cases.

 

Adam

 

From: Andrea Campi [mailto:
Sent: Tuesday, April 16, 2013 1:38 PM
To: Akzhan Abdulin
Cc: Noah Kantrowitz; Mike; Avishai Ish-Shalom; Chef Dev
Subject: [chef-dev] Re: Re: Re: Re: ::File notation

 

BTW, I was writing my thoughts on this and fired up chef-shell to try it.

And guess what, this works like a charm in recipe_mode without any ::

 

chef:recipe > file "test" do

chef:recipe >     not_if { File.exists?("test") }

chef:recipe ?>  end

 

Are we even sure this is still a problem or are we cargo-culting something that is in the past?!

 

 

 

On Tue, Apr 16, 2013 at 8:31 PM, Akzhan Abdulin < " target="_blank"> > wrote:

Noah, I suppose that it MUST be a choice of core team. This is a missed usability issue.

 

2013/4/16 Noah Kantrowitz < " target="_blank"> >

Make a patch and open a ticket and I'm sure btm and crew will be glad to take a look :) It might need to wait for a major release since it would be a backwards-incompatible change, but this would only affect people subclassing the file resource I think, which should be somewhat rare so maybe we can just put out a warning.

--Noah


On Apr 16, 2013, at 11:25 AM, Akzhan Abdulin wrote:

> Mike, take a note that recipe authors aren't ruby pro's (more administrators than programmers). So we need to keep recipe syntax as simple as can.
>
> File.exists? phrase is more intuitive than ::File.exists? one. No namespace collision issue in mind.
>
>
>
> 2013/4/16 Mike < " target="_blank"> >
> So we're back to me not understanding the problem that Akzhan is stating.
>
> On Tue, Apr 16, 2013 at 1:51 PM, Noah Kantrowitz < " target="_blank"> > wrote:
> > Yep, the issue is that recipe code is executed in the Chef::Recipe namespace, so "File" gets you Chef::File. Not sure there is a workaround given Ruby's structure for name lookups.
> >
> > --Noah
> >
> > On Apr 16, 2013, at 10:18 AM, Mike wrote:
> >
> >> I don't understand.
> >>
> >> By using ::File, aren't you guaranteeing that you're using the root namespace?
> >>
> >> On Tue, Apr 16, 2013 at 12:56 PM, Akzhan Abdulin
> >> < " target="_blank"> > wrote:
> >>> Hello Chiefs,
> >>>
> >>> I have insight, - Chef classes should never be named as system ones.
> >>>
> >>> We need to eliminate ::File and so on notation.
> >>>
> >>> Yours sincerely,
> >>>  Akzhan.
> >>>
> >>>
> >>> 2013/4/16 Avishai Ish-Shalom < " target="_blank"> >
> >>>>
> >>>> inline_recipe "test" do
> >>>>
> >>>>     block do
> >>>>             log "testing resource group"
> >>>>
> >>>>             file "/tmp/test1" do
> >>>>
> >>>>                     mode "0600"
> >>>>
> >>>>             end
> >>>>     end
> >>>>     action :nothing
> >>>>
> >>>>     notifies :write, "log[test]"
> >>>>
> >>>>  only_if { ::File.exists? "/tmp/test2" }
> >>>>
> >>>> end
> >>>>
> >>>>
> >>>>
> >>>> https://github.com/avishai-ish-shalom/chef-inline-recipe/blob/master/recipes/default.rb
> >>>>
> >>>>
> >>>
> >
>

 

 




Archive powered by MHonArc 2.6.16.

§