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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dcd99bdf01564c9b9328bd816c7d682dca6ac94d
4
- data.tar.gz: 003a564bc69f38caa487927671c7f98e4eaa201e
3
+ metadata.gz: 7c369f7e212b129cc8ac7a5250d52871f2deacc8
4
+ data.tar.gz: 21598b6ea85a9a682ae56f9225427d77c87b189d
5
5
  SHA512:
6
- metadata.gz: 891137548bf9420e4a7bd654d23776257d9d1253d4f349439183dee2efc45cfb00717ac3ab2e9321d96b587ab902a36161d1bcc103ea09487cde7931e657147d
7
- data.tar.gz: e839db1948ea6d4bc9861edf16547bd0304f05e308606918e1b2a89e38511bdf11340bd712c7debe44ebf5eb7d7c24e23a3969c7d7d92b45a2571de2be295c39
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
@@ -1,3 +1,3 @@
1
1
  module BjnInventory
2
- VERSION = "1.5.1"
2
+ VERSION = "1.6.1"
3
3
  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.5.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: 2017-10-27 00:00:00.000000000 Z
11
+ date: 2018-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsonpath