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