Class: Azure::ARM::Compute::VirtualMachineSizes
- Inherits:
-
Object
- Object
- Azure::ARM::Compute::VirtualMachineSizes
- Includes:
- Models, MsRestAzure
- Defined in:
- lib/azure_mgmt_compute/virtual_machine_sizes.rb
Overview
VirtualMachineSizes
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Reference to the ComputeManagementClient.
Instance Method Summary collapse
-
#initialize(client) ⇒ VirtualMachineSizes
constructor
Creates and initializes a new instance of the VirtualMachineSizes class.
-
#list(location, custom_headers = nil) ⇒ Concurrent::Promise
Lists virtual-machine-sizes available in a location for a subscription.
Constructor Details
#initialize(client) ⇒ VirtualMachineSizes
Creates and initializes a new instance of the VirtualMachineSizes class.
18 19 20 |
# File 'lib/azure_mgmt_compute/virtual_machine_sizes.rb', line 18 def initialize(client) @client = client end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns reference to the ComputeManagementClient.
23 24 25 |
# File 'lib/azure_mgmt_compute/virtual_machine_sizes.rb', line 23 def client @client end |
Instance Method Details
#list(location, custom_headers = nil) ⇒ Concurrent::Promise
Lists virtual-machine-sizes available in a location for a subscription. queried. applied to HTTP request.
response.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/azure_mgmt_compute/virtual_machine_sizes.rb', line 35 def list(location, custom_headers = nil) fail ArgumentError, 'location is nil' if location.nil? fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil? fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil? # Construct URL path = "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes" path['{location}'] = ERB::Util.url_encode(location) if path.include?('{location}') path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}') url = URI.join(@client.base_url, path) properties = {} properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil? unless url.query.nil? url.query.split('&').each do |url_item| url_items_parts = url_item.split('=') properties[url_items_parts[0]] = url_items_parts[1] end end properties.reject!{ |key, value| value.nil? } url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&') fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/') url = URI.parse(corrected_url) connection = Faraday.new(:url => url) do |faraday| faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02 faraday.use :cookie_jar faraday.adapter Faraday.default_adapter end request_headers = Hash.new # Set Headers request_headers['x-ms-client-request-id'] = SecureRandom.uuid request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil? unless custom_headers.nil? custom_headers.each do |key, value| request_headers[key] = value end end # Send Request promise = Concurrent::Promise.new do connection.get do |request| request.headers = request_headers @client.credentials.sign_request(request) unless @client.credentials.nil? end end promise = promise.then do |http_response| status_code = http_response.status response_content = http_response.body unless (status_code == 200) error_model = JSON.load(response_content) fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model) end # Create Result result = MsRestAzure::AzureOperationResponse.new(connection, http_response) result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil? # Deserialize Response if status_code == 200 begin parsed_response = JSON.load(response_content) unless response_content.to_s.empty? unless parsed_response.nil? parsed_response = VirtualMachineSizeListResult.deserialize_object(parsed_response) end result.body = parsed_response rescue Exception => e fail MsRest::DeserializationError.new("Error occured in deserializing the response", e., e.backtrace, response_content) end end result end promise.execute end |