ridley 4.4.1 → 4.4.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 32e1dbb729d85a4c08c66b4b7d07a5fd26b0bdb9
4
- data.tar.gz: 6f3c4bee09d4a1bff4e2260a2c66c35b39fdf9d5
3
+ metadata.gz: 35e51257c60219defc486be0fc9d2929a6305cd2
4
+ data.tar.gz: db145d26c5db49f2a27d9e29085f79c746738d7c
5
5
  SHA512:
6
- metadata.gz: bc76d74cd487011835a6fb0b698d58d977393e826c3d0c56f68e26a1278e901e35898f211e618d7babcbf7070291c8ce0b03a0a38e5ece4acb2527a1d1fb9991
7
- data.tar.gz: 15f8611da50402f310681d3f1c4cae1cdea4aad2fe9a79eb8d0d683c0e49b2cb26c14ad017d7a0cec6cd5a6e7cf572806879d1eb7ae512b10d94ab9b9019219f
6
+ metadata.gz: 358d50fb89876c479ee20e1d23ba0ba9584a3cb779bea73be43fe9c6a9c088ab320634df555a4c3a8e1c8626e82da942f7ce85ea78bc1dbbc5f4fc224c0804a3
7
+ data.tar.gz: d9758949f47a21e33b7a5c2f042e9dcd65cf21f88cf558ce63012439e4a696243d3903b992237f21fd0cad263c0d0e15523b4251426119753ae16838d222d866
data/.travis.yml CHANGED
@@ -1,13 +1,46 @@
1
- script: "bundle exec thor spec:$TEST_SUITE"
1
+ sudo: false
2
2
  language: ruby
3
+ addons:
4
+ apt:
5
+ packages:
6
+ - chef
7
+ - git
8
+ - graphviz
9
+ - libarchive12
10
+ - libarchive-dev
11
+ - libgecode-dev
12
+ sources:
13
+ - chef-stable-precise
14
+ cache:
15
+ - apt
16
+ - bundler
17
+ dist: precise
18
+
19
+ script: "bundle exec thor spec:$TEST_SUITE"
20
+ before_install:
21
+ - gem update --system
22
+ - gem install bundler
3
23
  env:
4
24
  - TEST_SUITE=unit
5
25
  - TEST_SUITE=acceptance
6
26
  rvm:
7
- - 1.9.3
8
- - 2.0.0
27
+ - 1.9
28
+ - 2.0
9
29
  - 2.1
10
- - jruby-19mode
30
+ # - jruby-19mode
11
31
  matrix:
12
- allow_failures:
13
- - rvm: jruby-19mode
32
+ # allow_failures:
33
+ # - rvm: jruby-19mode
34
+ include:
35
+ # Test against master of berkshelf
36
+ - rvm: 2.2
37
+ gemfile: berkshelf/Gemfile
38
+ before_install:
39
+ - gem update --system
40
+ - gem install bundler
41
+ - git clone --depth 1 https://github.com/berkshelf/berkshelf
42
+ - cd berkshelf
43
+ - echo "gem 'ridley', :path => '..'" >> Gemfile
44
+ install: bundle install --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
45
+ env:
46
+ script: bundle exec thor spec:ci
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 4.4.2
2
+
3
+ * Bring back 4.4.0 with backcompat fixes!
4
+
1
5
  # 4.4.1
2
6
 
3
7
  * Revert 4.4.0 while we figure out a regression
@@ -1,86 +1,46 @@
1
- require 'buff/config/ruby'
1
+ require 'chef-config/config'
2
+ require 'chef-config/workstation_config_loader'
2
3
  require 'socket'
3
4
 
4
5
  module Ridley::Chef
