berkshelf 2.0.10 → 2.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/apply_command.feature +2 -2
- data/features/upload_command.feature +29 -0
- data/lib/berkshelf/berksfile.rb +3 -3
- data/lib/berkshelf/cli.rb +1 -0
- data/lib/berkshelf/version.rb +1 -1
- data/spec/unit/berkshelf/berksfile_spec.rb +33 -2
- data/spec/unit/berkshelf/cli_spec.rb +16 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd1aa53a9867a0e5a5499885621fb883886c4d70
|
4
|
+
data.tar.gz: 4a730017be76868d1892a8e0f283415f4fcc922d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e69b3084e8f50f45099b6978c339fbb39b602c3caf7724b7383697b0d4ac3beca4f77848ccc7b4f23a72ebc5bedecce0e709e3e2a996d72fb0c5fa3f5b7d22b
|
7
|
+
data.tar.gz: c07fe3c83904af0f9b0c45a1db8ac85e65ea07450328fa2fbbf7fa062f9bcd43a2666545b183b6e33b1710d9c6eafa09a6701d050d1e29f4c9f103f867caa929
|
@@ -17,8 +17,8 @@ Feature: Applying cookbook versions to a Chef Environment
|
|
17
17
|
When I successfully run `berks apply berkshelf_lock_test`
|
18
18
|
Then the version locks in "berkshelf_lock_test" should be:
|
19
19
|
| cookbook | version_lock |
|
20
|
-
| fake | 1.0.0 |
|
21
|
-
| dependency | 2.0.0 |
|
20
|
+
| fake | = 1.0.0 |
|
21
|
+
| dependency | = 2.0.0 |
|
22
22
|
And the exit status should be 0
|
23
23
|
|
24
24
|
@chef_server
|
@@ -316,3 +316,32 @@ Feature: Uploading cookbooks to a Chef Server
|
|
316
316
|
Uploading fake (0.0.0)
|
317
317
|
"""
|
318
318
|
And the exit status should be 0
|
319
|
+
Scenario: When the syntax check is skipped
|
320
|
+
Given a cookbook named "fake"
|
321
|
+
And the cookbook "fake" has the file "recipes/default.rb" with:
|
322
|
+
"""
|
323
|
+
Totally not valid Ruby syntax
|
324
|
+
"""
|
325
|
+
And the cookbook "fake" has the file "templates/default/file.erb" with:
|
326
|
+
"""
|
327
|
+
<% for %>
|
328
|
+
"""
|
329
|
+
And the cookbook "fake" has the file "recipes/template.rb" with:
|
330
|
+
"""
|
331
|
+
template "/tmp/wadus" do
|
332
|
+
source "file.erb"
|
333
|
+
end
|
334
|
+
"""
|
335
|
+
And the cookbook "fake" has the file "Berksfile" with:
|
336
|
+
"""
|
337
|
+
site :opscode
|
338
|
+
|
339
|
+
metadata
|
340
|
+
"""
|
341
|
+
And I cd to "fake"
|
342
|
+
When I successfully run `berks upload --skip-syntax-check`
|
343
|
+
Then the output should contain:
|
344
|
+
"""
|
345
|
+
Using fake (0.0.0) from metadata
|
346
|
+
Uploading fake (0.0.0) to: 'http://localhost:4000/'
|
347
|
+
"""
|
data/lib/berkshelf/berksfile.rb
CHANGED
@@ -519,10 +519,10 @@ module Berkshelf
|
|
519
519
|
# if an attempt to upload a cookbook which has been frozen on the target server is made
|
520
520
|
# and the :halt_on_frozen option was true
|
521
521
|
def upload(options = {})
|
522
|
-
options = options.reverse_merge(force: false, freeze: true, skip_dependencies: false, halt_on_frozen: false, update_lockfile: false)
|
522
|
+
options = options.reverse_merge(force: false, freeze: true, skip_dependencies: false, halt_on_frozen: false, update_lockfile: false, validate: true)
|
523
523
|
|
524
524
|
cached_cookbooks = install(options)
|
525
|
-
upload_opts = options.slice(:force, :freeze)
|
525
|
+
upload_opts = options.slice(:force, :freeze, :validate)
|
526
526
|
conn = ridley_connection(options)
|
527
527
|
|
528
528
|
cached_cookbooks.each do |cookbook|
|
@@ -572,7 +572,7 @@ module Berkshelf
|
|
572
572
|
install
|
573
573
|
|
574
574
|
environment.cookbook_versions = {}.tap do |cookbook_versions|
|
575
|
-
lockfile.sources.each { |source| cookbook_versions[source.name] = source.locked_version.to_s }
|
575
|
+
lockfile.sources.each { |source| cookbook_versions[source.name] = "= #{source.locked_version.to_s}" }
|
576
576
|
end
|
577
577
|
|
578
578
|
environment.save
|
data/lib/berkshelf/cli.rb
CHANGED
@@ -225,6 +225,7 @@ module Berkshelf
|
|
225
225
|
upload_options = Hash[options.except(:no_freeze, :berksfile)].symbolize_keys
|
226
226
|
upload_options[:cookbooks] = cookbook_names
|
227
227
|
upload_options[:freeze] = false if options[:no_freeze]
|
228
|
+
upload_options[:validate] = false if options[:skip_syntax_check]
|
228
229
|
|
229
230
|
berksfile.upload(upload_options)
|
230
231
|
end
|
data/lib/berkshelf/version.rb
CHANGED
@@ -510,6 +510,37 @@ describe Berkshelf::Berksfile do
|
|
510
510
|
upload
|
511
511
|
end
|
512
512
|
end
|
513
|
+
|
514
|
+
context 'when validate is passed' do
|
515
|
+
let(:options) do
|
516
|
+
{
|
517
|
+
force: false,
|
518
|
+
freeze: true,
|
519
|
+
validate: false,
|
520
|
+
name: "cookbook"
|
521
|
+
}
|
522
|
+
end
|
523
|
+
let(:ridley_options) do
|
524
|
+
default_ridley_options.merge(
|
525
|
+
{ server_url: 'http://configured-chef-server/'})
|
526
|
+
end
|
527
|
+
let(:cookbook) { double('cookbook', cookbook_name: 'cookbook', path: 'path', version: '1.0.0') }
|
528
|
+
let(:installed_cookbooks) { [ cookbook ] }
|
529
|
+
let(:server_url) { Berkshelf::RSpec::ChefServer.server_url }
|
530
|
+
let(:client_name) { 'reset' }
|
531
|
+
let(:client_key) { 'client-key' }
|
532
|
+
let(:ridley_connection) { double('ridley-connection', server_url: server_url, client_name: client_name, client_key: client_key) }
|
533
|
+
let(:cookbook_resource) { double('cookbook') }
|
534
|
+
|
535
|
+
it 'uses the passed in :validate' do
|
536
|
+
Ridley.stub(:new).with(ridley_options).and_return(ridley_connection)
|
537
|
+
ridley_connection.stub(:alive?).and_return(true)
|
538
|
+
ridley_connection.stub(:terminate).and_return(true)
|
539
|
+
ridley_connection.should_receive(:cookbook).and_return(cookbook_resource)
|
540
|
+
cookbook_resource.should_receive(:upload).with('path', options )
|
541
|
+
upload
|
542
|
+
end
|
543
|
+
end
|
513
544
|
end
|
514
545
|
|
515
546
|
describe '#apply' do
|
@@ -548,8 +579,8 @@ describe Berkshelf::Berksfile do
|
|
548
579
|
|
549
580
|
environment = ::JSON.parse(chef_server.data_store.get(['environments', 'berkshelf']))
|
550
581
|
expect(environment['cookbook_versions']).to have(2).items
|
551
|
-
expect(environment['cookbook_versions']['nginx']).to eq('1.2.3')
|
552
|
-
expect(environment['cookbook_versions']['artifact']).to eq('1.4.0')
|
582
|
+
expect(environment['cookbook_versions']['nginx']).to eq('= 1.2.3')
|
583
|
+
expect(environment['cookbook_versions']['artifact']).to eq('= 1.4.0')
|
553
584
|
end
|
554
585
|
end
|
555
586
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Berkshelf::Cli do
|
4
|
+
let(:subject) { described_class.new }
|
5
|
+
let(:berksfile) { double('Berksfile') }
|
6
|
+
let(:cookbooks) { ['mysql'] }
|
7
|
+
describe '#upload' do
|
8
|
+
it 'calls to upload with params if passed in cli' do
|
9
|
+
Berkshelf::Berksfile.should_receive(:from_file).and_return(berksfile)
|
10
|
+
berksfile.should_receive(:upload).with(include(:skip_syntax_check => true, :freeze => false, :cookbooks => cookbooks))
|
11
|
+
subject.options[:skip_syntax_check] = true
|
12
|
+
subject.options[:no_freeze] = true
|
13
|
+
subject.upload('mysql')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkshelf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamie Winsor
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2014-01-07 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activesupport
|
@@ -616,6 +616,7 @@ files:
|
|
616
616
|
- spec/unit/berkshelf/berksfile_spec.rb
|
617
617
|
- spec/unit/berkshelf/cached_cookbook_spec.rb
|
618
618
|
- spec/unit/berkshelf/chef/cookbook/chefignore_spec.rb
|
619
|
+
- spec/unit/berkshelf/cli_spec.rb
|
619
620
|
- spec/unit/berkshelf/community_rest_spec.rb
|
620
621
|
- spec/unit/berkshelf/config_spec.rb
|
621
622
|
- spec/unit/berkshelf/cookbook_generator_spec.rb
|
@@ -755,6 +756,7 @@ test_files:
|
|
755
756
|
- spec/unit/berkshelf/berksfile_spec.rb
|
756
757
|
- spec/unit/berkshelf/cached_cookbook_spec.rb
|
757
758
|
- spec/unit/berkshelf/chef/cookbook/chefignore_spec.rb
|
759
|
+
- spec/unit/berkshelf/cli_spec.rb
|
758
760
|
- spec/unit/berkshelf/community_rest_spec.rb
|
759
761
|
- spec/unit/berkshelf/config_spec.rb
|
760
762
|
- spec/unit/berkshelf/cookbook_generator_spec.rb
|