mofa 0.3.30 → 0.3.31
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/lib/mofa/cli.rb +2 -1
- data/lib/mofa/cookbook.rb +4 -3
- data/lib/mofa/released_cookbook.rb +17 -3
- data/lib/mofa/version.rb +1 -1
- metadata +1 -1
data/lib/mofa/cli.rb
CHANGED
@@ -22,6 +22,7 @@ module Mofa
|
|
22
22
|
method_option :runlist, :type => :string, :aliases => '-o'
|
23
23
|
method_option :attributes, :type => :string, :aliases => '-j'
|
24
24
|
method_option :service_hostlist_url, :type => :string
|
25
|
+
method_option :override_mofa_secrets, :type => :string, :aliases => '-S'
|
25
26
|
|
26
27
|
def provision(cookbook_name_or_path)
|
27
28
|
set_verbosity
|
@@ -34,7 +35,7 @@ module Mofa
|
|
34
35
|
token = MofaCmd.generate_token
|
35
36
|
|
36
37
|
hostlist = Hostlist.create(target_filter, options[:service_hostlist_url], options[:concrete_target])
|
37
|
-
cookbook = Cookbook.create(cookbook_name_or_path, token)
|
38
|
+
cookbook = Cookbook.create(cookbook_name_or_path, token, options[:override_mofa_secrets])
|
38
39
|
runlist_map = RunlistMap.create(cookbook, hostlist, token, options[:runlist])
|
39
40
|
attributes_map = AttributesMap.create(cookbook, hostlist, token, options[:runlist], options[:attributes])
|
40
41
|
|
data/lib/mofa/cookbook.rb
CHANGED
@@ -18,15 +18,16 @@ class Cookbook
|
|
18
18
|
attr_accessor :mofa_yml
|
19
19
|
attr_accessor :mofa_yml_local
|
20
20
|
attr_accessor :token
|
21
|
-
|
22
|
-
|
21
|
+
attr_accessor :override_mofa_secrets
|
22
|
+
|
23
|
+
def self.create(cookbook_name_or_path, token, override_mofa_secrets = nil)
|
23
24
|
cookbook = nil
|
24
25
|
begin
|
25
26
|
case
|
26
27
|
when cookbook_name_or_path.match(/@/)
|
27
28
|
fail "Did not find released Cookbook #{cookbook_name_or_path}!" unless ReleasedCookbook.exists?(cookbook_name_or_path)
|
28
29
|
|
29
|
-
cookbook = ReleasedCookbook.new(cookbook_name_or_path)
|
30
|
+
cookbook = ReleasedCookbook.new(cookbook_name_or_path, override_mofa_secrets)
|
30
31
|
|
31
32
|
else
|
32
33
|
cookbook = SourceCookbook.new(cookbook_name_or_path)
|
@@ -14,11 +14,12 @@ class ReleasedCookbook < Cookbook
|
|
14
14
|
RestClient.head(url)
|
15
15
|
end
|
16
16
|
|
17
|
-
def initialize(cookbook_name_or_path)
|
17
|
+
def initialize(cookbook_name_or_path, override_mofa_secrets = nil)
|
18
18
|
super()
|
19
19
|
nv = ReleasedCookbook.get_name_and_version(cookbook_name_or_path)
|
20
20
|
@name = nv['name']
|
21
21
|
@version = nv['version']
|
22
|
+
@override_mofa_secrets = override_mofa_secrets
|
22
23
|
end
|
23
24
|
|
24
25
|
# ------------- Interface Methods
|
@@ -62,6 +63,19 @@ class ReleasedCookbook < Cookbook
|
|
62
63
|
FileUtils.cp_r "#{pkg_dir}/tmp/cookbooks/#{name}/recipes", pkg_dir
|
63
64
|
end
|
64
65
|
|
66
|
+
# Sync in mofa_secrets
|
67
|
+
if override_mofa_secrets
|
68
|
+
run "rsync -avx #{override_mofa_secrets}/ #{pkg_dir}/tmp/cookbooks/#{name}/"
|
69
|
+
end
|
70
|
+
|
71
|
+
if File.exist?("#{pkg_dir}/tmp/cookbooks/#{name}/.mofa.yml")
|
72
|
+
FileUtils.cp "#{pkg_dir}/tmp/cookbooks/#{name}/.mofa.yml", pkg_dir
|
73
|
+
end
|
74
|
+
|
75
|
+
if File.exist?("#{pkg_dir}/tmp/cookbooks/#{name}/.mofa.local.yml")
|
76
|
+
FileUtils.cp "#{pkg_dir}/tmp/cookbooks/#{name}/.mofa.local.yml", pkg_dir
|
77
|
+
end
|
78
|
+
|
65
79
|
run "cd #{pkg_dir}/tmp/;tar c#{tar_verbose}fz #{pkg_dir}/#{pkg_name}.new ."
|
66
80
|
run "rm #{pkg_dir}/#{pkg_name}"
|
67
81
|
run "mv #{pkg_dir}/#{pkg_name}.new #{pkg_dir}/#{pkg_name}"
|
@@ -69,11 +83,11 @@ class ReleasedCookbook < Cookbook
|
|
69
83
|
end
|
70
84
|
|
71
85
|
def load_mofa_yml
|
72
|
-
@mofa_yml = MofaYml.load_from_file("
|
86
|
+
@mofa_yml = MofaYml.load_from_file("#{pkg_dir}/.mofa.yml", self)
|
73
87
|
end
|
74
88
|
|
75
89
|
def load_mofa_yml_local
|
76
|
-
@mofa_yml_local = MofaYml.load_from_file("
|
90
|
+
@mofa_yml_local = MofaYml.load_from_file("#{pkg_dir}/.mofa.local.yml", self)
|
77
91
|
end
|
78
92
|
|
79
93
|
# ------------- /Interface Methods
|
data/lib/mofa/version.rb
CHANGED