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


Chronological Thread 
  • From: AJ Christensen < >
  • To: Andrea Campi < >
  • Cc: Akzhan Abdulin < >, Noah Kantrowitz < >, Mike < >, Avishai Ish-Shalom < >, Chef Dev < >
  • Subject: [chef-dev] Re: Re: Re: Re: Re: ::File notation
  • Date: Wed, 17 Apr 2013 09:12:57 +1200

Works for me

chef > recipe_mode
chef:recipe > log "File works without having to prefix the root namespace" do
chef:recipe > only_if do
chef:recipe > File.exists? "/tmp"
chef:recipe ?> end
chef:recipe ?> end
 => <log[File works without having to prefix the root namespace]
@name: "File works without having to prefix the root namespace" @noop:
nil @before: nil @params: {} @provider: nil @allowed_actions:
[:nothing] @action: :write @updated: false @updated_by_last_action:
false @supports: {} @ignore_failure: false @retries: 0 @retry_delay: 2
@source_line: "(irb#1):1:in `irb_binding'" @elapsed_time: 0
@resource_name: :log @level: :info @message: "File works without
having to prefix the root namespace" @cookbook_name: nil @recipe_name:
nil>
chef:recipe > run_chef
[2013-04-17T09:12:22+12:00] INFO: Processing log[File works without
having to prefix the root namespace] action write ((irb#1) line 1)
[2013-04-17T09:12:22+12:00] INFO: File works without having to prefix
the root namespace
 => true

/thread

On 17 April 2013 08:37, Andrea Campi 
< >
 wrote:
> 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 
> < >
> wrote:
>>
>> Noah, I suppose that it MUST be a choice of core team. This is a missed
>> usability issue.
>>
>>
>> 2013/4/16 Noah Kantrowitz 
>> < >
>>>
>>> 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 
>>> > < >
>>> > 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 
>>> > < >
>>> > 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
>>> > >> < >
>>> > >>  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 
>>> > >>> < >
>>> > >>>>
>>> > >>>> 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.

§