azure 0.6.0 → 0.6.1

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 (283) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -11
  3. data/.travis.yml +11 -33
  4. data/ChangeLog.txt +20 -5
  5. data/Gemfile +15 -15
  6. data/README.md +541 -537
  7. data/Rakefile +129 -127
  8. data/azure.gemspec +43 -42
  9. data/lib/azure.rb +52 -51
  10. data/lib/azure/base_management/affinity_group.rb +32 -32
  11. data/lib/azure/base_management/base_management_service.rb +234 -234
  12. data/lib/azure/base_management/location.rb +27 -27
  13. data/lib/azure/base_management/management_http_request.rb +171 -148
  14. data/lib/azure/base_management/serialization.rb +129 -129
  15. data/lib/azure/base_management/sql_management_http_request.rb +45 -0
  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 -31
  22. data/lib/azure/cloud_service_management/cloud_service_management_service.rb +134 -125
  23. data/lib/azure/cloud_service_management/serialization.rb +101 -63
  24. data/lib/azure/core.rb +39 -36
  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 -184
  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/enumeration_results.rb +20 -20
  48. data/lib/azure/service/logging.rb +31 -31
  49. data/lib/azure/service/metrics.rb +30 -30
  50. data/lib/azure/service/retention_policy.rb +24 -24
  51. data/lib/azure/service/serialization.rb +239 -239
  52. data/lib/azure/service/signed_identifier.rb +29 -29
  53. data/lib/azure/service/storage_service.rb +78 -78
  54. data/lib/azure/service/storage_service_properties.rb +31 -31
  55. data/lib/azure/service_bus/action.rb +21 -21
  56. data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
  57. data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
  58. data/lib/azure/service_bus/brokered_message.rb +123 -123
  59. data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
  60. data/lib/azure/service_bus/correlation_filter.rb +45 -45
  61. data/lib/azure/service_bus/empty_rule_action.rb +29 -29
  62. data/lib/azure/service_bus/false_filter.rb +38 -38
  63. data/lib/azure/service_bus/filter.rb +21 -21
  64. data/lib/azure/service_bus/interval.rb +103 -103
  65. data/lib/azure/service_bus/queue.rb +229 -229
  66. data/lib/azure/service_bus/resource.rb +108 -108
  67. data/lib/azure/service_bus/rule.rb +97 -97
  68. data/lib/azure/service_bus/rule_aspect.rb +34 -34
  69. data/lib/azure/service_bus/serialization.rb +160 -160
  70. data/lib/azure/service_bus/service_bus_service.rb +828 -828
  71. data/lib/azure/service_bus/sql_filter.rb +50 -50
  72. data/lib/azure/service_bus/sql_rule_action.rb +50 -50
  73. data/lib/azure/service_bus/subscription.rb +183 -183
  74. data/lib/azure/service_bus/topic.rb +186 -186
  75. data/lib/azure/service_bus/true_filter.rb +38 -38
  76. data/lib/azure/sql_database_management/serialization.rb +111 -90
  77. data/lib/azure/sql_database_management/sql_database.rb +31 -31
  78. data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -202
  79. data/lib/azure/storage_management/serialization.rb +190 -50
  80. data/lib/azure/storage_management/storage_account.rb +40 -29
  81. data/lib/azure/storage_management/storage_management_service.rb +166 -99
  82. data/lib/azure/table/auth/shared_key.rb +92 -92
  83. data/lib/azure/table/auth/shared_key_lite.rb +44 -44
  84. data/lib/azure/table/batch.rb +329 -329
  85. data/lib/azure/table/batch_response.rb +118 -118
  86. data/lib/azure/table/edmtype.rb +126 -126
  87. data/lib/azure/table/entity.rb +30 -30
  88. data/lib/azure/table/guid.rb +23 -23
  89. data/lib/azure/table/query.rb +111 -111
  90. data/lib/azure/table/serialization.rb +107 -107
  91. data/lib/azure/table/table_service.rb +559 -559
  92. data/lib/azure/version.rb +30 -30
  93. data/lib/azure/virtual_machine_image_management/serialization.rb +49 -49
  94. data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +27 -27
  95. data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +27 -27
  96. data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +66 -66
  97. data/lib/azure/virtual_machine_management/serialization.rb +257 -247
  98. data/lib/azure/virtual_machine_management/virtual_machine.rb +41 -57
  99. data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +317 -304
  100. data/lib/azure/virtual_network_management/serialization.rb +186 -186
  101. data/lib/azure/virtual_network_management/virtual_network.rb +36 -36
  102. data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
  103. data/test/fixtures/affinity_group.xml +33 -33
  104. data/test/fixtures/all_containers.xml +20 -20
  105. data/test/fixtures/all_tables.xml +22 -22
  106. data/test/fixtures/certificate.pem +21 -21
  107. data/test/fixtures/container_acl.xml +11 -11
  108. data/test/fixtures/create_sql_database_server.xml +1 -1
  109. data/test/fixtures/create_storage_desc_error.xml +5 -0
  110. data/test/fixtures/create_storage_extendedprop_error.xml +8 -0
  111. data/test/fixtures/create_storage_extendedpropname_error.xml +6 -0
  112. data/test/fixtures/create_storage_full_error.xml +6 -0
  113. data/test/fixtures/create_storage_label_error.xml +5 -0
  114. data/test/fixtures/create_storage_location_error.xml +5 -0
  115. data/test/fixtures/create_storage_name_error.xml +6 -0
  116. data/test/fixtures/create_table_response_entry.xml +15 -15
  117. data/test/fixtures/delete_storage_container_error.xml +5 -0
  118. data/test/fixtures/delete_storage_error.xml +5 -0
  119. data/test/fixtures/deployment_error.xml +5 -5
  120. data/test/fixtures/get_storage_account_error.xml +5 -0
  121. data/test/fixtures/get_storage_account_properties.xml +32 -0
  122. data/test/fixtures/get_storage_account_properties_new.xml +32 -0
  123. data/test/fixtures/http_error.xml +5 -5
  124. data/test/fixtures/insert_entity_response_entry.xml +25 -25
  125. data/test/fixtures/list_affinity_groups.xml +22 -22
  126. data/test/fixtures/list_blobs.xml +120 -120
  127. data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
  128. data/test/fixtures/list_blocks_all.xml +22 -22
  129. data/test/fixtures/list_blocks_committed.xml +12 -12
  130. data/test/fixtures/list_cloud_services.xml +38 -28
  131. data/test/fixtures/list_containers.xml +37 -37
  132. data/test/fixtures/list_firewall_management_endpoint.xml +27 -0
  133. data/test/fixtures/list_images.xml +110 -110
  134. data/test/fixtures/list_locations.xml +62 -62
  135. data/test/fixtures/list_page_ranges.xml +10 -10
  136. data/test/fixtures/list_sql_database.xml +36 -36
  137. data/test/fixtures/list_sql_server_firewall.xml +23 -23
  138. data/test/fixtures/list_storage_accounts.xml +45 -45
  139. data/test/fixtures/list_virtual_networks.xml +92 -92
  140. data/test/fixtures/logging.xml +11 -11
  141. data/test/fixtures/management_certificate.pem +55 -55
  142. data/test/fixtures/messages.xml +12 -12
  143. data/test/fixtures/metrics.xml +10 -10
  144. data/test/fixtures/privatekey.key +28 -28
  145. data/test/fixtures/query_entities_empty_response.xml +7 -7
  146. data/test/fixtures/query_entities_response.xml +45 -45
  147. data/test/fixtures/queue_service_properties.xml +22 -22
  148. data/test/fixtures/queue_service_properties_original.xml +19 -19
  149. data/test/fixtures/queues.xml +16 -16
  150. data/test/fixtures/retention_policy.xml +5 -5
  151. data/test/fixtures/sb_default_create_queue_response.xml +23 -23
  152. data/test/fixtures/sb_default_create_topic_response.xml +18 -18
  153. data/test/fixtures/sb_get_access_token_response.txt +1 -1
  154. data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
  155. data/test/fixtures/storage_service_properties.xml +23 -23
  156. data/test/fixtures/update_storage_account.xml +16 -0
  157. data/test/fixtures/update_storage_error.xml +5 -0
  158. data/test/fixtures/updated_storage_accounts.xml +53 -0
  159. data/test/fixtures/virtual_machine.xml +108 -107
  160. data/test/fixtures/windows_virtual_machine.xml +106 -106
  161. data/test/integration/affinity_group/Affinity_test.rb +55 -55
  162. data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
  163. data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
  164. data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
  165. data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
  166. data/test/integration/blob/blob_gb18030_test.rb +199 -199
  167. data/test/integration/blob/blob_metadata_test.rb +75 -75
  168. data/test/integration/blob/blob_pages_test.rb +119 -119
  169. data/test/integration/blob/blob_properties_test.rb +77 -77
  170. data/test/integration/blob/block_blob_test.rb +254 -254
  171. data/test/integration/blob/container/container_acl_test.rb +69 -69
  172. data/test/integration/blob/container/container_metadata_test.rb +50 -50
  173. data/test/integration/blob/container/create_container_test.rb +60 -60
  174. data/test/integration/blob/container/delete_container_test.rb +39 -39
  175. data/test/integration/blob/container/get_container_properties_test.rb +48 -48
  176. data/test/integration/blob/container/list_containers_test.rb +79 -79
  177. data/test/integration/blob/container/root_container_test.rb +53 -53
  178. data/test/integration/blob/copy_blob_test.rb +113 -113
  179. data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
  180. data/test/integration/blob/create_page_blob_test.rb +83 -83
  181. data/test/integration/blob/delete_blob_test.rb +159 -159
  182. data/test/integration/blob/get_blob_test.rb +65 -65
  183. data/test/integration/blob/informative_errors_test.rb +38 -38
  184. data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
  185. data/test/integration/blob/lease/break_lease_test.rb +40 -40
  186. data/test/integration/blob/lease/release_lease_test.rb +40 -40
  187. data/test/integration/blob/lease/renew_lease_test.rb +42 -42
  188. data/test/integration/blob/list_blobs_test.rb +113 -113
  189. data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
  190. data/test/integration/database/create_sql_server_test.rb +53 -57
  191. data/test/integration/database/delete_sql_server_firewall_test.rb +70 -72
  192. data/test/integration/database/delete_sql_server_test.rb +58 -63
  193. data/test/integration/database/list_sql_server_firewall_test.rb +45 -46
  194. data/test/integration/database/list_sql_servers_test.rb +44 -45
  195. data/test/integration/database/reset_password_sql_server_test.rb +55 -56
  196. data/test/integration/location/Location_List_test.rb +39 -39
  197. data/test/integration/queue/clear_messages_test.rb +42 -42
  198. data/test/integration/queue/create_message_test.rb +75 -75
  199. data/test/integration/queue/create_queue_test.rb +50 -50
  200. data/test/integration/queue/delete_message_test.rb +67 -67
  201. data/test/integration/queue/delete_queue_test.rb +45 -45
  202. data/test/integration/queue/informative_errors_test.rb +41 -41
  203. data/test/integration/queue/list_messages_encoded_test.rb +79 -79
  204. data/test/integration/queue/list_messages_test.rb +79 -79
  205. data/test/integration/queue/list_queues_test.rb +44 -44
  206. data/test/integration/queue/peek_messages_test.rb +59 -59
  207. data/test/integration/queue/queue_gb18030_test.rb +131 -131
  208. data/test/integration/queue/queue_metadata_test.rb +40 -40
  209. data/test/integration/queue/update_message_test.rb +74 -74
  210. data/test/integration/service_bus/informative_errors_test.rb +36 -36
  211. data/test/integration/service_bus/queues_scenario_test.rb +200 -200
  212. data/test/integration/service_bus/queues_test.rb +265 -265
  213. data/test/integration/service_bus/rules_test.rb +144 -144
  214. data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
  215. data/test/integration/service_bus/scenario_test.rb +101 -101
  216. data/test/integration/service_bus/subscriptions_test.rb +211 -211
  217. data/test/integration/service_bus/topics_scenario_test.rb +406 -406
  218. data/test/integration/service_bus/topics_test.rb +129 -129
  219. data/test/integration/storage_management/storage_management_test.rb +160 -0
  220. data/test/integration/table/create_table_test.rb +35 -35
  221. data/test/integration/table/delete_entity_batch_test.rb +106 -106
  222. data/test/integration/table/delete_entity_test.rb +93 -93
  223. data/test/integration/table/delete_table_test.rb +39 -39
  224. data/test/integration/table/get_table_test.rb +36 -36
  225. data/test/integration/table/informative_errors_test.rb +38 -38
  226. data/test/integration/table/insert_entity_batch_test.rb +99 -99
  227. data/test/integration/table/insert_entity_test.rb +87 -87
  228. data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
  229. data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
  230. data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
  231. data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
  232. data/test/integration/table/merge_entity_batch_test.rb +127 -127
  233. data/test/integration/table/merge_entity_test.rb +112 -112
  234. data/test/integration/table/query_entities_test.rb +194 -194
  235. data/test/integration/table/query_tables_test.rb +42 -42
  236. data/test/integration/table/query_test.rb +250 -250
  237. data/test/integration/table/table_acl_test.rb +51 -51
  238. data/test/integration/table/table_gb18030_test.rb +355 -355
  239. data/test/integration/table/update_entity_batch_test.rb +148 -148
  240. data/test/integration/table/update_entity_test.rb +130 -130
  241. data/test/integration/test_helper.rb +42 -44
  242. data/test/integration/vm/VM_Create_test.rb +213 -235
  243. data/test/integration/vm/VM_Delete_test.rb +55 -55
  244. data/test/integration/vm/VM_List_test.rb +71 -71
  245. data/test/integration/vm/VM_ShutDown_test.rb +59 -59
  246. data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
  247. data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
  248. data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
  249. data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
  250. data/test/support/env.rb +19 -19
  251. data/test/support/fixtures.rb +36 -36
  252. data/test/support/name_generator.rb +160 -160
  253. data/test/support/stubs.rb +42 -42
  254. data/test/support/virtual_machine_name_generator.rb +117 -127
  255. data/test/support/virtual_network_helper.rb +73 -73
  256. data/test/test_helper.rb +52 -52
  257. data/test/unit/affinity_group/affinity_group_test.rb +192 -192
  258. data/test/unit/affinity_group/serialization_test.rb +88 -88
  259. data/test/unit/base_management/location_test.rb +57 -57
  260. data/test/unit/blob/blob_service_test.rb +1946 -1946
  261. data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
  262. data/test/unit/cloud_service_management/serialization_test.rb +169 -76
  263. data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
  264. data/test/unit/core/auth/shared_key_test.rb +58 -58
  265. data/test/unit/core/auth/signer_test.rb +30 -30
  266. data/test/unit/core/http/http_error_test.rb +57 -57
  267. data/test/unit/core/http/http_request_test.rb +66 -66
  268. data/test/unit/core/http/http_response_test.rb +45 -45
  269. data/test/unit/core/http/retry_policy_test.rb +23 -23
  270. data/test/unit/database/serialization_test.rb +97 -95
  271. data/test/unit/database/sql_database_server_service_test.rb +288 -152
  272. data/test/unit/service/serialization_test.rb +501 -501
  273. data/test/unit/service/storage_service_test.rb +290 -290
  274. data/test/unit/storage_management/serialization_test.rb +232 -65
  275. data/test/unit/storage_management/storage_management_service_test.rb +233 -94
  276. data/test/unit/table/edmtype_test.rb +107 -107
  277. data/test/unit/virtual_machine_image_management/serialization_test.rb +34 -34
  278. data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +60 -60
  279. data/test/unit/virtual_machine_management/serialization_test.rb +119 -116
  280. data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +383 -386
  281. data/test/unit/vnet/serialization_test.rb +187 -187
  282. data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
  283. metadata +55 -23
