azure 0.1.1 → 0.5.0

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 (341) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/ChangeLog.txt +5 -0
  4. data/Gemfile +16 -3
  5. data/README.md +344 -2
  6. data/Rakefile +66 -37
  7. data/azure.gemspec +30 -11
  8. data/lib/azure.rb +35 -4
  9. data/lib/azure/blob/blob.rb +32 -0
  10. data/lib/azure/blob/blob_service.rb +1423 -0
  11. data/lib/azure/blob/block.rb +31 -0
  12. data/lib/azure/blob/container.rb +32 -0
  13. data/lib/azure/blob/serialization.rb +285 -0
  14. data/lib/azure/core.rb +32 -0
  15. data/lib/azure/core/auth/authorizer.rb +36 -0
  16. data/lib/azure/core/auth/shared_key.rb +21 -6
  17. data/lib/azure/core/auth/shared_key_lite.rb +17 -3
  18. data/lib/azure/core/auth/signer.rb +48 -0
  19. data/lib/azure/core/configuration.rb +152 -0
  20. data/lib/azure/core/error.rb +22 -0
  21. data/lib/azure/core/filtered_service.rb +44 -0
  22. data/lib/azure/core/http/debug_filter.rb +36 -0
  23. data/lib/azure/core/http/http_error.rb +84 -0
  24. data/lib/azure/core/http/http_filter.rb +53 -0
  25. data/lib/azure/core/http/http_request.rb +157 -0
  26. data/lib/azure/core/http/http_response.rb +133 -0
  27. data/lib/azure/core/http/retry_policy.rb +68 -0
  28. data/lib/azure/core/http/signer_filter.rb +34 -0
  29. data/lib/azure/core/service.rb +38 -32
  30. data/lib/azure/core/signed_service.rb +43 -0
  31. data/lib/azure/queue/message.rb +30 -0
  32. data/lib/azure/queue/queue.rb +29 -0
  33. data/lib/azure/queue/queue_service.rb +568 -0
  34. data/lib/azure/queue/serialization.rb +103 -0
  35. data/lib/azure/service/access_policy.rb +26 -0
  36. data/lib/azure/service/enumeration_results.rb +21 -0
  37. data/lib/azure/service/logging.rb +32 -0
  38. data/lib/azure/service/metrics.rb +31 -0
  39. data/lib/azure/service/retention_policy.rb +25 -0
  40. data/lib/azure/service/serialization.rb +240 -0
  41. data/lib/azure/service/signed_identifier.rb +30 -0
  42. data/lib/azure/service/storage_service.rb +79 -0
  43. data/lib/azure/service/storage_service_properties.rb +32 -0
  44. data/lib/azure/service_bus/action.rb +21 -0
  45. data/lib/azure/service_bus/auth/wrap_service.rb +59 -46
  46. data/lib/azure/service_bus/auth/wrap_signer.rb +69 -0
  47. data/lib/azure/service_bus/brokered_message.rb +36 -51
  48. data/lib/azure/service_bus/brokered_message_serializer.rb +48 -34
  49. data/lib/azure/service_bus/correlation_filter.rb +45 -0
  50. data/lib/azure/service_bus/empty_rule_action.rb +30 -0
  51. data/lib/azure/service_bus/false_filter.rb +38 -0
  52. data/lib/azure/service_bus/filter.rb +21 -0
  53. data/lib/azure/{core/utils → service_bus}/interval.rb +29 -22
  54. data/lib/azure/service_bus/queue.rb +230 -0
  55. data/lib/azure/service_bus/resource.rb +109 -0
  56. data/lib/azure/service_bus/rule.rb +98 -0
  57. data/lib/azure/service_bus/rule_aspect.rb +34 -0
  58. data/lib/azure/service_bus/serialization.rb +160 -0
  59. data/lib/azure/service_bus/service_bus_service.rb +819 -12
  60. data/lib/azure/service_bus/sql_filter.rb +50 -0
  61. data/lib/azure/service_bus/sql_rule_action.rb +50 -0
  62. data/lib/azure/service_bus/subscription.rb +184 -0
  63. data/lib/azure/service_bus/topic.rb +187 -0
  64. data/lib/azure/service_bus/true_filter.rb +38 -0
  65. data/lib/azure/{tables → table}/auth/shared_key.rb +33 -12
  66. data/lib/azure/table/auth/shared_key_lite.rb +44 -0
  67. data/lib/azure/table/batch.rb +330 -0
  68. data/lib/azure/table/batch_response.rb +117 -0
  69. data/lib/azure/table/edmtype.rb +127 -0
  70. data/lib/azure/table/entity.rb +31 -0
  71. data/lib/azure/table/guid.rb +24 -0
  72. data/lib/azure/table/query.rb +112 -0
  73. data/lib/azure/table/serialization.rb +105 -0
  74. data/lib/azure/table/table_service.rb +557 -0
  75. data/lib/azure/version.rb +31 -0
  76. data/test/fixtures/container_acl.xml +11 -0
  77. data/test/fixtures/{error.xml → http_error.xml} +0 -0
  78. data/test/fixtures/list_blobs.xml +121 -0
  79. data/test/fixtures/list_block_all_with_none_committed.xml +22 -0
  80. data/test/fixtures/list_blocks_all.xml +23 -0
  81. data/test/fixtures/list_blocks_committed.xml +13 -0
  82. data/test/fixtures/list_containers.xml +38 -0
  83. data/test/fixtures/list_page_ranges.xml +11 -0
  84. data/test/fixtures/logging.xml +11 -0
  85. data/test/fixtures/metrics.xml +10 -0
  86. data/test/fixtures/queues.xml +1 -1
  87. data/test/fixtures/retention_policy.xml +5 -0
  88. data/test/fixtures/storage_service_properties.xml +23 -0
  89. data/test/integration/blob/blob_metadata_test.rb +75 -0
  90. data/test/integration/blob/blob_pages_test.rb +119 -0
  91. data/test/integration/blob/blob_properties_test.rb +77 -0
  92. data/test/integration/blob/block_blob_test.rb +254 -0
  93. data/test/integration/blob/container/container_acl_test.rb +69 -0
  94. data/test/integration/blob/container/container_metadata_test.rb +50 -0
  95. data/test/integration/blob/container/create_container_test.rb +60 -0
  96. data/test/integration/blob/container/delete_container_test.rb +39 -0
  97. data/test/integration/blob/container/get_container_properties_test.rb +48 -0
  98. data/test/integration/blob/container/list_containers_test.rb +79 -0
  99. data/test/integration/blob/container/root_container_test.rb +50 -0
  100. data/test/integration/blob/copy_blob_test.rb +113 -0
  101. data/test/integration/blob/create_blob_snapshot_test.rb +80 -0
  102. data/test/integration/blob/create_page_blob_test.rb +83 -0
  103. data/test/integration/blob/delete_blob_test.rb +159 -0
  104. data/test/integration/blob/get_blob_test.rb +65 -0
  105. data/test/integration/blob/informative_errors_test.rb +39 -0
  106. data/test/integration/blob/lease/acquire_lease_test.rb +36 -0
  107. data/test/integration/blob/lease/break_lease_test.rb +40 -0
  108. data/test/integration/blob/lease/release_lease_test.rb +40 -0
  109. data/test/integration/blob/lease/renew_lease_test.rb +42 -0
  110. data/test/integration/blob/list_blobs_test.rb +113 -0
  111. data/test/integration/queue/clear_messages_test.rb +42 -0
  112. data/test/integration/queue/create_message_test.rb +75 -0
  113. data/test/integration/queue/create_queue_test.rb +50 -0
  114. data/test/integration/queue/delete_message_test.rb +67 -0
  115. data/test/integration/queue/delete_queue_test.rb +45 -0
  116. data/test/integration/queue/informative_errors_test.rb +42 -0
  117. data/test/integration/queue/list_messages_encoded_test.rb +79 -0
  118. data/test/integration/queue/list_messages_test.rb +79 -0
  119. data/test/integration/queue/list_queues_test.rb +44 -0
  120. data/test/integration/queue/peek_messages_test.rb +59 -0
  121. data/test/integration/queue/queue_metadata_test.rb +40 -0
  122. data/test/integration/queue/update_message_test.rb +74 -0
  123. data/test/integration/service_bus/informative_errors_test.rb +37 -0
  124. data/test/integration/service_bus/queues_scenario_test.rb +200 -0
  125. data/test/integration/service_bus/queues_test.rb +266 -0
  126. data/test/integration/service_bus/rules_test.rb +145 -0
  127. data/test/integration/service_bus/scenario_test.rb +102 -0
  128. data/test/integration/service_bus/subscriptions_test.rb +211 -0
  129. data/test/integration/service_bus/topics_scenario_test.rb +406 -0
  130. data/test/integration/service_bus/topics_test.rb +129 -0
  131. data/test/integration/table/create_table_test.rb +36 -0
  132. data/test/integration/table/delete_entity_batch_test.rb +107 -0
  133. data/test/integration/table/delete_entity_test.rb +94 -0
  134. data/test/integration/table/delete_table_test.rb +40 -0
  135. data/test/integration/table/get_table_test.rb +37 -0
  136. data/test/integration/table/informative_errors_test.rb +39 -0
  137. data/test/integration/table/insert_entity_batch_test.rb +100 -0
  138. data/test/integration/table/insert_entity_test.rb +88 -0
  139. data/test/integration/table/insert_or_merge_entity_batch_test.rb +159 -0
  140. data/test/integration/table/insert_or_merge_entity_test.rb +143 -0
  141. data/test/integration/table/insert_or_replace_entity_batch_test.rb +152 -0
  142. data/test/integration/table/insert_or_replace_entity_test.rb +137 -0
  143. data/test/integration/table/merge_entity_batch_test.rb +128 -0
  144. data/test/integration/table/merge_entity_test.rb +113 -0
  145. data/test/integration/table/query_entities_test.rb +195 -0
  146. data/test/integration/table/query_tables_test.rb +43 -0
  147. data/test/integration/table/query_test.rb +251 -0
  148. data/test/integration/table/table_acl_test.rb +52 -0
  149. data/test/integration/table/update_entity_batch_test.rb +149 -0
  150. data/test/integration/table/update_entity_test.rb +131 -0
  151. data/test/integration/test_helper.rb +23 -9
  152. data/test/support/env.rb +15 -1
  153. data/test/support/fixtures.rb +14 -0
  154. data/test/support/name_generator.rb +74 -0
  155. data/test/support/stubs.rb +14 -0
  156. data/test/test_helper.rb +43 -3
  157. data/test/unit/blob/blob_service_test.rb +1947 -0
  158. data/test/unit/core/auth/shared_key_lite_test.rb +51 -0
  159. data/test/unit/core/auth/shared_key_test.rb +58 -0
  160. data/test/unit/core/auth/signer_test.rb +30 -0
  161. data/test/unit/core/http/http_error_test.rb +57 -0
  162. data/test/unit/core/http/http_request_test.rb +66 -0
  163. data/test/unit/core/http/http_response_test.rb +45 -0
  164. data/test/unit/service/serialization_test.rb +502 -0
  165. data/test/unit/service/storage_service_test.rb +291 -0
  166. data/test/unit/table/edmtype_test.rb +108 -0
  167. metadata +231 -230
  168. data/Gemfile.lock +0 -36
  169. data/lib/azure/atom.rb +0 -170
  170. data/lib/azure/auth.rb +0 -29
  171. data/lib/azure/blobs.rb +0 -620
  172. data/lib/azure/blobs/blob.rb +0 -360
  173. data/lib/azure/blobs/container.rb +0 -209
  174. data/lib/azure/blobs/service.rb +0 -396
  175. data/lib/azure/blobs/shared_access_signature.rb +0 -84
  176. data/lib/azure/blobs/uri.rb +0 -60
  177. data/lib/azure/configuration.rb +0 -121
  178. data/lib/azure/core/collection.rb +0 -118
  179. data/lib/azure/core/signer.rb +0 -32
  180. data/lib/azure/core/utils/queryable.rb +0 -74
  181. data/lib/azure/core/utils/storage_service_properties.rb +0 -83
  182. data/lib/azure/core/utils/string.rb +0 -59
  183. data/lib/azure/error.rb +0 -72
  184. data/lib/azure/queues.rb +0 -272
  185. data/lib/azure/queues/message.rb +0 -174
  186. data/lib/azure/queues/queue.rb +0 -187
  187. data/lib/azure/queues/service.rb +0 -263
  188. data/lib/azure/queues/service_properties.rb +0 -152
  189. data/lib/azure/queues/uri.rb +0 -78
  190. data/lib/azure/request.rb +0 -102
  191. data/lib/azure/response.rb +0 -93
  192. data/lib/azure/service_bus.rb +0 -4
  193. data/lib/azure/service_bus/auth/authorizer.rb +0 -22
  194. data/lib/azure/service_bus/auth/uri.rb +0 -52
  195. data/lib/azure/service_bus/auth/wrap.rb +0 -37
  196. data/lib/azure/service_bus/auth/wrap_token.rb +0 -45
  197. data/lib/azure/service_bus/auth/wrap_token_manager.rb +0 -46
  198. data/lib/azure/service_bus/queues.rb +0 -194
  199. data/lib/azure/service_bus/queues/queue.rb +0 -100
  200. data/lib/azure/service_bus/queues/queue_serializer.rb +0 -51
  201. data/lib/azure/service_bus/queues/service.rb +0 -154
  202. data/lib/azure/service_bus/queues/uri.rb +0 -80
  203. data/lib/azure/service_bus/rules.rb +0 -110
  204. data/lib/azure/service_bus/rules/rule.rb +0 -97
  205. data/lib/azure/service_bus/rules/service.rb +0 -122
  206. data/lib/azure/service_bus/rules/uri.rb +0 -39
  207. data/lib/azure/service_bus/subscriptions.rb +0 -170
  208. data/lib/azure/service_bus/subscriptions/service.rb +0 -133
  209. data/lib/azure/service_bus/subscriptions/subscription.rb +0 -164
  210. data/lib/azure/service_bus/subscriptions/subscription_serializer.rb +0 -74
  211. data/lib/azure/service_bus/subscriptions/uri.rb +0 -71
  212. data/lib/azure/service_bus/topics.rb +0 -120
  213. data/lib/azure/service_bus/topics/service.rb +0 -98
  214. data/lib/azure/service_bus/topics/topic.rb +0 -122
  215. data/lib/azure/service_bus/topics/topic_serializer.rb +0 -44
  216. data/lib/azure/service_bus/topics/uri.rb +0 -58
  217. data/lib/azure/service_runtime/client/goal_state_pipe_monitor.rb +0 -21
  218. data/lib/azure/service_runtime/client/goal_state_protocol.rb +0 -18
  219. data/lib/azure/service_runtime/client/runtime_client.rb +0 -135
  220. data/lib/azure/service_runtime/deployment.rb +0 -24
  221. data/lib/azure/service_runtime/local_resource.rb +0 -15
  222. data/lib/azure/service_runtime/role.rb +0 -17
  223. data/lib/azure/service_runtime/role_environment.rb +0 -206
  224. data/lib/azure/service_runtime/role_environment_change.rb +0 -32
  225. data/lib/azure/service_runtime/role_instance.rb +0 -35
  226. data/lib/azure/service_runtime/role_instance_endpoint.rb +0 -14
  227. data/lib/azure/tables.rb +0 -215
  228. data/lib/azure/tables/auth/shared_key_lite.rb +0 -30
  229. data/lib/azure/tables/entities_collection.rb +0 -66
  230. data/lib/azure/tables/entity.rb +0 -127
  231. data/lib/azure/tables/service.rb +0 -211
  232. data/lib/azure/tables/table.rb +0 -129
  233. data/lib/azure/tables/tables_collection.rb +0 -62
  234. data/lib/azure/tables/types.rb +0 -65
  235. data/lib/azure/tables/uri.rb +0 -62
  236. data/test/integration/blobs/auth_test.rb +0 -19
  237. data/test/integration/blobs/blob_test.rb +0 -61
  238. data/test/integration/blobs/clear_page_range_test.rb +0 -19
  239. data/test/integration/blobs/copy_test.rb +0 -33
  240. data/test/integration/blobs/create_blobs_test.rb +0 -51
  241. data/test/integration/blobs/create_container_test.rb +0 -13
  242. data/test/integration/blobs/create_snapshot_test.rb +0 -17
  243. data/test/integration/blobs/delete_blob_snapshots_test.rb +0 -19
  244. data/test/integration/blobs/delete_blobs_test.rb +0 -25
  245. data/test/integration/blobs/delete_container_test.rb +0 -24
  246. data/test/integration/blobs/delete_snapshot_test.rb +0 -17
  247. data/test/integration/blobs/get_blob_snapshot_test.rb +0 -18
  248. data/test/integration/blobs/get_blobs_test.rb +0 -31
  249. data/test/integration/blobs/get_page_range_test.rb +0 -19
  250. data/test/integration/blobs/list_blobs_test.rb +0 -39
  251. data/test/integration/blobs/list_containers_test.rb +0 -28
  252. data/test/integration/blobs/manage_blob_leases_test.rb +0 -45
  253. data/test/integration/blobs/manage_blob_metadata_test.rb +0 -51
  254. data/test/integration/blobs/manage_blob_properties_test.rb +0 -25
  255. data/test/integration/blobs/manage_blob_service_properties_test.rb +0 -38
  256. data/test/integration/blobs/manage_container_metadata_test.rb +0 -46
  257. data/test/integration/blobs/manage_container_permissions_test.rb +0 -17
  258. data/test/integration/blobs/update_page_range_test.rb +0 -20
  259. data/test/integration/queues/clear_messages_test.rb +0 -22
  260. data/test/integration/queues/create_queue_test.rb +0 -13
  261. data/test/integration/queues/delete_message_test.rb +0 -42
  262. data/test/integration/queues/delete_queue_test.rb +0 -24
  263. data/test/integration/queues/get_messages_test.rb +0 -39
  264. data/test/integration/queues/list_queues_test.rb +0 -43
  265. data/test/integration/queues/manage_queue_metadata_test.rb +0 -45
  266. data/test/integration/queues/manage_queue_service_properties_test.rb +0 -27
  267. data/test/integration/queues/peek_messages_test.rb +0 -55
  268. data/test/integration/queues/put_message_test.rb +0 -31
  269. data/test/integration/queues/update_message_test.rb +0 -46
  270. data/test/integration/service_bus/auth_test.rb +0 -18
  271. data/test/integration/service_bus/queues/create_queue_test.rb +0 -25
  272. data/test/integration/service_bus/queues/delete_message_from_queue_test.rb +0 -29
  273. data/test/integration/service_bus/queues/delete_queue_test.rb +0 -25
  274. data/test/integration/service_bus/queues/get_queue_test.rb +0 -23
  275. data/test/integration/service_bus/queues/list_queues_test.rb +0 -39
  276. data/test/integration/service_bus/queues/peek_message_from_queue_test.rb +0 -34
  277. data/test/integration/service_bus/queues/read_and_delete_message_from_queue_test.rb +0 -31
  278. data/test/integration/service_bus/queues/send_message_to_queue_test.rb +0 -22
  279. data/test/integration/service_bus/queues/unlock_message_from_queue_test.rb +0 -36
  280. data/test/integration/service_bus/rules/create_rule_test.rb +0 -19
  281. data/test/integration/service_bus/rules/delete_rule_test.rb +0 -17
  282. data/test/integration/service_bus/rules/get_rule_test.rb +0 -21
  283. data/test/integration/service_bus/rules/list_rules_test.rb +0 -24
  284. data/test/integration/service_bus/rules/rule_test.rb +0 -16
  285. data/test/integration/service_bus/subscriptions/create_subscription_test.rb +0 -25
  286. data/test/integration/service_bus/subscriptions/delete_message_from_subscription_test.rb +0 -31
  287. data/test/integration/service_bus/subscriptions/delete_subscription_test.rb +0 -30
  288. data/test/integration/service_bus/subscriptions/fetch_subscription_test.rb +0 -28
  289. data/test/integration/service_bus/subscriptions/list_subscriptions_test.rb +0 -23
  290. data/test/integration/service_bus/subscriptions/peek_lock_message_from_subscription_test.rb +0 -42
  291. data/test/integration/service_bus/subscriptions/read_delete_message_from_subscription_test.rb +0 -36
  292. data/test/integration/service_bus/subscriptions/subscription_test.rb +0 -31
  293. data/test/integration/service_bus/subscriptions/unlock_message_from_subscription_test.rb +0 -43
  294. data/test/integration/service_bus/topics/create_topic_test.rb +0 -25
  295. data/test/integration/service_bus/topics/delete_topic_test.rb +0 -25
  296. data/test/integration/service_bus/topics/get_topic_test.rb +0 -23
  297. data/test/integration/service_bus/topics/list_topics_test.rb +0 -39
  298. data/test/integration/service_bus/topics/send_message_to_topic_test.rb +0 -23
  299. data/test/integration/tables/auth_test.rb +0 -29
  300. data/test/integration/tables/creating_tables_test.rb +0 -16
  301. data/test/integration/tables/delete_entity_test.rb +0 -39
  302. data/test/integration/tables/deleting_table_test.rb +0 -22
  303. data/test/integration/tables/insert_entity_test.rb +0 -23
  304. data/test/integration/tables/merge_entity_test.rb +0 -28
  305. data/test/integration/tables/query_entities_test.rb +0 -131
  306. data/test/integration/tables/query_tables_test.rb +0 -63
  307. data/test/integration/tables/update_entity_test.rb +0 -54
  308. data/test/support/blobs.rb +0 -12
  309. data/test/support/table_names.rb +0 -44
  310. data/test/unit/atom_test.rb +0 -58
  311. data/test/unit/auth_test.rb +0 -24
  312. data/test/unit/blobs/blob_test.rb +0 -5
  313. data/test/unit/blobs/container_test.rb +0 -67
  314. data/test/unit/blobs/service_test.rb +0 -17
  315. data/test/unit/blobs/shared_access_signature_test.rb +0 -66
  316. data/test/unit/blobs_test.rb +0 -156
  317. data/test/unit/core/service_test.rb +0 -57
  318. data/test/unit/core/utils/interval_test.rb +0 -70
  319. data/test/unit/core/utils/queryable_test.rb +0 -69
  320. data/test/unit/core/utils/storage_service_properties_test.rb +0 -66
  321. data/test/unit/error_test.rb +0 -39
  322. data/test/unit/queues/message_test.rb +0 -40
  323. data/test/unit/queues/queue_test.rb +0 -64
  324. data/test/unit/queues/service_properties.rb +0 -35
  325. data/test/unit/request_test.rb +0 -38
  326. data/test/unit/response_test.rb +0 -43
  327. data/test/unit/service_bus/auth/authorizer_test.rb +0 -27
  328. data/test/unit/service_bus/auth/wrap_token_test.rb +0 -28
  329. data/test/unit/service_bus/queues/queue_test.rb +0 -38
  330. data/test/unit/service_bus/topics/topic_test.rb +0 -33
  331. data/test/unit/service_runtime/data/goalstate.xml +0 -9
  332. data/test/unit/service_runtime/data/roleenvironmentdata.xml +0 -29
  333. data/test/unit/service_runtime/data/runtime.xml +0 -6
  334. data/test/unit/service_runtime/role_environment_test.rb +0 -144
  335. data/test/unit/tables/auth/shared_key_lite_test.rb +0 -39
  336. data/test/unit/tables/auth/shared_key_test.rb +0 -45
  337. data/test/unit/tables/entities_collection_test.rb +0 -39
  338. data/test/unit/tables/entity_test.rb +0 -72
  339. data/test/unit/tables/table_test.rb +0 -57
  340. data/test/unit/tables_test.rb +0 -302
  341. data/test/unit/types_test.rb +0 -67
