Class: AzureAPI::Rest
- Inherits:
-
Object
- Object
- AzureAPI::Rest
- Defined in:
- lib/azure/rest.rb
Instance Method Summary collapse
- #http_setup(uri) ⇒ Object
-
#initialize(params) ⇒ Rest
constructor
A new instance of Rest.
- #query_azure(service_name, verb = 'get', body = '') ⇒ Object
- #query_for_completion ⇒ Object
- #request_setup(uri, verb, body) ⇒ Object
- #showResponse(response) ⇒ Object
Constructor Details
#initialize(params) ⇒ Rest
Returns a new instance of Rest.
25 26 27 28 29 30 |
# File 'lib/azure/rest.rb', line 25 def initialize(params) @subscription_id = params[:azure_subscription_id] @pem_file = params[:azure_mgmt_cert] @host_name = params[:azure_api_host_name] @verify_ssl = params[:verify_ssl_cert] end |
Instance Method Details
#http_setup(uri) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/azure/rest.rb', line 48 def http_setup(uri) http = Net::HTTP.new(uri.host, uri.port) store = OpenSSL::X509::Store.new store.set_default_paths http.cert_store = store if @verify_ssl http.verify_mode = OpenSSL::SSL::VERIFY_PEER else http.verify_mode = OpenSSL::SSL::VERIFY_NONE end http.use_ssl = true begin http.cert = OpenSSL::X509::Certificate.new(@pem_file) rescue OpenSSL::X509::CertificateError => err raise "Invalid Azure Certificate pem file. Error: #{err}" end http.key = OpenSSL::PKey::RSA.new(@pem_file) http end |
#query_azure(service_name, verb = 'get', body = '') ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/azure/rest.rb', line 31 def query_azure(service_name, verb = 'get', body = '') request_url = "https://#{@host_name}/#{@subscription_id}/services/#{service_name}" print '.' uri = URI.parse(request_url) http = http_setup(uri) request = request_setup(uri, verb, body) response = http.request(request) @last_request_id = response['x-ms-request-id'] response end |
#query_for_completion ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/azure/rest.rb', line 41 def query_for_completion() request_url = "https://#{@host_name}/#{@subscription_id}/operations/#{@last_request_id}" uri = URI.parse(request_url) http = http_setup(uri) request = request_setup(uri, 'get', '') response = http.request(request) end |
#request_setup(uri, verb, body) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/azure/rest.rb', line 67 def request_setup(uri, verb, body) if verb == 'get' request = Net::HTTP::Get.new(uri.request_uri) elsif verb == 'post' request = Net::HTTP::Post.new(uri.request_uri) elsif verb == 'delete' request = Net::HTTP::Delete.new(uri.request_uri) end request["x-ms-version"] = "2012-03-01" request["content-type"] = "application/xml" request["accept"] = "application/xml" request["accept-charset"] = "utf-8" request.body = body request end |
#showResponse(response) ⇒ Object
82 83 84 85 86 87 88 89 90 91 |
# File 'lib/azure/rest.rb', line 82 def showResponse(response) puts "=== response body ===" puts response.body puts "=== response.code ===" puts response.code puts "=== response.inspect ===" puts response.inspect puts "=== all of the headers ===" puts response.each_header { |h, j| puts h.inspect + ' : ' + j.inspect} end |