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.



537
538
539
540
# File 'lib/smplkit/management/client.rb', line 537

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

Instance Method Details

#_update_logger(logger) ⇒ Object



574
575
576
577
578
# File 'lib/smplkit/management/client.rb', line 574

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

#delete(id) ⇒ Object



569
570
571
572
# File 'lib/smplkit/management/client.rb', line 569

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

#flushObject



548
549
550
551
552
553
554
555
556
# File 'lib/smplkit/management/client.rb', line 548

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

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

#get(id) ⇒ Object



563
564
565
566
567
# File 'lib/smplkit/management/client.rb', line 563

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

#listObject



558
559
560
561
# File 'lib/smplkit/management/client.rb', line 558

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

#register(source) ⇒ Object



542
543
544
545
546
# File 'lib/smplkit/management/client.rb', line 542

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