vagrant-opsworks 0.0.5 → 0.0.8
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9dd57f8c18a8b61cfdaf3f751859221cde75816d
|
4
|
+
data.tar.gz: edacca8d60558893cd1d72d1286e9a7b15e0103d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53f7f35568d7abe63e824cd0a78cf5a9d41f33092aadd52b294de4c75fb9c8fe412acbe2d0101888f2902e4493ae711022fa696c7f6ae02cbfd77c4c5031fa9a
|
7
|
+
data.tar.gz: aaacc79f7cb8a27d3d83d95e9a2ca89c0a7bc392f0e6e6bbec407e807b6ffc2777fae364dd47a81fe66eac1359815b326e3ca873a73150b2a40c34a97750f0d5
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module OpsWorks
|
3
|
+
require_relative 'custom_json'
|
4
|
+
|
3
5
|
class Config < ::Vagrant.plugin('2', :config)
|
4
6
|
# @return [Boolean]
|
5
7
|
# disable use of OpsWorks in Vagrant
|
@@ -76,8 +78,8 @@ module VagrantPlugins
|
|
76
78
|
@ignore_instances = Array.new if @ignore_instances == UNSET_VALUE
|
77
79
|
@ignore_layers = Array.new if @ignore_layers == UNSET_VALUE
|
78
80
|
@ignore_recipes = Array.new if @ignore_recipes == UNSET_VALUE
|
79
|
-
|
80
|
-
|
81
|
+
|
82
|
+
default_json = VagrantPlugins::OpsWorks::CustomJson.new({
|
81
83
|
:opsworks => {
|
82
84
|
:agent_version => @agent_version,
|
83
85
|
:ruby_version => '2.0.0',
|
@@ -94,10 +96,13 @@ module VagrantPlugins
|
|
94
96
|
},
|
95
97
|
},
|
96
98
|
:sudoers => [{:name => 'vagrant'}]
|
97
|
-
}
|
99
|
+
})
|
100
|
+
|
101
|
+
@supplimental_json = default_json if @supplimental_json == UNSET_VALUE
|
102
|
+
@supplimental_json = default_json.deep_merge(@supplimental_json) unless @supplimental_json == UNSET_VALUE
|
98
103
|
end
|
99
104
|
|
100
|
-
# TODO:
|
105
|
+
# TODO: implement proper merge handling
|
101
106
|
# def merge(other)
|
102
107
|
# super.tap do |result|
|
103
108
|
# result.ignore_apps = Array.new if other.ignore_apps.nil?
|
@@ -129,28 +134,6 @@ module VagrantPlugins
|
|
129
134
|
{'opsworks configuration' => errors}
|
130
135
|
end
|
131
136
|
|
132
|
-
protected
|
133
|
-
|
134
|
-
def merge_hash(old, new)
|
135
|
-
old = unsymbolize_keys(old)
|
136
|
-
new = unsymbolize_keys(new)
|
137
|
-
|
138
|
-
new.each_pair{|current_key,new_value|
|
139
|
-
old_value = old[current_key]
|
140
|
-
|
141
|
-
old[current_key] = if old_value.is_a?(Hash) && new_value.is_a?(Hash)
|
142
|
-
merge_hash(old_value, new_value)
|
143
|
-
else
|
144
|
-
new_value
|
145
|
-
end
|
146
|
-
}
|
147
|
-
old
|
148
|
-
end
|
149
|
-
|
150
|
-
def unsymbolize_keys(h)
|
151
|
-
return Hash[h.map{ |k,v| [k.to_s, v] }]
|
152
|
-
end
|
153
|
-
|
154
137
|
end
|
155
138
|
end
|
156
139
|
end
|
@@ -2,6 +2,15 @@ module VagrantPlugins::OpsWorks
|
|
2
2
|
require 'vagrant/util/hash_with_indifferent_access'
|
3
3
|
class CustomJson < ::Vagrant::Util::HashWithIndifferentAccess
|
4
4
|
|
5
|
+
def initialize(hash={}, &block)
|
6
|
+
super(hash, &block)
|
7
|
+
|
8
|
+
self.each_pair do |k,v|
|
9
|
+
v = self.class.new(v) if v.is_a?(Hash)
|
10
|
+
self[k] = v
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
5
14
|
def deep_merge(other_json, &block)
|
6
15
|
dup.deep_merge!(other_json, &block)
|
7
16
|
end
|
@@ -17,7 +17,7 @@ module VagrantPlugins::OpsWorks::Loader
|
|
17
17
|
end
|
18
18
|
|
19
19
|
env[:config].vm.provision :shell do |s|
|
20
|
-
s.inline = "DEBIAN_FRONTEND=noninteractive apt-get -qq install acl &&setfacl -m o:rw $SSH_AUTH_SOCK && setfacl -m o:x $(dirname $SSH_AUTH_SOCK)
|
20
|
+
s.inline = '[ -n "$SSH_AUTH_SOCK" ] && DEBIAN_FRONTEND=noninteractive apt-get -qq install acl && setfacl -m o:rw $SSH_AUTH_SOCK && setfacl -m o:x $(dirname $SSH_AUTH_SOCK)'
|
21
21
|
end
|
22
22
|
|
23
23
|
@app.pass(env)
|