searchef 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -19,6 +19,8 @@ Or install it yourself as:
19
19
 
20
20
  ## Usage
21
21
 
22
+ ### Setup
23
+
22
24
  Require the library and include the `Searchef::API` module for convenience:
23
25
 
24
26
  ```ruby
@@ -27,6 +29,8 @@ require 'searchef'
27
29
  include Searchef::API
28
30
  ```
29
31
 
32
+ ### Stubbing Node Searches
33
+
30
34
  ```ruby
31
35
  # stub search for all nodes with the `web_node` role in their run list
32
36
  stub_search(:node, "roles:web_node").to_return([
@@ -46,6 +50,54 @@ query.search(:node, "roles:web_node")
46
50
  # => [[node[web1.example.com], node[web2.example.com]], 0, 2]
47
51
  ```
48
52
 
53
+ You can also stub more complicated nodes with specific data:
54
+
55
+ ```ruby
56
+ # setting a node platform and platform verson
57
+ node_stub("node1.example.com", :platform => "centos", :version => "6.3")
58
+
59
+ # overriding default fauxhai ohai data
60
+ node_stub("node2.example.com", :ohai => { :ipaddress => "19.2.168.10.1" })
61
+
62
+ # set node attribute data, such as the run_list
63
+ node_stub("node2.example.com", :attrs => {
64
+ :run_list => [ 'recipe[common::base]', 'role[load_balancer]' ]
65
+ })
66
+
67
+ # using a block which provides access to the attributes file dsl methods
68
+ node_stub("node3.example.com", :ohai => { :ipaddress => "10.10.12.27" }) do
69
+ default['mysql']['tunable']['tmp_table_size'] = "64M"
70
+ end
71
+ ```
72
+
73
+ ### Stubbing Data Bag Searches
74
+
75
+ Data bags are a hash of data, so you can return data bag items as an array of
76
+ hashes:
77
+
78
+ ```ruby
79
+ stub_search(:users, 'groups:admin').to_return([
80
+ {
81
+ "id" => "adam",
82
+ "comment" => "Adam Administrator",
83
+ "groups" => [
84
+ "admin"
85
+ ],
86
+ "ssh_keys" => [],
87
+ "shell" => "/bin/bash"
88
+ }
89
+ ])
90
+ ```
91
+
92
+ If your `data_bag_path` is setup, you could also fectch the data from a real
93
+ data bag, using the `data_bag_item` method:
94
+
95
+ ```ruby
96
+ stub_search(:users, 'groups:admin').to_return([
97
+ data_bag_item("users", "adam")
98
+ ])
99
+ ```
100
+
49
101
  ## Contributing
50
102
 
51
103
  1. Fork it
data/lib/searchef.rb CHANGED
@@ -21,5 +21,9 @@ require 'searchef/node_stub_creator'
21
21
  require 'searchef/search_stub'
22
22
  require "searchef/version"
23
23
 
24
+ require 'webmock'
25
+
24
26
  module Searchef
25
27
  end
28
+
29
+ WebMock.allow_net_connect!
@@ -17,5 +17,5 @@
17
17
  # limitations under the License.
18
18
 
19
19
  module Searchef
20
- VERSION = "0.1.0"
20
+ VERSION = "0.1.1"
21
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchef
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-14 00:00:00.000000000 Z
12
+ date: 2013-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
@@ -89,18 +89,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  - - ! '>='
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
- segments:
93
- - 0
94
- hash: 2900810078172785449
95
92
  required_rubygems_version: !ruby/object:Gem::Requirement
96
93
  none: false
97
94
  requirements:
98
95
  - - ! '>='
99
96
  - !ruby/object:Gem::Version
100
97
  version: '0'
101
- segments:
102
- - 0
103
- hash: 2900810078172785449
104
98
  requirements: []
105
99
  rubyforge_project:
106
100
  rubygems_version: 1.8.24