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,42 +1,42 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
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 "test_helper"
|
16
|
-
require "azure"
|
17
|
-
|
18
|
-
Azure::Core.configure do |config|
|
19
|
-
config.storage_access_key = ENV.fetch("AZURE_STORAGE_ACCESS_KEY")
|
20
|
-
config.storage_account_name = ENV.fetch("AZURE_STORAGE_ACCOUNT")
|
21
|
-
# config.storage_table_host = ENV.fetch("AZURE_STORAGE_TABLE_HOST")
|
22
|
-
# config.storage_blob_host = ENV.fetch("AZURE_STORAGE_BLOB_HOST")
|
23
|
-
# config.storage_queue_host = ENV.fetch("AZURE_STORAGE_QUEUE_HOST")
|
24
|
-
|
25
|
-
config.sb_namespace = ENV.fetch("AZURE_SERVICEBUS_NAMESPACE")
|
26
|
-
config.sb_access_key = ENV.fetch("AZURE_SERVICEBUS_ACCESS_KEY")
|
27
|
-
# config.sb_issuer = ENV.fetch("AZURE_SERVICEBUS_ISSUER")
|
28
|
-
config.management_certificate = ENV.fetch('AZURE_MANAGEMENT_CERTIFICATE')
|
29
|
-
# config.management_endpoint = ENV.fetch("AZURE_MANAGEMENT_ENDPOINT")
|
30
|
-
config.subscription_id = ENV.fetch("AZURE_SUBSCRIPTION_ID")
|
31
|
-
end
|
32
|
-
|
33
|
-
StorageAccountName = random_string('storagetest',10)
|
34
|
-
Images = Azure::VirtualMachineImageManagementService.new.list_virtual_machine_images
|
35
|
-
LinuxImage = Images.select{|image| image.os_type == 'Linux'}.first
|
36
|
-
WindowsImage = Images.select{|image| image.os_type == 'Windows'}.first
|
37
|
-
WindowsImageLocation = WindowsImage.locations.split(';').first
|
38
|
-
LinuxImageLocation = LinuxImage.locations.split(';').first
|
39
|
-
|
40
|
-
MiniTest::Unit.after_tests {
|
41
|
-
VirtualMachineNameGenerator.cleanup
|
42
|
-
}
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
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 "test_helper"
|
16
|
+
require "azure"
|
17
|
+
|
18
|
+
Azure::Core.configure do |config|
|
19
|
+
config.storage_access_key = ENV.fetch("AZURE_STORAGE_ACCESS_KEY")
|
20
|
+
config.storage_account_name = ENV.fetch("AZURE_STORAGE_ACCOUNT")
|
21
|
+
# config.storage_table_host = ENV.fetch("AZURE_STORAGE_TABLE_HOST")
|
22
|
+
# config.storage_blob_host = ENV.fetch("AZURE_STORAGE_BLOB_HOST")
|
23
|
+
# config.storage_queue_host = ENV.fetch("AZURE_STORAGE_QUEUE_HOST")
|
24
|
+
|
25
|
+
config.sb_namespace = ENV.fetch("AZURE_SERVICEBUS_NAMESPACE")
|
26
|
+
config.sb_access_key = ENV.fetch("AZURE_SERVICEBUS_ACCESS_KEY")
|
27
|
+
# config.sb_issuer = ENV.fetch("AZURE_SERVICEBUS_ISSUER")
|
28
|
+
config.management_certificate = ENV.fetch('AZURE_MANAGEMENT_CERTIFICATE')
|
29
|
+
# config.management_endpoint = ENV.fetch("AZURE_MANAGEMENT_ENDPOINT")
|
30
|
+
config.subscription_id = ENV.fetch("AZURE_SUBSCRIPTION_ID")
|
31
|
+
end
|
32
|
+
|
33
|
+
StorageAccountName = random_string('storagetest',10)
|
34
|
+
Images = Azure::VirtualMachineImageManagementService.new.list_virtual_machine_images
|
35
|
+
LinuxImage = Images.select{|image| image.os_type == 'Linux'}.first
|
36
|
+
WindowsImage = Images.select{|image| image.os_type == 'Windows'}.first
|
37
|
+
WindowsImageLocation = WindowsImage.locations.split(';').first
|
38
|
+
LinuxImageLocation = LinuxImage.locations.split(';').first
|
39
|
+
|
40
|
+
MiniTest::Unit.after_tests {
|
41
|
+
VirtualMachineNameGenerator.cleanup
|
42
|
+
}
|
@@ -1,260 +1,260 @@
|
|
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
|
-
subject { Azure::VirtualMachineManagementService.new }
|
19
|
-
let(:cloud_service) { Azure::CloudServiceManagementService.new }
|
20
|
-
let(:names) { VirtualMachineNameHelper.name }
|
21
|
-
let(:virtual_machine_name) { names.first }
|
22
|
-
let(:cloud_service_name) { names.last }
|
23
|
-
let(:storage_account_name) { StorageAccountName }
|
24
|
-
let(:username) { 'adminuser' }
|
25
|
-
let(:password) { 'Admin123' }
|
26
|
-
let(:certificate) { Fixtures['certificate.pem'] }
|
27
|
-
let(:private_key) { Fixtures['privatekey.key'] }
|
28
|
-
|
29
|
-
let(:params)do
|
30
|
-
{
|
31
|
-
vm_name: virtual_machine_name,
|
32
|
-
vm_user: username,
|
33
|
-
image: LinuxImage.name,
|
34
|
-
password: password,
|
35
|
-
location: LinuxImageLocation
|
36
|
-
}
|
37
|
-
end
|
38
|
-
|
39
|
-
let(:windows_params)do
|
40
|
-
{
|
41
|
-
vm_name: virtual_machine_name,
|
42
|
-
vm_user: username,
|
43
|
-
image: WindowsImage.name,
|
44
|
-
password: password,
|
45
|
-
location: WindowsImageLocation
|
46
|
-
}
|
47
|
-
end
|
48
|
-
|
49
|
-
let(:options)do
|
50
|
-
{
|
51
|
-
storage_account_name: storage_account_name,
|
52
|
-
cloud_service_name: cloud_service_name,
|
53
|
-
vm_size: 'Basic_A0'
|
54
|
-
}
|
55
|
-
end
|
56
|
-
|
57
|
-
let(:default_options) do
|
58
|
-
{
|
59
|
-
storage_account_name: storage_account_name,
|
60
|
-
cloud_service_name: cloud_service_name
|
61
|
-
}
|
62
|
-
end
|
63
|
-
|
64
|
-
before do
|
65
|
-
Loggerx.expects(:puts).returns(nil).at_least(0)
|
66
|
-
end
|
67
|
-
|
68
|
-
describe '#deployment' do
|
69
|
-
|
70
|
-
describe '#add_role' do
|
71
|
-
before do
|
72
|
-
@vm_obj = subject.create_virtual_machine(params, options)
|
73
|
-
params[:cloud_service_name] = options[:cloud_service_name]
|
74
|
-
options.delete(:cloud_service_name)
|
75
|
-
params.delete(:location)
|
76
|
-
params[:vm_name] = "add-#{virtual_machine_name}"
|
77
|
-
sleep 30
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'should add role to existing storage account and cloud service' do
|
81
|
-
vm = subject.add_role(params, options)
|
82
|
-
vm.cloud_service_name.must_equal params[:cloud_service_name]
|
83
|
-
vm.vm_name.must_equal params[:vm_name]
|
84
|
-
vm.deployment_name.must_equal @vm_obj.deployment_name
|
85
|
-
vm.os_type.must_equal 'Linux'
|
86
|
-
end
|
87
|
-
|
88
|
-
it 'should add role and create new storage account' do
|
89
|
-
params[:vm_name] = "Add-storage-#{virtual_machine_name}"
|
90
|
-
vm = subject.add_role(params)
|
91
|
-
vm.cloud_service_name.must_equal params[:cloud_service_name]
|
92
|
-
vm.vm_name.must_equal params[:vm_name].downcase
|
93
|
-
vm.deployment_name.must_equal @vm_obj.deployment_name
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
describe '#virtual_network' do
|
98
|
-
before do
|
99
|
-
options[:virtual_network_name] = 'v-net'
|
100
|
-
affinity_gorup_name = random_string('affinity-group-', 10)
|
101
|
-
Azure::BaseManagementService.new.create_affinity_group(
|
102
|
-
affinity_gorup_name,
|
103
|
-
params[:location],
|
104
|
-
'AG1'
|
105
|
-
) rescue nil
|
106
|
-
vnet_service = Azure::VirtualNetworkManagementService
|
107
|
-
vnet_service.new.set_network_configuration(
|
108
|
-
options[:virtual_network_name],
|
109
|
-
affinity_gorup_name,
|
110
|
-
['172.16.0.0/12']
|
111
|
-
) rescue nil
|
112
|
-
subject.create_virtual_machine(params, options)
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'should provision virtual machine in a existing virtual network' do
|
116
|
-
virtual_machine = subject.get_virtual_machine(virtual_machine_name, cloud_service_name)
|
117
|
-
virtual_machine.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
118
|
-
virtual_machine.vm_name.must_equal virtual_machine_name
|
119
|
-
virtual_machine.virtual_network_name.must_equal options[:virtual_network_name]
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'should set options hash with valid cloud_service_name, deployment_name, storage_account_name and virtual network' do
|
124
|
-
csn = options[:cloud_service_name]
|
125
|
-
options[:availability_set_name] = 'aval-set-test'
|
126
|
-
vm = subject.create_virtual_machine(params, options)
|
127
|
-
vm.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
128
|
-
vm.cloud_service_name.wont_be_nil
|
129
|
-
vm.vm_name.must_equal virtual_machine_name
|
130
|
-
vm.deployment_name.wont_be_nil
|
131
|
-
vm.deployment_name.must_equal vm.cloud_service_name
|
132
|
-
vm.os_type.must_equal 'Linux'
|
133
|
-
vm.role_size.must_equal 'Basic_A0'
|
134
|
-
vm.availability_set_name.must_equal 'aval-set-test'
|
135
|
-
options[:storage_account_name].wont_be_nil
|
136
|
-
assert_match(/^#{params[:vm_name] + '-service'}*/, csn)
|
137
|
-
end
|
138
|
-
|
139
|
-
it 'should creates http and https enabled winrm virtual machine without certificate.' do
|
140
|
-
default_options.merge!(winrm_transport: %w(https http))
|
141
|
-
result = subject.create_virtual_machine(windows_params, default_options)
|
142
|
-
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
143
|
-
assert_equal(result.os_type, 'Windows')
|
144
|
-
tcp_endpoints_names = []
|
145
|
-
result.tcp_endpoints.each do |tcp_endpoint|
|
146
|
-
tcp_endpoints_names << tcp_endpoint[:name]
|
147
|
-
end
|
148
|
-
tcp_endpoints_names.must_include 'PowerShell'
|
149
|
-
tcp_endpoints_names.must_include 'WinRm-Http'
|
150
|
-
sleep 30
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'should creates https enabled winrm virtual machine using certificate.' do
|
154
|
-
default_options.merge!(
|
155
|
-
winrm_transport: ['https'],
|
156
|
-
private_key_file: private_key,
|
157
|
-
certificate_file: certificate
|
158
|
-
)
|
159
|
-
result = subject.create_virtual_machine(windows_params, default_options)
|
160
|
-
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
161
|
-
assert_equal(result.os_type, 'Windows')
|
162
|
-
tcp_endpoints_names = []
|
163
|
-
result.tcp_endpoints.each do |tcp_endpoint|
|
164
|
-
tcp_endpoints_names << tcp_endpoint[:name]
|
165
|
-
end
|
166
|
-
tcp_endpoints_names.must_include 'PowerShell'
|
167
|
-
end
|
168
|
-
|
169
|
-
it 'should creates windows virtual machine without winrm.' do
|
170
|
-
default_options.merge!(winrm_transport: ['none'])
|
171
|
-
result = subject.create_virtual_machine(windows_params, default_options)
|
172
|
-
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
173
|
-
assert_equal(result.os_type, 'Windows')
|
174
|
-
tcp_endpoints_names = []
|
175
|
-
result.tcp_endpoints.each do |tcp_endpoint|
|
176
|
-
tcp_endpoints_names << tcp_endpoint['Name']
|
177
|
-
end
|
178
|
-
assert !tcp_endpoints_names.include?('PowerShell')
|
179
|
-
assert !tcp_endpoints_names.include?('WinRm-Http')
|
180
|
-
end
|
181
|
-
|
182
|
-
it 'created linux virtual machine should be accessible using password and certificate' do
|
183
|
-
default_options.merge!(
|
184
|
-
private_key_file: private_key,
|
185
|
-
certificate_file: certificate
|
186
|
-
)
|
187
|
-
result = subject.create_virtual_machine(params, default_options)
|
188
|
-
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
189
|
-
assert_equal(result.os_type, 'Linux')
|
190
|
-
sleep 30
|
191
|
-
end
|
192
|
-
|
193
|
-
it 'throws error as port value is beyond or less than actual range' do
|
194
|
-
default_options.merge!(tcp_endpoints: '80,166535:166535')
|
195
|
-
msg = subject.create_virtual_machine(params, default_options)
|
196
|
-
error_msg = "invalid. Allowed values are 'a number between 1 to 65535'."
|
197
|
-
assert_match(/#{error_msg}/i, msg)
|
198
|
-
|
199
|
-
default_options.merge!(tcp_endpoints: '80,0:0')
|
200
|
-
msg = subject.create_virtual_machine(params, default_options)
|
201
|
-
assert_match(/#{error_msg}/i, msg)
|
202
|
-
cloud_service.delete_cloud_service(cloud_service_name)
|
203
|
-
end
|
204
|
-
|
205
|
-
it 'throws error when multiple VMs created under same DNS' do
|
206
|
-
subject.create_virtual_machine(params, default_options)
|
207
|
-
msg = subject.create_virtual_machine(windows_params, default_options)
|
208
|
-
error_msg = 'The specified deployment slot Production is occupied.'
|
209
|
-
assert_match(/#{error_msg}/i, msg)
|
210
|
-
end
|
211
|
-
|
212
|
-
it 'throws SystemExit error when vm_user not provided' do
|
213
|
-
params.delete(:vm_user)
|
214
|
-
msg = subject.create_virtual_machine(params)
|
215
|
-
assert_match(/You did not provide a valid 'vm_user' value./i, msg)
|
216
|
-
end
|
217
|
-
|
218
|
-
it 'throws Runtime error when image not provide' do
|
219
|
-
params.delete(:image)
|
220
|
-
msg = subject.create_virtual_machine(params)
|
221
|
-
assert_match(/The virtual machine image source is not valid/i, msg)
|
222
|
-
end
|
223
|
-
|
224
|
-
it 'error thrown when invalid storage account name is given' do
|
225
|
-
default_options.merge!(storage_account_name: 'storageuse_91')
|
226
|
-
msg = subject.create_virtual_machine(params, default_options)
|
227
|
-
assert_match(/The name is not a valid storage account name./i, msg)
|
228
|
-
cloud_service.delete_cloud_service(cloud_service_name)
|
229
|
-
end
|
230
|
-
|
231
|
-
it 'error thrown when invalid cloud name is given' do
|
232
|
-
default_options.merge!(cloud_service_name: 'cloud-server-test_91')
|
233
|
-
msg = subject.create_virtual_machine(params, default_options)
|
234
|
-
assert_match(/The hosted service name is invalid/i, msg)
|
235
|
-
end
|
236
|
-
|
237
|
-
it 'error thrown when invalid deployment name provided' do
|
238
|
-
default_options.merge!(deployment_name: 'instance_B')
|
239
|
-
msg = subject.create_virtual_machine(params, default_options)
|
240
|
-
assert_match(/The deployment name is invalid/i, msg)
|
241
|
-
cloud_service.delete_cloud_service(cloud_service_name)
|
242
|
-
end
|
243
|
-
|
244
|
-
it 'error thrown when invalid VM name given for Windows OS' do
|
245
|
-
windows_params.merge!(vm_name: 'MSServerInstnce01')
|
246
|
-
msg = subject.create_virtual_machine(windows_params, default_options)
|
247
|
-
error_msg = 'The computer name cannot be more than 15 characters long'
|
248
|
-
assert_match(/#{error_msg}/i, msg)
|
249
|
-
cloud_service.delete_cloud_service(cloud_service_name)
|
250
|
-
end
|
251
|
-
|
252
|
-
it 'error thrown when blank password for Windows OS provided' do
|
253
|
-
windows_params.delete(:password)
|
254
|
-
msg = subject.create_virtual_machine(windows_params, default_options)
|
255
|
-
assert_match(/You did not provide a valid 'password' value./i, msg)
|
256
|
-
end
|
257
|
-
|
258
|
-
end # deployment
|
259
|
-
|
260
|
-
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
|
+
subject { Azure::VirtualMachineManagementService.new }
|
19
|
+
let(:cloud_service) { Azure::CloudServiceManagementService.new }
|
20
|
+
let(:names) { VirtualMachineNameHelper.name }
|
21
|
+
let(:virtual_machine_name) { names.first }
|
22
|
+
let(:cloud_service_name) { names.last }
|
23
|
+
let(:storage_account_name) { StorageAccountName }
|
24
|
+
let(:username) { 'adminuser' }
|
25
|
+
let(:password) { 'Admin123' }
|
26
|
+
let(:certificate) { Fixtures['certificate.pem'] }
|
27
|
+
let(:private_key) { Fixtures['privatekey.key'] }
|
28
|
+
|
29
|
+
let(:params)do
|
30
|
+
{
|
31
|
+
vm_name: virtual_machine_name,
|
32
|
+
vm_user: username,
|
33
|
+
image: LinuxImage.name,
|
34
|
+
password: password,
|
35
|
+
location: LinuxImageLocation
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
let(:windows_params)do
|
40
|
+
{
|
41
|
+
vm_name: virtual_machine_name,
|
42
|
+
vm_user: username,
|
43
|
+
image: WindowsImage.name,
|
44
|
+
password: password,
|
45
|
+
location: WindowsImageLocation
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
let(:options)do
|
50
|
+
{
|
51
|
+
storage_account_name: storage_account_name,
|
52
|
+
cloud_service_name: cloud_service_name,
|
53
|
+
vm_size: 'Basic_A0'
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
let(:default_options) do
|
58
|
+
{
|
59
|
+
storage_account_name: storage_account_name,
|
60
|
+
cloud_service_name: cloud_service_name
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
before do
|
65
|
+
Loggerx.expects(:puts).returns(nil).at_least(0)
|
66
|
+
end
|
67
|
+
|
68
|
+
describe '#deployment' do
|
69
|
+
|
70
|
+
describe '#add_role' do
|
71
|
+
before do
|
72
|
+
@vm_obj = subject.create_virtual_machine(params, options)
|
73
|
+
params[:cloud_service_name] = options[:cloud_service_name]
|
74
|
+
options.delete(:cloud_service_name)
|
75
|
+
params.delete(:location)
|
76
|
+
params[:vm_name] = "add-#{virtual_machine_name}"
|
77
|
+
sleep 30
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should add role to existing storage account and cloud service' do
|
81
|
+
vm = subject.add_role(params, options)
|
82
|
+
vm.cloud_service_name.must_equal params[:cloud_service_name]
|
83
|
+
vm.vm_name.must_equal params[:vm_name]
|
84
|
+
vm.deployment_name.must_equal @vm_obj.deployment_name
|
85
|
+
vm.os_type.must_equal 'Linux'
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should add role and create new storage account' do
|
89
|
+
params[:vm_name] = "Add-storage-#{virtual_machine_name}"
|
90
|
+
vm = subject.add_role(params)
|
91
|
+
vm.cloud_service_name.must_equal params[:cloud_service_name]
|
92
|
+
vm.vm_name.must_equal params[:vm_name].downcase
|
93
|
+
vm.deployment_name.must_equal @vm_obj.deployment_name
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe '#virtual_network' do
|
98
|
+
before do
|
99
|
+
options[:virtual_network_name] = 'v-net'
|
100
|
+
affinity_gorup_name = random_string('affinity-group-', 10)
|
101
|
+
Azure::BaseManagementService.new.create_affinity_group(
|
102
|
+
affinity_gorup_name,
|
103
|
+
params[:location],
|
104
|
+
'AG1'
|
105
|
+
) rescue nil
|
106
|
+
vnet_service = Azure::VirtualNetworkManagementService
|
107
|
+
vnet_service.new.set_network_configuration(
|
108
|
+
options[:virtual_network_name],
|
109
|
+
affinity_gorup_name,
|
110
|
+
['172.16.0.0/12']
|
111
|
+
) rescue nil
|
112
|
+
subject.create_virtual_machine(params, options)
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'should provision virtual machine in a existing virtual network' do
|
116
|
+
virtual_machine = subject.get_virtual_machine(virtual_machine_name, cloud_service_name)
|
117
|
+
virtual_machine.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
118
|
+
virtual_machine.vm_name.must_equal virtual_machine_name
|
119
|
+
virtual_machine.virtual_network_name.must_equal options[:virtual_network_name]
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'should set options hash with valid cloud_service_name, deployment_name, storage_account_name and virtual network' do
|
124
|
+
csn = options[:cloud_service_name]
|
125
|
+
options[:availability_set_name] = 'aval-set-test'
|
126
|
+
vm = subject.create_virtual_machine(params, options)
|
127
|
+
vm.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
128
|
+
vm.cloud_service_name.wont_be_nil
|
129
|
+
vm.vm_name.must_equal virtual_machine_name
|
130
|
+
vm.deployment_name.wont_be_nil
|
131
|
+
vm.deployment_name.must_equal vm.cloud_service_name
|
132
|
+
vm.os_type.must_equal 'Linux'
|
133
|
+
vm.role_size.must_equal 'Basic_A0'
|
134
|
+
vm.availability_set_name.must_equal 'aval-set-test'
|
135
|
+
options[:storage_account_name].wont_be_nil
|
136
|
+
assert_match(/^#{params[:vm_name] + '-service'}*/, csn)
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'should creates http and https enabled winrm virtual machine without certificate.' do
|
140
|
+
default_options.merge!(winrm_transport: %w(https http))
|
141
|
+
result = subject.create_virtual_machine(windows_params, default_options)
|
142
|
+
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
143
|
+
assert_equal(result.os_type, 'Windows')
|
144
|
+
tcp_endpoints_names = []
|
145
|
+
result.tcp_endpoints.each do |tcp_endpoint|
|
146
|
+
tcp_endpoints_names << tcp_endpoint[:name]
|
147
|
+
end
|
148
|
+
tcp_endpoints_names.must_include 'PowerShell'
|
149
|
+
tcp_endpoints_names.must_include 'WinRm-Http'
|
150
|
+
sleep 30
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'should creates https enabled winrm virtual machine using certificate.' do
|
154
|
+
default_options.merge!(
|
155
|
+
winrm_transport: ['https'],
|
156
|
+
private_key_file: private_key,
|
157
|
+
certificate_file: certificate
|
158
|
+
)
|
159
|
+
result = subject.create_virtual_machine(windows_params, default_options)
|
160
|
+
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
161
|
+
assert_equal(result.os_type, 'Windows')
|
162
|
+
tcp_endpoints_names = []
|
163
|
+
result.tcp_endpoints.each do |tcp_endpoint|
|
164
|
+
tcp_endpoints_names << tcp_endpoint[:name]
|
165
|
+
end
|
166
|
+
tcp_endpoints_names.must_include 'PowerShell'
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'should creates windows virtual machine without winrm.' do
|
170
|
+
default_options.merge!(winrm_transport: ['none'])
|
171
|
+
result = subject.create_virtual_machine(windows_params, default_options)
|
172
|
+
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
173
|
+
assert_equal(result.os_type, 'Windows')
|
174
|
+
tcp_endpoints_names = []
|
175
|
+
result.tcp_endpoints.each do |tcp_endpoint|
|
176
|
+
tcp_endpoints_names << tcp_endpoint['Name']
|
177
|
+
end
|
178
|
+
assert !tcp_endpoints_names.include?('PowerShell')
|
179
|
+
assert !tcp_endpoints_names.include?('WinRm-Http')
|
180
|
+
end
|
181
|
+
|
182
|
+
it 'created linux virtual machine should be accessible using password and certificate' do
|
183
|
+
default_options.merge!(
|
184
|
+
private_key_file: private_key,
|
185
|
+
certificate_file: certificate
|
186
|
+
)
|
187
|
+
result = subject.create_virtual_machine(params, default_options)
|
188
|
+
result.must_be_kind_of Azure::VirtualMachineManagement::VirtualMachine
|
189
|
+
assert_equal(result.os_type, 'Linux')
|
190
|
+
sleep 30
|
191
|
+
end
|
192
|
+
|
193
|
+
it 'throws error as port value is beyond or less than actual range' do
|
194
|
+
default_options.merge!(tcp_endpoints: '80,166535:166535')
|
195
|
+
msg = subject.create_virtual_machine(params, default_options)
|
196
|
+
error_msg = "invalid. Allowed values are 'a number between 1 to 65535'."
|
197
|
+
assert_match(/#{error_msg}/i, msg)
|
198
|
+
|
199
|
+
default_options.merge!(tcp_endpoints: '80,0:0')
|
200
|
+
msg = subject.create_virtual_machine(params, default_options)
|
201
|
+
assert_match(/#{error_msg}/i, msg)
|
202
|
+
cloud_service.delete_cloud_service(cloud_service_name)
|
203
|
+
end
|
204
|
+
|
205
|
+
it 'throws error when multiple VMs created under same DNS' do
|
206
|
+
subject.create_virtual_machine(params, default_options)
|
207
|
+
msg = subject.create_virtual_machine(windows_params, default_options)
|
208
|
+
error_msg = 'The specified deployment slot Production is occupied.'
|
209
|
+
assert_match(/#{error_msg}/i, msg)
|
210
|
+
end
|
211
|
+
|
212
|
+
it 'throws SystemExit error when vm_user not provided' do
|
213
|
+
params.delete(:vm_user)
|
214
|
+
msg = subject.create_virtual_machine(params)
|
215
|
+
assert_match(/You did not provide a valid 'vm_user' value./i, msg)
|
216
|
+
end
|
217
|
+
|
218
|
+
it 'throws Runtime error when image not provide' do
|
219
|
+
params.delete(:image)
|
220
|
+
msg = subject.create_virtual_machine(params)
|
221
|
+
assert_match(/The virtual machine image source is not valid/i, msg)
|
222
|
+
end
|
223
|
+
|
224
|
+
it 'error thrown when invalid storage account name is given' do
|
225
|
+
default_options.merge!(storage_account_name: 'storageuse_91')
|
226
|
+
msg = subject.create_virtual_machine(params, default_options)
|
227
|
+
assert_match(/The name is not a valid storage account name./i, msg)
|
228
|
+
cloud_service.delete_cloud_service(cloud_service_name)
|
229
|
+
end
|
230
|
+
|
231
|
+
it 'error thrown when invalid cloud name is given' do
|
232
|
+
default_options.merge!(cloud_service_name: 'cloud-server-test_91')
|
233
|
+
msg = subject.create_virtual_machine(params, default_options)
|
234
|
+
assert_match(/The hosted service name is invalid/i, msg)
|
235
|
+
end
|
236
|
+
|
237
|
+
it 'error thrown when invalid deployment name provided' do
|
238
|
+
default_options.merge!(deployment_name: 'instance_B')
|
239
|
+
msg = subject.create_virtual_machine(params, default_options)
|
240
|
+
assert_match(/The deployment name is invalid/i, msg)
|
241
|
+
cloud_service.delete_cloud_service(cloud_service_name)
|
242
|
+
end
|
243
|
+
|
244
|
+
it 'error thrown when invalid VM name given for Windows OS' do
|
245
|
+
windows_params.merge!(vm_name: 'MSServerInstnce01')
|
246
|
+
msg = subject.create_virtual_machine(windows_params, default_options)
|
247
|
+
error_msg = 'The computer name cannot be more than 15 characters long'
|
248
|
+
assert_match(/#{error_msg}/i, msg)
|
249
|
+
cloud_service.delete_cloud_service(cloud_service_name)
|
250
|
+
end
|
251
|
+
|
252
|
+
it 'error thrown when blank password for Windows OS provided' do
|
253
|
+
windows_params.delete(:password)
|
254
|
+
msg = subject.create_virtual_machine(windows_params, default_options)
|
255
|
+
assert_match(/You did not provide a valid 'password' value./i, msg)
|
256
|
+
end
|
257
|
+
|
258
|
+
end # deployment
|
259
|
+
|
260
|
+
end
|