berkshelf 6.3.4 → 7.0.0
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 +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +10 -0
- data/.travis.yml +6 -8
- data/CHANGELOG.md +7 -19
- data/Gemfile +10 -0
- data/Gemfile.lock +68 -103
- data/Thorfile +2 -2
- data/berkshelf.gemspec +6 -8
- data/features/commands/info.feature +50 -8
- data/features/commands/shelf/show.feature +10 -40
- data/features/commands/upload.feature +73 -0
- data/features/commands/vendor.feature +43 -0
- data/features/json_formatter.feature +1 -1
- data/features/step_definitions/chef_server_steps.rb +2 -2
- data/features/step_definitions/filesystem_steps.rb +16 -0
- data/features/support/env.rb +11 -10
- data/lib/berkshelf.rb +15 -20
- data/lib/berkshelf/berksfile.rb +57 -47
- data/lib/berkshelf/cached_cookbook.rb +120 -19
- data/lib/berkshelf/chef_config_compat.rb +50 -0
- data/lib/berkshelf/chef_repo_universe.rb +2 -2
- data/lib/berkshelf/cli.rb +3 -42
- data/lib/berkshelf/community_rest.rb +40 -61
- data/lib/berkshelf/config.rb +92 -118
- data/lib/berkshelf/cookbook_store.rb +3 -2
- data/lib/berkshelf/core_ext/file.rb +1 -1
- data/lib/berkshelf/dependency.rb +1 -10
- data/lib/berkshelf/downloader.rb +19 -7
- data/lib/berkshelf/errors.rb +3 -0
- data/lib/berkshelf/location.rb +1 -1
- data/lib/berkshelf/locations/base.rb +1 -1
- data/lib/berkshelf/lockfile.rb +17 -13
- data/lib/berkshelf/logger.rb +62 -1
- data/lib/berkshelf/packager.rb +1 -1
- data/lib/berkshelf/resolver.rb +1 -1
- data/lib/berkshelf/ridley_compat.rb +22 -3
- data/lib/berkshelf/uploader.rb +76 -48
- data/lib/berkshelf/version.rb +1 -1
- data/spec/fixtures/cookbook-path-uploader/apt-2.3.6/metadata.rb +2 -0
- data/spec/fixtures/cookbook-path-uploader/build-essential-1.4.2/metadata.rb +2 -0
- data/spec/fixtures/cookbook-path-uploader/jenkins-2.0.3/metadata.rb +5 -0
- data/spec/fixtures/cookbook-path-uploader/jenkins-config-0.1.0/metadata.rb +4 -0
- data/spec/fixtures/cookbook-path-uploader/runit-1.5.8/metadata.rb +5 -0
- data/spec/fixtures/cookbook-path-uploader/yum-3.0.6/metadata.rb +2 -0
- data/spec/fixtures/cookbook-path-uploader/yum-epel-0.2.0/metadata.rb +3 -0
- data/spec/spec_helper.rb +2 -2
- data/spec/support/chef_api.rb +4 -4
- data/spec/support/chef_server.rb +1 -1
- data/spec/support/matchers/file_system_matchers.rb +1 -3
- data/spec/support/path_helpers.rb +1 -1
- data/spec/unit/berkshelf/berksfile_spec.rb +3 -24
- data/spec/unit/berkshelf/cached_cookbook_spec.rb +13 -15
- data/spec/unit/berkshelf/community_rest_spec.rb +3 -12
- data/spec/unit/berkshelf/config_spec.rb +4 -4
- data/spec/unit/berkshelf/downloader_spec.rb +6 -11
- data/spec/unit/berkshelf/lockfile_spec.rb +10 -7
- data/spec/unit/berkshelf/source_spec.rb +1 -1
- data/spec/unit/berkshelf/ssl_policies_spec.rb +2 -5
- data/spec/unit/berkshelf/uploader_spec.rb +60 -10
- data/spec/unit/berkshelf/visualizer_spec.rb +2 -2
- metadata +49 -102
- data/features/commands/cookbook.feature +0 -35
- data/features/commands/init.feature +0 -27
- data/features/config.feature +0 -111
- data/lib/berkshelf/base_generator.rb +0 -42
- data/lib/berkshelf/cookbook_generator.rb +0 -133
- data/lib/berkshelf/init_generator.rb +0 -195
- data/lib/berkshelf/streaming_file_adapter.rb +0 -22
- data/spec/unit/berkshelf/cookbook_generator_spec.rb +0 -108
- data/spec/unit/berkshelf/init_generator_spec.rb +0 -265
@@ -19,10 +19,7 @@
|
|
19
19
|
"""
|
20
20
|
Name: fake
|
21
21
|
Version: 1.0.0
|
22
|
-
|
23
|
-
Author: YOUR_COMPANY_NAME
|
24
|
-
Email: YOUR_EMAIL
|
25
|
-
License: none
|
22
|
+
License: All rights reserved
|
26
23
|
"""
|
27
24
|
|
28
25
|
Scenario: When the parameter is a transitive dependency
|
@@ -50,10 +47,7 @@
|
|
50
47
|
"""
|
51
48
|
Name: dep
|
52
49
|
Version: 1.0.0
|
53
|
-
|
54
|
-
Author: YOUR_COMPANY_NAME
|
55
|
-
Email: YOUR_EMAIL
|
56
|
-
License: none
|
50
|
+
License: All rights reserved
|
57
51
|
"""
|
58
52
|
|
59
53
|
Scenario: When the cookbook is not in the Berksfile
|
@@ -97,3 +91,51 @@
|
|
97
91
|
Cookbook 'fake' (1.0.0) not found in the cookbook store!
|
98
92
|
"""
|
99
93
|
And the exit status should be "CookbookNotFound"
|
94
|
+
|
95
|
+
Scenario: When the cookbook is a vendored cookbook
|
96
|
+
Given the cookbook store has the cookbooks:
|
97
|
+
| fake | 1.0.0 |
|
98
|
+
And I have a Berksfile pointing at the local Berkshelf API with:
|
99
|
+
"""
|
100
|
+
cookbook 'fake', '1.0.0'
|
101
|
+
"""
|
102
|
+
And I write to "Berksfile.lock" with:
|
103
|
+
"""
|
104
|
+
DEPENDENCIES
|
105
|
+
fake (= 1.0.0)
|
106
|
+
|
107
|
+
GRAPH
|
108
|
+
fake (1.0.0)
|
109
|
+
"""
|
110
|
+
And the cookbook store cookbook "fake" "1.0.0" is vendored without a metadata.rb
|
111
|
+
When I successfully run `berks info fake`
|
112
|
+
Then the output should contain:
|
113
|
+
"""
|
114
|
+
Name: fake
|
115
|
+
Version: 1.0.0
|
116
|
+
License: All rights reserved
|
117
|
+
"""
|
118
|
+
|
119
|
+
Scenario: When the cookbook is a vendored cookbook
|
120
|
+
Given the cookbook store has the cookbooks:
|
121
|
+
| fake | 1.0.0 |
|
122
|
+
And I have a Berksfile pointing at the local Berkshelf API with:
|
123
|
+
"""
|
124
|
+
cookbook 'fake', '1.0.0'
|
125
|
+
"""
|
126
|
+
And I write to "Berksfile.lock" with:
|
127
|
+
"""
|
128
|
+
DEPENDENCIES
|
129
|
+
fake (= 1.0.0)
|
130
|
+
|
131
|
+
GRAPH
|
132
|
+
fake (1.0.0)
|
133
|
+
"""
|
134
|
+
And the cookbook store cookbook "fake" "1.0.0" is vendored with a metadata.rb
|
135
|
+
When I successfully run `berks info fake`
|
136
|
+
Then the output should contain:
|
137
|
+
"""
|
138
|
+
Name: fake
|
139
|
+
Version: 1.0.0
|
140
|
+
License: All rights reserved
|
141
|
+
"""
|
@@ -17,10 +17,7 @@ Feature: berks shelf show
|
|
17
17
|
Displaying all versions of 'fake' in the Berkshelf shelf:
|
18
18
|
Name: fake
|
19
19
|
Version: 1.0.0
|
20
|
-
|
21
|
-
Author: YOUR_COMPANY_NAME
|
22
|
-
Email: YOUR_EMAIL
|
23
|
-
License: none
|
20
|
+
License: All rights reserved
|
24
21
|
"""
|
25
22
|
And the output should not contain:
|
26
23
|
"""
|
@@ -37,10 +34,7 @@ Feature: berks shelf show
|
|
37
34
|
Displaying 'fake' (1.0.0) in the Berkshelf shelf:
|
38
35
|
Name: fake
|
39
36
|
Version: 1.0.0
|
40
|
-
|
41
|
-
Author: YOUR_COMPANY_NAME
|
42
|
-
Email: YOUR_EMAIL
|
43
|
-
License: none
|
37
|
+
License: All rights reserved
|
44
38
|
"""
|
45
39
|
And the output should not contain:
|
46
40
|
"""
|
@@ -70,31 +64,19 @@ Feature: berks shelf show
|
|
70
64
|
Displaying all versions of 'fake' in the Berkshelf shelf:
|
71
65
|
Name: fake
|
72
66
|
Version: 1.0.0
|
73
|
-
|
74
|
-
Author: YOUR_COMPANY_NAME
|
75
|
-
Email: YOUR_EMAIL
|
76
|
-
License: none
|
67
|
+
License: All rights reserved
|
77
68
|
|
78
69
|
Name: fake
|
79
70
|
Version: 1.1.0
|
80
|
-
|
81
|
-
Author: YOUR_COMPANY_NAME
|
82
|
-
Email: YOUR_EMAIL
|
83
|
-
License: none
|
71
|
+
License: All rights reserved
|
84
72
|
|
85
73
|
Name: fake
|
86
74
|
Version: 1.2.0
|
87
|
-
|
88
|
-
Author: YOUR_COMPANY_NAME
|
89
|
-
Email: YOUR_EMAIL
|
90
|
-
License: none
|
75
|
+
License: All rights reserved
|
91
76
|
|
92
77
|
Name: fake
|
93
78
|
Version: 2.0.0
|
94
|
-
|
95
|
-
Author: YOUR_COMPANY_NAME
|
96
|
-
Email: YOUR_EMAIL
|
97
|
-
License: none
|
79
|
+
License: All rights reserved
|
98
80
|
"""
|
99
81
|
|
100
82
|
Scenario: With multiple cookbook versions installed and the --version flag
|
@@ -109,35 +91,23 @@ Feature: berks shelf show
|
|
109
91
|
Displaying 'fake' (1.0.0) in the Berkshelf shelf:
|
110
92
|
Name: fake
|
111
93
|
Version: 1.0.0
|
112
|
-
|
113
|
-
Author: YOUR_COMPANY_NAME
|
114
|
-
Email: YOUR_EMAIL
|
115
|
-
License: none
|
94
|
+
License: All rights reserved
|
116
95
|
"""
|
117
96
|
And the output should not contain:
|
118
97
|
"""
|
119
98
|
Name: fake
|
120
99
|
Version: 1.1.0
|
121
|
-
|
122
|
-
Author: YOUR_COMPANY_NAME
|
123
|
-
Email: YOUR_EMAIL
|
124
|
-
License: none
|
100
|
+
License: All rights reserved
|
125
101
|
"""
|
126
102
|
And the output should not contain:
|
127
103
|
"""
|
128
104
|
Name: fake
|
129
105
|
Version: 1.2.0
|
130
|
-
|
131
|
-
Author: YOUR_COMPANY_NAME
|
132
|
-
Email: YOUR_EMAIL
|
133
|
-
License: none
|
106
|
+
License: All rights reserved
|
134
107
|
"""
|
135
108
|
And the output should not contain:
|
136
109
|
"""
|
137
110
|
Name: fake
|
138
111
|
Version: 2.0.0
|
139
|
-
|
140
|
-
Author: YOUR_COMPANY_NAME
|
141
|
-
Email: YOUR_EMAIL
|
142
|
-
License: none
|
112
|
+
License: All rights reserved
|
143
113
|
"""
|
@@ -27,6 +27,79 @@ Feature: berks upload
|
|
27
27
|
| fake | 1.0.0 |
|
28
28
|
| ekaf | 2.0.0 |
|
29
29
|
|
30
|
+
Scenario: a cookbook without metadata.json
|
31
|
+
Given a cookbook named "fake"
|
32
|
+
And I have a Berksfile pointing at the local Berkshelf API with:
|
33
|
+
"""
|
34
|
+
metadata
|
35
|
+
"""
|
36
|
+
And I write to "metadata.rb" with:
|
37
|
+
"""
|
38
|
+
name 'bacon'
|
39
|
+
version '1.0.0'
|
40
|
+
"""
|
41
|
+
When I successfully run `berks install`
|
42
|
+
And I successfully run `berks upload`
|
43
|
+
Then the Chef Server should have the cookbooks:
|
44
|
+
| bacon | 1.0.0 |
|
45
|
+
And a file named "metadata.json" should not exist
|
46
|
+
|
47
|
+
Scenario: a cookbook with metadata.json
|
48
|
+
Given a cookbook named "fake"
|
49
|
+
And I have a Berksfile pointing at the local Berkshelf API with:
|
50
|
+
"""
|
51
|
+
metadata
|
52
|
+
"""
|
53
|
+
And I write to "metadata.rb" with:
|
54
|
+
"""
|
55
|
+
name 'bacon'
|
56
|
+
version '1.0.0'
|
57
|
+
"""
|
58
|
+
And I write to "metadata.json" with:
|
59
|
+
"""
|
60
|
+
{
|
61
|
+
"name": "bacon",
|
62
|
+
"description": "",
|
63
|
+
"long_description": "",
|
64
|
+
"maintainer": "",
|
65
|
+
"maintainer_email": "",
|
66
|
+
"license": "All rights reserved",
|
67
|
+
"platforms": {
|
68
|
+
|
69
|
+
},
|
70
|
+
"dependencies": {
|
71
|
+
|
72
|
+
},
|
73
|
+
"providing": {
|
74
|
+
|
75
|
+
},
|
76
|
+
"attributes": {
|
77
|
+
|
78
|
+
},
|
79
|
+
"recipes": {
|
80
|
+
|
81
|
+
},
|
82
|
+
"version": "1.0.0",
|
83
|
+
"source_url": "",
|
84
|
+
"issues_url": "",
|
85
|
+
"privacy": false,
|
86
|
+
"chef_versions": [
|
87
|
+
|
88
|
+
],
|
89
|
+
"ohai_versions": [
|
90
|
+
|
91
|
+
],
|
92
|
+
"gems": [
|
93
|
+
|
94
|
+
]
|
95
|
+
}
|
96
|
+
"""
|
97
|
+
When I successfully run `berks install`
|
98
|
+
And I successfully run `berks upload`
|
99
|
+
Then the Chef Server should have the cookbooks:
|
100
|
+
| bacon | 1.0.0 |
|
101
|
+
And a file named "metadata.json" should exist
|
102
|
+
|
30
103
|
Scenario: a cookbook with a path location
|
31
104
|
Given a cookbook named "fake"
|
32
105
|
And I have a Berksfile pointing at the local Berkshelf API with:
|
@@ -107,3 +107,46 @@ Feature: Vendoring cookbooks to a directory
|
|
107
107
|
When I successfully run `berks vendor path/to/cukebooks`
|
108
108
|
Then the directory "path/to/cukebooks/fake" should contain version "1.0.0" of the "fake" cookbook
|
109
109
|
|
110
|
+
Scenario: vendoring a cookbook with chefignores
|
111
|
+
Given a cookbook named "bacon"
|
112
|
+
And the cookbook "bacon" has the file "metadata.rb" with:
|
113
|
+
"""
|
114
|
+
name 'bacon'
|
115
|
+
version '1.0.0'
|
116
|
+
"""
|
117
|
+
And I have a Berksfile pointing at the local Berkshelf API with:
|
118
|
+
"""
|
119
|
+
cookbook 'bacon', path: './bacon'
|
120
|
+
"""
|
121
|
+
And the cookbook "bacon" has the file "chefignore" with:
|
122
|
+
"""
|
123
|
+
*.turd
|
124
|
+
"""
|
125
|
+
And the cookbook "bacon" has the file "foo.turd" with:
|
126
|
+
"""
|
127
|
+
poop
|
128
|
+
"""
|
129
|
+
And the cookbook "bacon" has the file "recipes/foo.turd" with:
|
130
|
+
"""
|
131
|
+
poop
|
132
|
+
"""
|
133
|
+
When I successfully run `berks vendor vendor`
|
134
|
+
Then the directory "vendor/bacon" should contain version "1.0.0" of the "bacon" cookbook
|
135
|
+
And a file named "vendor/bacon/foo.turd" should not exist
|
136
|
+
And a file named "vendor/bacon/recipes/foo.turd" should not exist
|
137
|
+
|
138
|
+
Scenario: metadata.json / metadata.rb handling when vendoring a cookbook
|
139
|
+
Given a cookbook named "bacon"
|
140
|
+
And the cookbook "bacon" has the file "metadata.rb" with:
|
141
|
+
"""
|
142
|
+
name 'bacon'
|
143
|
+
version '1.0.0'
|
144
|
+
"""
|
145
|
+
And I have a Berksfile pointing at the local Berkshelf API with:
|
146
|
+
"""
|
147
|
+
cookbook 'bacon', path: './bacon'
|
148
|
+
"""
|
149
|
+
When I successfully run `berks vendor vendor`
|
150
|
+
Then the directory "vendor/bacon" should contain version "1.0.0" of the "bacon" cookbook
|
151
|
+
And a file named "vendor/bacon/metadata.json" should exist
|
152
|
+
And a file named "vendor/bacon/metadata.rb" should exist
|
@@ -9,8 +9,8 @@ Given /^the Chef Server has cookbooks:$/ do |cookbooks|
|
|
9
9
|
metadata = []
|
10
10
|
metadata << "name '#{name}'"
|
11
11
|
metadata << "version '#{version}'"
|
12
|
-
dependencies.to_s.split(",").map { |d| d.split(" ", 2) }.each do |(
|
13
|
-
metadata << "depends '#{
|
12
|
+
dependencies.to_s.split(",").map { |d| d.split(" ", 2) }.each do |(dep_name, constraint)|
|
13
|
+
metadata << "depends '#{dep_name}', '#{constraint}'"
|
14
14
|
end
|
15
15
|
|
16
16
|
chef_cookbook(name, { "metadata.rb" => metadata.join("\n") })
|
@@ -36,6 +36,22 @@ Given /^the cookbook store contains a cookbook "(.*?)" "(.*?)" with dependencies
|
|
36
36
|
generate_cookbook(cookbook_store.storage_path, name, version, dependencies: dependencies.raw)
|
37
37
|
end
|
38
38
|
|
39
|
+
Given(/^the cookbook store cookbook "(.*?)" "(.*?)" is vendored without a metadata.rb$/) do |name, version|
|
40
|
+
cookbook_path = File.join(cookbook_store.storage_path, "#{name}-#{version}")
|
41
|
+
cookbook = Berkshelf::CachedCookbook.from_path(cookbook_path)
|
42
|
+
cookbook.compile_metadata()
|
43
|
+
metadata_file = File.join(cookbook_path, "metadata.rb")
|
44
|
+
File.unlink(metadata_file) if File.file?(metadata_file)
|
45
|
+
end
|
46
|
+
|
47
|
+
Given(/^the cookbook store cookbook "(.*?)" "(.*?)" is vendored with a metadata.rb$/) do |name, version|
|
48
|
+
cookbook_path = File.join(cookbook_store.storage_path, "#{name}-#{version}")
|
49
|
+
cookbook = Berkshelf::CachedCookbook.from_path(cookbook_path)
|
50
|
+
cookbook.compile_metadata()
|
51
|
+
metadata_file = File.join(cookbook_path, "metadata.rb")
|
52
|
+
raise "internal error, fixture cookbook should have a metadata.rb" unless File.file?(metadata_file)
|
53
|
+
end
|
54
|
+
|
39
55
|
Given(/^the cookbook store is empty$/) do
|
40
56
|
Berkshelf::CookbookStore.instance.clean!
|
41
57
|
end
|
data/features/support/env.rb
CHANGED
@@ -42,16 +42,17 @@ Before do
|
|
42
42
|
reload_configs
|
43
43
|
Berkshelf::CachedCookbook.instance_variable_set(:@loaded_cookbooks, nil)
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
},
|
54
|
-
|
45
|
+
# This appears to be dead code
|
46
|
+
#endpoints = [
|
47
|
+
# {
|
48
|
+
# type: "chef_server",
|
49
|
+
# options: {
|
50
|
+
# url: "http://localhost:#{CHEF_SERVER_PORT}",
|
51
|
+
# client_name: "reset",
|
52
|
+
# client_key: File.expand_path("spec/config/berkshelf.pem"),
|
53
|
+
# },
|
54
|
+
# },
|
55
|
+
#]
|
55
56
|
|
56
57
|
Berkshelf::RSpec::ChefServer.start(port: CHEF_SERVER_PORT)
|
57
58
|
|
data/lib/berkshelf.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
# XXX: work around logger spam from hashie
|
2
3
|
# https://github.com/intridea/hashie/issues/394
|
3
4
|
begin
|
@@ -8,23 +9,21 @@ rescue LoadError
|
|
8
9
|
# intentionally left blank
|
9
10
|
end
|
10
11
|
|
11
|
-
require "buff/extensions"
|
12
12
|
require "cleanroom"
|
13
13
|
require "digest/md5"
|
14
14
|
require "forwardable"
|
15
15
|
require "json"
|
16
16
|
require "pathname"
|
17
|
-
require "ridley"
|
18
17
|
require "semverse"
|
19
18
|
require "solve"
|
20
19
|
require "thor"
|
21
20
|
require "uri"
|
22
|
-
require "celluloid"
|
23
21
|
|
24
22
|
JSON.create_id = nil
|
25
23
|
|
26
24
|
require_relative "berkshelf/core_ext"
|
27
25
|
require_relative "berkshelf/thor_ext"
|
26
|
+
require "berkshelf/chef_config_compat"
|
28
27
|
|
29
28
|
module Berkshelf
|
30
29
|
Encoding.default_external = Encoding::UTF_8
|
@@ -68,7 +67,7 @@ module Berkshelf
|
|
68
67
|
include Mixin::Logging
|
69
68
|
|
70
69
|
attr_writer :berkshelf_path
|
71
|
-
|
70
|
+
attr_writer :ui
|
72
71
|
|
73
72
|
# @return [Pathname]
|
74
73
|
def root
|
@@ -105,9 +104,9 @@ module Berkshelf
|
|
105
104
|
|
106
105
|
# The Chef configuration file.
|
107
106
|
#
|
108
|
-
# @return [
|
107
|
+
# @return [Berkshelf::ChefConfigCompat]
|
109
108
|
def chef_config
|
110
|
-
@chef_config ||=
|
109
|
+
@chef_config ||= Berkshelf::ChefConfigCompat.new(ENV["BERKSHELF_CHEF_CONFIG"])
|
111
110
|
end
|
112
111
|
|
113
112
|
# @param [Ridley::Chef::Config]
|
@@ -151,29 +150,29 @@ module Berkshelf
|
|
151
150
|
end
|
152
151
|
ssl_options[:cert_store] = ssl_policy.store if ssl_policy.store
|
153
152
|
|
154
|
-
ridley_options
|
153
|
+
ridley_options = {}
|
154
|
+
ridley_options[:ssl] = options[:ssl] if options.key?(:ssl)
|
155
155
|
ridley_options[:server_url] = options[:server_url] || Berkshelf.config.chef.chef_server_url
|
156
156
|
ridley_options[:client_name] = options[:client_name] || Berkshelf.config.chef.node_name
|
157
157
|
ridley_options[:client_key] = options[:client_key] || Berkshelf.config.chef.client_key
|
158
158
|
ridley_options[:ssl] = ssl_options
|
159
159
|
|
160
|
-
|
160
|
+
if !ridley_options[:server_url] || ridley_options[:server_url] =~ /^\s*$/
|
161
161
|
raise ChefConnectionError, "Missing required attribute in your Berkshelf configuration: chef.server_url"
|
162
162
|
end
|
163
163
|
|
164
|
-
|
164
|
+
if !ridley_options[:client_name] || ridley_options[:client_name] =~ /^\s*$/
|
165
165
|
raise ChefConnectionError, "Missing required attribute in your Berkshelf configuration: chef.node_name"
|
166
166
|
end
|
167
167
|
|
168
|
-
|
168
|
+
if !ridley_options[:client_key] || ridley_options[:client_key] =~ /^\s*$/
|
169
169
|
raise ChefConnectionError, "Missing required attribute in your Berkshelf configuration: chef.client_key"
|
170
170
|
end
|
171
171
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
rescue Ridley::Errors::RidleyError => ex
|
172
|
+
RidleyCompat.new_client(ridley_options, &block)
|
173
|
+
rescue ChefConnectionError, BerkshelfError
|
174
|
+
raise
|
175
|
+
rescue => ex
|
177
176
|
log.exception(ex)
|
178
177
|
raise ChefConnectionError, ex # todo implement
|
179
178
|
end
|
@@ -220,17 +219,15 @@ module Berkshelf
|
|
220
219
|
end
|
221
220
|
|
222
221
|
require_relative "berkshelf/lockfile"
|
223
|
-
require_relative "berkshelf/base_generator"
|
224
222
|
require_relative "berkshelf/berksfile"
|
225
223
|
require_relative "berkshelf/cached_cookbook"
|
226
224
|
require_relative "berkshelf/cli"
|
225
|
+
require_relative "berkshelf/chef_config_compat"
|
227
226
|
require_relative "berkshelf/community_rest"
|
228
|
-
require_relative "berkshelf/cookbook_generator"
|
229
227
|
require_relative "berkshelf/cookbook_store"
|
230
228
|
require_relative "berkshelf/config"
|
231
229
|
require_relative "berkshelf/dependency"
|
232
230
|
require_relative "berkshelf/downloader"
|
233
|
-
require_relative "berkshelf/init_generator"
|
234
231
|
require_relative "berkshelf/installer"
|
235
232
|
require_relative "berkshelf/logger"
|
236
233
|
require_relative "berkshelf/resolver"
|
@@ -239,6 +236,4 @@ require_relative "berkshelf/source_uri"
|
|
239
236
|
require_relative "berkshelf/validator"
|
240
237
|
require_relative "berkshelf/ssl_policies"
|
241
238
|
|
242
|
-
Ridley.logger = Berkshelf.logger
|
243
239
|
Berkshelf.logger.level = Logger::WARN
|
244
|
-
Celluloid.logger.level = Logger::ERROR
|