berkshelf 0.5.1 → 0.6.0.beta1

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/berkshelf.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.required_ruby_version = ">= 1.9.1"
18
18
 
19
19
  s.add_runtime_dependency 'ridley', '>= 0.0.5'
20
- s.add_runtime_dependency 'solve', '~> 0.2.1'
20
+ s.add_runtime_dependency 'solve', '>= 0.3.0'
21
21
  s.add_runtime_dependency 'chef', '~> 10.12.0'
22
22
  s.add_runtime_dependency 'minitar'
23
23
  s.add_runtime_dependency 'thor', '~> 0.16.0'
@@ -32,9 +32,7 @@ module Berkshelf
32
32
 
33
33
  scratch = Berkshelf.mktmpdir
34
34
  cookbooks.each do |cb|
35
- dest = File.join(scratch, cb.cookbook_name, "/")
36
- FileUtils.mkdir_p(dest)
37
- FileUtils.cp_r(Dir.glob(File.join(cb.path, "*")), dest)
35
+ FileUtils.cp_r(cb.path, File.join(scratch, cb.cookbook_name))
38
36
  end
39
37
 
40
38
  FileUtils.remove_dir(path, force: true)
@@ -74,12 +74,11 @@ module Berkshelf
74
74
  def satisfy(name, constraint)
75
75
  graph = Solve::Graph.new
76
76
  cookbooks(name).each { |cookbook| graph.artifacts(name, cookbook.version) }
77
- graph.demands(name, constraint)
78
77
 
79
- name, version = Solve.it!(graph).first
78
+ name, version = Solve.it!(graph, [[name, constraint]]).first
80
79
 
81
80
  cookbook(name, version)
82
- rescue Solve::NoSolutionError
81
+ rescue Solve::Errors::NoSolutionError
83
82
  nil
84
83
  end
85
84
 
@@ -49,21 +49,11 @@ module Berkshelf
49
49
  #
50
50
  # @return [Array, nil]
51
51
  def solve_for_constraint(constraint, versions)
52
- graph = Solve::Graph.new
53
- name = "none"
54
-
55
- versions.each do |version, uri|
56
- graph.artifacts(name, version)
57
- end
58
-
59
- graph.demands(name, constraint)
60
- result = Solve.it(graph)
61
-
62
- return nil if result.nil?
63
-
64
- version = result[name]
52
+ version = Solve::Solver.satisfy_best(constraint, versions.keys).to_s
65
53
 
66
54
  [ version, versions[version] ]
55
+ rescue Solve::Errors::NoSolutionError
56
+ nil
67
57
  end
68
58
  end
69
59
 
@@ -177,9 +177,8 @@ module Berkshelf
177
177
  versions.each do |version, url|
178
178
  graph.artifacts(name, version)
179
179
  end
180
- graph.demands(name, ">= 0.0.0")
181
180
 
182
- version = Solve.it!(graph)[name]
181
+ version = Solve.it!(graph, [name])[name]
183
182
 
184
183
  [ version, versions[version] ]
185
184
  end
@@ -83,11 +83,13 @@ module Berkshelf
83
83
  #
84
84
  # @return [Array<Berkshelf::CachedCookbook>]
85
85
  def resolve
86
- graph.artifacts.each do |artifact|
87
- graph.demands(artifact.name)
86
+ demands = [].tap do |l_demands|
87
+ graph.artifacts.each do |artifact|
88
+ l_demands << [ artifact.name, artifact.version ]
89
+ end
88
90
  end
89
91
 
90
- solution = Solve.it!(graph)
92
+ solution = Solve.it!(graph, demands)
91
93
 
92
94
  [].tap do |cached_cookbooks|
93
95
  solution.each do |name, version|
@@ -11,7 +11,7 @@ module Berkshelf
11
11
  end
12
12
 
13
13
  def call(env)
14
- if Berkshelf::Vagrant.chef_solo?(env[:vm].config) && self.shelf
14
+ if Berkshelf::Vagrant.chef_solo?(env[:global_config]) && self.shelf
15
15
  Berkshelf.formatter.msg "cleaning Vagrant's shelf"
16
16
  FileUtils.remove_dir(self.shelf, fore: true)
17
17
  end
@@ -11,14 +11,14 @@ module Berkshelf
11
11
  def initialize(app, env)
12
12
  @app = app
13
13
  @shelf = Berkshelf::Vagrant.shelf_for(env)
14
- @config = env[:vm].config.berkshelf
14
+ @config = env[:global_config].berkshelf
15
15
  Berkshelf.config_path = @config.config_path
16
16
  Berkshelf.load_config
17
17
  @berksfile = Berksfile.from_file(@config.berksfile_path)
18
18
  end
19
19
 
20
20
  def call(env)
21
- if Berkshelf::Vagrant.chef_solo?(env[:vm].config)
21
+ if Berkshelf::Vagrant.chef_solo?(env[:global_config])
22
22
  configure_cookbooks_path(env)
23
23
  install(env)
24
24
  end
@@ -37,7 +37,7 @@ module Berkshelf
37
37
  end
38
38
 
39
39
  def configure_cookbooks_path(env)
40
- Berkshelf::Vagrant.provisioners(:chef_solo, env[:vm].config).each do |provisioner|
40
+ Berkshelf::Vagrant.provisioners(:chef_solo, env[:global_config]).each do |provisioner|
41
41
  provisioner.config.cookbooks_path.unshift(self.shelf)
