Class: LogStash::Inputs::Rackspace

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

Instance Method Summary collapse

Instance Method Details

#closeObject



85
86
87
# File 'lib/logstash/inputs/rackspace.rb', line 85

def close
  @service = nil
end

#registerObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/logstash/inputs/rackspace.rb', line 31

def register
  require "fog"
  @service = Fog::Rackspace::Queues.new(
    :rackspace_username  => @username,   # Your Rackspace Username
    :rackspace_api_key   => @api_key.value,         # Your Rackspace API key
    :rackspace_region    => @region.to_sym,                  # Your desired region
    :connection_options  => {}                     # Optional connection options
  )

  begin
    @rackspace_queue = @service.queues.create :name => @queue
  rescue Fog::Rackspace::Queues::ServiceError => e
    if e.status_code == 204
      @logger.warn("Queue #{@queue} already exists")
    else
      @logger.warn("something bad happened!")
    end # rescue
  end # begin
  @service.queues.each_with_index do |queue, index|
    if queue.name == @queue
      @rackspace_queue = @service.queues[index]
      break
    end
  end
  @logger.info("Opened connection to rackspace cloud queues")
end

#run(output_queue) ⇒ Object



73
74
75
76
77
78
79
80
81
82
# File 'lib/logstash/inputs/rackspace.rb', line 73

def run(output_queue)
  while !finished?
    claim = @rackspace_queue.claims.create :ttl => @ttl, :grace => 100, :limit => @claim
    if claim
      claim.messages.each do |message|
        queue_event message, output_queue
      end
    end # unless
  end # while !finished
end