ridley 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,6 +14,22 @@ module Ridley
14
14
  raise Errors::ArgumentError, "A path to a validator is required for bootstrapping"
15
15
  end
16
16
  end
17
+
18
+ # A hash of default options to be used in the Context initializer
19
+ #
20
+ # @return [Hash]
21
+ def default_options
22
+ @default_options ||= {
23
+ validator_client: "chef-validator",
24
+ hints: Hash.new,
25
+ attributes: Hash.new,
26
+ run_list: Array.new,
27
+ chef_version: Ridley::CHEF_VERSION,
28
+ environment: "_default",
29
+ sudo: true,
30
+ template: Bootstrapper.default_template
31
+ }
32
+ end
17
33
  end
18
34
 
19
35
  # @return [String]
@@ -61,22 +77,23 @@ module Ridley
61
77
  # @option options [String] :template
62
78
  # bootstrap template to use (default: omnibus)
63
79
  def initialize(host, options = {})
80
+ options = self.class.default_options.merge(options)
64
81
  self.class.validate_options(options)
65
82
 
66
83
  @host = host
67
84
  @server_url = options[:server_url]
68
85
  @validator_path = options[:validator_path]
69
86
  @node_name = options[:node_name]
70
- @validator_client = options[:validator_client] || "chef-validator"
87
+ @validator_client = options[:validator_client]
71
88
  @bootstrap_proxy = options[:bootstrap_proxy]
72
89
  @encrypted_data_bag_secret_path = options[:encrypted_data_bag_secret_path]
73
- @hints = options[:hints] || Hash.new
74
- @attributes = options[:attributes] || Hash.new
75
- @run_list = options[:run_list] || Array.new
76
- @chef_version = options[:chef_version] || Ridley::CHEF_VERSION
77
- @environment = options[:environment] || "_default"
78
- @sudo = options[:sudo] || true
79
- @template_file = options[:template] || Bootstrapper.default_template
90
+ @hints = options[:hints]
91
+ @attributes = options[:attributes]
92
+ @run_list = options[:run_list]
93
+ @chef_version = options[:chef_version]
94
+ @environment = options[:environment]
95
+ @sudo = options[:sudo]
96
+ @template_file = options[:template]
80
97
  end
81
98
 
82
99
  # @return [String]
@@ -17,6 +17,16 @@ module Ridley
17
17
  raise ArgumentError, "Missing required option(s): #{missing.join(', ')}"
18
18
  end
19
19
  end
20
+
21
+ # A hash of default options to be used in the Connection initializer
22
+ #
23
+ # @return [Hash]
24
+ def default_options
25
+ {
26
+ thread_count: DEFAULT_THREAD_COUNT,
27
+ ssh: Hash.new
28
+ }
29
+ end
20
30
  end
21
31
 
22
32
  extend Forwardable
@@ -88,13 +98,14 @@ module Ridley
88
98
  # @option options [URI, String, Hash] :proxy
89
99
  # URI, String, or Hash of HTTP proxy options
90
100
  def initialize(options = {})
101
+ options = self.class.default_options.merge(options)
91
102
  self.class.validate_options(options)
92
103
 
93
104
  @client_name = options[:client_name]
94
105
  @client_key = File.expand_path(options[:client_key])
95
106
  @organization = options[:organization]
96
- @thread_count = (options[:thread_count] || DEFAULT_THREAD_COUNT)
97
- @ssh = (options[:ssh] || Hash.new)
107
+ @thread_count = options[:thread_count]
108
+ @ssh = options[:ssh]
98
109
  @validator_client = options[:validator_client]
99
110
  @validator_path = options[:validator_path]
100
111
  @encrypted_data_bag_secret_path = options[:encrypted_data_bag_secret_path]
@@ -34,13 +34,17 @@ module Ridley
34
34
  def bootstrap(connection, *args)
35
35
  options = args.last.is_a?(Hash) ? args.pop : Hash.new
36
36
 
37
- options[:server_url] ||= connection.server_url
38
- options[:ssh_user] ||= connection.ssh[:user]
39
- options[:ssh_password] ||= connection.ssh[:password]
40
- options[:ssh_timeout] ||= connection.ssh[:timeout]
41
- options[:validator_path] ||= connection.validator_path
42
- options[:validator_client] ||= connection.validator_client
43
- options[:encrypted_data_bag_secret_path] ||= connection.encrypted_data_bag_secret_path
37
+ default_options = {
38
+ server_url: connection.server_url,
39
+ ssh_user: connection.ssh[:user],
40
+ ssh_password: connection.ssh[:password],
41
+ ssh_timeout: connection.ssh[:timeout],
42
+ validator_path: connection.validator_path,
43
+ validator_client: connection.validator_client,
44
+ encrypted_data_bag_secret_path: connection.encrypted_data_bag_secret_path
45
+ }
46
+
47
+ options = default_options.merge(options)
44
48
 
45
49
  Bootstrapper.new(args, options).run
46
50
  end
@@ -1,3 +1,3 @@
1
1
  module Ridley
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  end
@@ -16,6 +16,20 @@ describe Ridley::Bootstrapper::Context do
16
16
  subject { Ridley::Bootstrapper::Context }
17
17
 
18
18
  describe "::new" do
19
+ it "sets a default value of 'true' to 'sudo'" do
20
+ options.delete(:sudo)
21
+ obj = subject.new(host, options)
22
+
23
+ obj.send(:sudo).should be_true
24
+ end
25
+
26
+ it "sets the value of sudo to 'false' if provided" do
27
+ options.merge!(sudo: false)
28
+ obj = subject.new(host, options)
29
+
30
+ obj.send(:sudo).should be_false
31
+ end
32
+
19
33
  context "when validator_path is not specified" do
20
34
  let(:options) { Hash.new }
21
35
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridley
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
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: 2012-11-09 00:00:00.000000000 Z
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -305,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
305
305
  version: '0'
306
306
  segments:
307
307
  - 0
308
- hash: 4545606646369102038
308
+ hash: -675121695435893823
309
309
  requirements: []
310
310
  rubyforge_project:
311
311
  rubygems_version: 1.8.23