stuartpreston-azure-sdk-for-ruby 0.7.1 → 0.7.2
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 +4 -4
- data/.gitignore +11 -11
- data/.travis.yml +10 -10
- data/ChangeLog.txt +70 -68
- data/Gemfile +15 -15
- data/README.md +618 -618
- data/Rakefile +133 -133
- data/azure.gemspec +44 -44
- data/lib/azure.rb +52 -52
- data/lib/azure/base_management/affinity_group.rb +32 -32
- data/lib/azure/base_management/base_management_service.rb +304 -304
- data/lib/azure/base_management/location.rb +27 -27
- data/lib/azure/base_management/management_http_request.rb +171 -171
- data/lib/azure/base_management/serialization.rb +129 -129
- data/lib/azure/base_management/sql_management_http_request.rb +45 -45
- data/lib/azure/blob/blob.rb +31 -31
- data/lib/azure/blob/blob_service.rb +1423 -1423
- data/lib/azure/blob/block.rb +30 -30
- data/lib/azure/blob/container.rb +31 -31
- data/lib/azure/blob/serialization.rb +284 -284
- data/lib/azure/cloud_service_management/cloud_service.rb +38 -38
- data/lib/azure/cloud_service_management/cloud_service_management_service.rb +140 -140
- data/lib/azure/cloud_service_management/serialization.rb +117 -117
- data/lib/azure/core.rb +39 -39
- data/lib/azure/core/auth/authorizer.rb +36 -36
- data/lib/azure/core/auth/shared_key.rb +110 -110
- data/lib/azure/core/auth/shared_key_lite.rb +48 -48
- data/lib/azure/core/auth/signer.rb +48 -48
- data/lib/azure/core/configuration.rb +211 -211
- data/lib/azure/core/error.rb +22 -22
- data/lib/azure/core/filtered_service.rb +43 -43
- data/lib/azure/core/http/debug_filter.rb +35 -35
- data/lib/azure/core/http/http_error.rb +88 -88
- data/lib/azure/core/http/http_filter.rb +52 -52
- data/lib/azure/core/http/http_request.rb +157 -157
- data/lib/azure/core/http/http_response.rb +140 -140
- data/lib/azure/core/http/retry_policy.rb +73 -73
- data/lib/azure/core/http/signer_filter.rb +33 -33
- data/lib/azure/core/service.rb +62 -62
- data/lib/azure/core/signed_service.rb +42 -42
- data/lib/azure/core/utility.rb +190 -190
- data/lib/azure/queue/message.rb +29 -29
- data/lib/azure/queue/queue.rb +28 -28
- data/lib/azure/queue/queue_service.rb +567 -567
- data/lib/azure/queue/serialization.rb +106 -106
- data/lib/azure/service/access_policy.rb +25 -25
- data/lib/azure/service/cors.rb +11 -11
- data/lib/azure/service/cors_rule.rb +15 -15
- data/lib/azure/service/enumeration_results.rb +20 -20
- data/lib/azure/service/logging.rb +31 -31
- data/lib/azure/service/metrics.rb +30 -30
- data/lib/azure/service/retention_policy.rb +24 -24
- data/lib/azure/service/serialization.rb +297 -297
- data/lib/azure/service/signed_identifier.rb +29 -29
- data/lib/azure/service/storage_service.rb +82 -82
- data/lib/azure/service/storage_service_properties.rb +37 -37
- data/lib/azure/service_bus/action.rb +21 -21
- data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
- data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
- data/lib/azure/service_bus/brokered_message.rb +123 -123
- data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
- data/lib/azure/service_bus/correlation_filter.rb +45 -45
- data/lib/azure/service_bus/empty_rule_action.rb +29 -29
- data/lib/azure/service_bus/false_filter.rb +38 -38
- data/lib/azure/service_bus/filter.rb +21 -21
- data/lib/azure/service_bus/interval.rb +103 -103
- data/lib/azure/service_bus/queue.rb +229 -229
- data/lib/azure/service_bus/relay.rb +87 -87
- data/lib/azure/service_bus/resource.rb +108 -108
- data/lib/azure/service_bus/rule.rb +97 -97
- data/lib/azure/service_bus/rule_aspect.rb +34 -34
- data/lib/azure/service_bus/serialization.rb +161 -161
- data/lib/azure/service_bus/service_bus_service.rb +896 -896
- data/lib/azure/service_bus/sql_filter.rb +50 -50
- data/lib/azure/service_bus/sql_rule_action.rb +50 -50
- data/lib/azure/service_bus/subscription.rb +183 -183
- data/lib/azure/service_bus/topic.rb +186 -186
- data/lib/azure/service_bus/true_filter.rb +38 -38
- data/lib/azure/sql_database_management/serialization.rb +111 -111
- data/lib/azure/sql_database_management/sql_database.rb +31 -31
- data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -200
- data/lib/azure/storage_management/serialization.rb +184 -184
- data/lib/azure/storage_management/storage_account.rb +40 -40
- data/lib/azure/storage_management/storage_management_service.rb +166 -166
- data/lib/azure/table/auth/shared_key.rb +92 -92
- data/lib/azure/table/auth/shared_key_lite.rb +44 -44
- data/lib/azure/table/batch.rb +329 -329
- data/lib/azure/table/batch_response.rb +118 -118
- data/lib/azure/table/edmtype.rb +126 -126
- data/lib/azure/table/entity.rb +30 -30
- data/lib/azure/table/guid.rb +23 -23
- data/lib/azure/table/query.rb +111 -111
- data/lib/azure/table/serialization.rb +107 -107
- data/lib/azure/table/table_service.rb +559 -559
- data/lib/azure/version.rb +31 -31
- data/lib/azure/virtual_machine_image_management/serialization.rb +66 -66
- data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +25 -25
- data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +25 -25
- data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +94 -94
- data/lib/azure/virtual_machine_management/serialization.rb +462 -462
- data/lib/azure/virtual_machine_management/virtual_machine.rb +45 -45
- data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +588 -588
- data/lib/azure/virtual_network_management/serialization.rb +190 -190
- data/lib/azure/virtual_network_management/virtual_network.rb +37 -37
- data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
- data/test/fixtures/affinity_group.xml +33 -33
- data/test/fixtures/all_containers.xml +20 -20
- data/test/fixtures/all_tables.xml +22 -22
- data/test/fixtures/certificate.pem +21 -21
- data/test/fixtures/container_acl.xml +11 -11
- data/test/fixtures/create_sql_database_server.xml +1 -1
- data/test/fixtures/create_storage_desc_error.xml +5 -5
- data/test/fixtures/create_storage_extendedprop_error.xml +8 -8
- data/test/fixtures/create_storage_extendedpropname_error.xml +6 -6
- data/test/fixtures/create_storage_full_error.xml +6 -6
- data/test/fixtures/create_storage_label_error.xml +5 -5
- data/test/fixtures/create_storage_location_error.xml +5 -5
- data/test/fixtures/create_storage_name_error.xml +6 -6
- data/test/fixtures/create_table_response_entry.xml +15 -15
- data/test/fixtures/delete_storage_container_error.xml +5 -5
- data/test/fixtures/delete_storage_error.xml +5 -5
- data/test/fixtures/deployment_error.xml +5 -5
- data/test/fixtures/get_storage_account_error.xml +5 -5
- data/test/fixtures/get_storage_account_properties.xml +31 -31
- data/test/fixtures/get_storage_account_properties_new.xml +31 -31
- data/test/fixtures/http_error.xml +5 -5
- data/test/fixtures/insert_entity_response_entry.xml +25 -25
- data/test/fixtures/list_affinity_groups.xml +22 -22
- data/test/fixtures/list_blobs.xml +120 -120
- data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
- data/test/fixtures/list_blocks_all.xml +22 -22
- data/test/fixtures/list_blocks_committed.xml +12 -12
- data/test/fixtures/list_cloud_services.xml +38 -38
- data/test/fixtures/list_containers.xml +37 -37
- data/test/fixtures/list_firewall_management_endpoint.xml +27 -27
- data/test/fixtures/list_images.xml +110 -110
- data/test/fixtures/list_locations.xml +62 -62
- data/test/fixtures/list_page_ranges.xml +10 -10
- data/test/fixtures/list_sql_database.xml +36 -36
- data/test/fixtures/list_sql_server_firewall.xml +23 -23
- data/test/fixtures/list_storage_account_single.xml +24 -24
- data/test/fixtures/list_storage_accounts.xml +45 -45
- data/test/fixtures/list_virtual_networks.xml +92 -92
- data/test/fixtures/logging.xml +11 -11
- data/test/fixtures/management_certificate.pem +55 -55
- data/test/fixtures/messages.xml +12 -12
- data/test/fixtures/metrics.xml +10 -10
- data/test/fixtures/privatekey.key +28 -28
- data/test/fixtures/query_entities_empty_response.xml +7 -7
- data/test/fixtures/query_entities_response.xml +45 -45
- data/test/fixtures/queue_service_properties.xml +22 -22
- data/test/fixtures/queue_service_properties_original.xml +19 -19
- data/test/fixtures/queues.xml +16 -16
- data/test/fixtures/retention_policy.xml +5 -5
- data/test/fixtures/sb_default_create_queue_response.xml +23 -23
- data/test/fixtures/sb_default_create_relay_response.xml +15 -15
- data/test/fixtures/sb_default_create_topic_response.xml +18 -18
- data/test/fixtures/sb_get_access_token_response.txt +1 -1
- data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
- data/test/fixtures/storage_service_properties.xml +54 -54
- data/test/fixtures/update_storage_account.xml +16 -16
- data/test/fixtures/update_storage_error.xml +4 -4
- data/test/fixtures/updated_storage_accounts.xml +52 -52
- data/test/fixtures/virtual_machine.xml +113 -113
- data/test/fixtures/windows_virtual_machine.xml +106 -106
- data/test/integration/affinity_group/Affinity_test.rb +55 -55
- data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
- data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
- data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
- data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
- data/test/integration/blob/blob_gb18030_test.rb +199 -199
- data/test/integration/blob/blob_metadata_test.rb +75 -75
- data/test/integration/blob/blob_pages_test.rb +119 -119
- data/test/integration/blob/blob_properties_test.rb +77 -77
- data/test/integration/blob/block_blob_test.rb +254 -254
- data/test/integration/blob/container/container_acl_test.rb +69 -69
- data/test/integration/blob/container/container_metadata_test.rb +50 -50
- data/test/integration/blob/container/create_container_test.rb +60 -60
- data/test/integration/blob/container/delete_container_test.rb +39 -39
- data/test/integration/blob/container/get_container_properties_test.rb +48 -48
- data/test/integration/blob/container/list_containers_test.rb +79 -79
- data/test/integration/blob/container/root_container_test.rb +53 -53
- data/test/integration/blob/copy_blob_test.rb +113 -113
- data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
- data/test/integration/blob/create_page_blob_test.rb +83 -83
- data/test/integration/blob/delete_blob_test.rb +159 -159
- data/test/integration/blob/get_blob_test.rb +65 -65
- data/test/integration/blob/informative_errors_test.rb +38 -38
- data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
- data/test/integration/blob/lease/break_lease_test.rb +40 -40
- data/test/integration/blob/lease/release_lease_test.rb +40 -40
- data/test/integration/blob/lease/renew_lease_test.rb +42 -42
- data/test/integration/blob/list_blobs_test.rb +113 -113
- data/test/integration/cloud_service/Cloud_Create_test.rb +44 -44
- data/test/integration/cloud_service/Cloud_Delete_test.rb +44 -44
- data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
- data/test/integration/database/create_sql_server_test.rb +53 -53
- data/test/integration/database/delete_sql_server_firewall_test.rb +70 -70
- data/test/integration/database/delete_sql_server_test.rb +58 -58
- data/test/integration/database/list_sql_server_firewall_test.rb +45 -45
- data/test/integration/database/list_sql_servers_test.rb +44 -44
- data/test/integration/database/reset_password_sql_server_test.rb +55 -55
- data/test/integration/location/Location_List_test.rb +39 -39
- data/test/integration/queue/clear_messages_test.rb +42 -42
- data/test/integration/queue/create_message_test.rb +75 -75
- data/test/integration/queue/create_queue_test.rb +50 -50
- data/test/integration/queue/delete_message_test.rb +67 -67
- data/test/integration/queue/delete_queue_test.rb +45 -45
- data/test/integration/queue/informative_errors_test.rb +41 -41
- data/test/integration/queue/list_messages_encoded_test.rb +79 -79
- data/test/integration/queue/list_messages_test.rb +79 -79
- data/test/integration/queue/list_queues_test.rb +44 -44
- data/test/integration/queue/peek_messages_test.rb +59 -59
- data/test/integration/queue/queue_gb18030_test.rb +131 -131
- data/test/integration/queue/queue_metadata_test.rb +40 -40
- data/test/integration/queue/update_message_test.rb +74 -74
- data/test/integration/service_bus/informative_errors_test.rb +36 -36
- data/test/integration/service_bus/queues_scenario_test.rb +200 -200
- data/test/integration/service_bus/queues_test.rb +265 -265
- data/test/integration/service_bus/relay_test.rb +131 -131
- data/test/integration/service_bus/rules_test.rb +144 -144
- data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
- data/test/integration/service_bus/scenario_test.rb +101 -101
- data/test/integration/service_bus/subscriptions_test.rb +211 -211
- data/test/integration/service_bus/topics_scenario_test.rb +406 -406
- data/test/integration/service_bus/topics_test.rb +129 -129
- data/test/integration/storage_management/storage_management_test.rb +160 -160
- data/test/integration/table/create_table_test.rb +35 -35
- data/test/integration/table/delete_entity_batch_test.rb +106 -106
- data/test/integration/table/delete_entity_test.rb +93 -93
- data/test/integration/table/delete_table_test.rb +39 -39
- data/test/integration/table/get_table_test.rb +36 -36
- data/test/integration/table/informative_errors_test.rb +38 -38
- data/test/integration/table/insert_entity_batch_test.rb +99 -99
- data/test/integration/table/insert_entity_test.rb +87 -87
- data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
- data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
- data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
- data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
- data/test/integration/table/merge_entity_batch_test.rb +127 -127
- data/test/integration/table/merge_entity_test.rb +112 -112
- data/test/integration/table/query_entities_test.rb +194 -194
- data/test/integration/table/query_tables_test.rb +42 -42
- data/test/integration/table/query_test.rb +250 -250
- data/test/integration/table/table_acl_test.rb +51 -51
- data/test/integration/table/table_gb18030_test.rb +355 -355
- data/test/integration/table/update_entity_batch_test.rb +148 -148
- data/test/integration/table/update_entity_test.rb +130 -130
- data/test/integration/test_helper.rb +42 -42
- data/test/integration/vm/VM_Create_test.rb +260 -260
- data/test/integration/vm/VM_Delete_test.rb +55 -55
- data/test/integration/vm/VM_Operations_test.rb +173 -173
- data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
- data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
- data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
- data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
- data/test/support/env.rb +19 -19
- data/test/support/fixtures.rb +36 -36
- data/test/support/name_generator.rb +168 -168
- data/test/support/stubs.rb +42 -42
- data/test/support/virtual_machine_name_generator.rb +102 -102
- data/test/support/virtual_network_helper.rb +73 -73
- data/test/test_helper.rb +53 -53
- data/test/unit/affinity_group/affinity_group_test.rb +192 -192
- data/test/unit/affinity_group/serialization_test.rb +88 -88
- data/test/unit/base_management/location_test.rb +57 -57
- data/test/unit/blob/blob_service_test.rb +1946 -1946
- data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
- data/test/unit/cloud_service_management/serialization_test.rb +169 -169
- data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
- data/test/unit/core/auth/shared_key_test.rb +58 -58
- data/test/unit/core/auth/signer_test.rb +30 -30
- data/test/unit/core/http/http_error_test.rb +57 -57
- data/test/unit/core/http/http_request_test.rb +66 -66
- data/test/unit/core/http/http_response_test.rb +45 -45
- data/test/unit/core/http/retry_policy_test.rb +23 -23
- data/test/unit/database/serialization_test.rb +97 -97
- data/test/unit/database/sql_database_server_service_test.rb +288 -288
- data/test/unit/service/serialization_test.rb +532 -532
- data/test/unit/service/storage_service_test.rb +292 -292
- data/test/unit/storage_management/serialization_test.rb +232 -232
- data/test/unit/storage_management/storage_management_service_test.rb +261 -261
- data/test/unit/table/edmtype_test.rb +107 -107
- data/test/unit/virtual_machine_image_management/serialization_test.rb +35 -35
- data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +65 -65
- data/test/unit/virtual_machine_management/serialization_test.rb +258 -258
- data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +440 -440
- data/test/unit/vnet/serialization_test.rb +187 -187
- data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
- metadata +34 -27
@@ -1,55 +1,55 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require 'integration/test_helper'
|
16
|
-
|
17
|
-
describe Azure::VirtualMachineManagementService do
|
18
|
-
|
19
|
-
subject { Azure::VirtualMachineManagementService.new }
|
20
|
-
let(:names) { VirtualMachineNameHelper.name }
|
21
|
-
let(:virtual_machine_name) { names.first }
|
22
|
-
let(:csn) { names.last }
|
23
|
-
let(:username) { 'admin' }
|
24
|
-
before do
|
25
|
-
Loggerx.expects(:puts).at_least_once.returns(nil)
|
26
|
-
params = {
|
27
|
-
vm_name: virtual_machine_name,
|
28
|
-
vm_user: 'user',
|
29
|
-
image: LinuxImage.name,
|
30
|
-
password: 'User123',
|
31
|
-
location: LinuxImageLocation
|
32
|
-
}
|
33
|
-
options = {
|
34
|
-
storage_account_name: StorageAccountName,
|
35
|
-
cloud_service_name: csn,
|
36
|
-
}
|
37
|
-
subject.create_virtual_machine(params, options)
|
38
|
-
sleep 60
|
39
|
-
end
|
40
|
-
|
41
|
-
describe '#delete_virtual_machine' do
|
42
|
-
|
43
|
-
it 'delete existing virtual machine and cloud service' do
|
44
|
-
subject.delete_virtual_machine(virtual_machine_name, csn)
|
45
|
-
sleep 60
|
46
|
-
vm = subject.get_virtual_machine(virtual_machine_name, csn)
|
47
|
-
vm.must_be_nil
|
48
|
-
cloud_service = Azure::CloudServiceManagementService.new
|
49
|
-
cloud_presence = cloud_service.get_cloud_service(csn)
|
50
|
-
cloud_presence.must_equal false
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require 'integration/test_helper'
|
16
|
+
|
17
|
+
describe Azure::VirtualMachineManagementService do
|
18
|
+
|
19
|
+
subject { Azure::VirtualMachineManagementService.new }
|
20
|
+
let(:names) { VirtualMachineNameHelper.name }
|
21
|
+
let(:virtual_machine_name) { names.first }
|
22
|
+
let(:csn) { names.last }
|
23
|
+
let(:username) { 'admin' }
|
24
|
+
before do
|
25
|
+
Loggerx.expects(:puts).at_least_once.returns(nil)
|
26
|
+
params = {
|
27
|
+
vm_name: virtual_machine_name,
|
28
|
+
vm_user: 'user',
|
29
|
+
image: LinuxImage.name,
|
30
|
+
password: 'User123',
|
31
|
+
location: LinuxImageLocation
|
32
|
+
}
|
33
|
+
options = {
|
34
|
+
storage_account_name: StorageAccountName,
|
35
|
+
cloud_service_name: csn,
|
36
|
+
}
|
37
|
+
subject.create_virtual_machine(params, options)
|
38
|
+
sleep 60
|
39
|
+
end
|
40
|
+
|
41
|
+
describe '#delete_virtual_machine' do
|
42
|
+
|
43
|
+
it 'delete existing virtual machine and cloud service' do
|
44
|
+
subject.delete_virtual_machine(virtual_machine_name, csn)
|
45
|
+
sleep 60
|
46
|
+
vm = subject.get_virtual_machine(virtual_machine_name, csn)
|
47
|
+
vm.must_be_nil
|
48
|
+
cloud_service = Azure::CloudServiceManagementService.new
|
49
|
+
cloud_presence = cloud_service.get_cloud_service(csn)
|
50
|
+
cloud_presence.must_equal false
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -1,173 +1,173 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require 'integration/test_helper'
|
16
|
-
|
17
|
-
describe Azure::VirtualMachineManagementService do
|
18
|
-
let(:vm_name) { 'test-operation-vm' }
|
19
|
-
let(:csn) { vm_name + '-service-qwert' }
|
20
|
-
subject { Azure::VirtualMachineManagementService.new }
|
21
|
-
|
22
|
-
before do
|
23
|
-
Loggerx.expects(:puts).returns(nil).at_least(0)
|
24
|
-
params = {
|
25
|
-
vm_name: vm_name,
|
26
|
-
vm_user: 'user',
|
27
|
-
image: LinuxImage.name,
|
28
|
-
password: 'User123',
|
29
|
-
location: LinuxImageLocation
|
30
|
-
}
|
31
|
-
options = {
|
32
|
-
storage_account_name: StorageAccountName,
|
33
|
-
cloud_service_name: csn,
|
34
|
-
}
|
35
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
36
|
-
if vm.nil?
|
37
|
-
subject.create_virtual_machine(params, options)
|
38
|
-
sleep 60 # Wait to finish provision.
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe 'Operations on virtual machine' do
|
43
|
-
|
44
|
-
describe '#shutdown_virtual_machine' do
|
45
|
-
it 'shuts down virtual machine' do
|
46
|
-
subject.shutdown_virtual_machine(vm_name, csn)
|
47
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
48
|
-
%w(StoppedVM StoppedDeallocated).must_include vm.status
|
49
|
-
|
50
|
-
msg = subject.shutdown_virtual_machine(vm_name, csn)
|
51
|
-
emsg = 'Cannot perform the shutdown operation on a stopped virtual machine'
|
52
|
-
assert_match(/#{emsg}/, msg)
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'raises an error if virtual machine doesn\'t exists' do
|
56
|
-
name = 'test-shutdown'
|
57
|
-
msg = subject.shutdown_virtual_machine(name, csn)
|
58
|
-
assert_match(/Cannot find virtual machine \"#{name}\" under cloud service \"#{csn}\"/, msg)
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
describe '#start_virtual_machine' do
|
64
|
-
before do
|
65
|
-
subject.shutdown_virtual_machine(vm_name, csn)
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'starts virtual machine' do
|
69
|
-
subject.start_virtual_machine(vm_name, csn)
|
70
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
71
|
-
statuses = %w(ReadyRole Provisioning CreatingVM RoleStateUnknown)
|
72
|
-
statuses.must_include vm.status
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
76
|
-
|
77
|
-
describe '#restart_virtual_machine' do
|
78
|
-
before do
|
79
|
-
subject.restart_virtual_machine(vm_name, csn)
|
80
|
-
end
|
81
|
-
|
82
|
-
it 'restarts virtual machine' do
|
83
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
84
|
-
%w(ReadyRole Provisioning RoleStateUnknown).must_include vm.status
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
describe '#get_virtual_machine' do
|
89
|
-
it 'should return virtual machine object' do
|
90
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
91
|
-
vm.vm_name.must_equal vm_name
|
92
|
-
vm.cloud_service_name.must_equal csn
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
describe '#list_virtual_machines' do
|
97
|
-
it 'returns a list of virtual machines' do
|
98
|
-
vms = subject.list_virtual_machines
|
99
|
-
vms.wont_be_nil
|
100
|
-
vms.must_be_kind_of Array
|
101
|
-
vm = vms.first
|
102
|
-
vm.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
103
|
-
vm_names = vms.map(&:vm_name)
|
104
|
-
vm_names.must_include vm.vm_name
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
describe '#add_data_disk' do
|
109
|
-
it 'add data disk to virtual machine' do
|
110
|
-
others = { disk_size: 100 }
|
111
|
-
subject.add_data_disk(vm_name, csn, others)
|
112
|
-
dms = VirtualMachineDiskManagementService.new
|
113
|
-
disks = dms.list_virtual_machine_disks
|
114
|
-
disks = disks.select { |x| (/#{csn}/ =~ x.name) && x.os_type.empty? }
|
115
|
-
assert_operator disks.size, :>=, 1
|
116
|
-
disks.first.size.must_equal others[:disk_size].to_s
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
describe 'Add, Update, Delete endpoints' do
|
121
|
-
|
122
|
-
it 'should add endpoints to virtual machine.' do
|
123
|
-
ep1 = {
|
124
|
-
name: 'endpoint-1',
|
125
|
-
public_port: 777,
|
126
|
-
local_port: 777,
|
127
|
-
protocol: 'UDP',
|
128
|
-
}
|
129
|
-
ep2 = {
|
130
|
-
name: 'endpoint-2',
|
131
|
-
public_port: 888,
|
132
|
-
local_port: 889,
|
133
|
-
protocol: 'UDP',
|
134
|
-
load_balancer_name: 'lb',
|
135
|
-
load_balancer: { protocol: 'http', path: 'mypath' }
|
136
|
-
}
|
137
|
-
subject.update_endpoints(vm_name, csn, ep1, ep2)
|
138
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
139
|
-
vm.udp_endpoints.size.must_equal 2
|
140
|
-
vm.udp_endpoints.first[:name].must_equal 'endpoint-1'
|
141
|
-
vm.udp_endpoints.last[:name].must_equal 'endpoint-2'
|
142
|
-
end
|
143
|
-
|
144
|
-
it 'should update existing endpoints of virtual machine.' do
|
145
|
-
ep1 = {
|
146
|
-
name: 'SSH',
|
147
|
-
public_port: 2222,
|
148
|
-
local_port: 22,
|
149
|
-
protocol: 'TCP',
|
150
|
-
}
|
151
|
-
subject.update_endpoints(vm_name, csn, ep1)
|
152
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
153
|
-
vm.tcp_endpoints.size.must_equal 1
|
154
|
-
vm.tcp_endpoints.first[:name].must_equal 'SSH'
|
155
|
-
vm.tcp_endpoints.first[:public_port].must_equal '2222'
|
156
|
-
end
|
157
|
-
|
158
|
-
it 'should delete endpoint of virtual machine.' do
|
159
|
-
subject.delete_endpoint(vm_name, csn, 'SSH')
|
160
|
-
vm = subject.get_virtual_machine(vm_name, csn)
|
161
|
-
vm.tcp_endpoints.size.must_equal 0
|
162
|
-
ep1 = {
|
163
|
-
name: 'SSH',
|
164
|
-
public_port: 22,
|
165
|
-
local_port: 22,
|
166
|
-
protocol: 'TCP',
|
167
|
-
}
|
168
|
-
subject.update_endpoints(vm_name, csn, ep1)
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
end
|
173
|
-
end # end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# Copyright 2013 Microsoft Open Technologies, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require 'integration/test_helper'
|
16
|
+
|
17
|
+
describe Azure::VirtualMachineManagementService do
|
18
|
+
let(:vm_name) { 'test-operation-vm' }
|
19
|
+
let(:csn) { vm_name + '-service-qwert' }
|
20
|
+
subject { Azure::VirtualMachineManagementService.new }
|
21
|
+
|
22
|
+
before do
|
23
|
+
Loggerx.expects(:puts).returns(nil).at_least(0)
|
24
|
+
params = {
|
25
|
+
vm_name: vm_name,
|
26
|
+
vm_user: 'user',
|
27
|
+
image: LinuxImage.name,
|
28
|
+
password: 'User123',
|
29
|
+
location: LinuxImageLocation
|
30
|
+
}
|
31
|
+
options = {
|
32
|
+
storage_account_name: StorageAccountName,
|
33
|
+
cloud_service_name: csn,
|
34
|
+
}
|
35
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
36
|
+
if vm.nil?
|
37
|
+
subject.create_virtual_machine(params, options)
|
38
|
+
sleep 60 # Wait to finish provision.
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'Operations on virtual machine' do
|
43
|
+
|
44
|
+
describe '#shutdown_virtual_machine' do
|
45
|
+
it 'shuts down virtual machine' do
|
46
|
+
subject.shutdown_virtual_machine(vm_name, csn)
|
47
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
48
|
+
%w(StoppedVM StoppedDeallocated).must_include vm.status
|
49
|
+
|
50
|
+
msg = subject.shutdown_virtual_machine(vm_name, csn)
|
51
|
+
emsg = 'Cannot perform the shutdown operation on a stopped virtual machine'
|
52
|
+
assert_match(/#{emsg}/, msg)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'raises an error if virtual machine doesn\'t exists' do
|
56
|
+
name = 'test-shutdown'
|
57
|
+
msg = subject.shutdown_virtual_machine(name, csn)
|
58
|
+
assert_match(/Cannot find virtual machine \"#{name}\" under cloud service \"#{csn}\"/, msg)
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#start_virtual_machine' do
|
64
|
+
before do
|
65
|
+
subject.shutdown_virtual_machine(vm_name, csn)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'starts virtual machine' do
|
69
|
+
subject.start_virtual_machine(vm_name, csn)
|
70
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
71
|
+
statuses = %w(ReadyRole Provisioning CreatingVM RoleStateUnknown)
|
72
|
+
statuses.must_include vm.status
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
describe '#restart_virtual_machine' do
|
78
|
+
before do
|
79
|
+
subject.restart_virtual_machine(vm_name, csn)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'restarts virtual machine' do
|
83
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
84
|
+
%w(ReadyRole Provisioning RoleStateUnknown).must_include vm.status
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe '#get_virtual_machine' do
|
89
|
+
it 'should return virtual machine object' do
|
90
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
91
|
+
vm.vm_name.must_equal vm_name
|
92
|
+
vm.cloud_service_name.must_equal csn
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe '#list_virtual_machines' do
|
97
|
+
it 'returns a list of virtual machines' do
|
98
|
+
vms = subject.list_virtual_machines
|
99
|
+
vms.wont_be_nil
|
100
|
+
vms.must_be_kind_of Array
|
101
|
+
vm = vms.first
|
102
|
+
vm.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
103
|
+
vm_names = vms.map(&:vm_name)
|
104
|
+
vm_names.must_include vm.vm_name
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe '#add_data_disk' do
|
109
|
+
it 'add data disk to virtual machine' do
|
110
|
+
others = { disk_size: 100 }
|
111
|
+
subject.add_data_disk(vm_name, csn, others)
|
112
|
+
dms = VirtualMachineDiskManagementService.new
|
113
|
+
disks = dms.list_virtual_machine_disks
|
114
|
+
disks = disks.select { |x| (/#{csn}/ =~ x.name) && x.os_type.empty? }
|
115
|
+
assert_operator disks.size, :>=, 1
|
116
|
+
disks.first.size.must_equal others[:disk_size].to_s
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe 'Add, Update, Delete endpoints' do
|
121
|
+
|
122
|
+
it 'should add endpoints to virtual machine.' do
|
123
|
+
ep1 = {
|
124
|
+
name: 'endpoint-1',
|
125
|
+
public_port: 777,
|
126
|
+
local_port: 777,
|
127
|
+
protocol: 'UDP',
|
128
|
+
}
|
129
|
+
ep2 = {
|
130
|
+
name: 'endpoint-2',
|
131
|
+
public_port: 888,
|
132
|
+
local_port: 889,
|
133
|
+
protocol: 'UDP',
|
134
|
+
load_balancer_name: 'lb',
|
135
|
+
load_balancer: { protocol: 'http', path: 'mypath' }
|
136
|
+
}
|
137
|
+
subject.update_endpoints(vm_name, csn, ep1, ep2)
|
138
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
139
|
+
vm.udp_endpoints.size.must_equal 2
|
140
|
+
vm.udp_endpoints.first[:name].must_equal 'endpoint-1'
|
141
|
+
vm.udp_endpoints.last[:name].must_equal 'endpoint-2'
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'should update existing endpoints of virtual machine.' do
|
145
|
+
ep1 = {
|
146
|
+
name: 'SSH',
|
147
|
+
public_port: 2222,
|
148
|
+
local_port: 22,
|
149
|
+
protocol: 'TCP',
|
150
|
+
}
|
151
|
+
subject.update_endpoints(vm_name, csn, ep1)
|
152
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
153
|
+
vm.tcp_endpoints.size.must_equal 1
|
154
|
+
vm.tcp_endpoints.first[:name].must_equal 'SSH'
|
155
|
+
vm.tcp_endpoints.first[:public_port].must_equal '2222'
|
156
|
+
end
|
157
|
+
|
158
|
+
it 'should delete endpoint of virtual machine.' do
|
159
|
+
subject.delete_endpoint(vm_name, csn, 'SSH')
|
160
|
+
vm = subject.get_virtual_machine(vm_name, csn)
|
161
|
+
vm.tcp_endpoints.size.must_equal 0
|
162
|
+
ep1 = {
|
163
|
+
name: 'SSH',
|
164
|
+
public_port: 22,
|
165
|
+
local_port: 22,
|
166
|
+
protocol: 'TCP',
|
167
|
+
}
|
168
|
+
subject.update_endpoints(vm_name, csn, ep1)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
173
|
+
end # end
|