@@ -1,187 +0,0 @@
1
- require "azure/queues"
2
- require "azure/queues/uri"
3
- require "azure/error"
4
- require "uri"
5
-
6
- module Azure
7
- module Queues
8
- # Public: Representation of a Queue in the storage system.
9
- class Queue
10
- include Azure::ErrorHandler
11
-
12
- # Get the Queue's URI.
13
- #
14
- # Returns a URI.
15
- attr :url
16
-
17
- # Get the Queue's name.
18
- #
19
- # Returns a String.
20
- attr :name
21
-
22
- # Get the Queue's metadata.
23
- #
24
- # Returns a Hash.
25
- attr_accessor :metadata
26
-
27
- # Public: Instantiate a queue from an XML entry.
28
- #
29
- # entry - An XML::Node element.
30
- #
31
- # Returns a Queue.
32
- def self.from_node(node)
33
- name = (node % "Name").text
34
- url = URI((node % "Url").text)
35
-
36
- metadata = (node / "Metadata *").each_with_object({}) do |n, metadata|
37
- metadata[n.name] = n.text
38
- end
39
-
40
- new(name, url, metadata)
41
- end
42
-
43
- # Public: Instantiate a queue from an error object.
44
- #
45
- # error - An Azure::Error.
46
- #
47
- # Returns a Queue.
48
- def self.from_error(error)
49
- queue = new(nil)
50
- queue.error = error
51
- queue
52
- end
53
-
54
- # Public: Initialize the queue.
55
- #
56
- # name - A String with the name of the queue.
57
- # url - The URI of the queue in the service.
58
- # metadata - A Hash with metadata key-value pairs.
59
- # service - The Queue service to perform external calls.
60
- def initialize(name, url=Azure::Queues::URI.queue(name), metadata = {}, service=Azure::Queues)
61
- @name = name
62
- @url = url
63
- @metadata = metadata
64
- @service = service
65
- end
66
-
67
- # Public: Add a message into the queue.
68
- #
69
- # message - An Azure::Queues::Message.
70
- #
71
- # Returns self.
72
- def push(message)
73
- message = Message(message)
74
-
75
- @service.put_message(self, message, {
76
- visibilitytimeout: message.visibility_timeout,
77
- messagettl: message.ttl
78
- })
79
-
80
- self
81
- end
82
- alias_method :<<, :push
83
- alias_method :enq, :push
84
-
85
- # Public: Get the latest message from the queue.
86
- #
87
- # options - A Hash of options (optional):
88
- # :visibilitytimeout - Update the message returned to be
89
- # invisible for this many seconds
90
- # (default: 0).
91
- #
92
- # Returns the message, or nil if the queue is empty.
93
- def pop(options={})
94
- get(1, options).first
95
- end
96
- alias_method :deq, :pop
97
- alias_method :shift, :pop
98
-
99
- # Public: Get a list of messages from the queue.
100
- #
101
- # num - The amount of messages to peek (must be 1 <= num <= 32).
102
- # options - A Hash of options (optional):
103
- # :visibilitytimeout - Update the messages returned to be
104
- # invisible for this many seconds (must be
105
- # 1 second <= timeout <= 7 days).
106
- # (default: 1 second).
107
- #
108
- # Returns an Array of Messages.
109
- def get(num, options={})
110
- options[:numofmessages] = num
111
- @service.get_messages(self, options)
112
- end
113
-
114
- # Public: Peek the latest message from the queue (without changing its
115
- # visibility).
116
- #
117
- # Returns the message, or nil if the queue is empty.
118
- def peek
119
- look_at(1).first
120
- end
121
-
122
- # Public: Peek a list of messages from the queue (without changing their
123
- # visibility).
124
- #
125
- # num - The amount of messages to peek (must be 1 <= num <= 32).
126
- #
127
- # Returns an Array of Messages.
128
- def look_at(num)
129
- @service.peek_messages(self, numofmessages: num)
130
- end
131
-
132
- # Public: Remove all messages from the queue.
133
- #
134
- # Returns true|false to indicate success.
135
- def clear
136
- @service.clear_messages(self)
137
- end
138
-
139
- # Public: Compare two queues to see if they are the same.
140
- #
141
- # other - A queue.
142
- #
143
- # Returns true|false.
144
- def ==(other)
145
- name == other.name
146
- end
147
-
148
- # Public: Force a reload of this queue metadata from the server.
149
- #
150
- # Returns the Hash of metadata.
151
- def load_metadata!
152
- @service.load_metadata(self)
153
- end
154
-
155
- # Public: Put the current queue's metadata into the storage service.
156
- #
157
- # Returns true|false to indicate success.
158
- def save_metadata!
159
- @service.save_metadata(self)
160
- end
161
-
162
- # Public: Extracts metadata from a hash containing HTTP headers (so
163
- # "x-ms-meta-Name" => "Foo" is extracted as "Name" => "Foo"). This
164
- # replaces the metadata of this container.
165
- #
166
- # hash - A hash of String => String with HTTP header values.
167
- #
168
- # Returns a Hash with the extracted metadata.
169
- def extract_metadata(hash)
170
- new_metadata = hash.each_with_object({}) do |(k,v), hash|
171
- if key = k[/^x-ms-meta-(?<key>.*)?/, :key]
172
- hash[key] = v
173
- end
174
- end
175
-
176
- metadata.replace(new_metadata)
177
- end
178
-
179
- # Public: Deletes this queue from the storage service.
180
- #
181
- # Returns true|false to indicate whether the delete was successful or not.
182
- def delete
183
- @service.delete(self)
184
- end
185
- end
186
- end
187
- end
@@ -1,263 +0,0 @@
1
- require "azure/core/service"
2
- require "azure/core/auth/shared_key"
3
- require "azure/queues/uri"
4
- require "nokogiri"
5
-
6
- module Azure
7
- module Queues
8
-
9
- class Service < Core::Service
10
- def initialize(signer=Azure::Core::Auth::SharedKey.new)
11
- super(signer)
12
- end
13
- end
14
-
15
- module Services
16
-
17
- # Public: gets the properties of a storage account’s Queue Service.
18
- class GetServiceProperties < Service
19
-
20
- # Public: Invoke the service.
21
- #
22
- # options - Options for this query:
23
- # :timeout - (optional) timeout for the request in seconds
24
- #
25
- # Returns a Response.
26
- def call(options = {})
27
- uri = Queues::URI.service_properties(options)
28
-
29
- super(:get, uri)
30
- end
31
- end
32
-
33
- # Public: sets the properties of a storage account’s Queue Service.
34
- class SetServiceProperties < Service
35
-
36
- # Public: Invoke the service.
37
- #
38
- # properties - an Azure::Queues::ServiceProperties object
39
- # options - Options for this query:
40
- # :timeout - (optional) timeout for the request in seconds
41
- #
42
- # Returns a Response.
43
- def call(properties, options = {})
44
- uri = Queues::URI.service_properties(options)
45
-
46
- body = properties.to_xml
47
-
48
- super(:put, uri, body)
49
- end
50
- end
51
-
52
- # Public: List queues from a storage account
53
- class ListQueues < Service
54
- # Public: Invoke the service.
55
- #
56
- # options - A hash of options
57
- # :prefix - Filters the results to return only
58
- # queues with names that begin with the
59
- # specified prefix.
60
- # :marker - A string value that identifies the
61
- # portion of the list to be returned
62
- # with the next list operation.
63
- # :maxresults - Specifies the maximum number of queues
64
- # to return.
65
- #
66
- # Returns a Response.
67
- def call(options)
68
- uri = Queues::URI.collection(options)
69
- super(:get, uri)
70
- end
71
- end
72
-
73
- # Public: Add a queue to the storage account.
74
- class CreateQueue < Service
75
-
76
- # Public: Invoke the service.
77
- #
78
- # name - The name of the new container.
79
- # metadata - User defined metadata for this queue (default: {}).
80
- #
81
- # Returns a Response.
82
- def call(name, metadata = {})
83
- uri = Queues::URI.queue(name)
84
-
85
- super(:put, uri) do |request|
86
- metadata.each do |name, value|
87
- request.headers["x-ms-meta-#{name}"] = value
88
- end
89
- end
90
- end
91
- end
92
-
93
- # Public: Deletes a queue from the storage account.
94
- class DeleteQueue < Service
95
-
96
- # Public: Invoke the service.
97
- #
98
- # name - The name of the queue.
99
- #
100
- # Returns a Response.
101
- def call(name)
102
- uri = Queues::URI.queue(name)
103
- super(:delete, uri)
104
- end
105
- end
106
-
107
- # Public: Get queue metadata
108
- class GetMetadata < Service
109
- # Public: Invoke the service.
110
- #
111
- # name - The queue name.
112
- #
113
- # Returns a Response.
114
- def call(name)
115
- uri = Queues::URI.queue(name, comp: "metadata")
116
- super(:head, uri)
117
- end
118
- end
119
-
120
- # Public: Set queue metadata.
121
- class SetMetadata < Service
122
- # Public: Invoke the service.
123
- #
124
- # name - The queue name.
125
- # metadata - User defined metadata for this queue.
126
- #
127
- # Returns a Response.
128
- def call(name, metadata)
129
- uri = Queues::URI.queue(name, comp: "metadata")
130
-
131
- super(:put, uri) do |request|
132
- metadata.each do |name, value|
133
- request.headers["x-ms-meta-#{name}"] = value
134
- end
135
- end
136
- end
137
- end
138
-
139
- ## Messages
140
-
141
- # Public: Add a message to the message queue
142
- class PutMessage < Service
143
- # Public: Invoke the service.
144
- #
145
- # queue_name - The name of the queue.
146
- # text - The message's text.
147
- # options - A Hash of options for this message (optional):
148
- # :visibilitytimeout - Amount of seconds during which the
149
- # message will be invisible
150
- # (default: 0).
151
- # :messagettl - Time in seconds until the message is
152
- # unreacable, between 1 second and 7
153
- # days (default: 7 days).
154
- #
155
- # Returns a Response.
156
- def call(queue_name, text, options = {})
157
- uri = Queues::URI.messages(queue_name, options)
158
-
159
- body = Nokogiri::XML::Builder.new do |xml|
160
- xml.QueueMessage {
161
- xml.MessageText text
162
- }
163
- end
164
-
165
- super(:post, uri, body.to_xml)
166
- end
167
- end
168
-
169
- # Public: Get a list of messages from the front of the message queue.
170
- class GetMessages < Service
171
- # Public: Invoke the service.
172
- #
173
- # queue_name - The name of the message queue.
174
- # options - A Hash of options for this operation (optional):
175
- # :visibilitytimeout - Update the returned messages'
176
- # visibilitytimeout to this number (at
177
- # least 1, the default).
178
- # :numofmessages - A number between 1 and 32 of messages
179
- # to return (default: 1).
180
- #
181
- # Returns a Response.
182
- def call(queue_name, options={})
183
- uri = Queues::URI.messages(queue_name, options)
184
- super(:get, uri)
185
- end
186
- end
187
-
188
- # Public: Peek at a list of messages from the front of the message queue.
189
- class PeekMessages < Service
190
- # Public: Invoke the service.
191
- #
192
- # queue_name - The name of the message queue.
193
- # options - A Hash of options for this operation (optional):
194
- # :numofmessages - A number between 1 and 32 of messages
195
- # to return (default: 1).
196
- #
197
- # Returns a Response.
198
- def call(queue_name, options={})
199
- options.update(peekonly: 'true')
200
- uri = Queues::URI.messages(queue_name, options)
201
- super(:get, uri)
202
- end
203
- end
204
-
205
- # Public: Deletes a message from the message queue.
206
- class DeleteMessage < Service
207
- # Public: Invoke the service.
208
- #
209
- # queue_name - The name of the message queue.
210
- # message_id - The message id.
211
- # pop_receipt - The receipt of a previous pop operation on this message.
212
- #
213
- # Returns a Response.
214
- def call(queue_name, message_id, pop_receipt)
215
- uri = Queues::URI.message(
216
- queue_name, message_id, popreceipt: pop_receipt
217
- )
218
- super(:delete, uri)
219
- end
220
- end
221
-
222
- # Public: Deletes all messages on the given queue.
223
- class ClearMessages < Service
224
- # Public: Invoke the service.
225
- #
226
- # queue_name - The name of the queue.
227
- #
228
- # Returns a Response.
229
- def call(queue_name)
230
- uri = Queues::URI.messages(queue_name)
231
- super(:delete, uri)
232
- end
233
- end
234
-
235
- # Public: Update a message from the message queue.
236
- class UpdateMessage < Service
237
- # Public: Invoke the service.
238
- #
239
- # queue_name - The name of the message queue.
240
- # message_id - The message's id.
241
- # text - The message's new text.
242
- # timeout - A New visibilitytimeout for the message.
243
- # pop_receipt - The receipt of a previous pop operation on this message.
244
- #
245
- # Returns a Response.
246
- def call(queue_name, message_id, text, timeout, pop_receipt)
247
- uri = Queues::URI.message(queue_name, message_id, {
248
- popreceipt: pop_receipt, visibilitytimeout: timeout
249
- })
250
-
251
- body = Nokogiri::XML::Builder.new do |xml|
252
- xml.QueueMessage {
253
- xml.MessageText text
254
- }
255
- end
256
-
257
- super(:put, uri, body.to_xml)
258
- end
259
- end
260
-
261
- end
262
- end
263
- end
@@ -1,152 +0,0 @@
1
- require "azure/queues"
2
- require "azure/queues/uri"
3
- require "azure/error"
4
- require "uri"
5
- require "nokogiri"
6
-
7
- module Azure
8
- module Queues
9
- # Public: Representation of the Service Properties in a message queue.
10
- class ServiceProperties
11
- include Azure::ErrorHandler
12
-
13
- # Public: Instantiate a ServiceProperties from an XML entry.
14
- #
15
- # entry - An XML::Node element.
16
- #
17
- # Returns a Serviceproperties.
18
- def self.from_node(node)
19
- new() do |s|
20
- s.logging = Logging.from_node(node % "Logging")
21
- s.metrics = Metrics.from_node(node % "Metrics")
22
- end
23
- end
24
-
25
- # Public: Instantiate a message from an error object.
26
- #
27
- # error - An Azure::Error.
28
- #
29
- # Returns a Message.
30
- def self.from_error(error)
31
- message = new(nil)
32
- message.error = error
33
- message
34
- end
35
-
36
- attr_accessor :logging, :metrics
37
-
38
- # Public: Constructor.
39
- #
40
- # queue - The message queue
41
- # service - The Queue service to perform external calls.
42
- def initialize(service=Azure::Queues)
43
- @service = service
44
- @logging = Logging.new
45
- @metrics = Metrics.new
46
- yield self if block_given?
47
- end
48
-
49
- class Logging
50
- attr_accessor :version, :delete, :read, :write, :retention_policy
51
-
52
- def initialize
53
- @version = "1.0"
54
- @read = false
55
- @write = false
56
- @delete = false
57
- @retention_policy = RetentionPolicy.new
58
- yield self if block_given?
59
- end
60
-
61
- # Public: Instantiate a Logging from an XML entry.
62
- #
63
- # entry - An XML::Node element.
64
- #
65
- # Returns a Logging.
66
- def self.from_node(node)
67
- new() do |l|
68
- l.version = (node % "Version").text
69
- l.read = (node % "Read").text == "true"
70
- l.write = (node % "Write").text == "true"
71
- l.delete = (node % "Delete").text == "true"
72
- l.retention_policy = RetentionPolicy.from_node(node % "RetentionPolicy")
73
- end
74
- end
75
- end
76
-
77
- class Metrics
78
- attr_accessor :version, :enabled, :include_apis, :retention_policy
79
-
80
- def initialize
81
- @version = "1.0"
82
- @enabled = false
83
- @include_apis = false
84
- @retention_policy = RetentionPolicy.new
85
- yield self if block_given?
86
- end
87
-
88
- # Public: Instantiate a Metrics from an XML entry.
89
- #
90
- # entry - An XML::Node element.
91
- #
92
- # Returns a Metrics.
93
- def self.from_node(node)
94
- new() do |m|
95
- m.version = (node % "Version").text
96
- m.enabled = (node % "Enabled").text == "true"
97
- m.include_apis = (node % "IncludeAPIs").text == "true" unless (node % "IncludeAPIs").nil?
98
- m.retention_policy = RetentionPolicy.from_node(node % "RetentionPolicy")
99
- end
100
- end
101
- end
102
-
103
- class RetentionPolicy
104
- attr_accessor :enabled, :days
105
-
106
- def initialize
107
- @enabled = false
108
- yield self if block_given?
109
- end
110
-
111
- # Public: Instantiate a RetentionPolicy from an XML entry.
112
- #
113
- # entry - An XML::Node element.
114
- #
115
- # Returns a RetentionPolicy.
116
- def self.from_node(node)
117
- new() do |m|
118
- m.enabled = (node % "Enabled").text == "true"
119
- m.days = (node % "Days").text unless (node % "Days").nil?
120
- end
121
- end
122
- end
123
-
124
- def to_xml
125
- body = Nokogiri::XML::Builder.new do |xml|
126
- xml.StorageServiceProperties {
127
- xml.Logging {
128
- xml.Version logging.version
129
- xml.Delete logging.delete
130
- xml.Read logging.read
131
- xml.Write logging.write
132
- xml.RetentionPolicy {
133
- xml.Enabled logging.retention_policy.enabled
134
- xml.Days logging.retention_policy.days if logging.retention_policy.enabled
135
- }
136
- }
137
- xml.Metrics {
138
- xml.Version metrics.version
139
- xml.Enabled metrics.enabled
140
- xml.IncludeAPIs metrics.include_apis unless metrics.include_apis.nil?
141
- xml.RetentionPolicy {
142
- xml.Enabled metrics.retention_policy.enabled
143
- xml.Days metrics.retention_policy.days if metrics.retention_policy.enabled
144
- }
145
- }
146
- }
147
- end
148
- body.to_xml
149
- end
150
- end
151
- end
152
- end