Method: Deltacloud::Drivers::Openstack::OpenstackDriver#blob_stream_connection
- Defined in:
- lib/deltacloud/drivers/openstack/openstack_driver.rb
#blob_stream_connection(params) ⇒ Object
params: :user,:password,:bucket,:blob,:content_type,:content_length,:metadata params holds the request object - for getting to blob segment params
351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 |
# File 'lib/deltacloud/drivers/openstack/openstack_driver.rb', line 351 def blob_stream_connection(params) if BlobHelper.segmented_blob_op_type(params[:context]) == "segment" params[:blob] = "#{params[:blob]}#{BlobHelper.segment_order(params[:context])}" end tokens = params[:user].split("+") user_name, tenant_name = tokens.first, tokens.last #need a client for the auth_token and endpoints os = OpenStack::Connection.create(:username => user_name, :api_key => params[:password], :authtenant => tenant_name, :auth_url => api_provider, :service_type => "object-store") http = Net::HTTP.new(os.connection.service_host, os.connection.service_port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE path = os.connection.service_path + URI.encode("/#{params[:bucket]}/#{params[:blob]}") request = Net::HTTP::Put.new(path) request['X-Auth-Token'] = os.connection.authtoken request['X-Storage-Token'] = os.connection.authtoken request['Connection'] = "Keep-Alive" request['Content-Type'] = params[:content_type] request['Content-Length'] = params[:content_length] request['Expect'] = "100-continue" = params[:metadata] || {} BlobHelper::(, 'X-Object-Meta-') .each{|k,v| request[k] = v} return http, request end |