azure 0.7.0.pre → 0.7.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env_sample +3 -1
- data/.gitignore +15 -0
- data/LICENSE.txt +1 -1
- data/README.md +322 -248
- data/Rakefile +3 -1
- data/azure.gemspec +18 -14
- data/lib/azure.rb +124 -38
- data/lib/azure/base_management/base_management_service.rb +57 -69
- data/lib/azure/base_management/location.rb +1 -1
- data/lib/azure/base_management/management_http_request.rb +55 -58
- data/lib/azure/base_management/serialization.rb +5 -0
- data/lib/azure/base_management/sql_management_http_request.rb +10 -20
- data/lib/azure/blob/auth/shared_access_signature.rb +82 -76
- data/lib/azure/blob/blob_service.rb +196 -171
- data/lib/azure/client.rb +31 -0
- data/lib/azure/client_services.rb +98 -0
- data/lib/azure/cloud_service_management/cloud_service_management_service.rb +8 -10
- data/lib/azure/configurable.rb +290 -0
- data/lib/azure/core/auth/authorizer.rb +1 -1
- data/lib/azure/core/auth/shared_key.rb +48 -40
- data/lib/azure/core/auth/shared_key_lite.rb +9 -9
- data/lib/azure/core/auth/signer.rb +15 -12
- data/lib/azure/core/error.rb +2 -3
- data/lib/azure/core/filtered_service.rb +4 -3
- data/lib/azure/core/http/http_error.rb +10 -12
- data/lib/azure/core/http/http_request.rb +82 -69
- data/lib/azure/core/http/http_response.rb +12 -56
- data/lib/azure/core/http/signer_filter.rb +3 -4
- data/lib/azure/core/service.rb +8 -25
- data/lib/azure/core/signed_service.rb +7 -5
- data/lib/azure/core/utility.rb +45 -6
- data/lib/azure/default.rb +126 -0
- data/lib/azure/http_client.rb +85 -0
- data/lib/azure/queue/queue.rb +0 -1
- data/lib/azure/queue/queue_service.rb +6 -4
- data/lib/azure/queue/serialization.rb +0 -1
- data/lib/azure/service/storage_service.rb +9 -6
- data/lib/azure/service_bus/auth/shared_access_signer.rb +44 -0
- data/lib/azure/service_bus/auth/wrap_service.rb +5 -4
- data/lib/azure/service_bus/auth/wrap_signer.rb +14 -6
- data/lib/azure/service_bus/service_bus_service.rb +34 -30
- data/lib/azure/sql_database_management/errors.rb +11 -0
- data/lib/azure/sql_database_management/firewall_rule.rb +30 -0
- data/lib/azure/sql_database_management/serialization.rb +40 -53
- data/lib/azure/sql_database_management/sql_database_management_service.rb +141 -130
- data/lib/azure/sql_database_management/{sql_database.rb → sql_server.rb} +4 -3
- data/lib/azure/storage_management/storage_management_service.rb +9 -10
- data/lib/azure/table/auth/shared_key.rb +17 -50
- data/lib/azure/table/auth/shared_key_lite.rb +3 -3
- data/lib/azure/table/serialization.rb +24 -24
- data/lib/azure/table/table_service.rb +21 -18
- data/lib/azure/version.rb +1 -1
- data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +6 -12
- data/lib/azure/virtual_machine_management/serialization.rb +4 -1
- data/lib/azure/virtual_machine_management/virtual_machine.rb +1 -0
- data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +29 -37
- data/lib/azure/virtual_network_management/virtual_network_management_service.rb +5 -6
- data/test/fixtures/list_locations.xml +150 -0
- data/test/fixtures/list_sql_database.xml +6 -18
- data/test/fixtures/list_sql_server_firewall.xml +18 -18
- data/test/fixtures/management_certificate.pfx +0 -0
- data/test/fixtures/virtual_machine.xml +1 -0
- data/test/integration/affinity_group/Create_Affinity_test.rb +1 -1
- data/test/integration/affinity_group/Update_Affinity_test.rb +4 -0
- data/test/integration/blob/blob_gb18030_test.rb +29 -29
- data/test/integration/blob/blob_pages_test.rb +16 -16
- data/test/integration/blob/container/create_container_test.rb +6 -6
- data/test/integration/blob/container/root_container_test.rb +2 -1
- data/test/integration/database/create_sql_server_firewall_test.rb +26 -31
- data/test/integration/database/create_sql_server_test.rb +6 -6
- data/test/integration/database/delete_sql_server_firewall_test.rb +18 -24
- data/test/integration/database/delete_sql_server_test.rb +9 -22
- data/test/integration/database/list_sql_server_firewall_test.rb +7 -8
- data/test/integration/database/list_sql_servers_test.rb +4 -4
- data/test/integration/database/reset_password_sql_server_test.rb +9 -11
- data/test/integration/location/RoleSize_List_test.rb +35 -0
- data/test/integration/queue/list_queues_test.rb +0 -1
- data/test/integration/service_bus/queues_scenario_test.rb +11 -11
- data/test/integration/service_bus/queues_test.rb +2 -2
- data/test/integration/service_bus/subscriptions_test.rb +25 -25
- data/test/integration/service_bus/topics_scenario_test.rb +6 -6
- data/test/integration/service_bus/topics_test.rb +15 -15
- data/test/integration/table/query_entities_test.rb +1 -0
- data/test/integration/table/table_acl_test.rb +9 -9
- data/test/integration/test_helper.rb +11 -9
- data/test/integration/vm/VM_Create_test.rb +23 -20
- data/test/integration/vnet/Virtual_Network_list_test.rb +1 -1
- data/test/test_helper.rb +5 -0
- data/test/unit/affinity_group/affinity_group_test.rb +4 -4
- data/test/unit/base_management/base_management_service_test.rb +19 -0
- data/test/unit/base_management/location_test.rb +6 -6
- data/test/unit/base_management/role_size_test.rb +50 -0
- data/test/unit/blob/auth/shared_access_signature_test.rb +19 -19
- data/test/unit/blob/blob_service_test.rb +583 -582
- data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +2 -2
- data/test/unit/config/azure_test.rb +112 -0
- data/test/unit/config/client_test.rb +37 -0
- data/test/unit/core/auth/shared_key_lite_test.rb +15 -15
- data/test/unit/core/auth/shared_key_test.rb +26 -26
- data/test/unit/core/http/http_error_test.rb +13 -14
- data/test/unit/core/http/http_request_test.rb +78 -53
- data/test/unit/core/http/http_response_test.rb +2 -27
- data/test/unit/core/http/retry_policy_test.rb +3 -3
- data/test/unit/core/utility_test.rb +122 -0
- data/test/unit/database/serialization_test.rb +17 -20
- data/test/unit/database/sql_database_server_service_test.rb +97 -40
- data/test/unit/http_client_test.rb +74 -0
- data/test/unit/service/storage_service_test.rb +105 -101
- data/test/unit/storage_management/storage_management_service_test.rb +28 -28
- data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +4 -4
- data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +37 -20
- data/test/unit/vnet/virtual_network_management_service_test.rb +1 -1
- metadata +91 -20
- data/lib/azure/core.rb +0 -41
- data/lib/azure/core/configuration.rb +0 -218
data/Rakefile
CHANGED
@@ -68,7 +68,9 @@ namespace :test do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
Rake::TestTask.new :integration do |t|
|
71
|
-
t.
|
71
|
+
t.test_files = Dir['test/integration/**/*_test.rb'].reject do |path|
|
72
|
+
path.include?('database')
|
73
|
+
end
|
72
74
|
t.verbose = true
|
73
75
|
t.libs = %w(lib test)
|
74
76
|
end
|
data/azure.gemspec
CHANGED
@@ -21,8 +21,8 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.version = Azure::Version
|
22
22
|
s.authors = ['Microsoft Corporation', 'AppFog']
|
23
23
|
s.email = 'azureruby@microsoft.com'
|
24
|
-
s.description = '
|
25
|
-
s.summary = 'Official ruby client library to consume
|
24
|
+
s.description = 'Microsoft Azure Client Library for Ruby'
|
25
|
+
s.summary = 'Official ruby client library to consume Microsoft Azure services.'
|
26
26
|
s.homepage = 'http://github.com/azure/azure-sdk-for-ruby'
|
27
27
|
s.license = 'Apache License, Version 2.0'
|
28
28
|
s.files = `git ls-files`.split("\n")
|
@@ -31,17 +31,21 @@ Gem::Specification.new do |s|
|
|
31
31
|
|
32
32
|
s.required_ruby_version = '>= 1.9.3'
|
33
33
|
|
34
|
-
s.add_runtime_dependency('
|
35
|
-
s.add_runtime_dependency('
|
36
|
-
s.add_runtime_dependency('
|
37
|
-
s.add_runtime_dependency('
|
38
|
-
s.add_runtime_dependency('
|
39
|
-
s.add_runtime_dependency('
|
34
|
+
s.add_runtime_dependency('addressable', '~> 2.3')
|
35
|
+
s.add_runtime_dependency('faraday', '~> 0.9')
|
36
|
+
s.add_runtime_dependency('faraday_middleware', '~> 0.10')
|
37
|
+
s.add_runtime_dependency('json', '~> 1.8')
|
38
|
+
s.add_runtime_dependency('mime-types', '~> 2.0')
|
39
|
+
s.add_runtime_dependency('nokogiri', '~> 1.6')
|
40
|
+
s.add_runtime_dependency('systemu', '~> 2.6')
|
41
|
+
s.add_runtime_dependency('thor', '~> 0.19')
|
42
|
+
s.add_runtime_dependency('uuid', '~> 2.0')
|
40
43
|
|
41
|
-
s.add_development_dependency('
|
42
|
-
s.add_development_dependency('minitest',
|
43
|
-
s.add_development_dependency('minitest-reporters',
|
44
|
-
s.add_development_dependency('mocha',
|
45
|
-
s.add_development_dependency('
|
46
|
-
s.add_development_dependency('
|
44
|
+
s.add_development_dependency('dotenv', '~> 2.0')
|
45
|
+
s.add_development_dependency('minitest', '~> 5')
|
46
|
+
s.add_development_dependency('minitest-reporters', '~> 1')
|
47
|
+
s.add_development_dependency('mocha', '~> 1.0')
|
48
|
+
s.add_development_dependency('rake', '~> 10.0')
|
49
|
+
s.add_development_dependency('timecop', '~> 0.7')
|
50
|
+
s.add_development_dependency('yard', '~> 0.8')
|
47
51
|
end
|
data/lib/azure.rb
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
#--------------------------------------------------------------------------
|
15
|
-
module Azure; end
|
16
15
|
|
17
16
|
require 'rubygems'
|
18
17
|
require 'nokogiri'
|
@@ -20,41 +19,128 @@ require 'base64'
|
|
20
19
|
require 'openssl'
|
21
20
|
require 'uri'
|
22
21
|
require 'rexml/document'
|
22
|
+
require 'addressable/uri'
|
23
|
+
require 'faraday'
|
24
|
+
require 'faraday_middleware'
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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
|
-
|
26
|
+
module Azure
|
27
|
+
autoload :Client, 'azure/client'
|
28
|
+
autoload :ClientServices, 'azure/client_services'
|
29
|
+
autoload :Configurable, 'azure/configurable'
|
30
|
+
autoload :Default, 'azure/default'
|
31
|
+
autoload :HttpClient, 'azure/http_client'
|
32
|
+
autoload :Version, 'azure/version'
|
33
|
+
|
34
|
+
# helpers because the naming is far too verbose
|
35
|
+
autoload :BaseManagementService, 'azure/base_management/base_management_service'
|
36
|
+
autoload :CloudServiceManagementService, 'azure/cloud_service_management/cloud_service_management_service'
|
37
|
+
autoload :SqlDatabaseManagementService, 'azure/sql_database_management/sql_database_management_service'
|
38
|
+
autoload :StorageManagementService, 'azure/storage_management/storage_management_service'
|
39
|
+
autoload :VirtualMachineImageManagementService, 'azure/virtual_machine_image_management/virtual_machine_image_management_service'
|
40
|
+
autoload :VirtualMachineManagementService, 'azure/virtual_machine_management/virtual_machine_management_service'
|
41
|
+
autoload :VirtualNetworkManagementService, 'azure/virtual_network_management/virtual_network_management_service'
|
42
|
+
|
43
|
+
module BaseManagement
|
44
|
+
autoload :ManagementHttpRequest, 'azure/base_management/management_http_request'
|
45
|
+
autoload :SqlManagementHttpRequest, 'azure/base_management/sql_management_http_request'
|
46
|
+
autoload :BaseManagementService, 'azure/base_management/base_management_service'
|
47
|
+
autoload :Location, 'azure/base_management/location'
|
48
|
+
autoload :AffinityGroup, 'azure/base_management/affinity_group'
|
49
|
+
autoload :Serialization, 'azure/base_management/serialization'
|
50
|
+
end
|
51
|
+
|
52
|
+
module Blob
|
53
|
+
autoload :BlobService, 'azure/blob/blob_service'
|
54
|
+
autoload :Blob, 'azure/blob/blob'
|
55
|
+
autoload :Block, 'azure/blob/block'
|
56
|
+
autoload :Container, 'azure/blob/container'
|
57
|
+
autoload :Serialization, 'azure/blob/serialization'
|
58
|
+
end
|
59
|
+
|
60
|
+
module CloudServiceManagement
|
61
|
+
autoload :CloudServiceManagementService, 'azure/cloud_service_management/cloud_service_management_service'
|
62
|
+
autoload :CloudService, 'azure/cloud_service_management/cloud_service'
|
63
|
+
end
|
64
|
+
|
65
|
+
module Core
|
66
|
+
autoload :Utility, 'azure/core/utility'
|
67
|
+
autoload :Error, 'azure/core/error'
|
68
|
+
autoload :Service, 'azure/core/service'
|
69
|
+
autoload :FilteredService, 'azure/core/filtered_service'
|
70
|
+
autoload :SignedService, 'azure/core/signed_service'
|
71
|
+
end
|
72
|
+
|
73
|
+
module Queue
|
74
|
+
autoload :QueueService, 'azure/queue/queue_service'
|
75
|
+
autoload :Message, 'azure/queue/message'
|
76
|
+
autoload :Queue, 'azure/queue/queue'
|
77
|
+
end
|
78
|
+
|
79
|
+
module ServiceBus
|
80
|
+
autoload :ServiceBusService, 'azure/service_bus/service_bus_service'
|
81
|
+
autoload :EmptyRuleAction, 'azure/service_bus/empty_rule_action'
|
82
|
+
autoload :SqlRuleAction, 'azure/service_bus/sql_rule_action'
|
83
|
+
autoload :SqlFilter, 'azure/service_bus/sql_filter'
|
84
|
+
autoload :TrueFilter, 'azure/service_bus/true_filter'
|
85
|
+
autoload :CorrelationFilter, 'azure/service_bus/correlation_filter'
|
86
|
+
end
|
87
|
+
|
88
|
+
module SqlDatabaseManagement
|
89
|
+
autoload :SqlDatabaseManagementService, 'azure/sql_database_management/sql_database_management_service'
|
90
|
+
autoload :Serialization, 'azure/sql_database_management/serialization'
|
91
|
+
autoload :SqlServer, 'azure/sql_database_management/sql_server'
|
92
|
+
end
|
93
|
+
|
94
|
+
module StorageManagement
|
95
|
+
autoload :StorageManagementService, 'azure/storage_management/storage_management_service'
|
96
|
+
autoload :Serialization, 'azure/storage_management/serialization'
|
97
|
+
autoload :StorageAccount, 'azure/storage_management/storage_account'
|
98
|
+
end
|
99
|
+
|
100
|
+
module Table
|
101
|
+
autoload :TableService, 'azure/table/table_service'
|
102
|
+
autoload :Batch, 'azure/table/batch'
|
103
|
+
autoload :Query, 'azure/table/query'
|
104
|
+
end
|
105
|
+
|
106
|
+
module VirtualMachineImageManagement
|
107
|
+
autoload :VirtualMachineImageManagementService, 'azure/virtual_machine_image_management/virtual_machine_image_management_service'
|
108
|
+
autoload :Serialization, 'azure/virtual_machine_image_management/serialization'
|
109
|
+
autoload :VirtualMachineImage, 'azure/virtual_machine_image_management/virtual_machine_image'
|
110
|
+
autoload :VirtualMachineDisk, 'azure/virtual_machine_image_management/virtual_machine_disk'
|
111
|
+
end
|
112
|
+
|
113
|
+
module VirtualMachineManagement
|
114
|
+
autoload :VirtualMachineManagementService, 'azure/virtual_machine_management/virtual_machine_management_service'
|
115
|
+
autoload :Serialization, 'azure/virtual_machine_management/serialization'
|
116
|
+
autoload :VirtualMachine, 'azure/virtual_machine_management/virtual_machine'
|
117
|
+
end
|
118
|
+
|
119
|
+
module VirtualNetworkManagement
|
120
|
+
autoload :VirtualNetworkManagementService, 'azure/virtual_network_management/virtual_network_management_service'
|
121
|
+
autoload :Serialization, 'azure/virtual_network_management/serialization'
|
122
|
+
autoload :VirtualNetwork, 'azure/virtual_network_management/virtual_network'
|
123
|
+
end
|
124
|
+
|
125
|
+
class << self
|
126
|
+
include Azure::Configurable
|
127
|
+
|
128
|
+
# API client based on configured options {Configurable}
|
129
|
+
#
|
130
|
+
# @return [Azure::Client] API wrapper
|
131
|
+
def client(options = {})
|
132
|
+
@client = Azure::Client.new(options) unless defined?(@client) && @client.same_options?(options)
|
133
|
+
@client
|
134
|
+
end
|
135
|
+
|
136
|
+
private
|
137
|
+
|
138
|
+
def method_missing(method_name, *args, &block)
|
139
|
+
return super unless client.respond_to?(method_name)
|
140
|
+
client.send(method_name, *args, &block)
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
Azure.setup
|
146
|
+
end
|
@@ -19,80 +19,67 @@ require 'azure/base_management/affinity_group'
|
|
19
19
|
|
20
20
|
module Azure
|
21
21
|
module BaseManagement
|
22
|
-
class BaseManagementService
|
23
|
-
def initialize
|
24
|
-
validate_configuration
|
25
|
-
cert_file = Azure.config.management_certificate
|
26
22
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
23
|
+
# The base for all Azure management services
|
24
|
+
# @!attribute [rw] client
|
25
|
+
# The client contains the configuration scope and the ability to produce http agents.
|
26
|
+
# defaults to global client.
|
27
|
+
# @see Azure.client
|
28
|
+
# @return [Azure::Client]
|
29
|
+
class BaseManagementService
|
32
30
|
|
33
|
-
|
34
|
-
if Azure.config.management_certificate =~ /(pem)$/
|
35
|
-
certificate_key = OpenSSL::X509::Certificate.new(cert_file)
|
36
|
-
private_key = OpenSSL::PKey::RSA.new(cert_file)
|
37
|
-
else
|
38
|
-
# Parse pfx content
|
39
|
-
cert_content = OpenSSL::PKCS12.new(cert_file)
|
40
|
-
certificate_key = OpenSSL::X509::Certificate.new(
|
41
|
-
cert_content.certificate.to_pem
|
42
|
-
)
|
43
|
-
private_key = OpenSSL::PKey::RSA.new(cert_content.key.to_pem)
|
44
|
-
end
|
45
|
-
rescue Exception => e
|
46
|
-
raise "Management certificate not valid. Error: #{e.message}"
|
47
|
-
end
|
31
|
+
attr_accessor :client
|
48
32
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
33
|
+
# @param options [Hash] options including :client
|
34
|
+
def initialize(options = {})
|
35
|
+
@client = options[:client] || Azure.client
|
36
|
+
validate_configuration!
|
53
37
|
end
|
54
38
|
|
55
|
-
|
56
|
-
|
39
|
+
# Validate the configuration of the service.
|
40
|
+
# @return [void]
|
41
|
+
def validate_configuration!
|
42
|
+
subs_id = @client.subscription_id
|
57
43
|
error_message = 'Subscription ID not valid.'
|
58
|
-
raise error_message if subs_id.nil? || subs_id.empty?
|
44
|
+
raise ArgumentError.new(error_message) if subs_id.nil? || subs_id.empty?
|
59
45
|
|
60
|
-
m_ep =
|
46
|
+
m_ep = @client.management_endpoint
|
61
47
|
error_message = 'Management endpoint not valid.'
|
62
|
-
raise error_message if m_ep.nil? || m_ep.empty?
|
63
|
-
|
64
|
-
m_cert = Azure.config.management_certificate
|
65
|
-
error_message = "Could not read from file '#{m_cert}'."
|
66
|
-
raise error_message unless test('r', m_cert)
|
67
|
-
|
68
|
-
m_cert = Azure.config.management_certificate
|
69
|
-
error_message = 'Management certificate expects a .pem or .pfx file.'
|
70
|
-
raise error_message unless m_cert =~ /(pem|pfx)$/
|
48
|
+
raise ArgumentError.new(error_message) if m_ep.nil? || m_ep.empty?
|
71
49
|
end
|
72
50
|
|
73
|
-
#
|
74
|
-
#
|
75
|
-
# Returns an array of Azure::BaseManagement::Location objects
|
51
|
+
# Gets a list of regional data center locations from the server
|
52
|
+
# @return [Array<Azure::BaseManagement::Location>]
|
76
53
|
def list_locations
|
77
|
-
request =
|
54
|
+
request = @client.management_request(:get, '/locations')
|
78
55
|
response = request.call
|
79
56
|
Serialization.locations_from_xml(response)
|
80
57
|
end
|
81
58
|
|
82
|
-
#
|
59
|
+
# Gets a list of role sizes associated with the
|
60
|
+
# specified subscription.
|
61
|
+
# @return [Array<String>]
|
62
|
+
def list_role_sizes
|
63
|
+
role_sizes = []
|
64
|
+
locations = list_locations
|
65
|
+
locations.each do | location |
|
66
|
+
role_sizes << location.role_sizes
|
67
|
+
end
|
68
|
+
role_sizes.flatten.uniq.compact.sort
|
69
|
+
end
|
70
|
+
|
71
|
+
# Gets a lists the affinity groups associated with
|
83
72
|
# the specified subscription.
|
84
|
-
#
|
85
|
-
#
|
86
|
-
#
|
87
|
-
# Returns an array of Azure::BaseManagement::AffinityGroup objects
|
73
|
+
# @see http://msdn.microsoft.com/en-us/library/azure/ee460797.aspx
|
74
|
+
# @return [Array<Azure::BaseManagement::AffinityGroup>]
|
88
75
|
def list_affinity_groups
|
89
76
|
request_path = '/affinitygroups'
|
90
|
-
request =
|
77
|
+
request = @client.management_request(:get, request_path)
|
91
78
|
response = request.call
|
92
79
|
Serialization.affinity_groups_from_xml(response)
|
93
80
|
end
|
94
81
|
|
95
|
-
#
|
82
|
+
# Creates a new affinity group for the specified subscription.
|
96
83
|
#
|
97
84
|
# ==== Attributes
|
98
85
|
#
|
@@ -108,9 +95,9 @@ module Azure
|
|
108
95
|
# * +:description+ - String. A description for the affinity group.
|
109
96
|
# (optional)
|
110
97
|
#
|
111
|
-
#
|
98
|
+
# @see http://msdn.microsoft.com/en-us/library/azure/gg715317.aspx
|
112
99
|
#
|
113
|
-
#
|
100
|
+
# @return [void]
|
114
101
|
def create_affinity_group(name, location, label, options = {})
|
115
102
|
if name.nil? || name.strip.empty?
|
116
103
|
raise 'Affinity Group name cannot be empty'
|
@@ -118,8 +105,7 @@ module Azure
|
|
118
105
|
raise Azure::Error::Error.new(
|
119
106
|
'ConflictError',
|
120
107
|
409,
|
121
|
-
"An affinity group #{name}"
|
122
|
-
" already exists in the current subscription."
|
108
|
+
"An affinity group #{name} already exists in the current subscription."
|
123
109
|
)
|
124
110
|
else
|
125
111
|
validate_location(location)
|
@@ -128,13 +114,13 @@ module Azure
|
|
128
114
|
label,
|
129
115
|
options)
|
130
116
|
request_path = '/affinitygroups'
|
131
|
-
request =
|
117
|
+
request = @client.management_request(:post, request_path, body)
|
132
118
|
request.call
|
133
119
|
Azure::Loggerx.info "Affinity Group #{name} is created."
|
134
120
|
end
|
135
121
|
end
|
136
122
|
|
137
|
-
#
|
123
|
+
# Updates the label and/or the description for an affinity group
|
138
124
|
# for the specified subscription.
|
139
125
|
#
|
140
126
|
# ==== Attributes
|
@@ -149,52 +135,52 @@ module Azure
|
|
149
135
|
# * +:description+ - String. A description for the affinity group.
|
150
136
|
# (optional)
|
151
137
|
#
|
152
|
-
#
|
138
|
+
# @see http://msdn.microsoft.com/en-us/library/azure/gg715316.aspx
|
153
139
|
#
|
154
|
-
#
|
140
|
+
# @return [void]
|
155
141
|
def update_affinity_group(name, label, options = {})
|
156
142
|
raise 'Label name cannot be empty' if label.nil? || label.empty?
|
157
143
|
if affinity_group(name)
|
158
144
|
body = Serialization.resource_to_xml(label, options)
|
159
145
|
request_path = "/affinitygroups/#{name}"
|
160
|
-
request =
|
146
|
+
request = @client.management_request(:put, request_path, body)
|
161
147
|
request.call
|
162
148
|
Azure::Loggerx.info "Affinity Group #{name} is updated."
|
163
149
|
end
|
164
150
|
end
|
165
151
|
|
166
|
-
#
|
152
|
+
# Deletes an affinity group in the specified subscription
|
167
153
|
#
|
168
154
|
# ==== Attributes
|
169
155
|
#
|
170
156
|
# * +name+ - String. Affinity Group name.
|
171
157
|
#
|
172
|
-
#
|
158
|
+
# @see http://msdn.microsoft.com/en-us/library/azure/gg715314.aspx
|
173
159
|
#
|
174
|
-
#
|
160
|
+
# @return [void]
|
175
161
|
def delete_affinity_group(name)
|
176
162
|
if affinity_group(name)
|
177
163
|
request_path = "/affinitygroups/#{name}"
|
178
|
-
request =
|
164
|
+
request = @client.management_request(:delete, request_path)
|
179
165
|
request.call
|
180
166
|
Azure::Loggerx.info "Deleted affinity group #{name}."
|
181
167
|
end
|
182
168
|
end
|
183
169
|
|
184
|
-
#
|
170
|
+
# Returns the system properties associated with the specified
|
185
171
|
# affinity group.
|
186
172
|
#
|
187
173
|
# ==== Attributes
|
188
174
|
#
|
189
175
|
# * +name+ - String. Affinity Group name.
|
190
176
|
#
|
191
|
-
#
|
177
|
+
# @see http://msdn.microsoft.com/en-us/library/azure/ee460789.aspx
|
192
178
|
#
|
193
|
-
#
|
179
|
+
# @return [Azure::BaseManagement::AffinityGroup]
|
194
180
|
def get_affinity_group(name)
|
195
181
|
if affinity_group(name)
|
196
182
|
request_path = "/affinitygroups/#{name}"
|
197
|
-
request =
|
183
|
+
request = @client.management_request(:get, request_path)
|
198
184
|
response = request.call
|
199
185
|
Serialization.affinity_group_from_xml(response)
|
200
186
|
end
|
@@ -230,3 +216,5 @@ module Azure
|
|
230
216
|
end
|
231
217
|
end
|
232
218
|
end
|
219
|
+
|
220
|
+
Azure::BaseManagementService = Azure::BaseManagement::BaseManagementService
|