azure_mgmt_compute 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +3 -0
- data/.travis.yml +3 -0
- data/Gemfile +17 -0
- data/LICENSE.txt +21 -0
- data/README.md +139 -0
- data/Rakefile +5 -0
- data/azure_mgmt_compute.gemspec +39 -0
- data/lib/azure_mgmt_compute.rb +103 -0
- data/lib/azure_mgmt_compute/Models/additional_unattend_content.rb +108 -0
- data/lib/azure_mgmt_compute/Models/api_error.rb +121 -0
- data/lib/azure_mgmt_compute/Models/api_error_base.rb +76 -0
- data/lib/azure_mgmt_compute/Models/availability_set.rb +94 -0
- data/lib/azure_mgmt_compute/Models/availability_set_list_result.rb +79 -0
- data/lib/azure_mgmt_compute/Models/availability_set_properties.rb +130 -0
- data/lib/azure_mgmt_compute/Models/caching_types.rb +17 -0
- data/lib/azure_mgmt_compute/Models/component_names.rb +15 -0
- data/lib/azure_mgmt_compute/Models/compute_long_running_operation_properties.rb +58 -0
- data/lib/azure_mgmt_compute/Models/compute_long_running_operation_result.rb +126 -0
- data/lib/azure_mgmt_compute/Models/compute_operation_status.rb +18 -0
- data/lib/azure_mgmt_compute/Models/data_disk.rb +142 -0
- data/lib/azure_mgmt_compute/Models/data_disk_image.rb +62 -0
- data/lib/azure_mgmt_compute/Models/delete_operation_result.rb +109 -0
- data/lib/azure_mgmt_compute/Models/disk_create_option_types.rb +17 -0
- data/lib/azure_mgmt_compute/Models/disk_instance_view.rb +88 -0
- data/lib/azure_mgmt_compute/Models/hardware_profile.rb +67 -0
- data/lib/azure_mgmt_compute/Models/image_reference.rb +87 -0
- data/lib/azure_mgmt_compute/Models/inner_error.rb +68 -0
- data/lib/azure_mgmt_compute/Models/instance_view_status.rb +102 -0
- data/lib/azure_mgmt_compute/Models/linux_configuration.rb +75 -0
- data/lib/azure_mgmt_compute/Models/list_usages_result.rb +78 -0
- data/lib/azure_mgmt_compute/Models/network_interface_reference.rb +70 -0
- data/lib/azure_mgmt_compute/Models/network_interface_reference_properties.rb +59 -0
- data/lib/azure_mgmt_compute/Models/network_profile.rb +79 -0
- data/lib/azure_mgmt_compute/Models/operating_system_types.rb +16 -0
- data/lib/azure_mgmt_compute/Models/operation_status.rb +17 -0
- data/lib/azure_mgmt_compute/Models/osdisk.rb +135 -0
- data/lib/azure_mgmt_compute/Models/osdisk_image.rb +63 -0
- data/lib/azure_mgmt_compute/Models/osprofile.rb +149 -0
- data/lib/azure_mgmt_compute/Models/pass_names.rb +15 -0
- data/lib/azure_mgmt_compute/Models/plan.rb +85 -0
- data/lib/azure_mgmt_compute/Models/protocol_types.rb +16 -0
- data/lib/azure_mgmt_compute/Models/purchase_plan.rb +77 -0
- data/lib/azure_mgmt_compute/Models/setting_names.rb +16 -0
- data/lib/azure_mgmt_compute/Models/ssh_configuration.rb +79 -0
- data/lib/azure_mgmt_compute/Models/ssh_public_key.rb +72 -0
- data/lib/azure_mgmt_compute/Models/status_level_types.rb +17 -0
- data/lib/azure_mgmt_compute/Models/storage_profile.rb +110 -0
- data/lib/azure_mgmt_compute/Models/usage.rb +98 -0
- data/lib/azure_mgmt_compute/Models/usage_name.rb +68 -0
- data/lib/azure_mgmt_compute/Models/usage_unit.rb +15 -0
- data/lib/azure_mgmt_compute/Models/vault_certificate.rb +70 -0
- data/lib/azure_mgmt_compute/Models/vault_secret_group.rb +96 -0
- data/lib/azure_mgmt_compute/Models/virtual_hard_disk.rb +59 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine.rb +142 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_agent_instance_view.rb +119 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_capture_parameters.rb +78 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_extension.rb +94 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_extension_handler_instance_view.rb +85 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_extension_image.rb +99 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_extension_image_properties.rb +102 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_extension_instance_view.rb +139 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_extension_properties.rb +133 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_image.rb +99 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_image_properties.rb +110 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_image_resource.rb +83 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_instance_view.rb +188 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_list_result.rb +89 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_properties.rb +156 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_size.rb +111 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_size_list_result.rb +79 -0
- data/lib/azure_mgmt_compute/Models/virtual_machine_size_types.rb +34 -0
- data/lib/azure_mgmt_compute/Models/win_rmconfiguration.rb +79 -0
- data/lib/azure_mgmt_compute/Models/win_rmlistener.rb +73 -0
- data/lib/azure_mgmt_compute/Models/windows_configuration.rb +126 -0
- data/lib/azure_mgmt_compute/availability_sets.rb +473 -0
- data/lib/azure_mgmt_compute/compute_management_client.rb +85 -0
- data/lib/azure_mgmt_compute/module_definition.rb +6 -0
- data/lib/azure_mgmt_compute/usage_operations.rb +113 -0
- data/lib/azure_mgmt_compute/version.rb +6 -0
- data/lib/azure_mgmt_compute/virtual_machine_extension_images.rb +325 -0
- data/lib/azure_mgmt_compute/virtual_machine_extensions.rb +384 -0
- data/lib/azure_mgmt_compute/virtual_machine_images.rb +525 -0
- data/lib/azure_mgmt_compute/virtual_machine_sizes.rb +114 -0
- data/lib/azure_mgmt_compute/virtual_machines.rb +1412 -0
- metadata +303 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
|
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
|
4
|
+
# regenerated.
|
|
5
|
+
|
|
6
|
+
module Azure::ARM::Compute
|
|
7
|
+
#
|
|
8
|
+
# VirtualMachineSizes
|
|
9
|
+
#
|
|
10
|
+
class VirtualMachineSizes
|
|
11
|
+
include Azure::ARM::Compute::Models
|
|
12
|
+
include MsRestAzure
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# Creates and initializes a new instance of the VirtualMachineSizes class.
|
|
16
|
+
# @param client service class for accessing basic functionality.
|
|
17
|
+
#
|
|
18
|
+
def initialize(client)
|
|
19
|
+
@client = client
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @return reference to the ComputeManagementClient
|
|
23
|
+
attr_reader :client
|
|
24
|
+
|
|
25
|
+
#
|
|
26
|
+
# Lists virtual-machine-sizes available in a location for a subscription.
|
|
27
|
+
# @param location [String] The location upon which virtual-machine-sizes is
|
|
28
|
+
# queried.
|
|
29
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
30
|
+
# applied to HTTP request.
|
|
31
|
+
#
|
|
32
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
33
|
+
# response.
|
|
34
|
+
#
|
|
35
|
+
def list(location, custom_headers = nil)
|
|
36
|
+
fail ArgumentError, 'location is nil' if location.nil?
|
|
37
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
38
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
39
|
+
# Construct URL
|
|
40
|
+
path = "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes"
|
|
41
|
+
path['{location}'] = ERB::Util.url_encode(location) if path.include?('{location}')
|
|
42
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
43
|
+
url = URI.join(@client.base_url, path)
|
|
44
|
+
properties = {}
|
|
45
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
46
|
+
unless url.query.nil?
|
|
47
|
+
url.query.split('&').each do |url_item|
|
|
48
|
+
url_items_parts = url_item.split('=')
|
|
49
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
properties.reject!{ |key, value| value.nil? }
|
|
53
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
54
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
55
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
56
|
+
url = URI.parse(corrected_url)
|
|
57
|
+
|
|
58
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
59
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
60
|
+
faraday.use :cookie_jar
|
|
61
|
+
faraday.adapter Faraday.default_adapter
|
|
62
|
+
end
|
|
63
|
+
request_headers = Hash.new
|
|
64
|
+
|
|
65
|
+
# Set Headers
|
|
66
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
67
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
68
|
+
|
|
69
|
+
unless custom_headers.nil?
|
|
70
|
+
custom_headers.each do |key, value|
|
|
71
|
+
request_headers[key] = value
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Send Request
|
|
76
|
+
promise = Concurrent::Promise.new do
|
|
77
|
+
connection.get do |request|
|
|
78
|
+
request.headers = request_headers
|
|
79
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
promise = promise.then do |http_response|
|
|
84
|
+
status_code = http_response.status
|
|
85
|
+
response_content = http_response.body
|
|
86
|
+
unless (status_code == 200)
|
|
87
|
+
error_model = JSON.load(response_content)
|
|
88
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Create Result
|
|
92
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
93
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
94
|
+
# Deserialize Response
|
|
95
|
+
if status_code == 200
|
|
96
|
+
begin
|
|
97
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
98
|
+
unless parsed_response.nil?
|
|
99
|
+
parsed_response = VirtualMachineSizeListResult.deserialize_object(parsed_response)
|
|
100
|
+
end
|
|
101
|
+
result.body = parsed_response
|
|
102
|
+
rescue Exception => e
|
|
103
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
result
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
promise.execute
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,1412 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
|
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
|
4
|
+
# regenerated.
|
|
5
|
+
|
|
6
|
+
module Azure::ARM::Compute
|
|
7
|
+
#
|
|
8
|
+
# VirtualMachines
|
|
9
|
+
#
|
|
10
|
+
class VirtualMachines
|
|
11
|
+
include Azure::ARM::Compute::Models
|
|
12
|
+
include MsRestAzure
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# Creates and initializes a new instance of the VirtualMachines class.
|
|
16
|
+
# @param client service class for accessing basic functionality.
|
|
17
|
+
#
|
|
18
|
+
def initialize(client)
|
|
19
|
+
@client = client
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @return reference to the ComputeManagementClient
|
|
23
|
+
attr_reader :client
|
|
24
|
+
|
|
25
|
+
#
|
|
26
|
+
# Captures the VM by copying VirtualHardDisks of the VM and outputs a template
|
|
27
|
+
# that can be used to create similar VMs.
|
|
28
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
29
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
30
|
+
# @param parameters [VirtualMachineCaptureParameters] Parameters supplied to
|
|
31
|
+
# the Capture Virtual Machine operation.
|
|
32
|
+
# @return [Concurrent::Promise] promise which provides async access to http
|
|
33
|
+
# response.
|
|
34
|
+
#
|
|
35
|
+
def capture(resource_group_name, vm_name, parameters, custom_headers = nil)
|
|
36
|
+
# Send request
|
|
37
|
+
promise = begin_capture(resource_group_name, vm_name, parameters, custom_headers)
|
|
38
|
+
|
|
39
|
+
promise = promise.then do |response|
|
|
40
|
+
# Defining deserialization method.
|
|
41
|
+
deserialize_method = lambda do |parsed_response|
|
|
42
|
+
unless parsed_response.nil?
|
|
43
|
+
parsed_response = ComputeLongRunningOperationResult.deserialize_object(parsed_response)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Waiting for response.
|
|
48
|
+
@client.get_post_or_delete_operation_result(response, nil, deserialize_method)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
promise
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
#
|
|
55
|
+
# Captures the VM by copying VirtualHardDisks of the VM and outputs a template
|
|
56
|
+
# that can be used to create similar VMs.
|
|
57
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
58
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
59
|
+
# @param parameters [VirtualMachineCaptureParameters] Parameters supplied to
|
|
60
|
+
# the Capture Virtual Machine operation.
|
|
61
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
62
|
+
# applied to HTTP request.
|
|
63
|
+
#
|
|
64
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
65
|
+
# response.
|
|
66
|
+
#
|
|
67
|
+
def begin_capture(resource_group_name, vm_name, parameters, custom_headers = nil)
|
|
68
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
69
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
70
|
+
fail ArgumentError, 'parameters is nil' if parameters.nil?
|
|
71
|
+
parameters.validate unless parameters.nil?
|
|
72
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
73
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
74
|
+
# Construct URL
|
|
75
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture"
|
|
76
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
77
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
78
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
79
|
+
url = URI.join(@client.base_url, path)
|
|
80
|
+
properties = {}
|
|
81
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
82
|
+
unless url.query.nil?
|
|
83
|
+
url.query.split('&').each do |url_item|
|
|
84
|
+
url_items_parts = url_item.split('=')
|
|
85
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
properties.reject!{ |key, value| value.nil? }
|
|
89
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
90
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
91
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
92
|
+
url = URI.parse(corrected_url)
|
|
93
|
+
|
|
94
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
95
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
96
|
+
faraday.use :cookie_jar
|
|
97
|
+
faraday.adapter Faraday.default_adapter
|
|
98
|
+
end
|
|
99
|
+
request_headers = Hash.new
|
|
100
|
+
|
|
101
|
+
# Set Headers
|
|
102
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
103
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
104
|
+
|
|
105
|
+
unless custom_headers.nil?
|
|
106
|
+
custom_headers.each do |key, value|
|
|
107
|
+
request_headers[key] = value
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Serialize Request
|
|
112
|
+
request_headers['Content-Type'] = 'application/json'
|
|
113
|
+
unless parameters.nil?
|
|
114
|
+
parameters = VirtualMachineCaptureParameters.serialize_object(parameters)
|
|
115
|
+
end
|
|
116
|
+
request_content = JSON.generate(parameters, quirks_mode: true)
|
|
117
|
+
|
|
118
|
+
# Send Request
|
|
119
|
+
promise = Concurrent::Promise.new do
|
|
120
|
+
connection.post do |request|
|
|
121
|
+
request.headers = request_headers
|
|
122
|
+
request.body = request_content
|
|
123
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
promise = promise.then do |http_response|
|
|
128
|
+
status_code = http_response.status
|
|
129
|
+
response_content = http_response.body
|
|
130
|
+
unless (status_code == 200 || status_code == 202)
|
|
131
|
+
error_model = JSON.load(response_content)
|
|
132
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Create Result
|
|
136
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
137
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
138
|
+
# Deserialize Response
|
|
139
|
+
if status_code == 200
|
|
140
|
+
begin
|
|
141
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
142
|
+
unless parsed_response.nil?
|
|
143
|
+
parsed_response = ComputeLongRunningOperationResult.deserialize_object(parsed_response)
|
|
144
|
+
end
|
|
145
|
+
result.body = parsed_response
|
|
146
|
+
rescue Exception => e
|
|
147
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
result
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
promise.execute
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
#
|
|
158
|
+
# The operation to create or update a virtual machine.
|
|
159
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
160
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
161
|
+
# @param parameters [VirtualMachine] Parameters supplied to the Create Virtual
|
|
162
|
+
# Machine operation.
|
|
163
|
+
# @param @client.api_version [String] Client Api Version.
|
|
164
|
+
# @param @client.subscription_id [String] Gets subscription credentials which
|
|
165
|
+
# uniquely identify Microsoft Azure subscription. The subscription ID forms
|
|
166
|
+
# part of the URI for every service call.
|
|
167
|
+
# @param @client.accept_language [String] Gets or sets the preferred language
|
|
168
|
+
# for the response.
|
|
169
|
+
#
|
|
170
|
+
# @return [Concurrent::Promise] promise which provides async access to http
|
|
171
|
+
# response.
|
|
172
|
+
#
|
|
173
|
+
def create_or_update(resource_group_name, vm_name, parameters, custom_headers = nil)
|
|
174
|
+
# Send request
|
|
175
|
+
promise = begin_create_or_update(resource_group_name, vm_name, parameters, custom_headers)
|
|
176
|
+
|
|
177
|
+
promise = promise.then do |response|
|
|
178
|
+
# Defining deserialization method.
|
|
179
|
+
deserialize_method = lambda do |parsed_response|
|
|
180
|
+
unless parsed_response.nil?
|
|
181
|
+
parsed_response = VirtualMachine.deserialize_object(parsed_response)
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
# Waiting for response.
|
|
186
|
+
@client.get_put_operation_result(response, custom_headers, deserialize_method)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
promise
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
#
|
|
193
|
+
# The operation to create or update a virtual machine.
|
|
194
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
195
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
196
|
+
# @param parameters [VirtualMachine] Parameters supplied to the Create Virtual
|
|
197
|
+
# Machine operation.
|
|
198
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
199
|
+
# applied to HTTP request.
|
|
200
|
+
#
|
|
201
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
202
|
+
# response.
|
|
203
|
+
#
|
|
204
|
+
def begin_create_or_update(resource_group_name, vm_name, parameters, custom_headers = nil)
|
|
205
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
206
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
207
|
+
fail ArgumentError, 'parameters is nil' if parameters.nil?
|
|
208
|
+
parameters.validate unless parameters.nil?
|
|
209
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
210
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
211
|
+
# Construct URL
|
|
212
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}"
|
|
213
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
214
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
215
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
216
|
+
url = URI.join(@client.base_url, path)
|
|
217
|
+
properties = {}
|
|
218
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
219
|
+
unless url.query.nil?
|
|
220
|
+
url.query.split('&').each do |url_item|
|
|
221
|
+
url_items_parts = url_item.split('=')
|
|
222
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
properties.reject!{ |key, value| value.nil? }
|
|
226
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
227
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
228
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
229
|
+
url = URI.parse(corrected_url)
|
|
230
|
+
|
|
231
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
232
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
233
|
+
faraday.use :cookie_jar
|
|
234
|
+
faraday.adapter Faraday.default_adapter
|
|
235
|
+
end
|
|
236
|
+
request_headers = Hash.new
|
|
237
|
+
|
|
238
|
+
# Set Headers
|
|
239
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
240
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
241
|
+
|
|
242
|
+
unless custom_headers.nil?
|
|
243
|
+
custom_headers.each do |key, value|
|
|
244
|
+
request_headers[key] = value
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
# Serialize Request
|
|
249
|
+
request_headers['Content-Type'] = 'application/json'
|
|
250
|
+
unless parameters.nil?
|
|
251
|
+
parameters = VirtualMachine.serialize_object(parameters)
|
|
252
|
+
end
|
|
253
|
+
request_content = JSON.generate(parameters, quirks_mode: true)
|
|
254
|
+
|
|
255
|
+
# Send Request
|
|
256
|
+
promise = Concurrent::Promise.new do
|
|
257
|
+
connection.put do |request|
|
|
258
|
+
request.headers = request_headers
|
|
259
|
+
request.body = request_content
|
|
260
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
promise = promise.then do |http_response|
|
|
265
|
+
status_code = http_response.status
|
|
266
|
+
response_content = http_response.body
|
|
267
|
+
unless (status_code == 201 || status_code == 200)
|
|
268
|
+
error_model = JSON.load(response_content)
|
|
269
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
# Create Result
|
|
273
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
274
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
275
|
+
# Deserialize Response
|
|
276
|
+
if status_code == 201
|
|
277
|
+
begin
|
|
278
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
279
|
+
unless parsed_response.nil?
|
|
280
|
+
parsed_response = VirtualMachine.deserialize_object(parsed_response)
|
|
281
|
+
end
|
|
282
|
+
result.body = parsed_response
|
|
283
|
+
rescue Exception => e
|
|
284
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
# Deserialize Response
|
|
288
|
+
if status_code == 200
|
|
289
|
+
begin
|
|
290
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
291
|
+
unless parsed_response.nil?
|
|
292
|
+
parsed_response = VirtualMachine.deserialize_object(parsed_response)
|
|
293
|
+
end
|
|
294
|
+
result.body = parsed_response
|
|
295
|
+
rescue Exception => e
|
|
296
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
297
|
+
end
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
result
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
promise.execute
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
#
|
|
307
|
+
# The operation to delete a virtual machine.
|
|
308
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
309
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
310
|
+
# @return [Concurrent::Promise] promise which provides async access to http
|
|
311
|
+
# response.
|
|
312
|
+
#
|
|
313
|
+
def delete(resource_group_name, vm_name, custom_headers = nil)
|
|
314
|
+
# Send request
|
|
315
|
+
promise = begin_delete(resource_group_name, vm_name, custom_headers)
|
|
316
|
+
|
|
317
|
+
promise = promise.then do |response|
|
|
318
|
+
# Defining deserialization method.
|
|
319
|
+
deserialize_method = lambda do |parsed_response|
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
# Waiting for response.
|
|
323
|
+
@client.get_post_or_delete_operation_result(response, nil, deserialize_method)
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
promise
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
#
|
|
330
|
+
# The operation to delete a virtual machine.
|
|
331
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
332
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
333
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
334
|
+
# applied to HTTP request.
|
|
335
|
+
#
|
|
336
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
337
|
+
# response.
|
|
338
|
+
#
|
|
339
|
+
def begin_delete(resource_group_name, vm_name, custom_headers = nil)
|
|
340
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
341
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
342
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
343
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
344
|
+
# Construct URL
|
|
345
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}"
|
|
346
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
347
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
348
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
349
|
+
url = URI.join(@client.base_url, path)
|
|
350
|
+
properties = {}
|
|
351
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
352
|
+
unless url.query.nil?
|
|
353
|
+
url.query.split('&').each do |url_item|
|
|
354
|
+
url_items_parts = url_item.split('=')
|
|
355
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
356
|
+
end
|
|
357
|
+
end
|
|
358
|
+
properties.reject!{ |key, value| value.nil? }
|
|
359
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
360
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
361
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
362
|
+
url = URI.parse(corrected_url)
|
|
363
|
+
|
|
364
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
365
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
366
|
+
faraday.use :cookie_jar
|
|
367
|
+
faraday.adapter Faraday.default_adapter
|
|
368
|
+
end
|
|
369
|
+
request_headers = Hash.new
|
|
370
|
+
|
|
371
|
+
# Set Headers
|
|
372
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
373
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
374
|
+
|
|
375
|
+
unless custom_headers.nil?
|
|
376
|
+
custom_headers.each do |key, value|
|
|
377
|
+
request_headers[key] = value
|
|
378
|
+
end
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
# Send Request
|
|
382
|
+
promise = Concurrent::Promise.new do
|
|
383
|
+
connection.delete do |request|
|
|
384
|
+
request.headers = request_headers
|
|
385
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
386
|
+
end
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
promise = promise.then do |http_response|
|
|
390
|
+
status_code = http_response.status
|
|
391
|
+
response_content = http_response.body
|
|
392
|
+
unless (status_code == 200 || status_code == 204 || status_code == 202)
|
|
393
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response)
|
|
394
|
+
end
|
|
395
|
+
|
|
396
|
+
# Create Result
|
|
397
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
398
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
399
|
+
|
|
400
|
+
result
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
promise.execute
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
#
|
|
407
|
+
# The operation to get a virtual machine.
|
|
408
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
409
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
410
|
+
# @param expand [String] Name of the property to expand. Allowed value is null
|
|
411
|
+
# or 'instanceView'.
|
|
412
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
413
|
+
# applied to HTTP request.
|
|
414
|
+
#
|
|
415
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
416
|
+
# response.
|
|
417
|
+
#
|
|
418
|
+
def get(resource_group_name, vm_name, expand = nil, custom_headers = nil)
|
|
419
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
420
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
421
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
422
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
423
|
+
# Construct URL
|
|
424
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}"
|
|
425
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
426
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
427
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
428
|
+
url = URI.join(@client.base_url, path)
|
|
429
|
+
properties = {}
|
|
430
|
+
properties['$expand'] = ERB::Util.url_encode(expand.to_s) unless expand.nil?
|
|
431
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
432
|
+
unless url.query.nil?
|
|
433
|
+
url.query.split('&').each do |url_item|
|
|
434
|
+
url_items_parts = url_item.split('=')
|
|
435
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
properties.reject!{ |key, value| value.nil? }
|
|
439
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
440
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
441
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
442
|
+
url = URI.parse(corrected_url)
|
|
443
|
+
|
|
444
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
445
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
446
|
+
faraday.use :cookie_jar
|
|
447
|
+
faraday.adapter Faraday.default_adapter
|
|
448
|
+
end
|
|
449
|
+
request_headers = Hash.new
|
|
450
|
+
|
|
451
|
+
# Set Headers
|
|
452
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
453
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
454
|
+
|
|
455
|
+
unless custom_headers.nil?
|
|
456
|
+
custom_headers.each do |key, value|
|
|
457
|
+
request_headers[key] = value
|
|
458
|
+
end
|
|
459
|
+
end
|
|
460
|
+
|
|
461
|
+
# Send Request
|
|
462
|
+
promise = Concurrent::Promise.new do
|
|
463
|
+
connection.get do |request|
|
|
464
|
+
request.headers = request_headers
|
|
465
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
466
|
+
end
|
|
467
|
+
end
|
|
468
|
+
|
|
469
|
+
promise = promise.then do |http_response|
|
|
470
|
+
status_code = http_response.status
|
|
471
|
+
response_content = http_response.body
|
|
472
|
+
unless (status_code == 200)
|
|
473
|
+
error_model = JSON.load(response_content)
|
|
474
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
475
|
+
end
|
|
476
|
+
|
|
477
|
+
# Create Result
|
|
478
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
479
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
480
|
+
# Deserialize Response
|
|
481
|
+
if status_code == 200
|
|
482
|
+
begin
|
|
483
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
484
|
+
unless parsed_response.nil?
|
|
485
|
+
parsed_response = VirtualMachine.deserialize_object(parsed_response)
|
|
486
|
+
end
|
|
487
|
+
result.body = parsed_response
|
|
488
|
+
rescue Exception => e
|
|
489
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
490
|
+
end
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
result
|
|
494
|
+
end
|
|
495
|
+
|
|
496
|
+
promise.execute
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
#
|
|
500
|
+
# Shuts down the Virtual Machine and releases the compute resources. You are
|
|
501
|
+
# not billed for the compute resources that this Virtual Machine uses.
|
|
502
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
503
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
504
|
+
# @return [Concurrent::Promise] promise which provides async access to http
|
|
505
|
+
# response.
|
|
506
|
+
#
|
|
507
|
+
def deallocate(resource_group_name, vm_name, custom_headers = nil)
|
|
508
|
+
# Send request
|
|
509
|
+
promise = begin_deallocate(resource_group_name, vm_name, custom_headers)
|
|
510
|
+
|
|
511
|
+
promise = promise.then do |response|
|
|
512
|
+
# Defining deserialization method.
|
|
513
|
+
deserialize_method = lambda do |parsed_response|
|
|
514
|
+
end
|
|
515
|
+
|
|
516
|
+
# Waiting for response.
|
|
517
|
+
@client.get_post_or_delete_operation_result(response, nil, deserialize_method)
|
|
518
|
+
end
|
|
519
|
+
|
|
520
|
+
promise
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
#
|
|
524
|
+
# Shuts down the Virtual Machine and releases the compute resources. You are
|
|
525
|
+
# not billed for the compute resources that this Virtual Machine uses.
|
|
526
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
527
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
528
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
529
|
+
# applied to HTTP request.
|
|
530
|
+
#
|
|
531
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
532
|
+
# response.
|
|
533
|
+
#
|
|
534
|
+
def begin_deallocate(resource_group_name, vm_name, custom_headers = nil)
|
|
535
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
536
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
537
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
538
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
539
|
+
# Construct URL
|
|
540
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate"
|
|
541
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
542
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
543
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
544
|
+
url = URI.join(@client.base_url, path)
|
|
545
|
+
properties = {}
|
|
546
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
547
|
+
unless url.query.nil?
|
|
548
|
+
url.query.split('&').each do |url_item|
|
|
549
|
+
url_items_parts = url_item.split('=')
|
|
550
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
551
|
+
end
|
|
552
|
+
end
|
|
553
|
+
properties.reject!{ |key, value| value.nil? }
|
|
554
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
555
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
556
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
557
|
+
url = URI.parse(corrected_url)
|
|
558
|
+
|
|
559
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
560
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
561
|
+
faraday.use :cookie_jar
|
|
562
|
+
faraday.adapter Faraday.default_adapter
|
|
563
|
+
end
|
|
564
|
+
request_headers = Hash.new
|
|
565
|
+
|
|
566
|
+
# Set Headers
|
|
567
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
568
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
569
|
+
|
|
570
|
+
unless custom_headers.nil?
|
|
571
|
+
custom_headers.each do |key, value|
|
|
572
|
+
request_headers[key] = value
|
|
573
|
+
end
|
|
574
|
+
end
|
|
575
|
+
|
|
576
|
+
# Send Request
|
|
577
|
+
promise = Concurrent::Promise.new do
|
|
578
|
+
connection.post do |request|
|
|
579
|
+
request.headers = request_headers
|
|
580
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
581
|
+
end
|
|
582
|
+
end
|
|
583
|
+
|
|
584
|
+
promise = promise.then do |http_response|
|
|
585
|
+
status_code = http_response.status
|
|
586
|
+
response_content = http_response.body
|
|
587
|
+
unless (status_code == 202)
|
|
588
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response)
|
|
589
|
+
end
|
|
590
|
+
|
|
591
|
+
# Create Result
|
|
592
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
593
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
594
|
+
|
|
595
|
+
result
|
|
596
|
+
end
|
|
597
|
+
|
|
598
|
+
promise.execute
|
|
599
|
+
end
|
|
600
|
+
|
|
601
|
+
#
|
|
602
|
+
# Sets the state of the VM as Generalized.
|
|
603
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
604
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
605
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
606
|
+
# applied to HTTP request.
|
|
607
|
+
#
|
|
608
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
609
|
+
# response.
|
|
610
|
+
#
|
|
611
|
+
def generalize(resource_group_name, vm_name, custom_headers = nil)
|
|
612
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
613
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
614
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
615
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
616
|
+
# Construct URL
|
|
617
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/generalize"
|
|
618
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
619
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
620
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
621
|
+
url = URI.join(@client.base_url, path)
|
|
622
|
+
properties = {}
|
|
623
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
624
|
+
unless url.query.nil?
|
|
625
|
+
url.query.split('&').each do |url_item|
|
|
626
|
+
url_items_parts = url_item.split('=')
|
|
627
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
628
|
+
end
|
|
629
|
+
end
|
|
630
|
+
properties.reject!{ |key, value| value.nil? }
|
|
631
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
632
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
633
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
634
|
+
url = URI.parse(corrected_url)
|
|
635
|
+
|
|
636
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
637
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
638
|
+
faraday.use :cookie_jar
|
|
639
|
+
faraday.adapter Faraday.default_adapter
|
|
640
|
+
end
|
|
641
|
+
request_headers = Hash.new
|
|
642
|
+
|
|
643
|
+
# Set Headers
|
|
644
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
645
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
646
|
+
|
|
647
|
+
unless custom_headers.nil?
|
|
648
|
+
custom_headers.each do |key, value|
|
|
649
|
+
request_headers[key] = value
|
|
650
|
+
end
|
|
651
|
+
end
|
|
652
|
+
|
|
653
|
+
# Send Request
|
|
654
|
+
promise = Concurrent::Promise.new do
|
|
655
|
+
connection.post do |request|
|
|
656
|
+
request.headers = request_headers
|
|
657
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
658
|
+
end
|
|
659
|
+
end
|
|
660
|
+
|
|
661
|
+
promise = promise.then do |http_response|
|
|
662
|
+
status_code = http_response.status
|
|
663
|
+
response_content = http_response.body
|
|
664
|
+
unless (status_code == 200)
|
|
665
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response)
|
|
666
|
+
end
|
|
667
|
+
|
|
668
|
+
# Create Result
|
|
669
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
670
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
671
|
+
|
|
672
|
+
result
|
|
673
|
+
end
|
|
674
|
+
|
|
675
|
+
promise.execute
|
|
676
|
+
end
|
|
677
|
+
|
|
678
|
+
#
|
|
679
|
+
# The operation to list virtual machines under a resource group.
|
|
680
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
681
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
682
|
+
# applied to HTTP request.
|
|
683
|
+
#
|
|
684
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
685
|
+
# response.
|
|
686
|
+
#
|
|
687
|
+
def list(resource_group_name, custom_headers = nil)
|
|
688
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
689
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
690
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
691
|
+
# Construct URL
|
|
692
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines"
|
|
693
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
694
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
695
|
+
url = URI.join(@client.base_url, path)
|
|
696
|
+
properties = {}
|
|
697
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
698
|
+
unless url.query.nil?
|
|
699
|
+
url.query.split('&').each do |url_item|
|
|
700
|
+
url_items_parts = url_item.split('=')
|
|
701
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
702
|
+
end
|
|
703
|
+
end
|
|
704
|
+
properties.reject!{ |key, value| value.nil? }
|
|
705
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
706
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
707
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
708
|
+
url = URI.parse(corrected_url)
|
|
709
|
+
|
|
710
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
711
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
712
|
+
faraday.use :cookie_jar
|
|
713
|
+
faraday.adapter Faraday.default_adapter
|
|
714
|
+
end
|
|
715
|
+
request_headers = Hash.new
|
|
716
|
+
|
|
717
|
+
# Set Headers
|
|
718
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
719
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
720
|
+
|
|
721
|
+
unless custom_headers.nil?
|
|
722
|
+
custom_headers.each do |key, value|
|
|
723
|
+
request_headers[key] = value
|
|
724
|
+
end
|
|
725
|
+
end
|
|
726
|
+
|
|
727
|
+
# Send Request
|
|
728
|
+
promise = Concurrent::Promise.new do
|
|
729
|
+
connection.get do |request|
|
|
730
|
+
request.headers = request_headers
|
|
731
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
732
|
+
end
|
|
733
|
+
end
|
|
734
|
+
|
|
735
|
+
promise = promise.then do |http_response|
|
|
736
|
+
status_code = http_response.status
|
|
737
|
+
response_content = http_response.body
|
|
738
|
+
unless (status_code == 200)
|
|
739
|
+
error_model = JSON.load(response_content)
|
|
740
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
741
|
+
end
|
|
742
|
+
|
|
743
|
+
# Create Result
|
|
744
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
745
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
746
|
+
# Deserialize Response
|
|
747
|
+
if status_code == 200
|
|
748
|
+
begin
|
|
749
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
750
|
+
unless parsed_response.nil?
|
|
751
|
+
parsed_response = VirtualMachineListResult.deserialize_object(parsed_response)
|
|
752
|
+
end
|
|
753
|
+
result.body = parsed_response
|
|
754
|
+
rescue Exception => e
|
|
755
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
756
|
+
end
|
|
757
|
+
end
|
|
758
|
+
|
|
759
|
+
result
|
|
760
|
+
end
|
|
761
|
+
|
|
762
|
+
promise.execute
|
|
763
|
+
end
|
|
764
|
+
|
|
765
|
+
#
|
|
766
|
+
# Gets the list of Virtual Machines in the subscription. Use nextLink property
|
|
767
|
+
# in the response to get the next page of Virtual Machines. Do this till
|
|
768
|
+
# nextLink is not null to fetch all the Virtual Machines.
|
|
769
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
770
|
+
# applied to HTTP request.
|
|
771
|
+
#
|
|
772
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
773
|
+
# response.
|
|
774
|
+
#
|
|
775
|
+
def list_all(custom_headers = nil)
|
|
776
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
777
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
778
|
+
# Construct URL
|
|
779
|
+
path = "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines"
|
|
780
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
781
|
+
url = URI.join(@client.base_url, path)
|
|
782
|
+
properties = {}
|
|
783
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
784
|
+
unless url.query.nil?
|
|
785
|
+
url.query.split('&').each do |url_item|
|
|
786
|
+
url_items_parts = url_item.split('=')
|
|
787
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
788
|
+
end
|
|
789
|
+
end
|
|
790
|
+
properties.reject!{ |key, value| value.nil? }
|
|
791
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
792
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
793
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
794
|
+
url = URI.parse(corrected_url)
|
|
795
|
+
|
|
796
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
797
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
798
|
+
faraday.use :cookie_jar
|
|
799
|
+
faraday.adapter Faraday.default_adapter
|
|
800
|
+
end
|
|
801
|
+
request_headers = Hash.new
|
|
802
|
+
|
|
803
|
+
# Set Headers
|
|
804
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
805
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
806
|
+
|
|
807
|
+
unless custom_headers.nil?
|
|
808
|
+
custom_headers.each do |key, value|
|
|
809
|
+
request_headers[key] = value
|
|
810
|
+
end
|
|
811
|
+
end
|
|
812
|
+
|
|
813
|
+
# Send Request
|
|
814
|
+
promise = Concurrent::Promise.new do
|
|
815
|
+
connection.get do |request|
|
|
816
|
+
request.headers = request_headers
|
|
817
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
818
|
+
end
|
|
819
|
+
end
|
|
820
|
+
|
|
821
|
+
promise = promise.then do |http_response|
|
|
822
|
+
status_code = http_response.status
|
|
823
|
+
response_content = http_response.body
|
|
824
|
+
unless (status_code == 200)
|
|
825
|
+
error_model = JSON.load(response_content)
|
|
826
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
827
|
+
end
|
|
828
|
+
|
|
829
|
+
# Create Result
|
|
830
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
831
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
832
|
+
# Deserialize Response
|
|
833
|
+
if status_code == 200
|
|
834
|
+
begin
|
|
835
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
836
|
+
unless parsed_response.nil?
|
|
837
|
+
parsed_response = VirtualMachineListResult.deserialize_object(parsed_response)
|
|
838
|
+
end
|
|
839
|
+
result.body = parsed_response
|
|
840
|
+
rescue Exception => e
|
|
841
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
842
|
+
end
|
|
843
|
+
end
|
|
844
|
+
|
|
845
|
+
result
|
|
846
|
+
end
|
|
847
|
+
|
|
848
|
+
promise.execute
|
|
849
|
+
end
|
|
850
|
+
|
|
851
|
+
#
|
|
852
|
+
# Lists virtual-machine-sizes available to be used for a virtual machine.
|
|
853
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
854
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
855
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
856
|
+
# applied to HTTP request.
|
|
857
|
+
#
|
|
858
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
859
|
+
# response.
|
|
860
|
+
#
|
|
861
|
+
def list_available_sizes(resource_group_name, vm_name, custom_headers = nil)
|
|
862
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
863
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
864
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
865
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
866
|
+
# Construct URL
|
|
867
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/vmSizes"
|
|
868
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
869
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
870
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
871
|
+
url = URI.join(@client.base_url, path)
|
|
872
|
+
properties = {}
|
|
873
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
874
|
+
unless url.query.nil?
|
|
875
|
+
url.query.split('&').each do |url_item|
|
|
876
|
+
url_items_parts = url_item.split('=')
|
|
877
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
878
|
+
end
|
|
879
|
+
end
|
|
880
|
+
properties.reject!{ |key, value| value.nil? }
|
|
881
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
882
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
883
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
884
|
+
url = URI.parse(corrected_url)
|
|
885
|
+
|
|
886
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
887
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
888
|
+
faraday.use :cookie_jar
|
|
889
|
+
faraday.adapter Faraday.default_adapter
|
|
890
|
+
end
|
|
891
|
+
request_headers = Hash.new
|
|
892
|
+
|
|
893
|
+
# Set Headers
|
|
894
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
895
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
896
|
+
|
|
897
|
+
unless custom_headers.nil?
|
|
898
|
+
custom_headers.each do |key, value|
|
|
899
|
+
request_headers[key] = value
|
|
900
|
+
end
|
|
901
|
+
end
|
|
902
|
+
|
|
903
|
+
# Send Request
|
|
904
|
+
promise = Concurrent::Promise.new do
|
|
905
|
+
connection.get do |request|
|
|
906
|
+
request.headers = request_headers
|
|
907
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
908
|
+
end
|
|
909
|
+
end
|
|
910
|
+
|
|
911
|
+
promise = promise.then do |http_response|
|
|
912
|
+
status_code = http_response.status
|
|
913
|
+
response_content = http_response.body
|
|
914
|
+
unless (status_code == 200)
|
|
915
|
+
error_model = JSON.load(response_content)
|
|
916
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
917
|
+
end
|
|
918
|
+
|
|
919
|
+
# Create Result
|
|
920
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
921
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
922
|
+
# Deserialize Response
|
|
923
|
+
if status_code == 200
|
|
924
|
+
begin
|
|
925
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
926
|
+
unless parsed_response.nil?
|
|
927
|
+
parsed_response = VirtualMachineSizeListResult.deserialize_object(parsed_response)
|
|
928
|
+
end
|
|
929
|
+
result.body = parsed_response
|
|
930
|
+
rescue Exception => e
|
|
931
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
932
|
+
end
|
|
933
|
+
end
|
|
934
|
+
|
|
935
|
+
result
|
|
936
|
+
end
|
|
937
|
+
|
|
938
|
+
promise.execute
|
|
939
|
+
end
|
|
940
|
+
|
|
941
|
+
#
|
|
942
|
+
# The operation to power off (stop) a virtual machine.
|
|
943
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
944
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
945
|
+
# @return [Concurrent::Promise] promise which provides async access to http
|
|
946
|
+
# response.
|
|
947
|
+
#
|
|
948
|
+
def power_off(resource_group_name, vm_name, custom_headers = nil)
|
|
949
|
+
# Send request
|
|
950
|
+
promise = begin_power_off(resource_group_name, vm_name, custom_headers)
|
|
951
|
+
|
|
952
|
+
promise = promise.then do |response|
|
|
953
|
+
# Defining deserialization method.
|
|
954
|
+
deserialize_method = lambda do |parsed_response|
|
|
955
|
+
end
|
|
956
|
+
|
|
957
|
+
# Waiting for response.
|
|
958
|
+
@client.get_post_or_delete_operation_result(response, nil, deserialize_method)
|
|
959
|
+
end
|
|
960
|
+
|
|
961
|
+
promise
|
|
962
|
+
end
|
|
963
|
+
|
|
964
|
+
#
|
|
965
|
+
# The operation to power off (stop) a virtual machine.
|
|
966
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
967
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
968
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
969
|
+
# applied to HTTP request.
|
|
970
|
+
#
|
|
971
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
972
|
+
# response.
|
|
973
|
+
#
|
|
974
|
+
def begin_power_off(resource_group_name, vm_name, custom_headers = nil)
|
|
975
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
976
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
977
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
978
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
979
|
+
# Construct URL
|
|
980
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff"
|
|
981
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
982
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
983
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
984
|
+
url = URI.join(@client.base_url, path)
|
|
985
|
+
properties = {}
|
|
986
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
987
|
+
unless url.query.nil?
|
|
988
|
+
url.query.split('&').each do |url_item|
|
|
989
|
+
url_items_parts = url_item.split('=')
|
|
990
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
991
|
+
end
|
|
992
|
+
end
|
|
993
|
+
properties.reject!{ |key, value| value.nil? }
|
|
994
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
995
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
996
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
997
|
+
url = URI.parse(corrected_url)
|
|
998
|
+
|
|
999
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
1000
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
1001
|
+
faraday.use :cookie_jar
|
|
1002
|
+
faraday.adapter Faraday.default_adapter
|
|
1003
|
+
end
|
|
1004
|
+
request_headers = Hash.new
|
|
1005
|
+
|
|
1006
|
+
# Set Headers
|
|
1007
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
1008
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
1009
|
+
|
|
1010
|
+
unless custom_headers.nil?
|
|
1011
|
+
custom_headers.each do |key, value|
|
|
1012
|
+
request_headers[key] = value
|
|
1013
|
+
end
|
|
1014
|
+
end
|
|
1015
|
+
|
|
1016
|
+
# Send Request
|
|
1017
|
+
promise = Concurrent::Promise.new do
|
|
1018
|
+
connection.post do |request|
|
|
1019
|
+
request.headers = request_headers
|
|
1020
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
1021
|
+
end
|
|
1022
|
+
end
|
|
1023
|
+
|
|
1024
|
+
promise = promise.then do |http_response|
|
|
1025
|
+
status_code = http_response.status
|
|
1026
|
+
response_content = http_response.body
|
|
1027
|
+
unless (status_code == 202)
|
|
1028
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response)
|
|
1029
|
+
end
|
|
1030
|
+
|
|
1031
|
+
# Create Result
|
|
1032
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
1033
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
1034
|
+
|
|
1035
|
+
result
|
|
1036
|
+
end
|
|
1037
|
+
|
|
1038
|
+
promise.execute
|
|
1039
|
+
end
|
|
1040
|
+
|
|
1041
|
+
#
|
|
1042
|
+
# The operation to restart a virtual machine.
|
|
1043
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
1044
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
1045
|
+
# @return [Concurrent::Promise] promise which provides async access to http
|
|
1046
|
+
# response.
|
|
1047
|
+
#
|
|
1048
|
+
def restart(resource_group_name, vm_name, custom_headers = nil)
|
|
1049
|
+
# Send request
|
|
1050
|
+
promise = begin_restart(resource_group_name, vm_name, custom_headers)
|
|
1051
|
+
|
|
1052
|
+
promise = promise.then do |response|
|
|
1053
|
+
# Defining deserialization method.
|
|
1054
|
+
deserialize_method = lambda do |parsed_response|
|
|
1055
|
+
end
|
|
1056
|
+
|
|
1057
|
+
# Waiting for response.
|
|
1058
|
+
@client.get_post_or_delete_operation_result(response, nil, deserialize_method)
|
|
1059
|
+
end
|
|
1060
|
+
|
|
1061
|
+
promise
|
|
1062
|
+
end
|
|
1063
|
+
|
|
1064
|
+
#
|
|
1065
|
+
# The operation to restart a virtual machine.
|
|
1066
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
1067
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
1068
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
1069
|
+
# applied to HTTP request.
|
|
1070
|
+
#
|
|
1071
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
1072
|
+
# response.
|
|
1073
|
+
#
|
|
1074
|
+
def begin_restart(resource_group_name, vm_name, custom_headers = nil)
|
|
1075
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
1076
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
1077
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
1078
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
1079
|
+
# Construct URL
|
|
1080
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart"
|
|
1081
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
1082
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
1083
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
1084
|
+
url = URI.join(@client.base_url, path)
|
|
1085
|
+
properties = {}
|
|
1086
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
1087
|
+
unless url.query.nil?
|
|
1088
|
+
url.query.split('&').each do |url_item|
|
|
1089
|
+
url_items_parts = url_item.split('=')
|
|
1090
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
1091
|
+
end
|
|
1092
|
+
end
|
|
1093
|
+
properties.reject!{ |key, value| value.nil? }
|
|
1094
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
1095
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
1096
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
1097
|
+
url = URI.parse(corrected_url)
|
|
1098
|
+
|
|
1099
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
1100
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
1101
|
+
faraday.use :cookie_jar
|
|
1102
|
+
faraday.adapter Faraday.default_adapter
|
|
1103
|
+
end
|
|
1104
|
+
request_headers = Hash.new
|
|
1105
|
+
|
|
1106
|
+
# Set Headers
|
|
1107
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
1108
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
1109
|
+
|
|
1110
|
+
unless custom_headers.nil?
|
|
1111
|
+
custom_headers.each do |key, value|
|
|
1112
|
+
request_headers[key] = value
|
|
1113
|
+
end
|
|
1114
|
+
end
|
|
1115
|
+
|
|
1116
|
+
# Send Request
|
|
1117
|
+
promise = Concurrent::Promise.new do
|
|
1118
|
+
connection.post do |request|
|
|
1119
|
+
request.headers = request_headers
|
|
1120
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
1121
|
+
end
|
|
1122
|
+
end
|
|
1123
|
+
|
|
1124
|
+
promise = promise.then do |http_response|
|
|
1125
|
+
status_code = http_response.status
|
|
1126
|
+
response_content = http_response.body
|
|
1127
|
+
unless (status_code == 202)
|
|
1128
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response)
|
|
1129
|
+
end
|
|
1130
|
+
|
|
1131
|
+
# Create Result
|
|
1132
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
1133
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
1134
|
+
|
|
1135
|
+
result
|
|
1136
|
+
end
|
|
1137
|
+
|
|
1138
|
+
promise.execute
|
|
1139
|
+
end
|
|
1140
|
+
|
|
1141
|
+
#
|
|
1142
|
+
# The operation to start a virtual machine.
|
|
1143
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
1144
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
1145
|
+
# @return [Concurrent::Promise] promise which provides async access to http
|
|
1146
|
+
# response.
|
|
1147
|
+
#
|
|
1148
|
+
def start(resource_group_name, vm_name, custom_headers = nil)
|
|
1149
|
+
# Send request
|
|
1150
|
+
promise = begin_start(resource_group_name, vm_name, custom_headers)
|
|
1151
|
+
|
|
1152
|
+
promise = promise.then do |response|
|
|
1153
|
+
# Defining deserialization method.
|
|
1154
|
+
deserialize_method = lambda do |parsed_response|
|
|
1155
|
+
end
|
|
1156
|
+
|
|
1157
|
+
# Waiting for response.
|
|
1158
|
+
@client.get_post_or_delete_operation_result(response, nil, deserialize_method)
|
|
1159
|
+
end
|
|
1160
|
+
|
|
1161
|
+
promise
|
|
1162
|
+
end
|
|
1163
|
+
|
|
1164
|
+
#
|
|
1165
|
+
# The operation to start a virtual machine.
|
|
1166
|
+
# @param resource_group_name [String] The name of the resource group.
|
|
1167
|
+
# @param vm_name [String] The name of the virtual machine.
|
|
1168
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
1169
|
+
# applied to HTTP request.
|
|
1170
|
+
#
|
|
1171
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
1172
|
+
# response.
|
|
1173
|
+
#
|
|
1174
|
+
def begin_start(resource_group_name, vm_name, custom_headers = nil)
|
|
1175
|
+
fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
|
|
1176
|
+
fail ArgumentError, 'vm_name is nil' if vm_name.nil?
|
|
1177
|
+
fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
|
|
1178
|
+
fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
|
|
1179
|
+
# Construct URL
|
|
1180
|
+
path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start"
|
|
1181
|
+
path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
|
|
1182
|
+
path['{vmName}'] = ERB::Util.url_encode(vm_name) if path.include?('{vmName}')
|
|
1183
|
+
path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
|
|
1184
|
+
url = URI.join(@client.base_url, path)
|
|
1185
|
+
properties = {}
|
|
1186
|
+
properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
|
|
1187
|
+
unless url.query.nil?
|
|
1188
|
+
url.query.split('&').each do |url_item|
|
|
1189
|
+
url_items_parts = url_item.split('=')
|
|
1190
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
1191
|
+
end
|
|
1192
|
+
end
|
|
1193
|
+
properties.reject!{ |key, value| value.nil? }
|
|
1194
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
1195
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
1196
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
1197
|
+
url = URI.parse(corrected_url)
|
|
1198
|
+
|
|
1199
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
1200
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
1201
|
+
faraday.use :cookie_jar
|
|
1202
|
+
faraday.adapter Faraday.default_adapter
|
|
1203
|
+
end
|
|
1204
|
+
request_headers = Hash.new
|
|
1205
|
+
|
|
1206
|
+
# Set Headers
|
|
1207
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
1208
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
1209
|
+
|
|
1210
|
+
unless custom_headers.nil?
|
|
1211
|
+
custom_headers.each do |key, value|
|
|
1212
|
+
request_headers[key] = value
|
|
1213
|
+
end
|
|
1214
|
+
end
|
|
1215
|
+
|
|
1216
|
+
# Send Request
|
|
1217
|
+
promise = Concurrent::Promise.new do
|
|
1218
|
+
connection.post do |request|
|
|
1219
|
+
request.headers = request_headers
|
|
1220
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
1221
|
+
end
|
|
1222
|
+
end
|
|
1223
|
+
|
|
1224
|
+
promise = promise.then do |http_response|
|
|
1225
|
+
status_code = http_response.status
|
|
1226
|
+
response_content = http_response.body
|
|
1227
|
+
unless (status_code == 202)
|
|
1228
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response)
|
|
1229
|
+
end
|
|
1230
|
+
|
|
1231
|
+
# Create Result
|
|
1232
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
1233
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
1234
|
+
|
|
1235
|
+
result
|
|
1236
|
+
end
|
|
1237
|
+
|
|
1238
|
+
promise.execute
|
|
1239
|
+
end
|
|
1240
|
+
|
|
1241
|
+
#
|
|
1242
|
+
# The operation to list virtual machines under a resource group.
|
|
1243
|
+
# @param next_page_link [String] The NextLink from the previous successful
|
|
1244
|
+
# call to List operation.
|
|
1245
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
1246
|
+
# applied to HTTP request.
|
|
1247
|
+
#
|
|
1248
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
1249
|
+
# response.
|
|
1250
|
+
#
|
|
1251
|
+
def list_next(next_page_link, custom_headers = nil)
|
|
1252
|
+
fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
|
|
1253
|
+
# Construct URL
|
|
1254
|
+
path = "{nextLink}"
|
|
1255
|
+
path['{nextLink}'] = next_page_link if path.include?('{nextLink}')
|
|
1256
|
+
url = URI.parse(path)
|
|
1257
|
+
properties = {}
|
|
1258
|
+
unless url.query.nil?
|
|
1259
|
+
url.query.split('&').each do |url_item|
|
|
1260
|
+
url_items_parts = url_item.split('=')
|
|
1261
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
1262
|
+
end
|
|
1263
|
+
end
|
|
1264
|
+
properties.reject!{ |key, value| value.nil? }
|
|
1265
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
1266
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
1267
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
1268
|
+
url = URI.parse(corrected_url)
|
|
1269
|
+
|
|
1270
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
1271
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
1272
|
+
faraday.use :cookie_jar
|
|
1273
|
+
faraday.adapter Faraday.default_adapter
|
|
1274
|
+
end
|
|
1275
|
+
request_headers = Hash.new
|
|
1276
|
+
|
|
1277
|
+
# Set Headers
|
|
1278
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
1279
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
1280
|
+
|
|
1281
|
+
unless custom_headers.nil?
|
|
1282
|
+
custom_headers.each do |key, value|
|
|
1283
|
+
request_headers[key] = value
|
|
1284
|
+
end
|
|
1285
|
+
end
|
|
1286
|
+
|
|
1287
|
+
# Send Request
|
|
1288
|
+
promise = Concurrent::Promise.new do
|
|
1289
|
+
connection.get do |request|
|
|
1290
|
+
request.headers = request_headers
|
|
1291
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
1292
|
+
end
|
|
1293
|
+
end
|
|
1294
|
+
|
|
1295
|
+
promise = promise.then do |http_response|
|
|
1296
|
+
status_code = http_response.status
|
|
1297
|
+
response_content = http_response.body
|
|
1298
|
+
unless (status_code == 200)
|
|
1299
|
+
error_model = JSON.load(response_content)
|
|
1300
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
1301
|
+
end
|
|
1302
|
+
|
|
1303
|
+
# Create Result
|
|
1304
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
1305
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
1306
|
+
# Deserialize Response
|
|
1307
|
+
if status_code == 200
|
|
1308
|
+
begin
|
|
1309
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
1310
|
+
unless parsed_response.nil?
|
|
1311
|
+
parsed_response = VirtualMachineListResult.deserialize_object(parsed_response)
|
|
1312
|
+
end
|
|
1313
|
+
result.body = parsed_response
|
|
1314
|
+
rescue Exception => e
|
|
1315
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
1316
|
+
end
|
|
1317
|
+
end
|
|
1318
|
+
|
|
1319
|
+
result
|
|
1320
|
+
end
|
|
1321
|
+
|
|
1322
|
+
promise.execute
|
|
1323
|
+
end
|
|
1324
|
+
|
|
1325
|
+
#
|
|
1326
|
+
# Gets the list of Virtual Machines in the subscription. Use nextLink property
|
|
1327
|
+
# in the response to get the next page of Virtual Machines. Do this till
|
|
1328
|
+
# nextLink is not null to fetch all the Virtual Machines.
|
|
1329
|
+
# @param next_page_link [String] The NextLink from the previous successful
|
|
1330
|
+
# call to List operation.
|
|
1331
|
+
# @param [Hash{String => String}] The hash of custom headers need to be
|
|
1332
|
+
# applied to HTTP request.
|
|
1333
|
+
#
|
|
1334
|
+
# @return [Concurrent::Promise] Promise object which allows to get HTTP
|
|
1335
|
+
# response.
|
|
1336
|
+
#
|
|
1337
|
+
def list_all_next(next_page_link, custom_headers = nil)
|
|
1338
|
+
fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
|
|
1339
|
+
# Construct URL
|
|
1340
|
+
path = "{nextLink}"
|
|
1341
|
+
path['{nextLink}'] = next_page_link if path.include?('{nextLink}')
|
|
1342
|
+
url = URI.parse(path)
|
|
1343
|
+
properties = {}
|
|
1344
|
+
unless url.query.nil?
|
|
1345
|
+
url.query.split('&').each do |url_item|
|
|
1346
|
+
url_items_parts = url_item.split('=')
|
|
1347
|
+
properties[url_items_parts[0]] = url_items_parts[1]
|
|
1348
|
+
end
|
|
1349
|
+
end
|
|
1350
|
+
properties.reject!{ |key, value| value.nil? }
|
|
1351
|
+
url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
|
|
1352
|
+
fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
|
|
1353
|
+
corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
|
|
1354
|
+
url = URI.parse(corrected_url)
|
|
1355
|
+
|
|
1356
|
+
connection = Faraday.new(:url => url) do |faraday|
|
|
1357
|
+
faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
|
|
1358
|
+
faraday.use :cookie_jar
|
|
1359
|
+
faraday.adapter Faraday.default_adapter
|
|
1360
|
+
end
|
|
1361
|
+
request_headers = Hash.new
|
|
1362
|
+
|
|
1363
|
+
# Set Headers
|
|
1364
|
+
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
|
|
1365
|
+
request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
|
|
1366
|
+
|
|
1367
|
+
unless custom_headers.nil?
|
|
1368
|
+
custom_headers.each do |key, value|
|
|
1369
|
+
request_headers[key] = value
|
|
1370
|
+
end
|
|
1371
|
+
end
|
|
1372
|
+
|
|
1373
|
+
# Send Request
|
|
1374
|
+
promise = Concurrent::Promise.new do
|
|
1375
|
+
connection.get do |request|
|
|
1376
|
+
request.headers = request_headers
|
|
1377
|
+
@client.credentials.sign_request(request) unless @client.credentials.nil?
|
|
1378
|
+
end
|
|
1379
|
+
end
|
|
1380
|
+
|
|
1381
|
+
promise = promise.then do |http_response|
|
|
1382
|
+
status_code = http_response.status
|
|
1383
|
+
response_content = http_response.body
|
|
1384
|
+
unless (status_code == 200)
|
|
1385
|
+
error_model = JSON.load(response_content)
|
|
1386
|
+
fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
|
|
1387
|
+
end
|
|
1388
|
+
|
|
1389
|
+
# Create Result
|
|
1390
|
+
result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
|
|
1391
|
+
result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
|
|
1392
|
+
# Deserialize Response
|
|
1393
|
+
if status_code == 200
|
|
1394
|
+
begin
|
|
1395
|
+
parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
|
|
1396
|
+
unless parsed_response.nil?
|
|
1397
|
+
parsed_response = VirtualMachineListResult.deserialize_object(parsed_response)
|
|
1398
|
+
end
|
|
1399
|
+
result.body = parsed_response
|
|
1400
|
+
rescue Exception => e
|
|
1401
|
+
fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
|
|
1402
|
+
end
|
|
1403
|
+
end
|
|
1404
|
+
|
|
1405
|
+
result
|
|
1406
|
+
end
|
|
1407
|
+
|
|
1408
|
+
promise.execute
|
|
1409
|
+
end
|
|
1410
|
+
|
|
1411
|
+
end
|
|
1412
|
+
end
|