bjn_inventory 1.5.1 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -2
- data/lib/bjn_inventory/service_map.rb +22 -0
- data/lib/bjn_inventory/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c369f7e212b129cc8ac7a5250d52871f2deacc8
|
4
|
+
data.tar.gz: 21598b6ea85a9a682ae56f9225427d77c87b189d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9a44ce178222496e27deeb2d5f4ac243d16f281380e88acfd138ece48e906f4cc62bd5ebeaffe3ca695a18144daf0f6acf365725011982ea96ca9001ccd5f30
|
7
|
+
data.tar.gz: 14822ee517b05531ffb82397316658d9794f13482639d3135d909dc63826058ec396393bdb225518ba23868253d135f81288283544b1b32410e4c5bd72553f8b
|
data/README.md
CHANGED
@@ -307,6 +307,12 @@ You create the following service map:
|
|
307
307
|
"hosts": ["web"],
|
308
308
|
"port": 80
|
309
309
|
}
|
310
|
+
"$cluster": {
|
311
|
+
"qwerty": {
|
312
|
+
"hosts": ["qwerty"],
|
313
|
+
"hosts_override": "$region.$cluster.com"
|
314
|
+
}
|
315
|
+
}
|
310
316
|
}
|
311
317
|
},
|
312
318
|
"monitor": {
|
@@ -328,11 +334,17 @@ get the following output:
|
|
328
334
|
"services": {
|
329
335
|
"us-west-2": {
|
330
336
|
"www.hosts": "10.0.1.1",
|
331
|
-
"www.port": 80
|
337
|
+
"www.port": 80,
|
338
|
+
"qwerty_cluster": {
|
339
|
+
"qwerty.hosts": "us-west-2.qwerty_cluster.com"
|
340
|
+
}
|
332
341
|
},
|
333
342
|
"eu-west-1": {
|
334
343
|
"www.hosts": "10.0.10.1",
|
335
|
-
"www.port": 80
|
344
|
+
"www.port": 80,
|
345
|
+
"qwerty_cluster": {
|
346
|
+
"qwerty.hosts": "eu-west-1.qwerty_cluster.com"
|
347
|
+
}
|
336
348
|
}
|
337
349
|
},
|
338
350
|
"monitor": {
|
@@ -11,6 +11,7 @@ module BjnInventory
|
|
11
11
|
@logger = kwargs[:logger] || BjnInventory::DefaultLogger.new
|
12
12
|
|
13
13
|
@hosts_field = kwargs[:hosts] || 'hosts'
|
14
|
+
@hosts_override = kwargs[:hosts_override] || 'hosts_override'
|
14
15
|
@endpoint_fields = kwargs[:endpoint_fields] || ['endpoint', 'ip_address']
|
15
16
|
@join = kwargs[:join] || ','
|
16
17
|
separator = kwargs[:separator] || '__'
|
@@ -67,6 +68,10 @@ module BjnInventory
|
|
67
68
|
end
|
68
69
|
service_keylist[interpolated_path][@hosts_field] << _endpoint(self[device_name])
|
69
70
|
end
|
71
|
+
if service[@hosts_override] && service_keylist[interpolated_path][@hosts_field]
|
72
|
+
service_keylist[interpolated_path][@hosts_field] = [_interpolate_value(path, self[device_name], service[@hosts_override])]
|
73
|
+
service_keylist[interpolated_path].delete(@hosts_override)
|
74
|
+
end
|
70
75
|
end
|
71
76
|
end
|
72
77
|
end
|
@@ -85,6 +90,23 @@ module BjnInventory
|
|
85
90
|
end
|
86
91
|
end
|
87
92
|
|
93
|
+
def _interpolate_value(path, device, value)
|
94
|
+
replacement_value = value
|
95
|
+
path.each do |component, continued_path|
|
96
|
+
if component.start_with? '$$'
|
97
|
+
replacement_value = replacement_value.gsub(component, component[1 .. -1])
|
98
|
+
elsif component.start_with? '$'
|
99
|
+
replacement_value = replacement_value.gsub(component, device[component[1 .. -1]])
|
100
|
+
else
|
101
|
+
replacement_value = replacement_value
|
102
|
+
end
|
103
|
+
if path.is_a?(Hash)
|
104
|
+
replacement_value = _interpolate_value(continued_path, device, replacement_value)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
replacement_value
|
108
|
+
end
|
109
|
+
|
88
110
|
def _endpoint(device)
|
89
111
|
@endpoint_fields.map { |field| device[field] }.reject { |e| e.nil? }.first
|
90
112
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bjn_inventory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Brinkley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jsonpath
|