5
- class Config < Buff::Config::Ruby
6
- class << self
7
- # Return the most sensible path to the Chef configuration file. This can
8
- # be configured by setting a value for the 'RIDLEY_CHEF_CONFIG' environment
9
- # variable.
10
- #
11
- # @return [String, nil]
12
- def location
13
- possibles = []
14
-
15
- possibles << ENV['RIDLEY_CHEF_CONFIG'] if ENV['RIDLEY_CHEF_CONFIG']
16
- possibles << File.join(ENV['KNIFE_HOME'], 'knife.rb') if ENV['KNIFE_HOME']
17
- possibles << File.join(working_dir, 'knife.rb') if working_dir
18
-
19
- # Ascending search for .chef directory siblings
20
- Pathname.new(working_dir).ascend do |file|
21
- sibling_chef = File.join(file, '.chef')
22
- possibles << File.join(sibling_chef, 'knife.rb')
23
- end if working_dir
24
-
25
- possibles << File.join(ENV['HOME'], '.chef', 'knife.rb') if ENV['HOME']
26
- possibles.compact!
27
-
28
- location = possibles.find { |loc| File.exists?(File.expand_path(loc)) }
29
-
30
- File.expand_path(location) unless location.nil?
31
- end
32
-
33
- private
34
-
35
- # The current working directory
36
- #
37
- # @return [String]
38
- def working_dir
39
- ENV['PWD'] || Dir.pwd
40
- end
41
- end
42
-
43
- set_assignment_mode :carefree
44
-
45
- attribute :node_name,
46
- default: -> { Socket.gethostname }
47
- attribute :chef_server_url,
48
- default: 'http://localhost:4000'
49
- attribute :client_key,
50
- default: -> { platform_specific_path('/etc/chef/client.pem') }
51
- attribute :validation_key,
52
- default: -> { platform_specific_path('/etc/chef/validation.pem') }
53
- attribute :validation_client_name,
54
- default: 'chef-validator'
55
-
56
- attribute :cookbook_copyright,
57
- default: 'YOUR_NAME'
58
- attribute :cookbook_email,
59
- default: 'YOUR_EMAIL'
60
- attribute :cookbook_license,
61
- default: 'reserved'
62
-
63
- attribute :knife,
64
- default: {}
65
-
66
- # Prior to Chef 11, the cache implementation was based on
67
- # moneta and configured via cache_options[:path]. Knife configs
68
- # generated with Chef 11 will have `syntax_check_cache_path`, but older
69
- # configs will have `cache_options[:path]`. `cache_options` is marked
70
- # deprecated in chef/config.rb but doesn't currently trigger a warning.
71
- # See also: CHEF-3715
72
- attribute :syntax_check_cache_path,
73
- default: -> { Dir.mktmpdir }
74
- attribute :cache_options,
75
- default: -> { { path: defined?(syntax_check_cache_path) ? syntax_check_cache_path : Dir.mktmpdir } }
76
-
6
+ class Config
77
7
  # Create a new Chef Config object.
78
8
  #
79
9
  # @param [#to_s] path
80
10
  # the path to the configuration file
81
11
  # @param [Hash] options
82
12
  def initialize(path, options = {})
83
- super(path || self.class.location, options)
13
+ ChefConfig::WorkstationConfigLoader.new(path).load
14
+ ChefConfig::Config.merge!(options)
15
+ ChefConfig::Config.export_proxies # Set proxy settings as environment variables
16
+ end
17
+
18
+ # Keep defaults that aren't in ChefConfig::Config
19
+ def cookbook_copyright(*args, &block)
20
+ ChefConfig::Config.cookbook_copyright(*args, &block) || 'YOUR_NAME'
21
+ end
22
+ def cookbook_email(*args, &block)
23
+ ChefConfig::Config.cookbook_email(*args, &block) || 'YOUR_EMAIL'
24
+ end
25
+ def cookbook_license(*args, &block)
26
+ ChefConfig::Config.cookbook_license(*args, &block) || 'reserved'
27
+ end
28
+
29
+ # The configuration as a hash
30
+ def to_hash
31
+ ChefConfig::Config.save(true)
32
+ end
33
+ # Load from a file
34
+ def self.from_file(file)
35
+ new(file)
36
+ end
37
+
38
+ # Behave just like ChefConfig::Config in general
39
+ def method_missing(name, *args, &block)
40
+ ChefConfig::Config.send(name, *args, &block)
41
+ end
42
+ def respond_to_missing?(name)
43
+ ChefConfig::Config.respond_to?(name)
84
44
  end
