class Synapse::ZookeeperAuroraWatcher

Watcher for Zookeeper announcements from Apache Aurora

Public Instance Methods

deserialize_service_instance(data) click to toggle source
# File lib/synapse/service_watcher/zookeeper_aurora.rb, line 55
def deserialize_service_instance(data)
  log.debug 'Deserializing process data'
  decoded = JSON.parse(data)

  name = decoded['shard'].to_s ||
    fail("Instance JSON data missing 'shard' key")

  hostport = if @discovery['port_name']
               decoded['additionalEndpoints'][@discovery['port_name']] ||
                 fail("Endpoint '#{@discovery['port_name']}' not found " \
                      'in instance JSON data')
             else
               decoded['serviceEndpoint']
             end

  host = hostport['host'] || fail("Instance JSON data missing 'host' key")
  port = hostport['port'] || fail("Instance JSON data missing 'port' key")

  [host, port, name]
end
validate_discovery_opts() click to toggle source
# File lib/synapse/service_watcher/zookeeper_aurora.rb, line 44
def validate_discovery_opts
  @discovery['method'] == 'zookeeper_aurora' ||
    fail(ArgumentError,
         "Invalid discovery method: #{@discovery['method']}")
  @discovery['hosts'] ||
    fail(ArgumentError,
         "Missing or invalid zookeeper host for service #{@name}")
  @discovery['path'] ||
    fail(ArgumentError, "Invalid zookeeper path for service #{@name}")
end