class OpenstackBridge::Swift

Attributes

authentication[RW]

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/openstack_bridge/swift.rb, line 5
def initialize(*)
  super
  self.authentication = OpenstackBridge::Authentication.new(host, user, password, tenant)
  raise "Wrong authentication response" if !self.authentication.response || !self.authentication.response['access']
end

Public Instance Methods

container(name) click to toggle source
# File lib/openstack_bridge/swift.rb, line 31
def container(name)
  create(name) unless containers.include?(name)
  OpenstackBridge::Container.new(self, name)
end
containers() click to toggle source
# File lib/openstack_bridge/swift.rb, line 19
def containers
  request(:get, "#{end_point}").raw_body.split("\n")
end
create(name) click to toggle source
# File lib/openstack_bridge/swift.rb, line 23
def create(name)
  request(:put, "#{end_point}/#{name}")
end
delete(name) click to toggle source
# File lib/openstack_bridge/swift.rb, line 27
def delete(name)
  request(:delete, "#{end_point}/#{name}")
end
end_point() click to toggle source
# File lib/openstack_bridge/swift.rb, line 15
def end_point
  (region ? end_points.detect { |end_point| end_point['region'] == region } : end_points.first)['publicURL']
end
end_points() click to toggle source
# File lib/openstack_bridge/swift.rb, line 11
def end_points
  self.authentication.response['access']['serviceCatalog'].detect {|s| s['name'] == 'swift'}['endpoints']
end
request(method, path, params={}.to_json, httpclient = false) click to toggle source
# File lib/openstack_bridge/swift.rb, line 36
def request(method, path, params={}.to_json, httpclient = false)
  request = HTTPI::Request.new
  request.url = path
  request.body = params
  request.headers['Content-Type'] = 'application/json'
  request.headers['X-Auth-Token'] = authentication.token
  response = HTTPI.send(method, request, (httpclient ? :httpclient : :curb))
  raise OpenstackBridge::Error.new(self), response.raw_body unless [200, 201, 202, 204].include?(response.code.to_i)
  response
end