1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[rackspace|queues] adding examples create queue, delete queue, and post message

This commit is contained in:
Kyle Rames 2013-11-14 09:04:08 -06:00
parent b07f011923
commit 1e39b45121
3 changed files with 157 additions and 0 deletions

View file

@ -0,0 +1,45 @@
#!/usr/bin/env ruby
# This example demonstrates creating a queue with the Rackpace Open Cloud
require 'rubygems' #required for Ruby 1.8.x
require 'fog'
def get_user_input(prompt)
print "#{prompt}: "
gets.chomp
end
# Use username defined in ~/.fog file, if absent prompt for username.
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
def rackspace_username
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
end
# Use api key defined in ~/.fog file, if absent prompt for api key
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
def rackspace_api_key
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
end
# create Queue Service
service = Fog::Rackspace::Queues.new({
:rackspace_username => rackspace_username,
:rackspace_api_key => rackspace_api_key,
:rackspace_region => :ord #Use Chicago Region
})
#prompt for queue name
queue_name = get_user_input "Enter name for queue"
begin
# create queue
queue = service.queues.create :name => queue_name
puts "Queue #{queue_name} was successfully created"
puts "To delete the queue please execute the delete_queue.rb script\n\n"
rescue Fog::Rackspace::Queues::ServiceError => e
if e.status_code == 204
puts "Queue #{queue_name} already exists"
end
end

View file

@ -0,0 +1,53 @@
#!/usr/bin/env ruby
# This example demonstrates deleting a queue with the Rackpace Open Cloud
require 'rubygems' #required for Ruby 1.8.x
require 'fog'
def get_user_input(prompt)
print "#{prompt}: "
gets.chomp
end
def select_queue(queues)
abort "\nThere are not any queues to delete in the Chicago region. Try running create_queue.rb\n\n" if queues.empty?
puts "\nSelect Queue To Delete:\n\n"
queues.each_with_index do |queue, i|
puts "\t #{i}. #{queue.name}"
end
delete_str = get_user_input "\nEnter Queue Number"
queues[delete_str.to_i]
end
# Use username defined in ~/.fog file, if absent prompt for username.
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
def rackspace_username
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
end
# Use api key defined in ~/.fog file, if absent prompt for api key
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
def rackspace_api_key
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
end
# create Queue Service
service = Fog::Rackspace::Queues.new({
:rackspace_username => rackspace_username,
:rackspace_api_key => rackspace_api_key,
:rackspace_region => :ord #Use Chicago Region
})
# retrieve list of queues
queues = service.queues
# prompt for queue to delete
queue = select_queue(queues)
# delete queue
queue.destroy
puts "\nQueue #{queue.name} has been destroyed\n"

View file

@ -0,0 +1,59 @@
#!/usr/bin/env ruby
# This example demonstrates deleting a queue with the Rackpace Open Cloud
require 'rubygems' #required for Ruby 1.8.x
require 'fog'
def get_user_input(prompt)
print "#{prompt}: "
gets.chomp
end
def select_queue(queues)
abort "\nThere are not any queues to post a message to in the Chicago region. Try running create_queue.rb\n\n" if queues.empty?
puts "\nSelect Queue To Delete:\n\n"
queues.each_with_index do |queue, i|
puts "\t #{i}. #{queue.name}"
end
delete_str = get_user_input "\nEnter Queue Number"
queues[delete_str.to_i]
end
# Use username defined in ~/.fog file, if absent prompt for username.
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
def rackspace_username
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
end
# Use api key defined in ~/.fog file, if absent prompt for api key
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
def rackspace_api_key
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
end
# create Queue Service
service = Fog::Rackspace::Queues.new({
# :rackspace_username => rackspace_username,
# :rackspace_api_key => rackspace_api_key,
:rackspace_region => :ord #Use Chicago Region
})
# retrieve list of queues
queues = service.queues
# prompt for queue to delete
queue = select_queue(queues)
# prompt for queue message
message = get_user_input "Enter Queue Message"
# time to live TTL = 1 hour
ttl = 3600
# post message to queue
queue.messages.create :body => message, :ttl => ttl
puts "The message has been successfully posted"