85
45
  end
86
46
  end
@@ -1,3 +1,3 @@
1
1
  module Ridley
2
- VERSION = "4.4.1"
2
+ VERSION = "4.4.2"
3
3
  end
data/ridley.gemspec CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_dependency 'buff-shell_out', '~> 0.1'
26
26
  s.add_dependency 'celluloid', '~> 0.16.0'
27
27
  s.add_dependency 'celluloid-io', '~> 0.16.1'
28
+ s.add_dependency 'chef-config'
28
29
  s.add_dependency 'erubis'
29
30
  s.add_dependency 'faraday', '~> 0.9.0'
30
31
  s.add_dependency 'hashie', '>= 2.0.2', '< 4.0.0'
@@ -37,43 +37,29 @@ describe Ridley do
37
37
  end
38
38
 
39
39
  it "creates a Ridley connection from the Chef config" do
40
- expect(Ridley::Client).to receive(:new).with({
40
+ expect(Ridley::Client).to receive(:new).with(hash_including(
41
41
  client_key: 'username.pem',
42
42
  client_name: 'username',
43
43
  validator_client: 'validator',
44
44
  validator_path: 'validator.pem',
45
45
  server_url: 'https://api.opscode.com',
46
-
47
- cookbook_copyright: 'YOUR_NAME',
48
- cookbook_email: 'YOUR_EMAIL',
49
- cookbook_license: 'reserved',
50
-
51
- knife: {},
52
-
53
46
  syntax_check_cache_path: "/foo/bar",
54
47
  cache_options: { path: "~/.chef/checksums" },
55
- }).and_return(nil)
48
+ )).and_return(nil)
56
49
 
57
50
  subject.from_chef_config(path)
58
51
  end
59
52
 
60
53
  it "allows the user to override attributes" do
61
- expect(Ridley::Client).to receive(:new).with({
54
+ expect(Ridley::Client).to receive(:new).with(hash_including(
62
55
  client_key: 'bacon.pem',
63
56
  client_name: 'bacon',
64
57
  validator_client: 'validator',
65
58
  validator_path: 'validator.pem',
66
59
  server_url: 'https://api.opscode.com',
67
-
68
- cookbook_copyright: 'YOUR_NAME',
69
- cookbook_email: 'YOUR_EMAIL',
70
- cookbook_license: 'reserved',
71
-
72
- knife: {},
73
-
74
60
  syntax_check_cache_path: "/foo/bar",
75
61
  cache_options: { path: "~/.chef/checksums" },
76
- })
62
+ ))
77
63
 
78
64
  subject.from_chef_config(path, client_key: 'bacon.pem', client_name: 'bacon')
79
65
  end
@@ -88,22 +74,15 @@ describe Ridley do
88
74
  end
89
75
 
90
76
  it "does a knife.rb search" do
91
- expect(Ridley::Client).to receive(:new).with({
77
+ expect(Ridley::Client).to receive(:new).with(hash_including(
92
78
  client_key: 'username.pem',
93
79
  client_name: 'username',
94
80
  validator_client: 'validator',
95
81
  validator_path: 'validator.pem',
96
82
  server_url: 'https://api.opscode.com',
97
-
98
- cookbook_copyright: 'YOUR_NAME',
99
- cookbook_email: 'YOUR_EMAIL',
100
- cookbook_license: 'reserved',
101
-
102
- knife: {},
103
-
104
83
  syntax_check_cache_path: "/foo/bar",
105
84
  cache_options: { path: "~/.chef/checksums" },
106
- }).and_return(nil)
85
+ )).and_return(nil)
107
86
 
108
87
  Dir.chdir(tmp_path) do
109
88
  ENV['PWD'] = Dir.pwd
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: 4.4.1
4
+ version: 4.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Winsor
@@ -123,6 +123,20 @@ dependencies:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
125
  version: 0.16.1
126
+ - !ruby/object:Gem::Dependency
127
+ name: chef-config
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: erubis
128
142
  requirement: !ruby/object:Gem::Requirement