- From: Fletcher Nichol <
>
- To:
- Subject: [chef] Re: Re: My Wishlist: Better Chef-Solo Support
- Date: Wed, 20 Feb 2013 14:44:02 -0700
On Wednesday, 20 February, 2013 at 1:03 PM, Seth Chisamore wrote:
>
>
On Feb 20, 2013, at 1:32 PM, Elliot Murphy
>
<
>
>
(mailto:
)>
>
wrote:
>
>
> On Wed, Feb 20, 2013 at 1:02 PM, Torben Knerr
>
> <
>
>
>
> (mailto:
)>
>
> wrote:
>
> Sadly, each of these provide different levels of parity with chef-client,
>
> e.g. knife-solo adds search via edelight/chef-solo-search, but this is
>
> not supported by the other approaches. I guess all of them support data
>
> bags. Not sure if anyone of them already supports environments under
>
> chef-solo...
>
>
>
> I had been planning some work thinking that chef-solo-search would work
>
> in a vagrant environment by just adding the cookbook - does it not work?
>
> I haven't tested yet, but if someone else has already been down this
>
> route it might save me from going down a dead end.
>
>
Have you taken a look at Fletcher Nichol's searchef [0] (and it's
>
associated cookbook [1])? It allows you to stub out the search request at
>
the HTTP request level:
>
>
# search for nodes
>
stub_search(:node, "roles:web_node").to_return([
>
node_stub("web1.example.com (http://web1.example.com)"),
>
node_stub("web2.example.com (http://web2.example.com)")
>
])
>
>
# search in data bag
>
>
stub_search(:users, 'groups:admin').to_return([
>
{
>
"id" => "adam",
>
"comment" => "Adam Administrator",
>
"groups" => [
>
"admin"
>
],
>
"ssh_keys" => [],
>
"shell" => "/bin/bash"
>
}
>
])
>
>
stub_search(:users, 'groups:admin').to_return([
>
data_bag_item("users", "adam")
>
])
>
>
We have been using this a bit internally when running our cookbooks in
>
'development' mode, i.e. in Vagrant.
>
>
--
>
Seth Chisamore
>
Software Development Engineer, Opscode, Inc.
>
IRC, Skype, Twitter, Github: schisamo
>
>
[0] - https://github.com/fnichol/searchef
>
[1] - https://github.com/fnichol/chef-searchef
Thanks Seth!
Searchef is still reasonably young (started last Tuesday) but was written to
help with testing cookbooks that depend heavily on search, but are being
exercised in solo mode. Think stubbing (dumb responses) rather than emulating
search. Now that it's in the wild, I'll push the cookbook to the community
site :)
Fletcher.
p.s. While stubbing out search responses might be clever, please also
consider adding solo mode detection with `Chef::Config[:solo]` if the
cookbook is meant for public consumption. Sometimes looking in a node
attribute for your data is a great alternative for solo. After all, don't
forget FC003 [0] :)
[0] -
http://acrmp.github.com/foodcritic/#FC003
Archive powered by MHonArc 2.6.16.