mofa 0.3.22 → 0.3.23
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mofa/provision_cmd.rb +10 -20
- data/lib/mofa/released_cookbook.rb +4 -0
- data/lib/mofa/version.rb +1 -1
- metadata +1 -1
data/lib/mofa/provision_cmd.rb
CHANGED
@@ -68,7 +68,7 @@ class ProvisionCmd < MofaCmd
|
|
68
68
|
puts "ERROR (#{out[0]}): #{out[2]}" if out[0] != 0
|
69
69
|
|
70
70
|
# remotely create a data_bags folder structure on the target host
|
71
|
-
if
|
71
|
+
if File.directory?("#{cookbook.source_dir}/data_bags")
|
72
72
|
Dir.entries("#{cookbook.source_dir}/data_bags").select { |f| !f.match(/^\.\.?$/) }.each do |data_bag|
|
73
73
|
puts "Remotely creating data_bags dir \"#{solo_dir}/data_bags/#{data_bag}\""
|
74
74
|
out = ssh_exec!(ssh, "[ -d #{solo_dir}/data_bags/#{data_bag} ] || mkdir -p #{solo_dir}/data_bags/#{data_bag}")
|
@@ -81,15 +81,7 @@ class ProvisionCmd < MofaCmd
|
|
81
81
|
def create_solo_rb(sftp, hostname, solo_dir)
|
82
82
|
puts "Remotely creating \"#{solo_dir}/solo.rb\""
|
83
83
|
sftp.file.open("#{solo_dir}/solo.rb", "w") do |file|
|
84
|
-
|
85
|
-
solo_rb = <<-"EOF"
|
86
|
-
cookbook_path [ "#{solo_dir}/cookbooks" ]
|
87
|
-
EOF
|
88
|
-
else
|
89
|
-
solo_rb = <<-"EOF"
|
90
|
-
recipe_url "#{solo_dir}/#{cookbook.pkg_name}"
|
91
|
-
EOF
|
92
|
-
end
|
84
|
+
cookbook_path [ "#{solo_dir}/cookbooks" ]
|
93
85
|
solo_rb += <<-"EOF"
|
94
86
|
data_bag_path "#{solo_dir}/data_bags"
|
95
87
|
log_level :info
|
@@ -116,7 +108,7 @@ class ProvisionCmd < MofaCmd
|
|
116
108
|
|
117
109
|
def create_data_bags(sftp, hostname, solo_dir)
|
118
110
|
puts "Remotely creating data_bags items..."
|
119
|
-
if
|
111
|
+
if File.directory?("#{cookbook.source_dir}/data_bags")
|
120
112
|
Dir.entries("#{cookbook.source_dir}/data_bags/").each do |data_bag|
|
121
113
|
next if data_bag =~ /^\.\.?$/
|
122
114
|
puts "Found data_bag #{data_bag}... "
|
@@ -172,15 +164,13 @@ class ProvisionCmd < MofaCmd
|
|
172
164
|
# Do it -> Execute the chef-solo run!
|
173
165
|
Net::SSH.start(hostname, Mofa::Config::config['ssh_user'], :keys => [Mofa::Config::config['ssh_keyfile']], :port => Mofa::Config.config['ssh_port'], :verbose => :error) do |ssh|
|
174
166
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
puts "OK."
|
183
|
-
end
|
167
|
+
puts "Remotely unpacking Cookbook Package #{cookbook.pkg_name}... "
|
168
|
+
out = ssh_exec!(ssh, "cd #{solo_dir}; tar xvfz #{cookbook.pkg_name}")
|
169
|
+
if out[0] != 0
|
170
|
+
puts "ERROR (#{out[0]}): #{out[2]}"
|
171
|
+
puts out[1]
|
172
|
+
else
|
173
|
+
puts "OK."
|
184
174
|
end
|
185
175
|
|
186
176
|
puts "Remotely running chef-solo -c #{solo_dir}/solo.rb -j #{solo_dir}/node.json"
|
@@ -65,6 +65,10 @@ class ReleasedCookbook < Cookbook
|
|
65
65
|
|
66
66
|
# ------------- /Interface Methods
|
67
67
|
|
68
|
+
def source_dir
|
69
|
+
pkg_dir
|
70
|
+
end
|
71
|
+
|
68
72
|
def cleanup!
|
69
73
|
unless (Dir.entries("#{Mofa::Config.config['tmp_dir']}/.mofa") - %w{ . .. }).empty?
|
70
74
|
say "Removing content of folder #{Mofa::Config.config['tmp_dir']}/.mofa"
|
data/lib/mofa/version.rb
CHANGED