berkshelf 2.0.10 → 2.0.11
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/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
         
     |