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,187 +1,187 @@
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 'azure/service_bus/resource'
16
-
17
- module Azure
18
- module ServiceBus
19
- class Topic < Resource
20
- # Public: Initialize the topic.
21
- #
22
- # ==== Attributes
23
- #
24
- # * +name+ - A String with the name of the topic.
25
- # * +options+ - The resource options Hash
26
- #
27
- # ==== Options
28
- #
29
- # Accepted key/value pairs in options parameter are:
30
- # * +:default_message_time_to_tive+ - XML datetime. Determines how long a message lives in the associated subscriptions.
31
- # * +:maximum_number_of_subscriptions+ - Number. Specifies the maximum number of subscriptions that can be associated with the topic.
32
- # * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes
33
- # * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property
34
- # * +:dead_lettering_on_filter_evaluation_exceptions+ - Boolean. Determines how the Service Bus handles a message that causes an exception during a subscription's filter evaluation.
35
- # * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication.
36
- # * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue.
37
- #
38
- def initialize(name, options = {})
39
- normalized_options = {}
40
- normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live)
41
- normalized_options["MaximumNumberOfSubscriptions"] = options[:maximum_number_of_subscriptions].to_s if options.has_key?(:maximum_number_of_subscriptions)
42
- normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes)
43
- normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection)
44
- normalized_options["DeadLetteringOnFilterEvaluationExceptions"] = options[:dead_lettering_on_filter_evaluation_exceptions].to_s if options.has_key?(:dead_lettering_on_filter_evaluation_exceptions)
45
- normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window)
46
- normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations)
47
-
48
- super(name, normalized_options)
49
- end
50
-
51
- # MaxSizeInMegabytes: Number
52
- #
53
- # Specifies the maximum topic size in megabytes. Any attempt to enqueue a message that will cause the topic to
54
- # exceed this value will fail. All messages that are stored in the topic or any of its subscriptions count
55
- # towards this value. Multiple copies of a message that reside in one or multiple subscriptions count as a single
56
- # messages. For example, if message m exists once in subscription s1 and twice in subscription s2, m is counted
57
- # as a single message. You can only set this parameter at topic creation time using the following values:
58
- #
59
- # Range: 1 - 5*1024 MB
60
- # Default: 1*1024
61
- def max_size_in_megabytes
62
- to_i description['MaxSizeInMegabytes']
63
- end
64
-
65
- def max_size_in_megabytes=(val)
66
- _set 'MaxSizeInMegabytes', val
67
- end
68
-
69
- # SizeInBytes: Number
70
- #
71
- # Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. (read-only)
72
- #
73
- # Range: 0 - MaxTopicSizeinMegaBytes
74
- def size_in_bytes
75
- to_i description['SizeInBytes']
76
- end
77
-
78
- def size_in_bytes=(val)
79
- _set 'SizeInBytes', val
80
- end
81
-
82
- # DefaultMessageTimeToLive: XML datetime
83
- #
84
- # Determines how long a message lives in the associated subscriptions. Subscriptions inherit the TTL from the
85
- # topic unless they are created explicitly with a smaller TTL. Based on whether dead-lettering is enabled, a
86
- # message whose TTL has expired will either be moved to the subscription's associated DeadLtterQueue or will
87
- # be permanently deleted. The following values are settable at topic creation time:
88
- #
89
- # Range: 1 second - TimeSpan.MaxValue
90
- # Default: TimeSpan.MaxValue
91
- def default_message_time_to_live
92
- to_interval description['DefaultMessageTimeToLive']
93
- end
94
-
95
- def default_message_time_to_live=(val)
96
- _set 'DefaultMessageTimeToLive', val
97
- end
98
-
99
- # RequiresDuplicateDetection: True, False
100
- #
101
- # If enabled, the topic will detect duplicate messages within the time span specified by the
102
- # DuplicateDetectionHistoryTimeWindow property. Settable only at topic creation time.
103
- #
104
- # Default: false
105
- def requires_duplicate_detection
106
- to_bool description['RequiresDuplicateDetection']
107
- end
108
-
109
- def requires_duplicate_detection=(val)
110
- _set 'RequiresDuplicateDetection', val
111
- end
112
-
113
- # DuplicateDetectionHistoryTimeWindow
114
- #
115
- # Specifies the time span during which the Service Bus will detect message duplication.
116
- #
117
- # Range: 1 second - 7 days
118
- # Default: 10 minutes
119
- def duplicate_detection_history_time_window
120
- to_interval description['DuplicateDetectionHistoryTimeWindow']
121
- end
122
-
123
- def duplicate_detection_history_time_window=(val)
124
- _set 'DuplicateDetectionHistoryTimeWindow', val
125
- end
126
-
127
- # MaximumNumberOfSubscriptions
128
- #
129
- # Specifies the maximum number of subscriptions that can be associated with the topic.
130
- #
131
- # Range: 1 - 2000
132
- # Default: 2000 subscriptions
133
- def maximum_number_of_subscriptions
134
- to_i description['MaximumNumberOfSubscriptions']
135
- end
136
-
137
- def maximum_number_of_subscriptions=(val)
138
- _set 'MaximumNumberOfSubscriptions', val
139
- end
140
-
141
- # EnableBatchedOperations
142
- #
143
- # Enables or disables service side batching behavior when performing operations for the specific queue. When
144
- # enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient.
145
- #
146
- # If user wants lower operation latency then they can disable this feature.
147
- def enable_batched_operations
148
- to_bool description['EnableBatchedOperations']
149
- end
150
-
151
- def enable_batched_operations=(val)
152
- _set 'EnableBatchedOperations', val
153
- end
154
-
155
- # DeadLetteringOnFilterEvaluationExceptions: True, False
156
- #
157
- # Determines how the Service Bus handles a message that causes an exception during a subscription's filter
158
- # evaluation. If the value is set to true, the message that caused the exception will be moved to the
159
- # subscription's dead-letter queue. Otherwise, it will be discarded. By default this parameter is set to true,
160
- # allowing the user a chance to investigate the cause of the exception. It can occur from a malformed message or
161
- # some incorrect assumptions being made in the filter about the form of the message. Settable only at topic
162
- # creation time.
163
- #
164
- # Default: true
165
- def dead_lettering_on_filter_evaluation_exceptions
166
- to_bool description['DeadLetteringOnFilterEvaluationExceptions']
167
- end
168
-
169
- def dead_lettering_on_filter_evaluation_exceptions=(val)
170
- _set 'DeadLetteringOnFilterEvaluationExceptions', val
171
- end
172
-
173
- def ordered_props
174
- [
175
- 'DefaultMessageTimeToLive',
176
- 'MaximumNumberOfSubscriptions',
177
- 'MaxSizeInMegabytes',
178
- 'RequiresDuplicateDetection',
179
- 'DeadLetteringOnFilterEvaluationExceptions',
180
- 'DuplicateDetectionHistoryTimeWindow',
181
- 'EnableBatchedOperations',
182
- 'SizeInBytes'
183
- ]
184
- end
185
- end
186
- 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 'azure/service_bus/resource'
16
+
17
+ module Azure
18
+ module ServiceBus
19
+ class Topic < Resource
20
+ # Public: Initialize the topic.
21
+ #
22
+ # ==== Attributes
23
+ #
24
+ # * +name+ - A String with the name of the topic.
25
+ # * +options+ - The resource options Hash
26
+ #
27
+ # ==== Options
28
+ #
29
+ # Accepted key/value pairs in options parameter are:
30
+ # * +:default_message_time_to_tive+ - XML datetime. Determines how long a message lives in the associated subscriptions.
31
+ # * +:maximum_number_of_subscriptions+ - Number. Specifies the maximum number of subscriptions that can be associated with the topic.
32
+ # * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes
33
+ # * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property
34
+ # * +:dead_lettering_on_filter_evaluation_exceptions+ - Boolean. Determines how the Service Bus handles a message that causes an exception during a subscription's filter evaluation.
35
+ # * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication.
36
+ # * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue.
37
+ #
38
+ def initialize(name, options = {})
39
+ normalized_options = {}
40
+ normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live)
41
+ normalized_options["MaximumNumberOfSubscriptions"] = options[:maximum_number_of_subscriptions].to_s if options.has_key?(:maximum_number_of_subscriptions)
42
+ normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes)
43
+ normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection)
44
+ normalized_options["DeadLetteringOnFilterEvaluationExceptions"] = options[:dead_lettering_on_filter_evaluation_exceptions].to_s if options.has_key?(:dead_lettering_on_filter_evaluation_exceptions)
45
+ normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window)
46
+ normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations)
47
+
48
+ super(name, normalized_options)
49
+ end
50
+
51
+ # MaxSizeInMegabytes: Number
52
+ #
53
+ # Specifies the maximum topic size in megabytes. Any attempt to enqueue a message that will cause the topic to
54
+ # exceed this value will fail. All messages that are stored in the topic or any of its subscriptions count
55
+ # towards this value. Multiple copies of a message that reside in one or multiple subscriptions count as a single
56
+ # messages. For example, if message m exists once in subscription s1 and twice in subscription s2, m is counted
57
+ # as a single message. You can only set this parameter at topic creation time using the following values:
58
+ #
59
+ # Range: 1 - 5*1024 MB
60
+ # Default: 1*1024
61
+ def max_size_in_megabytes
62
+ to_i description['MaxSizeInMegabytes']
63
+ end
64
+
65
+ def max_size_in_megabytes=(val)
66
+ _set 'MaxSizeInMegabytes', val
67
+ end
68
+
69
+ # SizeInBytes: Number
70
+ #
71
+ # Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. (read-only)
72
+ #
73
+ # Range: 0 - MaxTopicSizeinMegaBytes
74
+ def size_in_bytes
75
+ to_i description['SizeInBytes']
76
+ end
77
+
78
+ def size_in_bytes=(val)
79
+ _set 'SizeInBytes', val
80
+ end
81
+
82
+ # DefaultMessageTimeToLive: XML datetime
83
+ #
84
+ # Determines how long a message lives in the associated subscriptions. Subscriptions inherit the TTL from the
85
+ # topic unless they are created explicitly with a smaller TTL. Based on whether dead-lettering is enabled, a
86
+ # message whose TTL has expired will either be moved to the subscription's associated DeadLtterQueue or will
87
+ # be permanently deleted. The following values are settable at topic creation time:
88
+ #
89
+ # Range: 1 second - TimeSpan.MaxValue
90
+ # Default: TimeSpan.MaxValue
91
+ def default_message_time_to_live
92
+ to_interval description['DefaultMessageTimeToLive']
93
+ end
94
+
95
+ def default_message_time_to_live=(val)
96
+ _set 'DefaultMessageTimeToLive', val
97
+ end
98
+
99
+ # RequiresDuplicateDetection: True, False
100
+ #
101
+ # If enabled, the topic will detect duplicate messages within the time span specified by the
102
+ # DuplicateDetectionHistoryTimeWindow property. Settable only at topic creation time.
103
+ #
104
+ # Default: false
105
+ def requires_duplicate_detection
106
+ to_bool description['RequiresDuplicateDetection']
107
+ end
108
+
109
+ def requires_duplicate_detection=(val)
110
+ _set 'RequiresDuplicateDetection', val
111
+ end
112
+
113
+ # DuplicateDetectionHistoryTimeWindow
114
+ #
115
+ # Specifies the time span during which the Service Bus will detect message duplication.
116
+ #
117
+ # Range: 1 second - 7 days
118
+ # Default: 10 minutes
119
+ def duplicate_detection_history_time_window
120
+ to_interval description['DuplicateDetectionHistoryTimeWindow']
121
+ end
122
+
123
+ def duplicate_detection_history_time_window=(val)
124
+ _set 'DuplicateDetectionHistoryTimeWindow', val
125
+ end
126
+
127
+ # MaximumNumberOfSubscriptions
128
+ #
129
+ # Specifies the maximum number of subscriptions that can be associated with the topic.
130
+ #
131
+ # Range: 1 - 2000
132
+ # Default: 2000 subscriptions
133
+ def maximum_number_of_subscriptions
134
+ to_i description['MaximumNumberOfSubscriptions']
135
+ end
136
+
137
+ def maximum_number_of_subscriptions=(val)
138
+ _set 'MaximumNumberOfSubscriptions', val
139
+ end
140
+
141
+ # EnableBatchedOperations
142
+ #
143
+ # Enables or disables service side batching behavior when performing operations for the specific queue. When
144
+ # enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient.
145
+ #
146
+ # If user wants lower operation latency then they can disable this feature.
147
+ def enable_batched_operations
148
+ to_bool description['EnableBatchedOperations']
149
+ end
150
+
151
+ def enable_batched_operations=(val)
152
+ _set 'EnableBatchedOperations', val
153
+ end
154
+
155
+ # DeadLetteringOnFilterEvaluationExceptions: True, False
156
+ #
157
+ # Determines how the Service Bus handles a message that causes an exception during a subscription's filter
158
+ # evaluation. If the value is set to true, the message that caused the exception will be moved to the
159
+ # subscription's dead-letter queue. Otherwise, it will be discarded. By default this parameter is set to true,
160
+ # allowing the user a chance to investigate the cause of the exception. It can occur from a malformed message or
161
+ # some incorrect assumptions being made in the filter about the form of the message. Settable only at topic
162
+ # creation time.
163
+ #
164
+ # Default: true
165
+ def dead_lettering_on_filter_evaluation_exceptions
166
+ to_bool description['DeadLetteringOnFilterEvaluationExceptions']
167
+ end
168
+
169
+ def dead_lettering_on_filter_evaluation_exceptions=(val)
170
+ _set 'DeadLetteringOnFilterEvaluationExceptions', val
171
+ end
172
+
173
+ def ordered_props
174
+ [
175
+ 'DefaultMessageTimeToLive',
176
+ 'MaximumNumberOfSubscriptions',
177
+ 'MaxSizeInMegabytes',
178
+ 'RequiresDuplicateDetection',
179
+ 'DeadLetteringOnFilterEvaluationExceptions',
180
+ 'DuplicateDetectionHistoryTimeWindow',
181
+ 'EnableBatchedOperations',
182
+ 'SizeInBytes'
183
+ ]
184
+ end
185
+ end
186
+ end
187
187
  end
