berkshelf 1.2.1 → 1.3.0.rc1
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/.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
|