Sha256: f3b956ea29e51597cf688b381247852d7f428867bd4f7cfdf02cacb0982e574b
Contents?: true
Size: 846 Bytes
Versions: 3
Compression:
Stored size: 846 Bytes
Contents
require 'diplomat' module Skalera module Services class Controllers def self.for(controller_uuid) controllers = Diplomat::Kv.get("controllers/#{controller_uuid}", recurse: true) host = extract(controllers, 'address') port = extract(controllers, 'port') [host['address'], port['port']] end def self.extract(controllers, field) result = {} controllers.select { |c| c[:key].match(%r{/#{field}}) }.each do |hash| host = hash[:key].sub(%r{controllers/}, '').split('/')[1] result[host] = hash[:value] end result end def self.add(controller_uuid, host, port) Diplomat::Kv.put("controllers/#{controller_uuid}/address", host) Diplomat::Kv.put("controllers/#{controller_uuid}/port", port) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
skalera-services-0.2.3 | lib/skalera/services/controllers.rb |
skalera-services-0.2.2 | lib/skalera/services/controllers.rb |
skalera-services-0.2.1 | lib/skalera/services/controllers.rb |