@@ -1,38 +1,38 @@
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 'azure/service_bus/sql_filter'
16
-
17
- module Azure
18
- module ServiceBus
19
- class TrueFilter < SqlFilter
20
- # Public: Initialize the SQL True Filter.
21
- #
22
- # ==== Attributes
23
- #
24
- # * +hash+ - The resource options Hash
25
- #
26
- # ==== Options
27
- #
28
- # Accepted key/value pairs in options parameter are:
29
- # * +:sql_expression+ - The SQL expression.
30
- #
31
- def initialize(hash=nil)
32
- hash = {} unless hash
33
- hash[:sql_expression] = "1 = 1" unless hash[:sql_expression]
34
- super(hash)
35
- end
36
- end
37
- end
38
- 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 'azure/service_bus/sql_filter'
16
+
17
+ module Azure
18
+ module ServiceBus
19
+ class TrueFilter < SqlFilter
20
+ # Public: Initialize the SQL True Filter.
21
+ #
22
+ # ==== Attributes
23
+ #
24
+ # * +hash+ - The resource options Hash
25
+ #
26
+ # ==== Options
27
+ #
28
+ # Accepted key/value pairs in options parameter are:
29
+ # * +:sql_expression+ - The SQL expression.
30
+ #
31
+ def initialize(hash=nil)
32
+ hash = {} unless hash
33
+ hash[:sql_expression] = "1 = 1" unless hash[:sql_expression]
34
+ super(hash)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,90 +1,111 @@
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/sql_database_management/sql_database'
16
-
17
- module Azure
18
- module SqlDatabaseManagement
19
- module Serialization
20
-
21
- def self.database_to_xml(login, password, location)
22
- builder = Nokogiri::XML::Builder.new do |xml|
23
- xml.Server('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/') {
24
- xml.AdministratorLogin login
25
- xml.AdministratorLoginPassword password
26
- xml.Location location
27
- }
28
- end
29
- builder.doc.to_xml
30
- end
31
-
32
- def self.databases_from_xml(databasesXML)
33
- databases = []
34
- databases_servicesXML = databasesXML.css('Servers Server')
35
- databases_servicesXML.each do |database_xml|
36
- database = SqlDatabase.new
37
- database.name = xml_content(database_xml, 'Name')
38
- database.administrator_login = xml_content(database_xml, 'AdministratorLogin')
39
- database.location = xml_content(database_xml, 'Location')
40
- database.feature_name = xml_content(database_xml, 'Features Feature Name')
41
- database.feature_value = xml_content(database_xml, 'Features Feature Value')
42
- databases << database
43
- end
44
- databases.compact
45
- end
46
-
47
- def self.server_name_from_xml(response_xml, login, location)
48
- server_name = xml_content(response_xml, 'ServerName')
49
- SqlDatabase.new do |db|
50
- db.name = server_name
51
- db.location = location
52
- db.administrator_login = login
53
- end
54
- end
55
-
56
- def self.reset_password_to_xml(password)
57
- builder = Nokogiri::XML::Builder.new do |xml|
58
- xml.AdministratorLoginPassword(password, {'xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/'})
59
- end
60
- builder.doc.to_xml
61
- end
62
-
63
- def self.firewall_rule_to_xml(options)
64
- builder = Nokogiri::XML::Builder.new do |xml|
65
- xml.FirewallRule('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/',
66
- 'xmlns:xsi'=>'http://www.w3.org/2001/XMLSchema-instance',
67
- 'xsi:schemaLocation'=>'http://schemas.microsoft.com/sqlazure/2010/12/ FirewallRule.xsd') {
68
- xml.StartIpAddress options[:start_ip_address]
69
- xml.EndIpAddress options[:end_ip_address]
70
- }
71
- end
72
- builder.doc.to_xml
73
- end
74
-
75
- def self.database_firewall_from_xml(response_xml)
76
- firewalls = []
77
- database_firewallXML = response_xml.css('FirewallRules FirewallRule')
78
- database_firewallXML.each do |firewall_xml|
79
- firewall = { :rule => xml_content(firewall_xml, 'Name'),
80
- :start_ip_address => xml_content(firewall_xml, 'StartIpAddress'),
81
- :end_ip_address => xml_content(firewall_xml, 'EndIpAddress')
82
- }
83
- firewalls << firewall
84
- end
85
- firewalls.compact
86
- end
87
-
88
- end
89
- end
90
- 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/sql_database_management/sql_database'
16
+
17
+ module Azure
18
+ module SqlDatabaseManagement
19
+ module Serialization
20
+
21
+ def self.database_to_xml(login, password, location)
22
+ builder = Nokogiri::XML::Builder.new do |xml|
23
+ xml.Server('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/') {
24
+ xml.AdministratorLogin login
25
+ xml.AdministratorLoginPassword password
26
+ xml.Location location
27
+ }
28
+ end
29
+ builder.doc.to_xml
30
+ end
31
+
32
+ def self.databases_from_xml(databasesXML)
33
+ databases = []
34
+ databases_servicesXML = databasesXML.css('Servers Server')
35
+ databases_servicesXML.each do |database_xml|
36
+ database = SqlDatabase.new
37
+ database.name = xml_content(database_xml, 'Name')
38
+ database.administrator_login = xml_content(database_xml, 'AdministratorLogin')
39
+ database.location = xml_content(database_xml, 'Location')
40
+ database.feature_name = xml_content(database_xml, 'Features Feature Name')
41
+ database.feature_value = xml_content(database_xml, 'Features Feature Value')
42
+ databases << database
43
+ end
44
+ databases.compact
45
+ end
46
+
47
+ def self.server_name_from_xml(response_xml, login, location)
48
+ server_name = xml_content(response_xml, 'ServerName')
49
+ SqlDatabase.new do |db|
50
+ db.name = server_name
51
+ db.location = location
52
+ db.administrator_login = login
53
+ end
54
+ end
55
+
56
+ def self.reset_password_to_xml(password)
57
+ builder = Nokogiri::XML::Builder.new do |xml|
58
+ xml.AdministratorLoginPassword(password, {'xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/'})
59
+ end
60
+ builder.doc.to_xml
61
+ end
62
+
63
+ def self.firewall_rule_to_xml(options)
64
+ # Need to revisit and implement RDFE request XML.
65
+ # Currently Azure is throwing Internal Server Error when executing the
66
+ # API
67
+ builder = Nokogiri::XML::Builder.new do |xml|
68
+ xml.FirewallRule('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/',
69
+ 'xmlns:xsi'=>'http://www.w3.org/2001/XMLSchema-instance',
70
+ 'xsi:schemaLocation'=>'http://schemas.microsoft.com/sqlazure/2010/12/ FirewallRule.xsd') {
71
+ xml.StartIpAddress options[:start_ip_address]
72
+ xml.EndIpAddress options[:end_ip_address]
73
+ }
74
+ end
75
+ builder.doc.to_xml
76
+ end
77
+
78
+ def self.database_firewall_from_xml(response_xml)
79
+ firewalls = []
80
+ if Azure.config.sql_database_authentication_mode == :sql_server
81
+ database_firewallXML = response_xml.css('FirewallRules FirewallRule')
82
+ database_firewallXML.each do |firewall_xml|
83
+ firewall = {
84
+ :rule => xml_content(firewall_xml, 'Name'),
85
+ :start_ip_address => xml_content(firewall_xml, 'StartIpAddress'),
86
+ :end_ip_address => xml_content(firewall_xml, 'EndIpAddress')
87
+ }
88
+ firewalls << firewall
89
+ end
90
+ else
91
+ service_resources = response_xml.css(
92
+ 'ServiceResources ServiceResource'
93
+ )
94
+ service_resources.each do |resource|
95
+ type = xml_content(resource, 'Type')
96
+ if type == 'Microsoft.SqlAzure.FirewallRule'
97
+ firewall = {
98
+ rule: xml_content(resource, 'Name'),
99
+ start_ip_address: xml_content(resource, 'StartIPAddress'),
100
+ end_ip_address: xml_content(resource, 'EndIPAddress')
101
+ }
102
+ firewalls << firewall
103
+ end
104
+ end
105
+ end
106
+ firewalls.compact
107
+ end
108
+
109
+ end
110
+ end
111
+ end