poolparty 1.6.3 → 1.6.4

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/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :minor: 6
3
- :patch: 3
3
+ :patch: 4
4
4
  :major: 1
5
5
  :build:
@@ -55,16 +55,17 @@ module PoolParty
55
55
  end
56
56
 
57
57
  def node_bootsrapped?(remote_instance)
58
- remote_instance.ssh(["(gem list; dpkg -l chef) | grep -q chef && echo 'chef installed'"], :do_sudo => false).empty?
58
+ # "(gem list; dpkg -l chef) | grep -q chef && echo 'chef installed'"
59
+ remote_instance.ssh(['if [ ! -n "$(gem list 2>/dev/null | grep chef)" ]; then echo "chef installed"; fi'], :do_sudo => false).empty? rescue false
59
60
  end
60
- def node_bootstrap!(remote_instance)
61
+ def node_bootstrap(remote_instance)
61
62
  remote_instance.ssh([
62
63
  'apt-get update',
63
64
  'apt-get autoremove -y',
64
65
  'apt-get install -y ruby ruby-dev rubygems git-core libopenssl-ruby',
65
66
  'gem sources -a http://gems.opscode.com',
66
67
  'gem install chef ohai --no-rdoc --no-ri' ])
67
- remote_instance.ssh(remote_instance.bootstrap_gems.collect { |gem| "gem install #{gem} --no-rdoc --no-ri" } )
68
+ remote_instance.ssh(remote_instance.bootstrap_gems.collect { |g| "gem install #{g} --no-rdoc --no-ri" } )
68
69
  end
69
70
  private
70
71
 
@@ -73,7 +74,11 @@ module PoolParty
73
74
  end
74
75
 
75
76
  def method_missing(m,*args,&block)
76
- cloud.send(m,*args,&block) if cloud.respond_to?(m)
77
+ if cloud.respond_to?(m)
78
+ cloud.send(m,*args,&block)
79
+ else
80
+ super
81
+ end
77
82
  end
78
83
 
79
84
  end
@@ -16,22 +16,28 @@ module PoolParty
16
16
  # The NEW actual chef resolver.
17
17
  def build_tmp_dir
18
18
  base_directory = tmp_path/"etc"/"chef"
19
- FileUtils.rm_rf base_directory
19
+ roles_dir = "#{base_directory}/roles"
20
+ FileUtils.rm_rf base_directory # cleanup old chef temp directory
20
21
  puts "Copying the chef-repo into the base directory from #{repo}"
21
- FileUtils.mkdir_p base_directory/"roles"
22
+
23
+ FileUtils.mkdir_p base_directory
22
24
  if File.directory?(repo)
23
25
  if File.exist?(base_directory)
24
26
  # First remove the directory
25
27
  FileUtils.remove_entry base_directory, :force => true
26
28
  end
27
- FileUtils.cp_r "#{repo}/.", base_directory
29
+ cookbook_path = "#{base_directory}/cookbooks"
30
+ FileUtils.mkdir_p cookbook_path
31
+ FileUtils.cp_r "#{repo}/.", cookbook_path
28
32
  else
29
33
  raise "#{repo} chef repo directory does not exist"
30
34
  end
31
35
  puts "Creating the dna.json"
32
36
  attributes.to_dna [], base_directory/"dna.json", {:run_list => ["role[#{cloud.name}]"]}
33
37
  write_solo_dot_rb
34
- write_chef_role_json tmp_path/"etc"/"chef"/"roles/#{cloud.name}.json"
38
+ # Make sure the roles directory exists
39
+ FileUtils.mkdir_p roles_dir
40
+ write_chef_role_json "#{roles_dir}/#{cloud.name}.json"
35
41
  end
36
42
 
37
43
  def write_solo_dot_rb(to=tmp_path/"etc"/"chef"/"solo.rb")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poolparty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Lerner
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2010-03-09 00:00:00 -08:00
14
+ date: 2010-03-18 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies: []
17
17