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,32 +0,0 @@
1
- module Azure
2
- module ServiceRuntime
3
- class RoleEnvironmentChange
4
- end
5
-
6
- class RoleEnvironmentConfigurationSettingChange < RoleEnvironmentChange
7
- attr_reader :configuration_setting_name
8
- alias :name :configuration_setting_name
9
-
10
- def initialize(configuration_setting_name)
11
- @configuration_setting_name = configuration_setting_name
12
- end
13
-
14
- def to_s
15
- @configuration_setting_name
16
- end
17
- end
18
-
19
- class RoleEnvironmentTopologyChange < RoleEnvironmentChange
20
- attr_reader :role_name
21
- alias :name :role_name
22
-
23
- def initialize(role_name)
24
- @role_name = role_name
25
- end
26
-
27
- def to_s
28
- @role_name
29
- end
30
- end
31
- end
32
- end
@@ -1,35 +0,0 @@
1
- require 'azure/service_runtime/role_instance_endpoint'
2
- require 'azure/service_runtime/local_resource'
3
-
4
- module Azure
5
- module ServiceRuntime
6
- class RoleInstance
7
- attr_accessor :id, :role_name, :fault_domain, :update_domain, :endpoints, :configuration_settings, :local_resources
8
- alias :instance_endpoints :endpoints
9
-
10
- def initialize(node)
11
- self.id = node["id"]
12
- self.fault_domain = node["faultDomain"].to_i
13
- self.update_domain = node["updateDomain"].to_i
14
- self.role_name = node["roleName"]
15
-
16
- self.endpoints = node.css('Endpoints > Endpoint').inject({}) do |hash, endpoint_xml|
17
- endpoint = RoleInstanceEndpoint.new(endpoint_xml)
18
- hash[endpoint.name] = endpoint
19
- hash
20
- end
21
-
22
- self.configuration_settings = node.css('ConfigurationSettings > ConfigurationSetting').inject({}) do |hash, setting_xml|
23
- hash[setting_xml["name"]] = setting_xml["value"]
24
- hash
25
- end
26
-
27
- self.local_resources = node.css('LocalResources > LocalResource').inject({}) do |hash, local_resource_xml|
28
- local_resource = LocalResource.new(local_resource_xml)
29
- hash[local_resource.name] = local_resource
30
- hash
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,14 +0,0 @@
1
- module Azure
2
- module ServiceRuntime
3
- class RoleInstanceEndpoint
4
- attr_accessor :name, :address, :port, :protocol
5
-
6
- def initialize(node)
7
- self.name = node["name"]
8
- self.address = node["address"]
9
- self.port = node["port"].to_i
10
- self.protocol = node["protocol"]
11
- end
12
- end
13
- end
14
- end
@@ -1,215 +0,0 @@
1
- require "azure/tables/service"
2
- require "azure/tables/table"
3
- require "azure/tables/entity"
4
- require "azure/tables/entities_collection"
5
- require "azure/tables/tables_collection"
6
- require "azure/atom"
7
-
8
- module Azure
9
- module Tables
10
- # Public: Get a list of Tables from the server.
11
- #
12
- # query - Options for this query.
13
- # service - The backend service to implement this (optional).
14
- #
15
- # Returns an Array of Table elements.
16
- def self.all(query = {}, service=Azure::Tables::Services::QueryTables.new)
17
- response = service.call(query)
18
- feed = Atom::Feed.load_feed(response.body)
19
- collection = Azure::Tables::TablesCollection.from_entries(feed.entries, query)
20
-
21
- collection.continuation_token(
22
- response.headers["x-ms-continuation-nexttablename"]
23
- )
24
-
25
- collection
26
- end
27
-
28
- # Public: Get a single table by name. If the operation is unsuccessful, the
29
- # resulting table is invalidated.
30
- #
31
- # name - The name of the table.
32
- # service - The backend service to implement this (optional).
33
- #
34
- # Returns a Table.
35
- def self.fetch(name, service=Azure::Tables::Services::FetchTable.new)
36
- response = service.call(name)
37
-
38
- if response.success?
39
- Table.from_entry(Atom::Entry.load_entry(response.body))
40
- else
41
- Table.from_error(response.error)
42
- end
43
- end
44
-
45
- # Public: Attempt to create a new table. If the operation is unsuccessful,
46
- # the resulting Table object will have the error accessible through the
47
- # table.error method.
48
- #
49
- # name - The name of the table.
50
- # service - The backend service to implement this (optional).
51
- #
52
- # Returns a Table.
53
- def self.create(name, service=Azure::Tables::Services::CreateTable.new)
54
- response = service.call(name)
55
-
56
- if response.success?
57
- Table.from_entry(Atom::Entry.load_entry(response.body))
58
- else
59
- Table.from_error(response.error)
60
- end
61
- end
62
-
63
- # Public: Delete a Table from the server.
64
- #
65
- # table - An Azure::Tables::Table.
66
- # service - The backend service to implement this (optional).
67
- #
68
- # Returns true|false to indicate success.
69
- def self.delete(table, service=Azure::Tables::Services::DeleteTable.new)
70
- response = service.call(table.url)
71
- table.error = response.error unless response.success?
72
- response.success?
73
- end
74
-
75
- # Public: Inserts a new entity in the given table. If the operation fails an
76
- # error will be added to the entity.
77
- #
78
- # table - An Azure::Tables::Table.
79
- # entity - An Azure::Tables::Entity.
80
- # service - The backend service to implement this (optional).
81
- #
82
- # Returns the entity.
83
- def self.insert_entity(table, entity, service=Azure::Tables::Services::InsertEntity.new)
84
- response = service.call(table.name, entity.attributes)
85
-
86
- if response.success?
87
- entity.reset(
88
- Entity.from_entry(Azure::Atom::Entry.load_entry(response.body))
89
- )
90
- entity.etag = response.headers["etag"]
91
- else
92
- entity.error = response.error
93
- end
94
-
95
- entity
96
- end
97
-
98
- # Public: Replaces the attributes of an existing entity. In case of an
99
- # error, the entity won't be changed and entity.error will be set.
100
- #
101
- # entity - The entity to update.
102
- # attributes - A Hash of attributes. This hash must contain a "PartitionKey"
103
- # and a "RowKey".
104
- # force - Force this operation even if the object is stale (optional,
105
- # defaults to false).
106
- # service - The backend service to implement this (optional).
107
- #
108
- # Returns true|false to indicate success.
109
- def self.update_entity(entity, attributes, force=false, service=Azure::Tables::Services::ReplaceEntity.new)
110
- etag = force ? Entity::FORCE_UPDATE : entity.etag
111
- response = service.call(entity.url, attributes, etag)
112
-
113
- if response.success?
114
- entity.attributes.replace(attributes)
115
- entity.etag = response.headers["etag"]
116
- else
117
- entity.error = response.error
118
- end
119
-
120
- response.success?
121
- end
122
-
123
- # Public: Merge new attributes into an entity. If successful, the entity
124
- # will have the new attributes. In case of an error, the entity won't be
125
- # changed and entity.error will be set.
126
- #
127
- # entity - The entity to update.
128
- # attributes - A Hash of attributes.
129
- # force - Force this operation even if the object is stale (optional,
130
- # defaults to false).
131
- # service - The backend service to implement this (optional).
132
- #
133
- # Returns true|false to indicate success.
134
- def self.merge_entity(entity, attributes, force=false, service=Azure::Tables::Services::MergeEntity.new)
135
- etag = force ? Entity::FORCE_UPDATE : entity.etag
136
- response = service.call(entity.url, attributes, etag)
137
-
138
- if response.success?
139
- entity.attributes.update(attributes)
140
- entity.etag = response.headers["etag"]
141
- else
142
- entity.error = response.error
143
- end
144
-
145
- response.success?
146
- end
147
-
148
- # Public: Delete an Entity. If the entity can't be deleted, entity.error
149
- # will be set.
150
- #
151
- # entity - The entity to delete.
152
- # force - Force this operation even if the object is stale (optional,
153
- # defaults to false).
154
- # service - The backend service to implement this (optional).
155
- #
156
- # Returns true|false to indicate success.
157
- def self.delete_entity(entity, force=false, service=Azure::Tables::Services::DeleteEntity.new)
158
- etag = force ? Entity::FORCE_UPDATE : entity.etag
159
- response = service.call(entity.url, etag)
160
-
161
- if response.success?
162
- entity.etag = response.headers["etag"]
163
- entity.freeze
164
- else
165
- entity.error = response.error
166
- end
167
-
168
- response.success?
169
- end
170
-
171
- # Public: Query a table for a specific entity.
172
- #
173
- # table - An Azure::Tables::Table.
174
- # partition_key - The PartitionKey of the desired entity.
175
- # row_key - The RowKey of the desired entity.
176
- # service - The backend service to implement this (optional).
177
- #
178
- # Returns an Entity, or nil if none is found.
179
- def self.query_entity(table, partition_key, row_key, query={}, service=Azure::Tables::Services::QueryEntities.new)
180
- query.update(partition_key: partition_key, row_key: row_key)
181
- response = service.call(table.name, query)
182
-
183
- if response.success?
184
- Entity.from_entry(Azure::Atom::Entry.load_entry(response.body))
185
- else
186
- nil
187
- end
188
- end
189
-
190
- # Public: Query a table for entities.
191
- # Options Hash keys *should* be defined using :symbols.
192
- #
193
- # table - An Azure::Tables::Table.
194
- # query - A hash of query options.
195
- # service - The backend service to implement this (optional).
196
- #
197
- # Returns an array of entities.
198
- def self.query_entities(table, query={}, service=Azure::Tables::Services::QueryEntities.new)
199
- response = service.call(table.name, query)
200
-
201
- if response.success?
202
- feed = Atom::Feed.load_feed(response.body)
203
- collection = Azure::Tables::EntitiesCollection.from_entries(table, feed.entries, query)
204
- collection.continuation_token(
205
- response.headers["x-ms-continuation-nextpartitionkey"],
206
- response.headers["x-ms-continuation-nextrowkey"]
207
- )
208
-
209
- collection
210
- else
211
- Azure::Tables::EntitiesCollection.new(table, query)
212
- end
213
- end
214
- end
215
- end
@@ -1,30 +0,0 @@
1
- require "azure/tables/auth/shared_key"
2
-
3
- module Azure
4
- module Tables
5
- module Auth
6
- class SharedKeyLite < SharedKey
7
- # Public: The name of the strategy.
8
- #
9
- # Returns a String.
10
- def name
11
- "SharedKeyLite"
12
- end
13
-
14
- # Generate the string to sign.
15
- #
16
- # verb - The HTTP request method.
17
- # uri - The URI of the request we're signing.
18
- # headers - A Hash of HTTP request headers.
19
- #
20
- # Returns a plain text string.
21
- def signable_string(method, uri, headers)
22
- [
23
- headers.fetch("Date") { headers.fetch("x-ms-date") },
24
- canonicalized_resource(uri)
25
- ].join("\n")
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,66 +0,0 @@
1
- require "azure/tables"
2
-
3
- module Azure
4
- module Tables
5
-
6
- class EntitiesCollection < Array
7
-
8
- # Public: Create a EntitiesCollection instance.
9
- #
10
- # table - Azure::Tables::Table instace where entities in this class belongs to.
11
- # query - A Hash with the query options passed to the server to get the feed.
12
- #
13
- # Returns the instance.
14
- def initialize(table, query = {}, service = Azure::Tables)
15
- @service = service
16
- @query = query
17
- @table = table
18
- end
19
-
20
- # Public: Creates an Azure::Tables::EntitiesCollection from entries feed.
21
- #
22
- # table - An Azure::Tables::Table instance.
23
- # entries - An array of xml entries.
24
- # query - A Hash with the query options passed to the server to get the feed.
25
- #
26
- # Returns an instance of Azure::Tables::EntitiesCollection.
27
- def self.from_entries(table, entries, query = {}, service = Azure::Tables)
28
- collection = self.new(table, query, service)
29
-
30
- entries.each do |entry|
31
- collection << Entity.from_entry(entry)
32
- end
33
-
34
- collection
35
- end
36
-
37
- # Public: Set continuation tokens for this collection
38
- def continuation_token(next_partition_key, next_row_key)
39
- @next_partition_key = next_partition_key
40
- @next_row_key = next_row_key
41
- end
42
-
43
- # Public: Indicates if the collection is a paginated result.
44
- # http://msdn.microsoft.com/en-us/library/windowsazure/dd135718
45
- #
46
- # Returs boolean.
47
- def paginated?
48
- @next_partition_key ? true : false
49
- end
50
-
51
- # Public: Returns continuation results if exists.
52
- #
53
- # Returns an instance of Azure::Tables::EntitiesCollection
54
- def next
55
- return nil if !paginated?
56
-
57
- query = @query.merge({
58
- "NextPartitionKey" => @next_partition_key,
59
- "NextRowKey" => @next_row_key
60
- })
61
-
62
- @service.query_entities(@table, query)
63
- end
64
- end
65
- end
66
- end
@@ -1,127 +0,0 @@
1
- require "azure/tables/types"
2
- require "azure/tables"
3
- require "azure/error"
4
-
5
- module Azure
6
- module Tables
7
- # Public: Representation of a table Entity.
8
- class Entity
9
- # ETag to force updates/deletes.
10
- FORCE_UPDATE = "*".freeze
11
-
12
- include Azure::ErrorHandler
13
-
14
- # Public: Returns an Entity from an Atom::Entry object.
15
- #
16
- # entry - Atom::Entry object representing the Entity.
17
- #
18
- # Returns Azure::Entity
19
- def self.from_entry(entry)
20
- entity = new
21
-
22
- entity.url = URI(entry.id)
23
-
24
- entry.content.m_properties.each do |property_node|
25
- value = Types.cast(
26
- property_node.content,
27
- property_node.attributes["type"]
28
- )
29
-
30
- entity[property_node.name] = value
31
- end
32
-
33
- entity
34
- end
35
-
36
- # Public: Get/Set this entity's URL.
37
- attr_accessor :url
38
-
39
- # Public: Get/Set this entity's ETag for conditional updates.
40
- attr_accessor :etag
41
-
42
- # Public: Get the attributes.
43
- attr :attributes
44
-
45
- # Public: Initialize an Entity.
46
- #
47
- # attributes - A Hash of attributes.
48
- #
49
- # Yields self.
50
- def initialize(attributes={}, service=Azure::Tables)
51
- @attributes = attributes
52
- @service = service
53
- self.etag = FORCE_UPDATE
54
- yield self if block_given?
55
- end
56
-
57
- # Public: Two entities are considered equal if they both have the same
58
- # URI.
59
- #
60
- # other - An Entity.
61
- #
62
- # Returns true|false.
63
- def ==(other)
64
- url == other.url
65
- end
66
-
67
- # Public: Reset this entity to clone another's properties. This will copy
68
- # everything from the other entity into this one.
69
- #
70
- # other - An entity.
71
- #
72
- # Returns self.
73
- def reset(other)
74
- self.url = other.url
75
- self.attributes.replace(other.attributes)
76
- self
77
- end
78
-
79
- # Public: Replace an entity with a new set of attributes. In case of an
80
- # error, self.error will be set.
81
- #
82
- # attributes - A Hash of attributes.
83
- #
84
- # Returns true|false to indicate success.
85
- def update(attributes)
86
- @service.update_entity(self, attributes)
87
- end
88
-
89
- # Public: Merge new attributes into our set of attributes. In case of an
90
- # error, self.error will be set.
91
- #
92
- # attributes - A Hash of attributes.
93
- #
94
- # Returns true|false to indicate success.
95
- def merge(attributes)
96
- @service.merge_entity(self, attributes)
97
- end
98
-
99
- # Public: Delete this entity from the service. In case of an error,
100
- # self.error will be set.
101
- #
102
- # Returns true|false to indicate success.
103
- def delete
104
- @service.delete_entity(self)
105
- end
106
-
107
- # Public: Access a property on this entity.
108
- #
109
- # name - The property name.
110
- #
111
- # Returns the property value.
112
- def [](name)
113
- @attributes[name]
114
- end
115
-
116
- # Public: Set a property on this entity.
117
- #
118
- # name - The property name.
119
- # value - The value for this property.
120
- #
121
- # Returns the property value.
122
- def []=(name, value)
123
- @attributes[name] = value
124
- end
125
- end
126
- end
127
- end