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,38 +1,38 @@
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
-
16
- module Azure
17
- module CloudServiceManagement
18
- class CloudService
19
- def initialize
20
- yield self if block_given?
21
- end
22
-
23
- attr_accessor :url
24
- attr_accessor :name
25
- attr_accessor :label
26
- attr_accessor :description
27
- attr_accessor :location
28
- attr_accessor :affinity_group
29
- attr_accessor :status
30
- attr_accessor :date_created
31
- attr_accessor :date_modified
32
- attr_accessor :extended_properties
33
- attr_accessor :default_winrm_certificate_thumbprint
34
- attr_accessor :virtual_machines
35
- attr_accessor :deployment_name
36
- end
37
- end
38
- 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
+
16
+ module Azure
17
+ module CloudServiceManagement
18
+ class CloudService
19
+ def initialize
20
+ yield self if block_given?
21
+ end
22
+
23
+ attr_accessor :url
24
+ attr_accessor :name
25
+ attr_accessor :label
26
+ attr_accessor :description
27
+ attr_accessor :location
28
+ attr_accessor :affinity_group
29
+ attr_accessor :status
30
+ attr_accessor :date_created
31
+ attr_accessor :date_modified
32
+ attr_accessor :extended_properties
33
+ attr_accessor :default_winrm_certificate_thumbprint
34
+ attr_accessor :virtual_machines
35
+ attr_accessor :deployment_name
36
+ end
37
+ end
38
+ end
@@ -1,140 +1,140 @@
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 'azure/cloud_service_management/serialization'
16
-
17
- module Azure
18
- module CloudServiceManagement
19
- class CloudServiceManagementService < BaseManagementService
20
- def initialize
21
- super()
22
- end
23
-
24
- # Public: Creates a new cloud service in Windows Azure.
25
- #
26
- # ==== Attributes
27
- #
28
- # * +name+ - String. The name of the cloud service.
29
- # * +options+ - Hash. Optional parameters.
30
- #
31
- # ==== Options
32
- #
33
- # Accepted key/value pairs in options parameter are:
34
- # * +:label+ -String. The label for this cloud service.
35
- # * +:description+ - String. A description for the hosted service. (optional)
36
- # * +:location+ - String. The regional data center location where the
37
- # cloud service will be created. Required if affinity group not
38
- # specified (optional)
39
- # * +:affinity_group_name - String. Name of the affinity group with
40
- # which to assocate the cloud service. Required if location not
41
- # specified (optional)
42
- # * +:extended_properties+ - Hash. Key/Value pairs of extended
43
- # properties to add to the cloud service. The key is used as the
44
- # property name and the value as its value. (optional)
45
- #
46
- # See http://msdn.microsoft.com/en-us/library/windowsazure/gg441304.aspx
47
- #
48
- # Returns None
49
- def create_cloud_service(name, options = {})
50
- Loggerx.error_with_exit 'Cloud service name is not valid ' unless name
51
- if get_cloud_service(name)
52
- Loggerx.warn "Cloud service #{name} already exists. Skipped..."
53
- else
54
- Loggerx.info "Creating cloud service #{name}."
55
- request_path = '/services/hostedservices'
56
- body = Serialization.cloud_services_to_xml(name, options)
57
- request = ManagementHttpRequest.new(:post, request_path, body)
58
- request.call
59
- end
60
- end
61
-
62
- # Public: Gets a list of hosted services available under the current subscription.
63
- #
64
- # Returns an array of Azure::CloudServiceManagement::CloudService objects
65
- def list_cloud_services
66
- request_path = '/services/hostedservices'
67
- request = ManagementHttpRequest.new(:get, request_path, nil)
68
- response = request.call
69
- Serialization.cloud_services_from_xml(response)
70
- end
71
-
72
- # Public: Checks to see if the specified hosted service is available
73
- #
74
- # ==== Attributes
75
- #
76
- # * +name+ - String. Cloud service name.
77
- #
78
- # Returns: A boolean value indicating whether the cloud service exists.
79
- # If true, the cloud service is available. If false, the cloud service
80
- # does not exist.
81
- def get_cloud_service(name)
82
- return false if name.nil?
83
- flag = false
84
- list_cloud_services.each do |cloud_service|
85
- if cloud_service.name == name
86
- flag = true
87
- break
88
- end
89
- end
90
- flag
91
- end
92
-
93
- def get_cloud_service_properties(name)
94
- request_path = "/services/hostedservices/#{name}?embed-detail=true"
95
- request = ManagementHttpRequest.new(:get, request_path)
96
- response = request.call
97
- Serialization.cloud_services_from_xml(response).first
98
- end
99
-
100
- # Public: Deletes the specified cloud service of given subscription id from Windows Azure.
101
- #
102
- # ==== Attributes
103
- #
104
- # * +name+ - String. Cloud service name.
105
- #
106
- # Returns: None
107
- def delete_cloud_service(cloud_service_name)
108
- request_path = "/services/hostedservices/#{cloud_service_name}"
109
- request = ManagementHttpRequest.new(:delete, request_path)
110
- Loggerx.info "Deleting cloud service #{cloud_service_name}. \n"
111
- request.call
112
- end
113
-
114
- # Public: Deletes the specified deployment.
115
- #
116
- # ==== Attributes
117
- #
118
- # * +cloud_service_name+ - String. Cloud service name.
119
- #
120
- # See http://msdn.microsoft.com/en-us/library/windowsazure/ee460815.aspx
121
- #
122
- # Returns NONE
123
- def delete_cloud_service_deployment(cloud_service_name)
124
- request_path = "/services/hostedservices/#{cloud_service_name}/deploymentslots/production"
125
- request = ManagementHttpRequest.new(:delete, request_path)
126
- Loggerx.info "Deleting deployment of cloud service \"#{cloud_service_name}\" ..."
127
- request.call
128
- end
129
-
130
- def upload_certificate(cloud_service_name, ssh)
131
- data = export_der(ssh[:cert], ssh[:key])
132
- request_path = "/services/hostedservices/#{cloud_service_name}/certificates"
133
- body = Serialization.add_certificate_to_xml(data)
134
- Loggerx.info "Uploading certificate to cloud service #{cloud_service_name}..."
135
- request = ManagementHttpRequest.new(:post, request_path, body)
136
- request.call
137
- end
138
- end
139
- end
140
- 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 'azure/cloud_service_management/serialization'
16
+
17
+ module Azure
18
+ module CloudServiceManagement
19
+ class CloudServiceManagementService < BaseManagementService
20
+ def initialize
21
+ super()
22
+ end
23
+
24
+ # Public: Creates a new cloud service in Windows Azure.
25
+ #
26
+ # ==== Attributes
27
+ #
28
+ # * +name+ - String. The name of the cloud service.
29
+ # * +options+ - Hash. Optional parameters.
30
+ #
31
+ # ==== Options
32
+ #
33
+ # Accepted key/value pairs in options parameter are:
34
+ # * +:label+ -String. The label for this cloud service.
35
+ # * +:description+ - String. A description for the hosted service. (optional)
36
+ # * +:location+ - String. The regional data center location where the
37
+ # cloud service will be created. Required if affinity group not
38
+ # specified (optional)
39
+ # * +:affinity_group_name - String. Name of the affinity group with
40
+ # which to assocate the cloud service. Required if location not
41
+ # specified (optional)
42
+ # * +:extended_properties+ - Hash. Key/Value pairs of extended
43
+ # properties to add to the cloud service. The key is used as the
44
+ # property name and the value as its value. (optional)
45
+ #
46
+ # See http://msdn.microsoft.com/en-us/library/windowsazure/gg441304.aspx
47
+ #
48
+ # Returns None
49
+ def create_cloud_service(name, options = {})
50
+ Loggerx.error_with_exit 'Cloud service name is not valid ' unless name
51
+ if get_cloud_service(name)
52
+ Loggerx.warn "Cloud service #{name} already exists. Skipped..."
53
+ else
54
+ Loggerx.info "Creating cloud service #{name}."
55
+ request_path = '/services/hostedservices'
56
+ body = Serialization.cloud_services_to_xml(name, options)
57
+ request = ManagementHttpRequest.new(:post, request_path, body)
58
+ request.call
59
+ end
60
+ end
61
+
62
+ # Public: Gets a list of hosted services available under the current subscription.
63
+ #
64
+ # Returns an array of Azure::CloudServiceManagement::CloudService objects
65
+ def list_cloud_services
66
+ request_path = '/services/hostedservices'
67
+ request = ManagementHttpRequest.new(:get, request_path, nil)
68
+ response = request.call
69
+ Serialization.cloud_services_from_xml(response)
70
+ end
71
+
72
+ # Public: Checks to see if the specified hosted service is available
73
+ #
74
+ # ==== Attributes
75
+ #
76
+ # * +name+ - String. Cloud service name.
77
+ #
78
+ # Returns: A boolean value indicating whether the cloud service exists.
79
+ # If true, the cloud service is available. If false, the cloud service
80
+ # does not exist.
81
+ def get_cloud_service(name)
82
+ return false if name.nil?
83
+ flag = false
84
+ list_cloud_services.each do |cloud_service|
85
+ if cloud_service.name == name
86
+ flag = true
87
+ break
88
+ end
89
+ end
90
+ flag
91
+ end
92
+
93
+ def get_cloud_service_properties(name)
94
+ request_path = "/services/hostedservices/#{name}?embed-detail=true"
95
+ request = ManagementHttpRequest.new(:get, request_path)
96
+ response = request.call
97
+ Serialization.cloud_services_from_xml(response).first
98
+ end
99
+
100
+ # Public: Deletes the specified cloud service of given subscription id from Windows Azure.
101
+ #
102
+ # ==== Attributes
103
+ #
104
+ # * +name+ - String. Cloud service name.
105
+ #
106
+ # Returns: None
107
+ def delete_cloud_service(cloud_service_name)
108
+ request_path = "/services/hostedservices/#{cloud_service_name}"
109
+ request = ManagementHttpRequest.new(:delete, request_path)
110
+ Loggerx.info "Deleting cloud service #{cloud_service_name}. \n"
111
+ request.call
112
+ end
113
+
114
+ # Public: Deletes the specified deployment.
115
+ #
116
+ # ==== Attributes
117
+ #
118
+ # * +cloud_service_name+ - String. Cloud service name.
119
+ #
120
+ # See http://msdn.microsoft.com/en-us/library/windowsazure/ee460815.aspx
121
+ #
122
+ # Returns NONE
123
+ def delete_cloud_service_deployment(cloud_service_name)
124
+ request_path = "/services/hostedservices/#{cloud_service_name}/deploymentslots/production"
125
+ request = ManagementHttpRequest.new(:delete, request_path)
126
+ Loggerx.info "Deleting deployment of cloud service \"#{cloud_service_name}\" ..."
127
+ request.call
128
+ end
129
+
130
+ def upload_certificate(cloud_service_name, ssh)
131
+ data = export_der(ssh[:cert], ssh[:key])
132
+ request_path = "/services/hostedservices/#{cloud_service_name}/certificates"
133
+ body = Serialization.add_certificate_to_xml(data)
134
+ Loggerx.info "Uploading certificate to cloud service #{cloud_service_name}..."
135
+ request = ManagementHttpRequest.new(:post, request_path, body)
136
+ request.call
137
+ end
138
+ end
139
+ end
140
+ end
@@ -1,117 +1,117 @@
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 'base64'
16
- require 'azure/cloud_service_management/cloud_service'
17
- require 'azure/virtual_machine_management/serialization'
18
-
19
- module Azure
20
- module CloudServiceManagement
21
- module Serialization
22
- def self.cloud_services_to_xml(name, options = {})
23
- options[:label] = options[:label] || name
24
-
25
- builder = Nokogiri::XML::Builder.new do |xml|
26
- xml.CreateHostedService(
27
- 'xmlns' => 'http://schemas.microsoft.com/windowsazure'
28
- ) do
29
- xml.ServiceName(name)
30
- xml.Label(Base64.encode64(options[:label]))
31
- xml.Description(options[:description]) unless\
32
- options[:description].nil? || options[:description].empty?
33
-
34
- unless options[:affinity_group_name].nil?
35
- xml.AffinityGroup(options[:affinity_group_name])
36
- else
37
- xml.Location(options[:location])
38
- end
39
-
40
- xml.ExtendedProperties do
41
- options[:extended_properties].each do |prop_name, prop_value|
42
- xml.ExtendedProperty do
43
- xml.Name(prop_name)
44
- xml.Value(prop_value)
45
- end unless (prop_name.nil? || prop_name.empty?)\
46
- || (prop_value.nil? || prop_value.empty?)
47
- end
48
- end unless options[:extended_properties].nil?\
49
- || options[:extended_properties].empty?
50
- end
51
- end
52
- builder.doc.to_xml
53
- end
54
-
55
- def self.cloud_services_from_xml(cloud_xml)
56
- clouds = []
57
- cloud_services_xml = cloud_xml.css('HostedServices HostedService')
58
- cloud_services_xml = cloud_xml.css('HostedService') if \
59
- cloud_services_xml.length == 0
60
- cloud_services_xml.each do |cloud_service_xml|
61
- cloud = CloudService.new
62
- cloud.url = xml_content(cloud_service_xml, 'Url')
63
- cloud.name = xml_content(cloud_service_xml, 'ServiceName')
64
-
65
- props_xml = cloud_service_xml.css('HostedServiceProperties')
66
-
67
- cloud.label = Base64.decode64(xml_content(props_xml, 'Label'))
68
- cloud.description = xml_content(props_xml, 'Description')
69
- location = xml_content(props_xml, 'Location')
70
- cloud.location = location unless location.empty?
71
- affinity_group = xml_content(props_xml, 'AffinityGroup')
72
- cloud.affinity_group = affinity_group unless affinity_group
73
- cloud.status = xml_content(props_xml, 'Status')
74
- cloud.date_created = xml_content(props_xml, 'DateCreated')
75
- cloud.date_modified = xml_content(props_xml, 'DateLastModified')
76
-
77
- cloud.extended_properties = {}
78
- props_xml.css('ExtendedProperties ExtendedProperty').map do |prop|
79
- p_name = xml_content(prop, 'Name')
80
- p_value = xml_content(prop, 'Value')
81
- cloud.extended_properties[p_name] = p_value
82
- end
83
-
84
- cloud.default_winrm_certificate_thumbprint = xml_content(
85
- cloud_service_xml, 'DefaultWinRMCertificateThumbprint'
86
- )
87
- deployment_xml = cloud_services_xml.css('Deployments Deployment')
88
- cloud.deployment_name = xml_content(deployment_xml, 'Name')
89
- vms_in_deployment = {}
90
-
91
- cloud_service_xml.css('Deployments').each do |deployxml|
92
- deployment_name = xml_content(deployxml, 'Deployment Name')
93
- vms = Azure::VirtualMachineManagement::Serialization.virtual_machines_from_xml(
94
- deployxml, cloud.name
95
- )
96
- vms_in_deployment[deployment_name.to_sym] = vms if vms
97
- end
98
-
99
- cloud.virtual_machines = vms_in_deployment
100
- clouds << cloud
101
- end
102
- clouds.compact
103
- end
104
-
105
- def self.add_certificate_to_xml(data)
106
- builder = Nokogiri::XML::Builder.new do |xml|
107
- xml.CertificateFile('xmlns' => 'http://schemas.microsoft.com/windowsazure') do
108
- xml.Data data
109
- xml.CertificateFormat 'pfx'
110
- xml.Password nil
111
- end
112
- end
113
- builder.doc.to_xml
114
- end
115
- end
116
- end
117
- 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 'base64'
16
+ require 'azure/cloud_service_management/cloud_service'
17
+ require 'azure/virtual_machine_management/serialization'
18
+
19
+ module Azure
20
+ module CloudServiceManagement
21
+ module Serialization
22
+ def self.cloud_services_to_xml(name, options = {})
23
+ options[:label] = options[:label] || name
24
+
25
+ builder = Nokogiri::XML::Builder.new do |xml|
26
+ xml.CreateHostedService(
27
+ 'xmlns' => 'http://schemas.microsoft.com/windowsazure'
28
+ ) do
29
+ xml.ServiceName(name)
30
+ xml.Label(Base64.encode64(options[:label]))
31
+ xml.Description(options[:description]) unless\
32
+ options[:description].nil? || options[:description].empty?
33
+
34
+ unless options[:affinity_group_name].nil?
35
+ xml.AffinityGroup(options[:affinity_group_name])
36
+ else
37
+ xml.Location(options[:location])
38
+ end
39
+
40
+ xml.ExtendedProperties do
41
+ options[:extended_properties].each do |prop_name, prop_value|
42
+ xml.ExtendedProperty do
43
+ xml.Name(prop_name)
44
+ xml.Value(prop_value)
45
+ end unless (prop_name.nil? || prop_name.empty?)\
46
+ || (prop_value.nil? || prop_value.empty?)
47
+ end
48
+ end unless options[:extended_properties].nil?\
49
+ || options[:extended_properties].empty?
50
+ end
51
+ end
52
+ builder.doc.to_xml
53
+ end
54
+
55
+ def self.cloud_services_from_xml(cloud_xml)
56
+ clouds = []
57
+ cloud_services_xml = cloud_xml.css('HostedServices HostedService')
58
+ cloud_services_xml = cloud_xml.css('HostedService') if \
59
+ cloud_services_xml.length == 0
60
+ cloud_services_xml.each do |cloud_service_xml|
61
+ cloud = CloudService.new
62
+ cloud.url = xml_content(cloud_service_xml, 'Url')
63
+ cloud.name = xml_content(cloud_service_xml, 'ServiceName')
64
+
65
+ props_xml = cloud_service_xml.css('HostedServiceProperties')
66
+
67
+ cloud.label = Base64.decode64(xml_content(props_xml, 'Label'))
68
+ cloud.description = xml_content(props_xml, 'Description')
69
+ location = xml_content(props_xml, 'Location')
70
+ cloud.location = location unless location.empty?
71
+ affinity_group = xml_content(props_xml, 'AffinityGroup')
72
+ cloud.affinity_group = affinity_group unless affinity_group
73
+ cloud.status = xml_content(props_xml, 'Status')
74
+ cloud.date_created = xml_content(props_xml, 'DateCreated')
75
+ cloud.date_modified = xml_content(props_xml, 'DateLastModified')
76
+
77
+ cloud.extended_properties = {}
78
+ props_xml.css('ExtendedProperties ExtendedProperty').map do |prop|
79
+ p_name = xml_content(prop, 'Name')
80
+ p_value = xml_content(prop, 'Value')
81
+ cloud.extended_properties[p_name] = p_value
82
+ end
83
+
84
+ cloud.default_winrm_certificate_thumbprint = xml_content(
85
+ cloud_service_xml, 'DefaultWinRMCertificateThumbprint'
86
+ )
87
+ deployment_xml = cloud_services_xml.css('Deployments Deployment')
88
+ cloud.deployment_name = xml_content(deployment_xml, 'Name')
89
+ vms_in_deployment = {}
90
+
91
+ cloud_service_xml.css('Deployments').each do |deployxml|
92
+ deployment_name = xml_content(deployxml, 'Deployment Name')
93
+ vms = Azure::VirtualMachineManagement::Serialization.virtual_machines_from_xml(
94
+ deployxml, cloud.name
95
+ )
96
+ vms_in_deployment[deployment_name.to_sym] = vms if vms
97
+ end
98
+
99
+ cloud.virtual_machines = vms_in_deployment
100
+ clouds << cloud
101
+ end
102
+ clouds.compact
103
+ end
104
+
105
+ def self.add_certificate_to_xml(data)
106
+ builder = Nokogiri::XML::Builder.new do |xml|
107
+ xml.CertificateFile('xmlns' => 'http://schemas.microsoft.com/windowsazure') do
108
+ xml.Data data
109
+ xml.CertificateFormat 'pfx'
110
+ xml.Password nil
111
+ end
112
+ end
113
+ builder.doc.to_xml
114
+ end
115
+ end
116
+ end
117
+ end