class QueryData

Public Class Methods

new(logger, query) click to toggle source
# File lib/logstash/inputs/azurewadtable.rb, line 253
def initialize(logger, query)
  @logger = logger
  @query = query
  @results_cache = Set.new
end

Public Instance Methods

get_unique_id(entity) click to toggle source
# File lib/logstash/inputs/azurewadtable.rb, line 263
def get_unique_id(entity)
  uniqueId = ""
  partitionKey = entity.properties["PartitionKey"]
  rowKey = entity.properties["RowKey"]
  uniqueId << partitionKey << "#" << rowKey
  return uniqueId
end
has_entity(entity) click to toggle source
# File lib/logstash/inputs/azurewadtable.rb, line 285
def has_entity(entity)
  return @results_cache.include?(get_unique_id(entity))
end
id() click to toggle source
# File lib/logstash/inputs/azurewadtable.rb, line 259
def id
  return @query.id
end
run_query(on_new_entity_cbk) click to toggle source
# File lib/logstash/inputs/azurewadtable.rb, line 271
def run_query(on_new_entity_cbk)
  @query.reset
  @query.run( ->(entity) {
    uniqueId = get_unique_id(entity)

    if @results_cache.add?(uniqueId).nil?
      @logger.debug("[#{@query.id}][QueryData] #{uniqueId} already processed")
    else
      @logger.debug("[#{@query.id}][QueryData] #{uniqueId} new item")
      on_new_entity_cbk.call(entity)
    end
  })
end