Class: AzureQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash/inputs/azurenlogtable.rb

Overview

class LogStash::Inputs::Azurenlogtable

Instance Method Summary collapse

Constructor Details

#initialize(logger, azure_table_service, table_name, query_str, query_id, entity_count_to_process) ⇒ AzureQuery

Returns a new instance of AzureQuery.



167
168
169
170
171
172
173
174
175
# File 'lib/logstash/inputs/azurenlogtable.rb', line 167

def initialize(logger, azure_table_service, table_name, query_str, query_id, entity_count_to_process)
  @logger = logger
  @query_str = query_str
  @query_id = query_id
  @entity_count_to_process = entity_count_to_process
  @azure_table_service = azure_table_service
  @table_name = table_name
  @continuation_token = nil
end

Instance Method Details

#idObject



181
182
183
# File 'lib/logstash/inputs/azurenlogtable.rb', line 181

def id
  return @query_id
end

#resetObject



177
178
179
# File 'lib/logstash/inputs/azurenlogtable.rb', line 177

def reset
  @continuation_token = nil
end

#run(on_result_cbk) ⇒ Object



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# File 'lib/logstash/inputs/azurenlogtable.rb', line 185

def run(on_result_cbk)
  results_found = false
  @logger.debug("[#{@query_id}]Query filter: " + @query_str)
  begin
    @logger.debug("[#{@query_id}]Running query. continuation_token: #{@continuation_token}")
    query = { :top => @entity_count_to_process, :filter => @query_str, :continuation_token => @continuation_token }
    result = @azure_table_service.query_entities(@table_name, query)

    if result and result.length > 0
      results_found = true
      @logger.debug("[#{@query_id}] #{result.length} results found.")
      result.each do |entity|
        on_result_cbk.call(entity)
      end
    end

    @continuation_token = result.continuation_token
  end until !@continuation_token

  return results_found
end