mccloud 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -364,6 +364,7 @@ You can use multiple provisioners per vm
364
364
  roles_path
365
365
  provisioning_path
366
366
  data_bags_path
367
+ encrypted_data_bag_secret_key_path
367
368
  json
368
369
  json_erb
369
370
  clean_after_run
@@ -395,6 +396,7 @@ You can use multiple provisioners per vm
395
396
  chef.cookbooks_path = [ "cookbooks", "site-cookbooks" ]
396
397
  chef.roles_path = "roles"
397
398
  chef.data_bags_path = "data_bags"
399
+ chef.encrypted_data_bag_secret_key_path = "my_databag_secret"
398
400
  chef.clean_after_run = false
399
401
 
400
402
  chef.json.merge!(n.default_attrs)
@@ -7,12 +7,22 @@ module Mccloud::Provider
7
7
  @shared_folders << { :name => name, :dest => dest, :src => src, :options => new_options}
8
8
  end
9
9
 
10
+ def share_file(name , dest,src,options={})
11
+ new_options={:mute => false}.merge(options)
12
+ @shared_files << { :name => name, :dest => dest, :src => src, :options => new_options}
13
+ end
14
+
10
15
  def share
11
16
  @shared_folders.each do |folder|
12
17
  self.execute("test -d '#{folder[:dest]}' || mkdir -p '#{folder[:dest]}' ")
13
18
  clean_src_path=File.join(Pathname.new(folder[:src]).expand_path.cleanpath.to_s,'/')
14
19
  rsync(clean_src_path,folder[:dest],folder[:options])
15
20
  end
21
+ @shared_files.each do |file|
22
+ self.execute("test -d '#{File.dirname(file[:dest])}' || mkdir -p '#{File.dirname(file[:dest])}' ")
23
+ clean_src_path=Pathname.new(file[:src]).expand_path.cleanpath.to_s
24
+ rsync(clean_src_path,file[:dest],file[:options])
25
+ end
16
26
  end
17
27
 
18
28
  def share_sync(src, dest, options = {})
@@ -51,6 +51,7 @@ module Mccloud
51
51
 
52
52
  attr_accessor :forwardings
53
53
  attr_accessor :shared_folders
54
+ attr_accessor :shared_files
54
55
  attr_accessor :stacked
55
56
  attr_accessor :declared
56
57
 
@@ -58,6 +59,7 @@ module Mccloud
58
59
  @env=env
59
60
  @forwardings=Array.new
60
61
  @shared_folders = Array.new
62
+ @shared_files = Array.new
61
63
  @stacked=false
62
64
  @auto_selection=true
63
65
  @declared=true
@@ -20,6 +20,7 @@ module Mccloud
20
20
  attr_accessor :roles_path
21
21
  attr_accessor :provisioning_path
22
22
  attr_accessor :data_bags_path
23
+ attr_accessor :encrypted_data_bag_secret_key_path
23
24
  attr_accessor :json
24
25
  attr_accessor :json_erb
25
26
  attr_accessor :clean_after_run
@@ -96,6 +97,7 @@ module Mccloud
96
97
  configfile << "log_level #{log_level}"
97
98
  configfile << "role_path \"/tmp/#{File.basename(roles_path)}\"" unless roles_path.nil?
98
99
  configfile << "data_bag_path \"/tmp/#{File.basename(data_bags_path)}\"" unless data_bags_path.nil?
100
+ configfile << "encrypted_data_bag_secret \"/tmp/#{File.basename(encrypted_data_bag_secret_key_path)}\"" unless encrypted_data_bag_secret_key_path.nil?
99
101
 
100
102
  #convert string to Tempfile (instead of StringIO), as server.transfer expects a file with a filename
101
103
  temp_file_json = Tempfile.new("dna_json")
@@ -124,6 +126,10 @@ module Mccloud
124
126
  server.share_folder("databags_path","/tmp/" + File.basename(data_bags_path),data_bags_path,{:mute => true})
125
127
  end
126
128
 
129
+ unless encrypted_data_bag_secret_key_path.nil?
130
+ server.share_file("encrypted_databag_secret","/tmp/" + File.basename(encrypted_data_bag_secret_key_path),encrypted_data_bag_secret_key_path,{:mute => true})
131
+ end
132
+
127
133
  server.share
128
134
 
129
135
  env.ui.info "[#{server.name}] - [#{@name}] - running chef-solo"
@@ -157,6 +163,11 @@ module Mccloud
157
163
  env.ui.info "[#{server.name}] - [#{@name}] - Cleaning data_bags_path #{data_bags_path}"
158
164
  server.execute("rm -rf /tmp/#{File.basename(data_bags_path)}",{:mute => true})
159
165
  end
166
+
167
+ unless encrypted_data_bag_secret_key_path.nil?
168
+ env.ui.info "[#{server.name}] - [#{@name}] - Cleaning encrypted_databag_secret #{encrypted_data_bag_secret_key_path}"
169
+ server.execute("rm -rf /tmp/#{File.basename(encrypted_data_bag_secret_key_path)}",{:mute => true})
170
+ end
160
171
  end
161
172
  end
162
173
 
@@ -240,6 +251,7 @@ module Mccloud
240
251
  :recipe_url => config.recipe_url,
241
252
  :roles_path => roles_path,
242
253
  :data_bags_path => data_bags_path,
254
+ :encrypted_data_bag_secret_key_path => encrypted_data_bag_secret_key_path
243
255
  })
244
256
  end
245
257
  def run_chef_solo
@@ -2,5 +2,5 @@ module Mccloud
2
2
  end
3
3
 
4
4
  unless defined?(Mccloud::VERSION)
5
- ::Mccloud::VERSION = "0.0.17"
5
+ ::Mccloud::VERSION = "0.0.18"
6
6
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mccloud
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 59
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 17
10
- version: 0.0.17
9
+ - 18
10
+ version: 0.0.18
11
11
  platform: ruby
12
12
  authors:
13
13
  - Patrick Debois
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-02-20 00:00:00 Z
18
+ date: 2013-02-23 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement