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.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -11
  3. data/.travis.yml +10 -10
  4. data/ChangeLog.txt +70 -68
  5. data/Gemfile +15 -15
  6. data/README.md +618 -618
  7. data/Rakefile +133 -133
  8. data/azure.gemspec +44 -44
  9. data/lib/azure.rb +52 -52
  10. data/lib/azure/base_management/affinity_group.rb +32 -32
  11. data/lib/azure/base_management/base_management_service.rb +304 -304
  12. data/lib/azure/base_management/location.rb +27 -27
  13. data/lib/azure/base_management/management_http_request.rb +171 -171
  14. data/lib/azure/base_management/serialization.rb +129 -129
  15. data/lib/azure/base_management/sql_management_http_request.rb +45 -45
  16. data/lib/azure/blob/blob.rb +31 -31
  17. data/lib/azure/blob/blob_service.rb +1423 -1423
  18. data/lib/azure/blob/block.rb +30 -30
  19. data/lib/azure/blob/container.rb +31 -31
  20. data/lib/azure/blob/serialization.rb +284 -284
  21. data/lib/azure/cloud_service_management/cloud_service.rb +38 -38
  22. data/lib/azure/cloud_service_management/cloud_service_management_service.rb +140 -140
  23. data/lib/azure/cloud_service_management/serialization.rb +117 -117
  24. data/lib/azure/core.rb +39 -39
  25. data/lib/azure/core/auth/authorizer.rb +36 -36
  26. data/lib/azure/core/auth/shared_key.rb +110 -110
  27. data/lib/azure/core/auth/shared_key_lite.rb +48 -48
  28. data/lib/azure/core/auth/signer.rb +48 -48
  29. data/lib/azure/core/configuration.rb +211 -211
  30. data/lib/azure/core/error.rb +22 -22
  31. data/lib/azure/core/filtered_service.rb +43 -43
  32. data/lib/azure/core/http/debug_filter.rb +35 -35
  33. data/lib/azure/core/http/http_error.rb +88 -88
  34. data/lib/azure/core/http/http_filter.rb +52 -52
  35. data/lib/azure/core/http/http_request.rb +157 -157
  36. data/lib/azure/core/http/http_response.rb +140 -140
  37. data/lib/azure/core/http/retry_policy.rb +73 -73
  38. data/lib/azure/core/http/signer_filter.rb +33 -33
  39. data/lib/azure/core/service.rb +62 -62
  40. data/lib/azure/core/signed_service.rb +42 -42
  41. data/lib/azure/core/utility.rb +190 -190
  42. data/lib/azure/queue/message.rb +29 -29
  43. data/lib/azure/queue/queue.rb +28 -28
  44. data/lib/azure/queue/queue_service.rb +567 -567
  45. data/lib/azure/queue/serialization.rb +106 -106
  46. data/lib/azure/service/access_policy.rb +25 -25
  47. data/lib/azure/service/cors.rb +11 -11
  48. data/lib/azure/service/cors_rule.rb +15 -15
  49. data/lib/azure/service/enumeration_results.rb +20 -20
  50. data/lib/azure/service/logging.rb +31 -31
  51. data/lib/azure/service/metrics.rb +30 -30
  52. data/lib/azure/service/retention_policy.rb +24 -24
  53. data/lib/azure/service/serialization.rb +297 -297
  54. data/lib/azure/service/signed_identifier.rb +29 -29
  55. data/lib/azure/service/storage_service.rb +82 -82
  56. data/lib/azure/service/storage_service_properties.rb +37 -37
  57. data/lib/azure/service_bus/action.rb +21 -21
  58. data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
  59. data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
  60. data/lib/azure/service_bus/brokered_message.rb +123 -123
  61. data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
  62. data/lib/azure/service_bus/correlation_filter.rb +45 -45
  63. data/lib/azure/service_bus/empty_rule_action.rb +29 -29
  64. data/lib/azure/service_bus/false_filter.rb +38 -38
  65. data/lib/azure/service_bus/filter.rb +21 -21
  66. data/lib/azure/service_bus/interval.rb +103 -103
  67. data/lib/azure/service_bus/queue.rb +229 -229
  68. data/lib/azure/service_bus/relay.rb +87 -87
  69. data/lib/azure/service_bus/resource.rb +108 -108
  70. data/lib/azure/service_bus/rule.rb +97 -97
  71. data/lib/azure/service_bus/rule_aspect.rb +34 -34
  72. data/lib/azure/service_bus/serialization.rb +161 -161
  73. data/lib/azure/service_bus/service_bus_service.rb +896 -896
  74. data/lib/azure/service_bus/sql_filter.rb +50 -50
  75. data/lib/azure/service_bus/sql_rule_action.rb +50 -50
  76. data/lib/azure/service_bus/subscription.rb +183 -183
  77. data/lib/azure/service_bus/topic.rb +186 -186
  78. data/lib/azure/service_bus/true_filter.rb +38 -38
  79. data/lib/azure/sql_database_management/serialization.rb +111 -111
  80. data/lib/azure/sql_database_management/sql_database.rb +31 -31
  81. data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -200
  82. data/lib/azure/storage_management/serialization.rb +184 -184
  83. data/lib/azure/storage_management/storage_account.rb +40 -40
  84. data/lib/azure/storage_management/storage_management_service.rb +166 -166
  85. data/lib/azure/table/auth/shared_key.rb +92 -92
  86. data/lib/azure/table/auth/shared_key_lite.rb +44 -44
  87. data/lib/azure/table/batch.rb +329 -329
  88. data/lib/azure/table/batch_response.rb +118 -118
  89. data/lib/azure/table/edmtype.rb +126 -126
  90. data/lib/azure/table/entity.rb +30 -30
  91. data/lib/azure/table/guid.rb +23 -23
  92. data/lib/azure/table/query.rb +111 -111
  93. data/lib/azure/table/serialization.rb +107 -107
  94. data/lib/azure/table/table_service.rb +559 -559
  95. data/lib/azure/version.rb +31 -31
  96. data/lib/azure/virtual_machine_image_management/serialization.rb +66 -66
  97. data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +25 -25
  98. data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +25 -25
  99. data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +94 -94
  100. data/lib/azure/virtual_machine_management/serialization.rb +462 -462
  101. data/lib/azure/virtual_machine_management/virtual_machine.rb +45 -45
  102. data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +588 -588
  103. data/lib/azure/virtual_network_management/serialization.rb +190 -190
  104. data/lib/azure/virtual_network_management/virtual_network.rb +37 -37
  105. data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
  106. data/test/fixtures/affinity_group.xml +33 -33
  107. data/test/fixtures/all_containers.xml +20 -20
  108. data/test/fixtures/all_tables.xml +22 -22
  109. data/test/fixtures/certificate.pem +21 -21
  110. data/test/fixtures/container_acl.xml +11 -11
  111. data/test/fixtures/create_sql_database_server.xml +1 -1
  112. data/test/fixtures/create_storage_desc_error.xml +5 -5
  113. data/test/fixtures/create_storage_extendedprop_error.xml +8 -8
  114. data/test/fixtures/create_storage_extendedpropname_error.xml +6 -6
  115. data/test/fixtures/create_storage_full_error.xml +6 -6
  116. data/test/fixtures/create_storage_label_error.xml +5 -5
  117. data/test/fixtures/create_storage_location_error.xml +5 -5
  118. data/test/fixtures/create_storage_name_error.xml +6 -6
  119. data/test/fixtures/create_table_response_entry.xml +15 -15
  120. data/test/fixtures/delete_storage_container_error.xml +5 -5
  121. data/test/fixtures/delete_storage_error.xml +5 -5
  122. data/test/fixtures/deployment_error.xml +5 -5
  123. data/test/fixtures/get_storage_account_error.xml +5 -5
  124. data/test/fixtures/get_storage_account_properties.xml +31 -31
  125. data/test/fixtures/get_storage_account_properties_new.xml +31 -31
  126. data/test/fixtures/http_error.xml +5 -5
  127. data/test/fixtures/insert_entity_response_entry.xml +25 -25
  128. data/test/fixtures/list_affinity_groups.xml +22 -22
  129. data/test/fixtures/list_blobs.xml +120 -120
  130. data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
  131. data/test/fixtures/list_blocks_all.xml +22 -22
  132. data/test/fixtures/list_blocks_committed.xml +12 -12
  133. data/test/fixtures/list_cloud_services.xml +38 -38
  134. data/test/fixtures/list_containers.xml +37 -37
  135. data/test/fixtures/list_firewall_management_endpoint.xml +27 -27
  136. data/test/fixtures/list_images.xml +110 -110
  137. data/test/fixtures/list_locations.xml +62 -62
  138. data/test/fixtures/list_page_ranges.xml +10 -10
  139. data/test/fixtures/list_sql_database.xml +36 -36
  140. data/test/fixtures/list_sql_server_firewall.xml +23 -23
  141. data/test/fixtures/list_storage_account_single.xml +24 -24
  142. data/test/fixtures/list_storage_accounts.xml +45 -45
  143. data/test/fixtures/list_virtual_networks.xml +92 -92
  144. data/test/fixtures/logging.xml +11 -11
  145. data/test/fixtures/management_certificate.pem +55 -55
  146. data/test/fixtures/messages.xml +12 -12
  147. data/test/fixtures/metrics.xml +10 -10
  148. data/test/fixtures/privatekey.key +28 -28
  149. data/test/fixtures/query_entities_empty_response.xml +7 -7
  150. data/test/fixtures/query_entities_response.xml +45 -45
  151. data/test/fixtures/queue_service_properties.xml +22 -22
  152. data/test/fixtures/queue_service_properties_original.xml +19 -19
  153. data/test/fixtures/queues.xml +16 -16
  154. data/test/fixtures/retention_policy.xml +5 -5
  155. data/test/fixtures/sb_default_create_queue_response.xml +23 -23
  156. data/test/fixtures/sb_default_create_relay_response.xml +15 -15
  157. data/test/fixtures/sb_default_create_topic_response.xml +18 -18
  158. data/test/fixtures/sb_get_access_token_response.txt +1 -1
  159. data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
  160. data/test/fixtures/storage_service_properties.xml +54 -54
  161. data/test/fixtures/update_storage_account.xml +16 -16
  162. data/test/fixtures/update_storage_error.xml +4 -4
  163. data/test/fixtures/updated_storage_accounts.xml +52 -52
  164. data/test/fixtures/virtual_machine.xml +113 -113
  165. data/test/fixtures/windows_virtual_machine.xml +106 -106
  166. data/test/integration/affinity_group/Affinity_test.rb +55 -55
  167. data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
  168. data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
  169. data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
  170. data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
  171. data/test/integration/blob/blob_gb18030_test.rb +199 -199
  172. data/test/integration/blob/blob_metadata_test.rb +75 -75
  173. data/test/integration/blob/blob_pages_test.rb +119 -119
  174. data/test/integration/blob/blob_properties_test.rb +77 -77
  175. data/test/integration/blob/block_blob_test.rb +254 -254
  176. data/test/integration/blob/container/container_acl_test.rb +69 -69
  177. data/test/integration/blob/container/container_metadata_test.rb +50 -50
  178. data/test/integration/blob/container/create_container_test.rb +60 -60
  179. data/test/integration/blob/container/delete_container_test.rb +39 -39
  180. data/test/integration/blob/container/get_container_properties_test.rb +48 -48
  181. data/test/integration/blob/container/list_containers_test.rb +79 -79
  182. data/test/integration/blob/container/root_container_test.rb +53 -53
  183. data/test/integration/blob/copy_blob_test.rb +113 -113
  184. data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
  185. data/test/integration/blob/create_page_blob_test.rb +83 -83
  186. data/test/integration/blob/delete_blob_test.rb +159 -159
  187. data/test/integration/blob/get_blob_test.rb +65 -65
  188. data/test/integration/blob/informative_errors_test.rb +38 -38
  189. data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
  190. data/test/integration/blob/lease/break_lease_test.rb +40 -40
  191. data/test/integration/blob/lease/release_lease_test.rb +40 -40
  192. data/test/integration/blob/lease/renew_lease_test.rb +42 -42
  193. data/test/integration/blob/list_blobs_test.rb +113 -113
  194. data/test/integration/cloud_service/Cloud_Create_test.rb +44 -44
  195. data/test/integration/cloud_service/Cloud_Delete_test.rb +44 -44
  196. data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
  197. data/test/integration/database/create_sql_server_test.rb +53 -53
  198. data/test/integration/database/delete_sql_server_firewall_test.rb +70 -70
  199. data/test/integration/database/delete_sql_server_test.rb +58 -58
  200. data/test/integration/database/list_sql_server_firewall_test.rb +45 -45
  201. data/test/integration/database/list_sql_servers_test.rb +44 -44
  202. data/test/integration/database/reset_password_sql_server_test.rb +55 -55
  203. data/test/integration/location/Location_List_test.rb +39 -39
  204. data/test/integration/queue/clear_messages_test.rb +42 -42
  205. data/test/integration/queue/create_message_test.rb +75 -75
  206. data/test/integration/queue/create_queue_test.rb +50 -50
  207. data/test/integration/queue/delete_message_test.rb +67 -67
  208. data/test/integration/queue/delete_queue_test.rb +45 -45
  209. data/test/integration/queue/informative_errors_test.rb +41 -41
  210. data/test/integration/queue/list_messages_encoded_test.rb +79 -79
  211. data/test/integration/queue/list_messages_test.rb +79 -79
  212. data/test/integration/queue/list_queues_test.rb +44 -44
  213. data/test/integration/queue/peek_messages_test.rb +59 -59
  214. data/test/integration/queue/queue_gb18030_test.rb +131 -131
  215. data/test/integration/queue/queue_metadata_test.rb +40 -40
  216. data/test/integration/queue/update_message_test.rb +74 -74
  217. data/test/integration/service_bus/informative_errors_test.rb +36 -36
  218. data/test/integration/service_bus/queues_scenario_test.rb +200 -200
  219. data/test/integration/service_bus/queues_test.rb +265 -265
  220. data/test/integration/service_bus/relay_test.rb +131 -131
  221. data/test/integration/service_bus/rules_test.rb +144 -144
  222. data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
  223. data/test/integration/service_bus/scenario_test.rb +101 -101
  224. data/test/integration/service_bus/subscriptions_test.rb +211 -211
  225. data/test/integration/service_bus/topics_scenario_test.rb +406 -406
  226. data/test/integration/service_bus/topics_test.rb +129 -129
  227. data/test/integration/storage_management/storage_management_test.rb +160 -160
  228. data/test/integration/table/create_table_test.rb +35 -35
  229. data/test/integration/table/delete_entity_batch_test.rb +106 -106
  230. data/test/integration/table/delete_entity_test.rb +93 -93
  231. data/test/integration/table/delete_table_test.rb +39 -39
  232. data/test/integration/table/get_table_test.rb +36 -36
  233. data/test/integration/table/informative_errors_test.rb +38 -38
  234. data/test/integration/table/insert_entity_batch_test.rb +99 -99
  235. data/test/integration/table/insert_entity_test.rb +87 -87
  236. data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
  237. data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
  238. data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
  239. data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
  240. data/test/integration/table/merge_entity_batch_test.rb +127 -127
  241. data/test/integration/table/merge_entity_test.rb +112 -112
  242. data/test/integration/table/query_entities_test.rb +194 -194
  243. data/test/integration/table/query_tables_test.rb +42 -42
  244. data/test/integration/table/query_test.rb +250 -250
  245. data/test/integration/table/table_acl_test.rb +51 -51
  246. data/test/integration/table/table_gb18030_test.rb +355 -355
  247. data/test/integration/table/update_entity_batch_test.rb +148 -148
  248. data/test/integration/table/update_entity_test.rb +130 -130
  249. data/test/integration/test_helper.rb +42 -42
  250. data/test/integration/vm/VM_Create_test.rb +260 -260
  251. data/test/integration/vm/VM_Delete_test.rb +55 -55
  252. data/test/integration/vm/VM_Operations_test.rb +173 -173
  253. data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
  254. data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
  255. data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
  256. data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
  257. data/test/support/env.rb +19 -19
  258. data/test/support/fixtures.rb +36 -36
  259. data/test/support/name_generator.rb +168 -168
  260. data/test/support/stubs.rb +42 -42
  261. data/test/support/virtual_machine_name_generator.rb +102 -102
  262. data/test/support/virtual_network_helper.rb +73 -73
  263. data/test/test_helper.rb +53 -53
  264. data/test/unit/affinity_group/affinity_group_test.rb +192 -192
  265. data/test/unit/affinity_group/serialization_test.rb +88 -88
  266. data/test/unit/base_management/location_test.rb +57 -57
  267. data/test/unit/blob/blob_service_test.rb +1946 -1946
  268. data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
  269. data/test/unit/cloud_service_management/serialization_test.rb +169 -169
  270. data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
  271. data/test/unit/core/auth/shared_key_test.rb +58 -58
  272. data/test/unit/core/auth/signer_test.rb +30 -30
  273. data/test/unit/core/http/http_error_test.rb +57 -57
  274. data/test/unit/core/http/http_request_test.rb +66 -66
  275. data/test/unit/core/http/http_response_test.rb +45 -45
  276. data/test/unit/core/http/retry_policy_test.rb +23 -23
  277. data/test/unit/database/serialization_test.rb +97 -97
  278. data/test/unit/database/sql_database_server_service_test.rb +288 -288
  279. data/test/unit/service/serialization_test.rb +532 -532
  280. data/test/unit/service/storage_service_test.rb +292 -292
  281. data/test/unit/storage_management/serialization_test.rb +232 -232
  282. data/test/unit/storage_management/storage_management_service_test.rb +261 -261
  283. data/test/unit/table/edmtype_test.rb +107 -107
  284. data/test/unit/virtual_machine_image_management/serialization_test.rb +35 -35
  285. data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +65 -65
  286. data/test/unit/virtual_machine_management/serialization_test.rb +258 -258
  287. data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +440 -440
  288. data/test/unit/vnet/serialization_test.rb +187 -187
  289. data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
  290. 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