berkshelf 1.2.1 → 1.3.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/{.rbenv-version → .ruby-version} +0 -0
- data/.travis.yml +5 -5
- data/berkshelf.gemspec +3 -7
- data/features/help.feature +20 -0
- data/features/install_command.feature +2 -0
- data/features/list_command.feature +1 -0
- data/features/step_definitions/filesystem_steps.rb +7 -8
- data/features/step_definitions/utility_steps.rb +6 -0
- data/features/upload_command.feature +2 -0
- data/generator_files/Gemfile.erb +1 -1
- data/generator_files/Vagrantfile.erb +51 -45
- data/lib/berkshelf/cli.rb +18 -8
- data/lib/berkshelf/community_rest.rb +2 -2
- data/lib/berkshelf/git.rb +1 -1
- data/lib/berkshelf/locations/git_location.rb +1 -1
- data/lib/berkshelf/version.rb +1 -1
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_cookbook.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_version.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/returns_the_cookbook_and_version_information.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CookbookNotFound_error_on_a_404_response.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/returns_the_version_number_of_the_latest_version_of_the_cookbook.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_satisfy/returns_the_version_number_of_the_best_solution.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CookbookNotFound_error_on_a_404_response.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/returns_an_array_containing_an_item_for_each_version.json +1 -0
- data/spec/fixtures/cassettes/Berkshelf_Resolver/ClassMethods/_initialize/adds_the_dependencies_of_the_source_as_sources.yml +3829 -0
- data/spec/spec_helper.rb +10 -3
- data/spec/support/matchers/file_system_matchers.rb +4 -2
- data/spec/unit/berkshelf/community_rest_spec.rb +108 -67
- data/spec/unit/berkshelf/config_spec.rb +1 -1
- data/spec/unit/berkshelf/errors_spec.rb +1 -10
- data/spec/unit/berkshelf/init_generator_spec.rb +2 -3
- data/spec/unit/berkshelf/location_spec.rb +2 -0
- data/spec/unit/berkshelf/resolver_spec.rb +10 -40
- metadata +43 -60
- data/.rvmrc +0 -1
- data/lib/berkshelf/vagrant.rb +0 -74
- data/lib/berkshelf/vagrant/action/clean.rb +0 -26
- data/lib/berkshelf/vagrant/action/install.rb +0 -49
- data/lib/berkshelf/vagrant/action/set_ui.rb +0 -17
- data/lib/berkshelf/vagrant/action/upload.rb +0 -41
- data/lib/berkshelf/vagrant/action/validate.rb +0 -30
- data/lib/berkshelf/vagrant/config.rb +0 -53
- data/lib/berkshelf/vagrant/errors.rb +0 -31
- data/lib/berkshelf/vagrant/middleware.rb +0 -52
data/spec/spec_helper.rb
CHANGED
@@ -7,6 +7,7 @@ Spork.prefork do
|
|
7
7
|
require 'pp'
|
8
8
|
require 'rspec'
|
9
9
|
require 'webmock/rspec'
|
10
|
+
require 'vcr'
|
10
11
|
|
11
12
|
APP_ROOT = File.expand_path('../../', __FILE__)
|
12
13
|
ENV["BERKSHELF_PATH"] = File.join(APP_ROOT, "tmp", "berkshelf")
|
@@ -14,6 +15,13 @@ Spork.prefork do
|
|
14
15
|
|
15
16
|
Dir[File.join(APP_ROOT, "spec/support/**/*.rb")].each {|f| require f}
|
16
17
|
|
18
|
+
VCR.configure do |config|
|
19
|
+
config.configure_rspec_metadata!
|
20
|
+
config.cassette_library_dir = 'spec/fixtures/cassettes'
|
21
|
+
config.hook_into :webmock
|
22
|
+
config.default_cassette_options = { record: :new_episodes }
|
23
|
+
end
|
24
|
+
|
17
25
|
RSpec.configure do |config|
|
18
26
|
config.include Berkshelf::RSpec::FileSystemMatchers
|
19
27
|
config.include JsonSpec::Helpers
|
@@ -74,7 +82,7 @@ Spork.prefork do
|
|
74
82
|
end
|
75
83
|
|
76
84
|
def generate_fake_git_remote(uri, options = {})
|
77
|
-
remote_bucket = Pathname.new(File.dirname(__FILE__)).join('tmp', 'remote_repos')
|
85
|
+
remote_bucket = Pathname.new(::File.dirname(__FILE__)).join('tmp', 'remote_repos')
|
78
86
|
FileUtils.mkdir_p(remote_bucket)
|
79
87
|
|
80
88
|
repo_name = uri.to_s.split('/').last.split('.')
|
@@ -96,7 +104,7 @@ Spork.prefork do
|
|
96
104
|
run! "echo '# a change!' >> content_file"
|
97
105
|
run! "git add ."
|
98
106
|
run "git commit -am 'A commit.'"
|
99
|
-
options[:tags].each do |tag|
|
107
|
+
options[:tags].each do |tag|
|
100
108
|
run! "echo '#{tag}' > content_file"
|
101
109
|
run! "git add content_file"
|
102
110
|
run "git commit -am '#{tag} content'"
|
@@ -149,7 +157,6 @@ end
|
|
149
157
|
|
150
158
|
Spork.each_run do
|
151
159
|
require 'berkshelf'
|
152
|
-
require 'berkshelf/vagrant'
|
153
160
|
|
154
161
|
module Berkshelf
|
155
162
|
class GitLocation
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Berkshelf
|
4
4
|
module RSpec
|
5
5
|
module FileSystemMatchers
|
6
|
-
class File
|
6
|
+
class File < ::File
|
7
7
|
def initialize(name, &block)
|
8
8
|
@contents = []
|
9
9
|
@negative_contents = []
|
@@ -58,7 +58,9 @@ module Berkshelf
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def file(name, &block)
|
61
|
-
|
61
|
+
silence_warnings do
|
62
|
+
@tree[name] = Berkshelf::RSpec::FileSystemMatchers::File.new(location(name), &block)
|
63
|
+
end
|
62
64
|
end
|
63
65
|
|
64
66
|
def no_file(name)
|
@@ -1,39 +1,60 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Berkshelf::CommunityREST do
|
4
|
-
|
5
|
-
{
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
3
|
+
describe Berkshelf::CommunityREST, vcr: { record: :new_episodes, serialize_with: :json } do
|
4
|
+
describe '.unpack' do
|
5
|
+
let(:target) { '/foo/bar' }
|
6
|
+
let(:destination) { '/destination/bar' }
|
7
|
+
let(:file) { double('file') }
|
8
|
+
let(:gzip_reader) { double('gzip_reader') }
|
9
|
+
|
10
|
+
before do
|
11
|
+
::File.stub(:open).with(target, 'rb').and_return(file)
|
12
|
+
Zlib::GzipReader.stub(:new).with(file).and_return(gzip_reader)
|
13
|
+
Archive::Tar::Minitar.stub(:unpack).with(gzip_reader, destination)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'unpacks the tar' do
|
17
|
+
::File.should_receive(:open).with(target, 'rb')
|
18
|
+
Zlib::GzipReader.should_receive(:new).with(file)
|
19
|
+
Archive::Tar::Minitar.should_receive(:unpack).with(gzip_reader, destination)
|
20
|
+
|
21
|
+
expect(described_class.unpack(target, destination)).to eq(destination)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.uri_escape_version' do
|
26
|
+
it 'returns a string' do
|
27
|
+
expect(described_class.uri_escape_version(nil)).to be_a(String)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'converts a version to it\'s underscored version' do
|
31
|
+
expect(described_class.uri_escape_version('1.1.2')).to eq('1_1_2')
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'works when the version has more than three points' do
|
35
|
+
expect(described_class.uri_escape_version('1.1.1.2')).to eq('1_1_1_2')
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'works when the version has less than three points' do
|
39
|
+
expect(described_class.uri_escape_version('1.2')).to eq('1_2')
|
40
|
+
end
|
22
41
|
end
|
23
42
|
|
24
|
-
describe
|
25
|
-
|
43
|
+
describe '.version_from_uri' do
|
44
|
+
it 'returns a string' do
|
45
|
+
expect(described_class.version_from_uri(nil)).to be_a(String)
|
46
|
+
end
|
26
47
|
|
27
|
-
|
28
|
-
|
48
|
+
it 'extracts the version from the URL' do
|
49
|
+
expect(described_class.version_from_uri('/api/v1/cookbooks/nginx/versions/1_1_2')).to eq('1.1.2')
|
29
50
|
end
|
30
51
|
|
31
|
-
|
32
|
-
|
52
|
+
it 'works when the version has more than three points' do
|
53
|
+
expect(described_class.version_from_uri('/api/v1/cookbooks/nginx/versions/1_1_1_2')).to eq('1.1.1.2')
|
33
54
|
end
|
34
55
|
|
35
|
-
|
36
|
-
|
56
|
+
it 'works when the version has less than three points' do
|
57
|
+
expect(described_class.version_from_uri('/api/v1/cookbooks/nginx/versions/1_2')).to eq('1.2')
|
37
58
|
end
|
38
59
|
end
|
39
60
|
|
@@ -43,78 +64,98 @@ describe Berkshelf::CommunityREST do
|
|
43
64
|
described_class.new(api_uri)
|
44
65
|
end
|
45
66
|
|
46
|
-
describe
|
47
|
-
|
48
|
-
end
|
67
|
+
describe '#download' do
|
68
|
+
let(:archive) { double('archive', path: '/foo/bar', unlink: true) }
|
49
69
|
|
50
|
-
|
51
|
-
|
52
|
-
|
70
|
+
before do
|
71
|
+
subject.stub(:stream).with(any_args()).and_return(archive)
|
72
|
+
Berkshelf::CommunityREST.stub(:unpack)
|
73
|
+
end
|
53
74
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
to_return(status: 200, body: show_nginx_cookbook)
|
75
|
+
it 'unpacks the archive' do
|
76
|
+
Berkshelf::CommunityREST.should_receive(:unpack).with('/foo/bar').once
|
77
|
+
archive.should_receive(:unlink).once
|
58
78
|
|
59
|
-
subject.
|
79
|
+
subject.download('nginx', '1.4.0')
|
60
80
|
end
|
81
|
+
end
|
61
82
|
|
62
|
-
|
63
|
-
|
64
|
-
|
83
|
+
describe '#find' do
|
84
|
+
it 'returns the cookbook and version information' do
|
85
|
+
result = subject.find('nginx', '1.4.0')
|
65
86
|
|
87
|
+
expect(result.cookbook).to eq('http://cookbooks.opscode.com/api/v1/cookbooks/nginx')
|
88
|
+
expect(result.version).to eq('1.4.0')
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'raises a CookbookNotFound error on a 404 response for a non-existent cookbook' do
|
66
92
|
expect {
|
67
|
-
subject.
|
93
|
+
subject.find('not_a_real_cookbook_that_anyone_should_ever_make', '0.1.0')
|
68
94
|
}.to raise_error(Berkshelf::CookbookNotFound)
|
69
95
|
end
|
70
96
|
|
71
|
-
it
|
72
|
-
|
73
|
-
|
97
|
+
it 'raises a CookbookNotFound error on a 404 response for a non-existent version' do
|
98
|
+
expect {
|
99
|
+
subject.find('nginx', '0.0.0')
|
100
|
+
}.to raise_error(Berkshelf::CookbookNotFound)
|
101
|
+
end
|
74
102
|
|
103
|
+
# @warn if you re-record the VCR cassettes, you'll need to manually change the
|
104
|
+
# HTTP Response Code in the YAML file to 500
|
105
|
+
it 'raises a CommunitySiteError error on any non 200 or 404 response' do
|
75
106
|
expect {
|
76
|
-
subject.
|
107
|
+
subject.find('not_a_real_cookbook_that_anyone_should_ever_make', '0.0.0')
|
77
108
|
}.to raise_error(Berkshelf::CommunitySiteError)
|
78
109
|
end
|
79
110
|
end
|
80
111
|
|
81
|
-
describe
|
82
|
-
it
|
83
|
-
|
84
|
-
|
112
|
+
describe '#latest_version' do
|
113
|
+
it 'returns the version number of the latest version of the cookbook' do
|
114
|
+
subject.latest_version('nginx').should eql('1.4.0')
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'raises a CookbookNotFound error on a 404 response' do
|
118
|
+
expect {
|
119
|
+
subject.latest_version('not_a_real_cookbook_that_anyone_should_ever_make')
|
120
|
+
}.to raise_error(Berkshelf::CookbookNotFound)
|
121
|
+
end
|
85
122
|
|
86
|
-
|
123
|
+
# @warn if you re-record the VCR cassettes, you'll need to manually change the
|
124
|
+
# HTTP Response Code in the YAML file to 500
|
125
|
+
it 'raises a CommunitySiteError error on any non 200 or 404 response' do
|
126
|
+
expect {
|
127
|
+
subject.latest_version('not_a_real_cookbook_that_anyone_should_ever_make')
|
128
|
+
}.to raise_error(Berkshelf::CommunitySiteError)
|
87
129
|
end
|
130
|
+
end
|
88
131
|
|
89
|
-
|
90
|
-
|
91
|
-
|
132
|
+
describe '#versions' do
|
133
|
+
it 'returns an array containing an item for each version' do
|
134
|
+
subject.versions('nginx').should have(24).versions
|
135
|
+
end
|
92
136
|
|
137
|
+
it 'raises a CookbookNotFound error on a 404 response' do
|
93
138
|
expect {
|
94
|
-
subject.versions(
|
139
|
+
subject.versions('not_a_real_cookbook_that_anyone_should_ever_make')
|
95
140
|
}.to raise_error(Berkshelf::CookbookNotFound)
|
96
141
|
end
|
97
142
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
143
|
+
# @warn if you re-record the VCR cassettes, you'll need to manually change the
|
144
|
+
# HTTP Response Code in the YAML file to 500
|
145
|
+
it 'raises a CommunitySiteError error on any non 200 or 404 response' do
|
102
146
|
expect {
|
103
|
-
subject.versions(
|
147
|
+
subject.versions('not_a_real_cookbook_that_anyone_should_ever_make')
|
104
148
|
}.to raise_error(Berkshelf::CommunitySiteError)
|
105
149
|
end
|
106
150
|
end
|
107
151
|
|
108
|
-
describe
|
109
|
-
it
|
110
|
-
|
111
|
-
to_return(status: 200, body: show_nginx_cookbook)
|
112
|
-
|
113
|
-
subject.satisfy("nginx", "= 1.1.0").should eql("1.1.0")
|
152
|
+
describe '#satisfy' do
|
153
|
+
it 'returns the version number of the best solution' do
|
154
|
+
subject.satisfy('nginx', '= 1.1.0').should eql('1.1.0')
|
114
155
|
end
|
115
156
|
end
|
116
157
|
|
117
|
-
describe
|
158
|
+
describe '#stream' do
|
118
159
|
pending
|
119
160
|
end
|
120
161
|
end
|
@@ -1,14 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "berkshelf errors" do
|
4
|
-
|
5
|
-
subject { described_class }
|
6
|
-
|
7
|
-
it "proxies messages to the original exception" do
|
8
|
-
original = double('original_error')
|
9
|
-
original.should_receive(:a_message)
|
10
|
-
|
11
|
-
subject.new(original).a_message
|
12
|
-
end
|
13
|
-
end
|
4
|
+
pending
|
14
5
|
end
|
@@ -20,7 +20,6 @@ describe Berkshelf::InitGenerator do
|
|
20
20
|
contains "gem 'berkshelf'"
|
21
21
|
end
|
22
22
|
file "Vagrantfile" do
|
23
|
-
contains "require 'berkshelf/vagrant'"
|
24
23
|
contains "recipe[some_cookbook::default]"
|
25
24
|
end
|
26
25
|
no_file "chefignore"
|
@@ -46,10 +45,10 @@ describe Berkshelf::InitGenerator do
|
|
46
45
|
context "with a metadata entry in the Berksfile" do
|
47
46
|
before(:each) do
|
48
47
|
Dir.mkdir target
|
49
|
-
File.open(target.join("metadata.rb"), 'w+') do |f|
|
48
|
+
::File.open(target.join("metadata.rb"), 'w+') do |f|
|
50
49
|
f.write ""
|
51
50
|
end
|
52
|
-
|
51
|
+
|
53
52
|
capture(:stdout) {
|
54
53
|
subject.new([target], metadata_entry: true).invoke_all
|
55
54
|
}
|
@@ -1,10 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Berkshelf::Resolver, :chef_server do
|
4
|
-
# These tests should be properly mocked and WebMock should be enabled
|
5
|
-
before(:all) { WebMock.disable! }
|
6
|
-
after(:all) { WebMock.enable! }
|
7
|
-
|
3
|
+
describe Berkshelf::Resolver, :chef_server, vcr: { record: :new_episodes, serialize_with: :yaml } do
|
8
4
|
let(:source) do
|
9
5
|
double('source',
|
10
6
|
name: 'mysql',
|
@@ -14,22 +10,7 @@ describe Berkshelf::Resolver, :chef_server do
|
|
14
10
|
name: 'mysql-1.2.4',
|
15
11
|
cookbook_name: 'mysql',
|
16
12
|
version: '1.2.4',
|
17
|
-
dependencies: { "nginx" => ">= 0.1.0"
|
18
|
-
),
|
19
|
-
location: double('location', validate_cached: true)
|
20
|
-
)
|
21
|
-
end
|
22
|
-
|
23
|
-
let(:source_two) do
|
24
|
-
double('source-two',
|
25
|
-
name: 'nginx',
|
26
|
-
version_constraint: Solve::Constraint.new('= 0.101.2'),
|
27
|
-
downloaded?: true,
|
28
|
-
cached_cookbook: double('nginx-cookbook',
|
29
|
-
name: 'nginx-0.101.2',
|
30
|
-
cookbook_name: 'nginx',
|
31
|
-
version: '0.101.2',
|
32
|
-
dependencies: Hash.new
|
13
|
+
dependencies: { "nginx" => ">= 0.1.0" }
|
33
14
|
),
|
34
15
|
location: double('location', validate_cached: true)
|
35
16
|
)
|
@@ -42,32 +23,21 @@ describe Berkshelf::Resolver, :chef_server do
|
|
42
23
|
let(:downloader) { Berkshelf::Downloader.new(Berkshelf.cookbook_store) }
|
43
24
|
|
44
25
|
it "adds the specified sources to the sources hash" do
|
45
|
-
resolver = subject.new(downloader, sources: source)
|
26
|
+
resolver = subject.new(downloader, sources: [source], skip_dependencies: true)
|
46
27
|
|
47
28
|
resolver.should have_source(source.name)
|
48
29
|
end
|
49
30
|
|
50
|
-
it "adds the dependencies of the source as sources" do
|
51
|
-
resolver = subject.new(downloader, sources: source)
|
52
|
-
|
53
|
-
resolver.should have_source("nginx")
|
54
|
-
resolver.should have_source("artifact")
|
55
|
-
end
|
56
|
-
|
57
31
|
it "should not add dependencies if requested" do
|
58
|
-
resolver = subject.new(downloader, sources: source, skip_dependencies: true)
|
32
|
+
resolver = subject.new(downloader, sources: [source], skip_dependencies: true)
|
59
33
|
|
60
34
|
resolver.should_not have_source("nginx")
|
61
|
-
resolver.should_not have_source("artifact")
|
62
35
|
end
|
63
36
|
|
64
|
-
|
65
|
-
|
66
|
-
sources = [source]
|
67
|
-
resolver = subject.new(downloader, sources: sources)
|
37
|
+
it "adds the dependencies of the source as sources" do
|
38
|
+
resolver = subject.new(downloader, sources: [source])
|
68
39
|
|
69
|
-
|
70
|
-
end
|
40
|
+
resolver.should have_source("nginx")
|
71
41
|
end
|
72
42
|
end
|
73
43
|
end
|
@@ -79,7 +49,7 @@ describe Berkshelf::Resolver, :chef_server do
|
|
79
49
|
let(:package_version) { double('package-version', dependencies: Array.new) }
|
80
50
|
|
81
51
|
it "adds the source to the instance of resolver" do
|
82
|
-
subject.add_source(source)
|
52
|
+
subject.add_source(source, false)
|
83
53
|
|
84
54
|
subject.sources.should include(source)
|
85
55
|
end
|
@@ -114,7 +84,7 @@ describe Berkshelf::Resolver, :chef_server do
|
|
114
84
|
end
|
115
85
|
|
116
86
|
describe "#get_source" do
|
117
|
-
before
|
87
|
+
before { subject.add_source(source, false) }
|
118
88
|
|
119
89
|
context "given a string representation of the source to retrieve" do
|
120
90
|
it "returns the source of the same name" do
|
@@ -124,7 +94,7 @@ describe Berkshelf::Resolver, :chef_server do
|
|
124
94
|
end
|
125
95
|
|
126
96
|
describe "#has_source?" do
|
127
|
-
before
|
97
|
+
before { subject.add_source(source, false) }
|
128
98
|
|
129
99
|
it "returns the source of the given name" do
|
130
100
|
subject.has_source?(source.name).should be_true
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkshelf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.3.0.rc1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jamie Winsor
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-03-
|
15
|
+
date: 2013-03-20 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: yajl-ruby
|
@@ -35,17 +35,17 @@ dependencies:
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
none: false
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.2'
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
none: false
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ~>
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '3.2'
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: mixlib-shellout
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,7 +101,7 @@ dependencies:
|
|
101
101
|
requirements:
|
102
102
|
- - ! '>='
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.8.
|
104
|
+
version: 0.8.5
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
requirements:
|
110
110
|
- - ! '>='
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.8.
|
112
|
+
version: 0.8.5
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: chozo
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,38 +238,6 @@ dependencies:
|
|
238
238
|
- - ! '>='
|
239
239
|
- !ruby/object:Gem::Version
|
240
240
|
version: '0'
|
241
|
-
- !ruby/object:Gem::Dependency
|
242
|
-
name: moneta
|
243
|
-
requirement: !ruby/object:Gem::Requirement
|
244
|
-
none: false
|
245
|
-
requirements:
|
246
|
-
- - ~>
|
247
|
-
- !ruby/object:Gem::Version
|
248
|
-
version: 0.6.0
|
249
|
-
type: :runtime
|
250
|
-
prerelease: false
|
251
|
-
version_requirements: !ruby/object:Gem::Requirement
|
252
|
-
none: false
|
253
|
-
requirements:
|
254
|
-
- - ~>
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
version: 0.6.0
|
257
|
-
- !ruby/object:Gem::Dependency
|
258
|
-
name: net-ssh-gateway
|
259
|
-
requirement: !ruby/object:Gem::Requirement
|
260
|
-
none: false
|
261
|
-
requirements:
|
262
|
-
- - '='
|
263
|
-
- !ruby/object:Gem::Version
|
264
|
-
version: 1.1.0
|
265
|
-
type: :runtime
|
266
|
-
prerelease: false
|
267
|
-
version_requirements: !ruby/object:Gem::Requirement
|
268
|
-
none: false
|
269
|
-
requirements:
|
270
|
-
- - '='
|
271
|
-
- !ruby/object:Gem::Version
|
272
|
-
version: 1.1.0
|
273
241
|
- !ruby/object:Gem::Dependency
|
274
242
|
name: aruba
|
275
243
|
requirement: !ruby/object:Gem::Requirement
|
@@ -415,13 +383,13 @@ dependencies:
|
|
415
383
|
- !ruby/object:Gem::Version
|
416
384
|
version: '0'
|
417
385
|
- !ruby/object:Gem::Dependency
|
418
|
-
name:
|
386
|
+
name: vcr
|
419
387
|
requirement: !ruby/object:Gem::Requirement
|
420
388
|
none: false
|
421
389
|
requirements:
|
422
390
|
- - ~>
|
423
391
|
- !ruby/object:Gem::Version
|
424
|
-
version:
|
392
|
+
version: 2.4.0
|
425
393
|
type: :development
|
426
394
|
prerelease: false
|
427
395
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -429,7 +397,7 @@ dependencies:
|
|
429
397
|
requirements:
|
430
398
|
- - ~>
|
431
399
|
- !ruby/object:Gem::Version
|
432
|
-
version:
|
400
|
+
version: 2.4.0
|
433
401
|
description: Manages a Cookbook's, or an Application's, Cookbook dependencies
|
434
402
|
email:
|
435
403
|
- reset@riotgames.com
|
@@ -443,8 +411,7 @@ extra_rdoc_files: []
|
|
443
411
|
files:
|
444
412
|
- .cane
|
445
413
|
- .gitignore
|
446
|
-
- .
|
447
|
-
- .rvmrc
|
414
|
+
- .ruby-version
|
448
415
|
- .travis.yml
|
449
416
|
- CHANGELOG.md
|
450
417
|
- CONTRIBUTING.md
|
@@ -461,6 +428,7 @@ files:
|
|
461
428
|
- features/cookbook_command.feature
|
462
429
|
- features/default_locations.feature
|
463
430
|
- features/groups_install.feature
|
431
|
+
- features/help.feature
|
464
432
|
- features/init_command.feature
|
465
433
|
- features/install_command.feature
|
466
434
|
- features/json_formatter.feature
|
@@ -534,20 +502,24 @@ files:
|
|
534
502
|
- lib/berkshelf/resolver.rb
|
535
503
|
- lib/berkshelf/thor.rb
|
536
504
|
- lib/berkshelf/ui.rb
|
537
|
-
- lib/berkshelf/vagrant.rb
|
538
|
-
- lib/berkshelf/vagrant/action/clean.rb
|
539
|
-
- lib/berkshelf/vagrant/action/install.rb
|
540
|
-
- lib/berkshelf/vagrant/action/set_ui.rb
|
541
|
-
- lib/berkshelf/vagrant/action/upload.rb
|
542
|
-
- lib/berkshelf/vagrant/action/validate.rb
|
543
|
-
- lib/berkshelf/vagrant/config.rb
|
544
|
-
- lib/berkshelf/vagrant/errors.rb
|
545
|
-
- lib/berkshelf/vagrant/middleware.rb
|
546
505
|
- lib/berkshelf/version.rb
|
547
506
|
- lib/thor/monkies.rb
|
548
507
|
- lib/thor/monkies/hash_with_indifferent_access.rb
|
549
508
|
- lib/thor/monkies/shell.rb
|
550
509
|
- spec/fixtures/Berksfile
|
510
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json
|
511
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
|
512
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_cookbook.json
|
513
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_version.json
|
514
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/returns_the_cookbook_and_version_information.json
|
515
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
|
516
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CookbookNotFound_error_on_a_404_response.json
|
517
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/returns_the_version_number_of_the_latest_version_of_the_cookbook.json
|
518
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_satisfy/returns_the_version_number_of_the_best_solution.json
|
519
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
|
520
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CookbookNotFound_error_on_a_404_response.json
|
521
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/returns_an_array_containing_an_item_for_each_version.json
|
522
|
+
- spec/fixtures/cassettes/Berkshelf_Resolver/ClassMethods/_initialize/adds_the_dependencies_of_the_source_as_sources.yml
|
551
523
|
- spec/fixtures/cookbooks/example_cookbook-0.5.0/README.md
|
552
524
|
- spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb
|
553
525
|
- spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb
|
@@ -619,12 +591,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
619
591
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
620
592
|
none: false
|
621
593
|
requirements:
|
622
|
-
- - ! '
|
594
|
+
- - ! '>'
|
623
595
|
- !ruby/object:Gem::Version
|
624
|
-
version:
|
625
|
-
segments:
|
626
|
-
- 0
|
627
|
-
hash: -3254137740807236813
|
596
|
+
version: 1.3.1
|
628
597
|
requirements: []
|
629
598
|
rubyforge_project:
|
630
599
|
rubygems_version: 1.8.24
|
@@ -637,6 +606,7 @@ test_files:
|
|
637
606
|
- features/cookbook_command.feature
|
638
607
|
- features/default_locations.feature
|
639
608
|
- features/groups_install.feature
|
609
|
+
- features/help.feature
|
640
610
|
- features/init_command.feature
|
641
611
|
- features/install_command.feature
|
642
612
|
- features/json_formatter.feature
|
@@ -658,6 +628,19 @@ test_files:
|
|
658
628
|
- features/upload_command.feature
|
659
629
|
- features/vendor_install.feature
|
660
630
|
- spec/fixtures/Berksfile
|
631
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json
|
632
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
|
633
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_cookbook.json
|
634
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CookbookNotFound_error_on_a_404_response_for_a_non-existent_version.json
|
635
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/returns_the_cookbook_and_version_information.json
|
636
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
|
637
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/raises_a_CookbookNotFound_error_on_a_404_response.json
|
638
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_latest_version/returns_the_version_number_of_the_latest_version_of_the_cookbook.json
|
639
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_satisfy/returns_the_version_number_of_the_best_solution.json
|
640
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
|
641
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/raises_a_CookbookNotFound_error_on_a_404_response.json
|
642
|
+
- spec/fixtures/cassettes/Berkshelf_CommunityREST/_versions/returns_an_array_containing_an_item_for_each_version.json
|
643
|
+
- spec/fixtures/cassettes/Berkshelf_Resolver/ClassMethods/_initialize/adds_the_dependencies_of_the_source_as_sources.yml
|
661
644
|
- spec/fixtures/cookbooks/example_cookbook-0.5.0/README.md
|
662
645
|
- spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb
|
663
646
|
- spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb
|