42
42
  end
43
43
  end
@@ -10,14 +10,14 @@ module Berkshelf
10
10
 
11
11
  def initialize(app, env)
12
12
  @app = app
13
- @node_name = env[:vm].config.berkshelf.node_name
14
- @client_key = env[:vm].config.berkshelf.client_key
15
- @ssl_verify = env[:vm].config.berkshelf.ssl_verify
16
- @berksfile = Berksfile.from_file(env[:vm].config.berkshelf.berksfile_path)
13
+ @node_name = env[:global_config].berkshelf.node_name
14
+ @client_key = env[:global_config].berkshelf.client_key
15
+ @ssl_verify = env[:global_config].berkshelf.ssl_verify
16
+ @berksfile = Berksfile.from_file(env[:global_config].berkshelf.berksfile_path)
17
17
  end
18
18
 
19
19
  def call(env)
20
- if Berkshelf::Vagrant.chef_client?(env[:vm].config)
20
+ if Berkshelf::Vagrant.chef_client?(env[:global_config])
21
21
  upload(env)
22
22
  end
23
23
 
@@ -27,7 +27,7 @@ module Berkshelf
27
27
  private
28
28
 
29
29
  def upload(env)
30
- Berkshelf::Vagrant.provisioners(:chef_client, env[:vm].config).each do |provisioner|
30
+ Berkshelf::Vagrant.provisioners(:chef_client, env[:global_config]).each do |provisioner|
31
31
  Berkshelf.formatter.msg "uploading cookbooks to '#{provisioner.config.chef_server_url}'"
32
32
  berksfile.upload(
33
33
  server_url: provisioner.config.chef_server_url,
@@ -18,12 +18,12 @@ module Berkshelf
18
18
 
19
19
  class << self
20
20
  # @param [Vagrant::Action::Environment] env
21
- #
22
- # @return [String, nil]
23
21
  def shelf_for(env)
24
- return nil if env[:vm].uuid.nil?
22
+ unless env[:global_config].vm.host_name
23
+ return nil
24
+ end
25
25
 
26
- File.join(Berkshelf.berkshelf_path, "vagrant", env[:vm].uuid)
26
+ File.join(Berkshelf.berkshelf_path, "vagrant", env[:global_config].vm.host_name)
27
27
  end
28
28
 
29
29
  # @param [Symbol] shortcut
@@ -64,7 +64,7 @@ module Berkshelf
64
64
  ::Vagrant.actions[action].insert(::Vagrant::Action::VM::Provision, Berkshelf::Vagrant::Middleware.upload)
65
65
  end
66
66
 
67
- ::Vagrant.actions[:destroy].insert(::Vagrant::Action::VM::ProvisionerCleanup, Berkshelf::Vagrant::Middleware.clean)
67
+ ::Vagrant.actions[:destroy].insert(::Vagrant::Action::VM::CleanMachineFolder, Berkshelf::Vagrant::Middleware.clean)
68
68
  end
69
69
  end
70
70
  end
@@ -1,3 +1,3 @@
1
1
  module Berkshelf
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.0.beta1"
3
3
  end
@@ -110,7 +110,7 @@ module Berkshelf
110
110
  it "returns the source of the same name" do
111
111
  subject.get_source(source.name).should eql(source)
112
112
  end
113
- end
113
+ end
114
114
  end
115
115
 
116
116
  describe "#has_source?" do
@@ -120,25 +120,5 @@ module Berkshelf
120
120
  subject.has_source?(source.name).should be_true
121
121
  end
122
122
  end
123
-
124
- describe "#resolve" do
125
- before(:each) do
126
- subject.add_source(source)
127
- subject.add_source(source_two)
128
- @solution = subject.resolve
129
- end
130
-
131
- it "returns an array of the CachedCookbooks which make up the solution" do
132
- @solution.should include(source.cached_cookbook)
133
- @solution.should include(source_two.cached_cookbook)
134
- end
135
-
136
- it "resolves the given mysql source" do
137
- @solution[0].cookbook_name.should eql("mysql")
138
- @solution[0].version.should eql("1.2.4")
139
- @solution[1].cookbook_name.should eql("nginx")
140
- @solution[1].version.should eql("0.101.2")
141
- end
142
- end
143
123
  end
144
124
  end
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: 0.5.1
5
- prerelease:
4
+ version: 0.6.0.beta1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Josiah Kiehl
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-09-28 00:00:00.000000000 Z
15
+ date: 2012-09-25 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: ridley
@@ -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: 0.2.1
40
+ version: 0.3.0
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: 0.2.1
48
+ version: 0.3.0
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: chef
51
51
  requirement: !ruby/object:Gem::Requirement
@@ -586,12 +586,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
586
586
  required_rubygems_version: !ruby/object:Gem::Requirement
587
587
  none: false
588
588
  requirements:
589
- - - ! '>='
589
+ - - ! '>'
590
590
  - !ruby/object:Gem::Version
591
- version: '0'
592
- segments:
593
- - 0
594
- hash: -3087057702069049964
591
+ version: 1.3.1
595
592
  requirements: []
596
593
  rubyforge_project:
597
594
  rubygems_version: 1.8.23