Class: Smplkit::ManagementClient::LoggersNamespace

Inherits:
Object
  • Object
show all
Includes:
HttpHelpers
Defined in:
lib/smplkit/management/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(http) ⇒ LoggersNamespace

Returns a new instance of LoggersNamespace.



582
583
584
585
# File 'lib/smplkit/management/client.rb', line 582

def initialize(http)
  @http = http
  @buffer = Management::LoggerRegistrationBuffer.new
end

Instance Method Details

#_update_logger(logger) ⇒ Object



619
620
621
622
623
# File 'lib/smplkit/management/client.rb', line 619

def _update_logger(logger)
  body = Smplkit::Logging::Helpers.build_logger_body(logger)
  resp = http_put("/api/v1/loggers/#{logger.id || logger.name}", body)
  Smplkit::Logging::Helpers.logger_resource_to_model(self, resp["data"])
end

#delete(id) ⇒ Object



614
615
616
617
# File 'lib/smplkit/management/client.rb', line 614

def delete(id)
  normalized = Smplkit::Logging::Normalize.normalize_logger_name(id)
  http_delete("/api/v1/loggers/#{normalized}")
end

#flushObject



593
594
595
596
597
598
599
600
601
# File 'lib/smplkit/management/client.rb', line 593

def flush
  batch = @buffer.drain
  return if batch.empty?

  body = { "data" => { "type" => "logger_bulk_register", "attributes" => { "loggers" => batch } } }
  http_post("/api/v1/loggers/bulk", body)
rescue StandardError => e
  Smplkit.debug("registration", "logger flush failed: #{e.class}: #{e.message}")
end

#get(id) ⇒ Object



608
609
610
611
612
# File 'lib/smplkit/management/client.rb', line 608

def get(id)
  normalized = Smplkit::Logging::Normalize.normalize_logger_name(id)
  resp = http_get("/api/v1/loggers/#{normalized}")
  Smplkit::Logging::Helpers.logger_resource_to_model(self, resp["data"])
end

#listObject



603
604
605
606
# File 'lib/smplkit/management/client.rb', line 603

def list
  list_resp = http_list("/api/v1/loggers")
  list_resp.map { |r| Smplkit::Logging::Helpers.logger_resource_to_model(self, r) }
end

#register(source) ⇒ Object



587
588
589
590
591
# File 'lib/smplkit/management/client.rb', line 587

def register(source)
  sources = source.is_a?(Array) ? source : [source]
  sources.each { |s| @buffer.add(s) }
  flush if @buffer.pending_count >= Management::LOGGER_BATCH_FLUSH_SIZE
end