@@ -1,48 +1,48 @@
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 "openssl"
16
- require "base64"
17
- require "azure/core/configuration"
18
-
19
- module Azure
20
- module Core
21
- module Auth
22
- # Public: Utility class to sign strings with HMAC-256 and then encode the
23
- # signed string using Base64.
24
- class Signer
25
- # The access key for the account
26
- attr :access_key
27
-
28
- # Public: Initialize the Signer.
29
- #
30
- # access_key - The access_key encoded in Base64. Defaults to the one
31
- # in the global configuration.
32
- def initialize(access_key=Azure.config.storage_access_key)
33
- @access_key = Base64.strict_decode64(access_key)
34
- end
35
-
36
- # Public: Generate an HMAC signature.
37
- #
38
- # body - The string to sign.
39
- #
40
- # Returns a Base64 String signed with HMAC.
41
- def sign(body)
42
- signed = OpenSSL::HMAC.digest("sha256", access_key, body)
43
- Base64.strict_encode64(signed)
44
- end
45
- end
46
- end
47
- end
48
- end
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 "openssl"
16
+ require "base64"
17
+ require "azure/core/configuration"
18
+
19
+ module Azure
20
+ module Core
21
+ module Auth
22
+ # Public: Utility class to sign strings with HMAC-256 and then encode the
23
+ # signed string using Base64.
24
+ class Signer
25
+ # The access key for the account
26
+ attr :access_key
27
+
28
+ # Public: Initialize the Signer.
29
+ #
30
+ # access_key - The access_key encoded in Base64. Defaults to the one
31
+ # in the global configuration.
32
+ def initialize(access_key=Azure.config.storage_access_key)
33
+ @access_key = Base64.strict_decode64(access_key)
34
+ end
35
+
36
+ # Public: Generate an HMAC signature.
37
+ #
38
+ # body - The string to sign.
39
+ #
40
+ # Returns a Base64 String signed with HMAC.
41
+ def sign(body)
42
+ signed = OpenSSL::HMAC.digest("sha256", access_key, body)
43
+ Base64.strict_encode64(signed)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -1,184 +1,211 @@
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 "singleton"
16
-
17
- module Azure
18
-
19
- # Proxy config method.
20
- def self.config
21
- Core.config
22
- end
23
-
24
- # Proxy configure method.
25
- def self.configure
26
- yield Core.config
27
- end
28
-
29
- module Core
30
-
31
- # Public: Sugar to configure the services in a neatly wrapped DSL.
32
- #
33
- # Yields the Azure::Configuration instance.
34
- #
35
- # Example:
36
- #
37
- # Azure.configure do |config|
38
- # config.storage_account_name = ENV["AZURE_STORAGE_ACCOUNT"]
39
- # end
40
- #
41
- # Returns nothing.
42
- def self.configure
43
- yield config
44
- end
45
-
46
- # Public: Access the service configuration.
47
- #
48
- # Returns the Azure::Configuration instance.
49
- def self.config
50
- Configuration.instance
51
- end
52
-
53
- # Singleton that keeps the configuration of the system.
54
- class Configuration
55
- include Singleton
56
-
57
- # Public: Get/Set the Access Key for this service.
58
- attr_accessor :storage_access_key
59
-
60
- # Public: Get/Set the Account Name for this service.
61
- attr_accessor :storage_account_name
62
-
63
- # Public: Get/Set the Service Bus Access Key (Issuer Secret) for this service.
64
- attr_accessor :sb_access_key
65
-
66
- # Public: Set the Service Bus Issuer for this service.
67
- attr_writer :sb_issuer
68
-
69
- # Public: Get the issuer for the service bus. If you set something using #sb_issuer=,
70
- # then we use that. Otherwise, we default to the default issuer: "owner"
71
- def sb_issuer
72
- @sb_issuer || "owner"
73
- end
74
-
75
- # Public: Get/Set the Service Bus Namespace for this service.
76
- attr_accessor :sb_namespace
77
-
78
- # Public: Set the host for the Table service. Only set this if you want
79
- # something custom (like, for example, to point this to a LocalStorage
80
- # emulator). This should be the complete host, including http:// at the
81
- # start. When using the emulator, make sure to include your account name at
82
- # the end.
83
- #
84
- # Example:
85
- #
86
- # config.storage_table_host = "http://127.0.0.1:10002/devstoreaccount1"
87
- attr_writer :storage_table_host
88
-
89
- # Public: Get the host for this service. If you set something using #storage_table_host=,
90
- # then we use that. Else we default to Azure's default hosts, based
91
- # on your account name.
92
- def storage_table_host
93
- @storage_table_host || default_host(:table)
94
- end
95
-
96
- # Public: Set the host for the Blob service. Only set this if you want
97
- # something custom (like, for example, to point this to a LocalStorage
98
- # emulator). This should be the complete host, including http:// at the
99
- # start. When using the emulator, make sure to include your account name at
100
- # the end.
101
- #
102
- # Example:
103
- #
104
- # config.storage_blob_host = "http://127.0.0.1:10000/devstoreaccount1"
105
- attr_writer :storage_blob_host
106
-
107
- # Public: Get the host for this service. If you set something using #storage_blob_host=,
108
- # then we use that. Else we default to Azure's default hosts, based
109
- # on your account name.
110
- def storage_blob_host
111
- @storage_blob_host || default_host(:blob)
112
- end
113
-
114
- # Public: Set the host for the Queue service. Only set this if you want
115
- # something custom (like, for example, to point this to a LocalStorage
116
- # emulator). This should be the complete host, including http:// at the
117
- # start. When using the emulator, make sure to include your account name at
118
- # the end.
119
- #
120
- # Example:
121
- #
122
- # config.storage_queue_host = "http://127.0.0.1:10001/devstoreaccount1"
123
- attr_writer :storage_queue_host
124
-
125
- # Public: Get the host for this service. If you set something using #storage_queue_host=,
126
- # then we use that. Else we default to Azure's default hosts, based
127
- # on your account name.
128
- def storage_queue_host
129
- @storage_queue_host || default_host(:queue)
130
- end
131
-
132
- # Public: Get the host for the ACS service.
133
- def acs_host
134
- "https://#{sb_namespace}-sb.accesscontrol.windows.net"
135
- end
136
-
137
- # Public: Get the host for the Service Bus service.
138
- def service_bus_host
139
- "https://#{sb_namespace}.servicebus.windows.net"
140
- end
141
-
142
- # Calculate the default host for a given service in the cloud.
143
- #
144
- # service - One of :table, :blob, :queue, etc.
145
- #
146
- # Returns a String with the hostname, including your account name.
147
- def default_host(service)
148
- "http://#{storage_account_name}.#{service}.core.windows.net"
149
- end
150
-
151
- #===================================================================
152
- #*******************Management API configuration********************
153
- #===================================================================
154
-
155
- # Public: Get the Subscription Id and certificate key for the management API.
156
- attr_accessor :management_certificate
157
-
158
- # Public: Get/Set the Subscription Id for the management API.
159
- attr_accessor :subscription_id
160
-
161
- # Public: Set the host for the management API.
162
- attr_writer :management_endpoint
163
-
164
- #Public: Set the private key for SSL/HTTPS request with PEM certificate
165
- attr_accessor :http_private_key
166
-
167
- #Public: Set the certificate key for SSL/HTTPS request with PEM certificate
168
- attr_accessor :http_certificate_key
169
-
170
- def management_endpoint
171
- if @management_endpoint.nil? or @management_endpoint.empty?
172
- "https://management.core.windows.net/"
173
- elsif !@management_endpoint.end_with?('/')
174
- @management_endpoint += '/'
175
- elsif URI(@management_endpoint).scheme.nil?
176
- "https://#{@management_endpoint}"
177
- else
178
- @management_endpoint
179
- end
180
- end
181
-
182
- end
183
- end
184
- end
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 "singleton"
16
+
17
+ module Azure
18
+
19
+ # Proxy config method.
20
+ def self.config
21
+ Core.config
22
+ end
23
+
24
+ # Proxy configure method.
25
+ def self.configure
26
+ yield Core.config
27
+ end
28
+
29
+ module Core
30
+
31
+ # Public: Sugar to configure the services in a neatly wrapped DSL.
32
+ #
33
+ # Yields the Azure::Configuration instance.
34
+ #
35
+ # Example:
36
+ #
37
+ # Azure.configure do |config|
38
+ # config.storage_account_name = ENV["AZURE_STORAGE_ACCOUNT"]
39
+ # end
40
+ #
41
+ # Returns nothing.
42
+ def self.configure
43
+ yield config
44
+ end
45
+
46
+ # Public: Access the service configuration.
47
+ #
48
+ # Returns the Azure::Configuration instance.
49
+ def self.config
50
+ Configuration.instance
51
+ end
52
+
53
+ # Singleton that keeps the configuration of the system.
54
+ class Configuration
55
+ include Singleton
56
+
57
+ # Public: Get/Set the Access Key for this service.
58
+ attr_accessor :storage_access_key
59
+
60
+ # Public: Get/Set the Account Name for this service.
61
+ attr_accessor :storage_account_name
62
+
63
+ # Public: Get/Set the Service Bus Access Key (Issuer Secret) for this service.
64
+ attr_accessor :sb_access_key
65
+
66
+ # Public: Set the Service Bus Issuer for this service.
67
+ attr_writer :sb_issuer
68
+
69
+ # Public: Get the issuer for the service bus. If you set something using #sb_issuer=,
70
+ # then we use that. Otherwise, we default to the default issuer: "owner"
71
+ def sb_issuer
72
+ @sb_issuer || "owner"
73
+ end
74
+
75
+ # Public: Get/Set the Service Bus Namespace for this service.
76
+ attr_accessor :sb_namespace
77
+
78
+ # Public: Set the host for the Table service. Only set this if you want
79
+ # something custom (like, for example, to point this to a LocalStorage
80
+ # emulator). This should be the complete host, including http:// at the
81
+ # start. When using the emulator, make sure to include your account name at
82
+ # the end.
83
+ #
84
+ # Example:
85
+ #
86
+ # config.storage_table_host = "http://127.0.0.1:10002/devstoreaccount1"
87
+ attr_writer :storage_table_host
88
+
89
+ # Public: Get the host for this service. If you set something using #storage_table_host=,
90
+ # then we use that. Else we default to Azure's default hosts, based
91
+ # on your account name.
92
+ def storage_table_host
93
+ @storage_table_host || default_host(:table)
94
+ end
95
+
96
+ # Public: Set the host for the Blob service. Only set this if you want
97
+ # something custom (like, for example, to point this to a LocalStorage
98
+ # emulator). This should be the complete host, including http:// at the
99
+ # start. When using the emulator, make sure to include your account name at
100
+ # the end.
101
+ #
102
+ # Example:
103
+ #
104
+ # config.storage_blob_host = "http://127.0.0.1:10000/devstoreaccount1"
105
+ attr_writer :storage_blob_host
106
+
107
+ # Public: Get the host for this service. If you set something using #storage_blob_host=,
108
+ # then we use that. Else we default to Azure's default hosts, based
109
+ # on your account name.
110
+ def storage_blob_host
111
+ @storage_blob_host || default_host(:blob)
112
+ end
113
+
114
+ # Public: Set the host for the Queue service. Only set this if you want
115
+ # something custom (like, for example, to point this to a LocalStorage
116
+ # emulator). This should be the complete host, including http:// at the
117
+ # start. When using the emulator, make sure to include your account name at
118
+ # the end.
119
+ #
120
+ # Example:
121
+ #
122
+ # config.storage_queue_host = "http://127.0.0.1:10001/devstoreaccount1"
123
+ attr_writer :storage_queue_host
124
+
125
+ # Public: Get the host for this service. If you set something using #storage_queue_host=,
126
+ # then we use that. Else we default to Azure's default hosts, based
127
+ # on your account name.
128
+ def storage_queue_host
129
+ @storage_queue_host || default_host(:queue)
130
+ end
131
+
132
+ # Public: Get the host for the ACS service.
133
+ def acs_host
134
+ "https://#{sb_namespace}-sb.accesscontrol.windows.net"
135
+ end
136
+
137
+ # Public: Get the host for the Service Bus service.
138
+ def service_bus_host
139
+ "https://#{sb_namespace}.servicebus.windows.net"
140
+ end
141
+
142
+ # Calculate the default host for a given service in the cloud.
143
+ #
144
+ # service - One of :table, :blob, :queue, etc.
145
+ #
146
+ # Returns a String with the hostname, including your account name.
147
+ def default_host(service)
148
+ "http://#{storage_account_name}.#{service}.core.windows.net"
149
+ end
150
+
151
+ #===================================================================
152
+ #*******************Management API configuration********************
153
+ #===================================================================
154
+
155
+ # Public: Get the Subscription Id and certificate key for the management API.
156
+ attr_accessor :management_certificate
157
+
158
+ # Public: Get/Set the Subscription Id for the management API.
159
+ attr_accessor :subscription_id
160
+
161
+ # Public: Set the host for the management API.
162
+ attr_writer :management_endpoint
163
+
164
+ #Public: Set the private key for SSL/HTTPS request with PEM certificate
165
+ attr_accessor :http_private_key
166
+
167
+ #Public: Set the certificate key for SSL/HTTPS request with PEM certificate
168
+ attr_accessor :http_certificate_key
169
+
170
+ # Public: Set the host for SQL Management API (SQL Server authentication Endpoint)
171
+ attr_accessor :sql_database_management_endpoint
172
+
173
+ def management_endpoint
174
+ if @management_endpoint.nil? or @management_endpoint.empty?
175
+ "https://management.core.windows.net/"
176
+ elsif !@management_endpoint.end_with?('/')
177
+ @management_endpoint += '/'
178
+ elsif URI(@management_endpoint).scheme.nil?
179
+ "https://#{@management_endpoint}"
180
+ else
181
+ @management_endpoint
182
+ end
183
+ end
184
+
185
+ def sql_database_management_endpoint
186
+ if @sql_database_management_endpoint.nil? or @sql_database_management_endpoint.empty?
187
+ "https://management.database.windows.net:8443/"
188
+ elsif !@sql_database_management_endpoint.end_with?('/')
189
+ @sql_database_management_endpoint += '/'
190
+ elsif URI(@sql_database_management_endpoint).scheme.nil?
191
+ "https://#{@sql_database_management_endpoint}"
192
+ else
193
+ @management_endpoint
194
+ end
195
+ end
196
+
197
+ # Public: Set this to enable Management certificate authentication or SQL Server authentication
198
+ attr_accessor :sql_database_authentication_mode
199
+
200
+ def sql_database_authentication_mode
201
+ sdam = @sql_database_authentication_mode || :sql_server
202
+ if [:sql_server, :management_certificate].include? sdam.to_sym
203
+ sdam.to_sym
204
+ else
205
+ :sql_server
206
+ end
207
+ end
208
+
209
+ end
210
+ end
211
+ end