fog-azure-rm 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +2 -1
  4. data/fog-azure-rm.gemspec +11 -9
  5. data/lib/fog/azurerm.rb +1 -0
  6. data/lib/fog/azurerm/compute.rb +3 -3
  7. data/lib/fog/azurerm/config.rb +33 -0
  8. data/lib/fog/azurerm/credentials.rb +1 -1
  9. data/lib/fog/azurerm/dns.rb +2 -2
  10. data/lib/fog/azurerm/docs/storage.md +120 -66
  11. data/lib/fog/azurerm/models/application_gateway/gateway.rb +30 -31
  12. data/lib/fog/azurerm/models/application_gateway/gateways.rb +4 -4
  13. data/lib/fog/azurerm/models/compute/availability_sets.rb +4 -4
  14. data/lib/fog/azurerm/models/compute/server.rb +14 -14
  15. data/lib/fog/azurerm/models/compute/servers.rb +4 -4
  16. data/lib/fog/azurerm/models/compute/virtual_machine_extension.rb +3 -5
  17. data/lib/fog/azurerm/models/compute/virtual_machine_extensions.rb +5 -5
  18. data/lib/fog/azurerm/models/dns/record_sets.rb +4 -4
  19. data/lib/fog/azurerm/models/dns/zones.rb +4 -4
  20. data/lib/fog/azurerm/models/network/express_route_circuit.rb +2 -5
  21. data/lib/fog/azurerm/models/network/express_route_circuit_authorization.rb +1 -1
  22. data/lib/fog/azurerm/models/network/express_route_circuit_authorizations.rb +4 -4
  23. data/lib/fog/azurerm/models/network/express_route_circuit_peering.rb +3 -5
  24. data/lib/fog/azurerm/models/network/express_route_circuit_peerings.rb +4 -4
  25. data/lib/fog/azurerm/models/network/express_route_circuits.rb +4 -4
  26. data/lib/fog/azurerm/models/network/express_route_service_providers.rb +2 -2
  27. data/lib/fog/azurerm/models/network/load_balancers.rb +5 -5
  28. data/lib/fog/azurerm/models/network/local_network_gateway.rb +1 -1
  29. data/lib/fog/azurerm/models/network/local_network_gateways.rb +4 -4
  30. data/lib/fog/azurerm/models/network/network_interfaces.rb +5 -5
  31. data/lib/fog/azurerm/models/network/network_security_groups.rb +5 -5
  32. data/lib/fog/azurerm/models/network/network_security_rule.rb +3 -4
  33. data/lib/fog/azurerm/models/network/network_security_rules.rb +4 -4
  34. data/lib/fog/azurerm/models/network/public_ips.rb +4 -4
  35. data/lib/fog/azurerm/models/network/subnets.rb +4 -4
  36. data/lib/fog/azurerm/models/network/virtual_network_gateway.rb +6 -7
  37. data/lib/fog/azurerm/models/network/virtual_network_gateway_connection.rb +5 -5
  38. data/lib/fog/azurerm/models/network/virtual_network_gateway_connections.rb +4 -4
  39. data/lib/fog/azurerm/models/network/virtual_network_gateways.rb +4 -4
  40. data/lib/fog/azurerm/models/network/virtual_networks.rb +4 -4
  41. data/lib/fog/azurerm/models/resources/azure_resources.rb +2 -2
  42. data/lib/fog/azurerm/models/resources/deployments.rb +4 -4
  43. data/lib/fog/azurerm/models/resources/resource_groups.rb +4 -4
  44. data/lib/fog/azurerm/models/sql/firewall_rule.rb +1 -1
  45. data/lib/fog/azurerm/models/sql/firewall_rules.rb +4 -4
  46. data/lib/fog/azurerm/models/sql/sql_database.rb +28 -24
  47. data/lib/fog/azurerm/models/sql/sql_databases.rb +5 -6
  48. data/lib/fog/azurerm/models/sql/sql_servers.rb +4 -4
  49. data/lib/fog/azurerm/models/storage/directories.rb +49 -24
  50. data/lib/fog/azurerm/models/storage/directory.rb +126 -40
  51. data/lib/fog/azurerm/models/storage/file.rb +226 -114
  52. data/lib/fog/azurerm/models/storage/files.rb +168 -13
  53. data/lib/fog/azurerm/models/storage/recovery_vault.rb +1 -1
  54. data/lib/fog/azurerm/models/storage/recovery_vaults.rb +4 -4
  55. data/lib/fog/azurerm/models/storage/storage_account.rb +5 -5
  56. data/lib/fog/azurerm/models/storage/storage_accounts.rb +4 -4
  57. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_point.rb +1 -1
  58. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_points.rb +4 -4
  59. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +4 -4
  60. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profiles.rb +4 -4
  61. data/lib/fog/azurerm/network.rb +1 -1
  62. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +17 -13
  63. data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +1 -1
  64. data/lib/fog/azurerm/requests/resources/create_deployment.rb +1 -1
  65. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +1 -1
  66. data/lib/fog/azurerm/requests/resources/delete_deployment.rb +1 -1
  67. data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +1 -1
  68. data/lib/fog/azurerm/requests/resources/get_deployment.rb +1 -1
  69. data/lib/fog/azurerm/requests/resources/get_resource_group.rb +1 -1
  70. data/lib/fog/azurerm/requests/resources/list_deployments.rb +1 -1
  71. data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +1 -1
  72. data/lib/fog/azurerm/requests/resources/list_tagged_resources.rb +1 -1
  73. data/lib/fog/azurerm/requests/resources/tag_resource.rb +1 -1
  74. data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +3 -3
  75. data/lib/fog/azurerm/requests/sql/create_or_update_firewall_rule.rb +3 -3
  76. data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +3 -3
  77. data/lib/fog/azurerm/requests/sql/delete_database.rb +2 -2
  78. data/lib/fog/azurerm/requests/sql/delete_firewall_rule.rb +4 -4
  79. data/lib/fog/azurerm/requests/sql/delete_sql_server.rb +4 -4
  80. data/lib/fog/azurerm/requests/sql/get_database.rb +3 -3
  81. data/lib/fog/azurerm/requests/sql/get_firewall_rule.rb +3 -3
  82. data/lib/fog/azurerm/requests/sql/get_sql_server.rb +3 -3
  83. data/lib/fog/azurerm/requests/sql/list_databases.rb +3 -3
  84. data/lib/fog/azurerm/requests/sql/list_firewall_rules.rb +3 -3
  85. data/lib/fog/azurerm/requests/sql/list_sql_servers.rb +3 -3
  86. data/lib/fog/azurerm/requests/storage/acquire_blob_lease.rb +5 -2
  87. data/lib/fog/azurerm/requests/storage/acquire_container_lease.rb +5 -2
  88. data/lib/fog/azurerm/requests/storage/commit_blob_blocks.rb +30 -0
  89. data/lib/fog/azurerm/requests/storage/compare_container_blobs.rb +148 -0
  90. data/lib/fog/azurerm/requests/storage/copy_blob.rb +8 -8
  91. data/lib/fog/azurerm/requests/storage/copy_blob_from_uri.rb +8 -8
  92. data/lib/fog/azurerm/requests/storage/create_block_blob.rb +108 -0
  93. data/lib/fog/azurerm/requests/storage/create_container.rb +12 -10
  94. data/lib/fog/azurerm/requests/storage/create_disk.rb +45 -19
  95. data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +2 -2
  96. data/lib/fog/azurerm/requests/storage/create_page_blob.rb +31 -0
  97. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +2 -2
  98. data/lib/fog/azurerm/requests/storage/delete_blob.rb +10 -5
  99. data/lib/fog/azurerm/requests/storage/delete_container.rb +6 -2
  100. data/lib/fog/azurerm/requests/storage/delete_disk.rb +19 -16
  101. data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +2 -2
  102. data/lib/fog/azurerm/requests/storage/get_backup_container.rb +2 -2
  103. data/lib/fog/azurerm/requests/storage/get_backup_item.rb +2 -2
  104. data/lib/fog/azurerm/requests/storage/get_backup_job_for_vm.rb +1 -1
  105. data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +2 -2
  106. data/lib/fog/azurerm/requests/storage/get_blob.rb +163 -0
  107. data/lib/fog/azurerm/requests/storage/get_blob_http_url.rb +39 -0
  108. data/lib/fog/azurerm/requests/storage/get_blob_https_url.rb +39 -0
  109. data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +37 -35
  110. data/lib/fog/azurerm/requests/storage/get_blob_url.rb +28 -0
  111. data/lib/fog/azurerm/requests/storage/get_container_acl.rb +30 -0
  112. data/lib/fog/azurerm/requests/storage/get_container_properties.rb +16 -12
  113. data/lib/fog/azurerm/requests/storage/get_container_url.rb +34 -0
  114. data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +2 -2
  115. data/lib/fog/azurerm/requests/storage/get_storage_access_keys.rb +4 -3
  116. data/lib/fog/azurerm/requests/storage/get_storage_account.rb +2 -2
  117. data/lib/fog/azurerm/requests/storage/list_blobs.rb +110 -24
  118. data/lib/fog/azurerm/requests/storage/list_containers.rb +46 -23
  119. data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +2 -2
  120. data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +2 -2
  121. data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +2 -2
  122. data/lib/fog/azurerm/requests/storage/multipart_save_block_blob.rb +110 -0
  123. data/lib/fog/azurerm/requests/storage/put_blob_block.rb +30 -0
  124. data/lib/fog/azurerm/requests/storage/{set_blob_metadata.rb → put_blob_metadata.rb} +7 -3
  125. data/lib/fog/azurerm/requests/storage/put_blob_pages.rb +30 -0
  126. data/lib/fog/azurerm/requests/storage/put_blob_properties.rb +31 -0
  127. data/lib/fog/azurerm/requests/storage/put_container_acl.rb +31 -0
  128. data/lib/fog/azurerm/requests/storage/{set_container_metadata.rb → put_container_metadata.rb} +7 -3
  129. data/lib/fog/azurerm/requests/storage/release_blob_lease.rb +4 -1
  130. data/lib/fog/azurerm/requests/storage/release_container_lease.rb +4 -1
  131. data/lib/fog/azurerm/requests/storage/save_page_blob.rb +111 -0
  132. data/lib/fog/azurerm/requests/storage/start_backup.rb +1 -1
  133. data/lib/fog/azurerm/requests/storage/wait_blob_copy_operation_to_finish.rb +56 -0
  134. data/lib/fog/azurerm/resources.rb +2 -2
  135. data/lib/fog/azurerm/storage.rb +33 -19
  136. data/lib/fog/azurerm/traffic_manager.rb +1 -1
  137. data/lib/fog/azurerm/utilities/general.rb +70 -3
  138. data/lib/fog/azurerm/version.rb +1 -1
  139. data/rake-script.sh +5 -2
  140. data/test/api_stub/models/application_gateway/gateway.rb +1 -1
  141. data/test/api_stub/models/compute/server.rb +1 -1
  142. data/test/api_stub/models/dns/record_set.rb +2 -2
  143. data/test/api_stub/models/dns/zone.rb +1 -1
  144. data/test/api_stub/models/network/express_route_circuit.rb +1 -1
  145. data/test/api_stub/models/network/express_route_circuit_authorization.rb +1 -1
  146. data/test/api_stub/models/network/express_route_circuit_peering.rb +1 -1
  147. data/test/api_stub/models/network/express_route_service_provider.rb +1 -1
  148. data/test/api_stub/models/network/load_balancer.rb +1 -1
  149. data/test/api_stub/models/network/network_interface.rb +1 -1
  150. data/test/api_stub/models/network/network_security_group.rb +1 -1
  151. data/test/api_stub/models/network/network_security_rule.rb +1 -1
  152. data/test/api_stub/models/network/public_ip.rb +1 -1
  153. data/test/api_stub/models/network/subnet.rb +1 -1
  154. data/test/api_stub/models/network/virtual_network.rb +1 -1
  155. data/test/api_stub/models/network/virtual_network_gateway.rb +1 -1
  156. data/test/api_stub/models/network/virtual_network_gateway_connection.rb +1 -1
  157. data/test/api_stub/models/resources/resource.rb +2 -2
  158. data/test/api_stub/models/resources/resource_group.rb +1 -1
  159. data/test/api_stub/models/storage/directory.rb +148 -62
  160. data/test/api_stub/models/storage/file.rb +122 -119
  161. data/test/api_stub/models/traffic_manager/traffic_manager_end_point.rb +1 -1
  162. data/test/api_stub/models/traffic_manager/traffic_manager_profile.rb +1 -1
  163. data/test/api_stub/requests/application_gateway/gateway.rb +2 -2
  164. data/test/api_stub/requests/compute/availability_set.rb +3 -3
  165. data/test/api_stub/requests/compute/virtual_machine.rb +9 -9
  166. data/test/api_stub/requests/dns/record_set.rb +3 -3
  167. data/test/api_stub/requests/dns/zone.rb +18 -18
  168. data/test/api_stub/requests/network/express_route_circuit.rb +2 -2
  169. data/test/api_stub/requests/network/express_route_circuit_authorization.rb +1 -1
  170. data/test/api_stub/requests/network/express_route_circuit_peering.rb +2 -2
  171. data/test/api_stub/requests/network/express_route_service_provider.rb +1 -1
  172. data/test/api_stub/requests/network/load_balancer.rb +2 -2
  173. data/test/api_stub/requests/network/network_interface.rb +4 -4
  174. data/test/api_stub/requests/network/network_security_group.rb +3 -3
  175. data/test/api_stub/requests/network/network_security_rule.rb +2 -2
  176. data/test/api_stub/requests/network/public_ip.rb +2 -2
  177. data/test/api_stub/requests/network/subnet.rb +2 -2
  178. data/test/api_stub/requests/network/virtual_network.rb +2 -2
  179. data/test/api_stub/requests/network/virtual_network_gateway.rb +2 -2
  180. data/test/api_stub/requests/network/virtual_network_gateway_connection.rb +3 -3
  181. data/test/api_stub/requests/resources/resource.rb +2 -2
  182. data/test/api_stub/requests/resources/resource_group.rb +2 -2
  183. data/test/api_stub/requests/storage/directory.rb +59 -65
  184. data/test/api_stub/requests/storage/file.rb +183 -113
  185. data/test/api_stub/requests/storage/storageaccount.rb +1 -1
  186. data/test/api_stub/requests/traffic_manager/traffic_manager_endpoint.rb +1 -1
  187. data/test/api_stub/requests/traffic_manager/traffic_manager_profile.rb +2 -2
  188. data/test/integration/Virtual_network_gateway_connection.rb +189 -182
  189. data/test/integration/application_gateway.rb +208 -183
  190. data/test/integration/availability_set.rb +44 -27
  191. data/test/integration/blob.rb +293 -169
  192. data/test/integration/container.rb +93 -42
  193. data/test/integration/data_disk.rb +57 -46
  194. data/test/integration/deployment.rb +40 -32
  195. data/test/integration/express_route_circuit.rb +86 -82
  196. data/test/integration/external_load_balancer.rb +108 -100
  197. data/test/integration/internal_load_balancer.rb +115 -106
  198. data/test/integration/local_network_gateway.rb +46 -39
  199. data/test/integration/network_interface.rb +119 -107
  200. data/test/integration/network_security_group.rb +86 -74
  201. data/test/integration/network_security_rule.rb +65 -57
  202. data/test/integration/public_ip.rb +50 -42
  203. data/test/integration/record_set.rb +90 -78
  204. data/test/integration/resource_group.rb +26 -14
  205. data/test/integration/resource_tag.rb +56 -45
  206. data/test/integration/server.rb +152 -135
  207. data/test/integration/server_custom_image.rb +85 -76
  208. data/test/integration/sql_server.rb +130 -117
  209. data/test/integration/storage_account.rb +82 -70
  210. data/test/integration/subnet.rb +87 -74
  211. data/test/integration/traffic_manager.rb +86 -74
  212. data/test/integration/virtual_machine_extension.rb +115 -106
  213. data/test/integration/virtual_network.rb +121 -100
  214. data/test/integration/virtual_network_gateway.rb +86 -79
  215. data/test/integration/virtual_network_gateway_connection_to_express_route.rb +94 -87
  216. data/test/integration/zone.rb +36 -28
  217. data/test/models/storage/test_directories.rb +26 -71
  218. data/test/models/storage/test_directory.rb +111 -58
  219. data/test/models/storage/test_file.rb +179 -143
  220. data/test/models/storage/test_files.rb +197 -30
  221. data/test/models/storage/test_storage_account.rb +1 -1
  222. data/test/requests/compute/test_attach_data_disk_to_vm.rb +15 -17
  223. data/test/requests/storage/test_acquire_blob_lease.rb +23 -4
  224. data/test/requests/storage/test_acquire_container_lease.rb +24 -5
  225. data/test/requests/storage/test_commit_blob_blocks.rb +34 -0
  226. data/test/requests/storage/test_compare_container_blobs.rb +36 -0
  227. data/test/requests/storage/test_copy_blob.rb +22 -3
  228. data/test/requests/storage/test_copy_blob_from_uri.rb +23 -4
  229. data/test/requests/storage/test_create_block_blob.rb +80 -0
  230. data/test/requests/storage/test_create_container.rb +18 -13
  231. data/test/requests/storage/test_create_disk.rb +57 -4
  232. data/test/requests/storage/test_create_page_blob.rb +34 -0
  233. data/test/requests/storage/test_delete_blob.rb +25 -5
  234. data/test/requests/storage/test_delete_container.rb +21 -9
  235. data/test/requests/storage/test_delete_disk.rb +14 -7
  236. data/test/requests/storage/test_get_blob.rb +141 -0
  237. data/test/requests/storage/test_get_blob_http_url.rb +30 -0
  238. data/test/requests/storage/test_get_blob_https_url.rb +30 -0
  239. data/test/requests/storage/test_get_blob_properties.rb +29 -7
  240. data/test/requests/storage/test_get_blob_url.rb +33 -0
  241. data/test/requests/storage/test_get_container_acl.rb +37 -0
  242. data/test/requests/storage/test_get_container_properties.rb +25 -11
  243. data/test/requests/storage/test_get_container_url.rb +33 -0
  244. data/test/requests/storage/test_list_blobs.rb +77 -0
  245. data/test/requests/storage/test_list_containers.rb +38 -7
  246. data/test/requests/storage/test_multipart_save_block_blob.rb +105 -0
  247. data/test/requests/storage/test_put_blob_block.rb +34 -0
  248. data/test/requests/storage/test_put_blob_metadata.rb +36 -0
  249. data/test/requests/storage/test_put_blob_pages.rb +34 -0
  250. data/test/requests/storage/test_put_blob_properties.rb +39 -0
  251. data/test/requests/storage/test_put_container_acl.rb +34 -0
  252. data/test/requests/storage/test_put_container_metadata.rb +36 -0
  253. data/test/requests/storage/test_release_blob_lease.rb +20 -2
  254. data/test/requests/storage/test_release_container_lease.rb +21 -3
  255. data/test/requests/storage/test_save_page_blob.rb +115 -0
  256. data/test/requests/storage/test_wait_blob_copy_operation_to_finish.rb +148 -0
  257. data/test/test_helper.rb +34 -21
  258. metadata +92 -46
  259. data/lib/fog/azurerm/requests/storage/check_blob_exist.rb +0 -25
  260. data/lib/fog/azurerm/requests/storage/compare_blob.rb +0 -73
  261. data/lib/fog/azurerm/requests/storage/download_blob_to_file.rb +0 -56
  262. data/lib/fog/azurerm/requests/storage/get_blob_metadata.rb +0 -59
  263. data/lib/fog/azurerm/requests/storage/get_container_access_control_list.rb +0 -30
  264. data/lib/fog/azurerm/requests/storage/get_container_metadata.rb +0 -32
  265. data/lib/fog/azurerm/requests/storage/set_blob_properties.rb +0 -26
  266. data/lib/fog/azurerm/requests/storage/upload_block_blob_from_file.rb +0 -60
  267. data/test/requests/storage/test_check_blob_exist.rb +0 -17
  268. data/test/requests/storage/test_compare_blob.rb +0 -17
  269. data/test/requests/storage/test_download_blob_to_file.rb +0 -25
  270. data/test/requests/storage/test_get_blob_metadata.rb +0 -18
  271. data/test/requests/storage/test_get_container_access_control_list.rb +0 -31
  272. data/test/requests/storage/test_get_container_metadata.rb +0 -18
  273. data/test/requests/storage/test_list_blobs_in_container.rb +0 -23
  274. data/test/requests/storage/test_set_blob_metadata.rb +0 -17
  275. data/test/requests/storage/test_set_blob_properties.rb +0 -16
  276. data/test/requests/storage/test_set_container_metadata.rb +0 -17
  277. data/test/requests/storage/test_upload_block_blob_from_file.rb +0 -23
@@ -23,183 +23,307 @@ storage = Fog::Storage::AzureRM.new(
23
23
  )
24
24
 
25
25
  ########################################################################################################################
26
- ###################### Prerequisites ######################
27
- ########################################################################################################################
28
-
29
- resource_group = rs.resource_groups.create(
30
- name: 'TestRG-VM',
31
- location: 'eastus'
32
- )
33
-
34
- storage_account = storage.storage_accounts.create(
35
- name: 'storageaccounttestblob',
36
- location: 'eastus',
37
- resource_group: 'TestRG-VM'
38
- )
39
-
40
- access_key = storage_account.get_access_keys[0].value
41
- Fog::Logger.debug access_key.inspect
42
- storage_data = Fog::Storage.new(
43
- provider: 'AzureRM',
44
- azure_storage_account_name: storage_account.name,
45
- azure_storage_access_key: access_key
46
- )
47
-
48
- container_name = 'fogcontainertestblob'
49
- test_container_name = 'testcontainer'
50
-
51
- ########################################################################################################################
52
- ###################### Create Container ######################
53
- ########################################################################################################################
54
-
55
- storage_data.directories.create(
56
- key: container_name
57
- )
58
-
59
- storage_data.directories.create(
60
- key: test_container_name
61
- )
62
-
63
- ########################################################################################################################
64
- ###################### Get Container Properties ######################
65
- ########################################################################################################################
66
-
67
- container = storage_data.directories.get(container_name)
68
- container.get_properties
69
-
70
- ########################################################################################################################
71
- ###################### Get container access control List ######################
26
+ ###################### Resource names #####################
72
27
  ########################################################################################################################
73
28
 
74
- container.access_control_list
29
+ time = current_time
30
+ resource_group_name = "Blob-RG-#{time}"
31
+ storage_account_name = "sa#{time}"
32
+ container_name = "con#{time}"
33
+ test_container_name = "tcon#{time}"
75
34
 
76
35
  ########################################################################################################################
77
- ###################### Create a small blob ######################
78
- ########################################################################################################################
79
-
80
- small_file_name = 'small_test_file.dat'
81
- small_blob_name = small_file_name
82
- content = Array.new(1024 * 1024) { [*'0'..'9', *'a'..'z'].sample }.join
83
- small_file = File.new(small_file_name, 'w')
84
- small_file.puts(content)
85
- small_file.close
86
-
87
- storage_data.files.get(container_name, small_blob_name).create(file_path: small_file_name)
88
-
89
- File.delete(small_file_name)
90
-
91
- ########################################################################################################################
92
- ###################### Create a large blob ######################
93
- ########################################################################################################################
94
-
95
- large_file_name = 'large_test_file.dat'
96
- large_blob_name = large_file_name
97
- large_file = File.new(large_file_name, 'w')
98
- 33.times do
99
- large_file.puts(content)
100
- end
101
- large_file.close
102
-
103
- storage_data.files.get(container_name, large_blob_name).create(file_path: large_file_name)
104
-
105
- File.delete(large_file_name)
106
-
107
- ########################################################################################################################
108
- ###################### Copy Blob ########################
36
+ ###################### Prerequisites ######################
109
37
  ########################################################################################################################
110
38
 
111
- Fog::Logger.debug storage_data.copy_blob(test_container_name, small_blob_name, container_name, small_blob_name)
39
+ begin
40
+ resource_group = rs.resource_groups.create(
41
+ name: resource_group_name,
42
+ location: LOCATION
43
+ )
44
+
45
+ storage_account = storage.storage_accounts.create(
46
+ name: storage_account_name,
47
+ location: LOCATION,
48
+ resource_group: resource_group_name
49
+ )
50
+
51
+ access_key = storage_account.get_access_keys[0].value
52
+ Fog::Logger.debug access_key.inspect
53
+ storage_data = Fog::Storage.new(
54
+ provider: 'AzureRM',
55
+ azure_storage_account_name: storage_account.name,
56
+ azure_storage_access_key: access_key
57
+ )
58
+
59
+ ########################################################################################################################
60
+ ###################### Create Container ######################
61
+ ########################################################################################################################
62
+
63
+ storage_data.directories.create(
64
+ key: container_name,
65
+ public: true
66
+ )
67
+
68
+ storage_data.directories.create(
69
+ key: test_container_name,
70
+ public: false
71
+ )
72
+
73
+ ########################################################################################################################
74
+ ###################### Get container ######################
75
+ ########################################################################################################################
76
+
77
+ container = storage_data.directories.get(container_name)
78
+ test_container = storage_data.directories.get(test_container_name)
79
+
80
+ ########################################################################################################################
81
+ ###################### Create a small block blob ######################
82
+ ########################################################################################################################
83
+
84
+ small_blob_name = 'small_test_file.dat'
85
+ content = Array.new(1024 * 1024) { [*'0'..'9', *'a'..'z'].sample }.join
86
+
87
+ options = {
88
+ key: small_blob_name,
89
+ body: content
90
+ }
91
+ blob = container.files.create(options)
92
+ puts "Created small block blob: #{blob.key}"
93
+
94
+ ########################################################################################################################
95
+ ###################### Create a large block blob ######################
96
+ ########################################################################################################################
97
+
98
+ large_blob_name = 'large_test_file.dat'
99
+ begin
100
+ large_blob_file_name = '/tmp/large_test_file.dat'
101
+ File.open(large_blob_file_name, 'w') do |large_file|
102
+ 33.times do
103
+ large_file.puts(content)
104
+ end
105
+ end
106
+
107
+ File.open(large_blob_file_name) do |file|
108
+ options = {
109
+ key: large_blob_name,
110
+ body: file
111
+ }
112
+ blob = container.files.create(options)
113
+ puts "Created large block blob: #{blob.key}"
114
+ end
115
+ ensure
116
+ File.delete(large_blob_file_name) if File.exist?(large_blob_file_name)
117
+ end
118
+
119
+ ########################################################################################################################
120
+ ###################### Create a small page blob ######################
121
+ ########################################################################################################################
122
+
123
+ small_page_blob_name = 'small_test_file.vhd'
124
+ content = Array.new(1024 * 1024 + 512) { [*'0'..'9', *'a'..'z'].sample }.join
125
+
126
+ options = {
127
+ key: small_page_blob_name,
128
+ body: content,
129
+ blob_type: 'PageBlob'
130
+ }
131
+ blob = container.files.create(options)
132
+ puts "Created small page blob: #{blob.key}"
133
+
134
+ ########################################################################################################################
135
+ ###################### Create a large page blob ######################
136
+ ########################################################################################################################
137
+
138
+ begin
139
+ large_page_blob_file_name = '/tmp/large_test_file.vhd'
140
+ large_page_blob_name = 'large_test_file.vhd'
141
+ File.open(large_page_blob_file_name, 'w') do |large_file|
142
+ content = Array.new(1024 * 1024) { [*'0'..'9', *'a'..'z'].sample }.join
143
+ 33.times do
144
+ large_file.puts(content)
145
+ end
146
+ content = Array.new(512) { [*'0'..'9', *'a'..'z'].sample }.join
147
+ large_file.puts(content)
148
+ large_file.truncate(33 * 1024 * 1024 + 512)
149
+ end
150
+
151
+ File.open(large_page_blob_file_name) do |file|
152
+ options = {
153
+ key: large_page_blob_name,
154
+ body: file,
155
+ blob_type: 'PageBlob'
156
+ }
157
+ blob = container.files.create(options)
158
+ puts "Created large page blob: #{blob.key}"
159
+ end
160
+ ensure
161
+ File.delete(large_page_blob_file_name) if File.exist?(large_page_blob_file_name)
162
+ end
163
+
164
+ ########################################################################################################################
165
+ ###################### Blob Exist #####################
166
+ ########################################################################################################################
167
+
168
+ puts 'Blob exist' if container.files.head(small_blob_name)
169
+
170
+ ########################################################################################################################
171
+ ###################### Copy Blob ########################
172
+ ########################################################################################################################
173
+
174
+ puts "Copy blob: #{container.files.head(small_blob_name).copy(test_container_name, small_blob_name)}"
175
+
176
+ ########################################################################################################################
177
+ ###################### Get a public URL ######################
178
+ ########################################################################################################################
179
+
180
+ blob_uri = container.files.head(large_blob_name).public_url
181
+ puts "Get blob public uri: #{blob_uri}"
182
+
183
+ ########################################################################################################################
184
+ ###################### Copy Blob from URI ########################
185
+ ########################################################################################################################
186
+
187
+ copied_blob = test_container.files.new(key: 'small_blob_name')
188
+ puts "Copy blob from uri: #{copied_blob.copy_from_uri(blob_uri)}"
189
+
190
+ ########################################################################################################################
191
+ ###################### Update blob ######################
192
+ ########################################################################################################################
193
+
194
+ copied_blob.content_encoding = 'utf-8'
195
+ copied_blob.metadata = { 'owner' => 'azure' }
196
+ copied_blob.save(update_body: false)
197
+
198
+ temp = test_container.files.head(small_blob_name)
199
+ puts 'Updated blob'
200
+ Fog::Logger.debug temp.content_encoding
201
+ Fog::Logger.debug temp.metadata
202
+
203
+ ########################################################################################################################
204
+ ###################### Compare Blob #####################
205
+ ########################################################################################################################
206
+
207
+ puts "Compare blobs: #{storage_data.compare_container_blobs(container_name, test_container_name)}"
208
+
209
+ ########################################################################################################################
210
+ ###################### Blob Exist #####################
211
+ ########################################################################################################################
212
+
213
+ puts 'Blob exist' if container.files.head(small_blob_name)
214
+
215
+ ########################################################################################################################
216
+ ###################### Blob Count in a Container #####################
217
+ ########################################################################################################################
218
+
219
+ puts "Blob count in a container: #{container.files.all.length}"
220
+
221
+ ########################################################################################################################
222
+ ###################### List Blobs in a Container #####################
223
+ ########################################################################################################################
224
+
225
+ puts 'List blobs in a container:'
226
+ container.files.each do |temp_file|
227
+ puts temp_file.key
228
+ end
229
+
230
+ ########################################################################################################################
231
+ ###################### Downlaod a small blob ######################
232
+ ########################################################################################################################
233
+
234
+ begin
235
+ downloaded_file_name = '/tmp/downloaded_' + small_blob_name
236
+ blob = container.files.get(small_blob_name)
237
+ File.open(downloaded_file_name, 'wb') do |file|
238
+ file.write(blob.body)
239
+ end
240
+ puts 'Downloaded small blob'
241
+ ensure
242
+ File.delete(downloaded_file_name) if File.exist?(downloaded_file_name)
243
+ end
244
+
245
+ ########################################################################################################################
246
+ ###################### Downlaod a large blob ######################
247
+ ########################################################################################################################
248
+
249
+ begin
250
+ downloaded_file_name = '/tmp/downloaded_' + large_blob_name
251
+ File.open(downloaded_file_name, 'wb') do |file|
252
+ container.files.get(large_blob_name) do |chunk, remaining_bytes, total_bytes|
253
+ Fog::Logger.debug "remaining_bytes: #{remaining_bytes}, total_bytes: #{total_bytes}"
254
+ file.write(chunk)
255
+ end
256
+ end
257
+ puts 'Downloaded large blob'
258
+ ensure
259
+ File.delete(downloaded_file_name) if File.exist?(downloaded_file_name)
260
+ end
112
261
 
113
- ########################################################################################################################
114
- ###################### Copy Blob from URI ########################
115
- ########################################################################################################################
116
- blob_uri = "http://storageaccounttestblob.blob.core.windows.net/#{container_name}/#{large_file_name}"
117
- Fog::Logger.debug storage_data.copy_blob_from_uri(test_container_name, 'small_blob_name', blob_uri)
262
+ ########################################################################################################################
263
+ ###################### Get a https URL with expires ######################
264
+ ########################################################################################################################
118
265
 
119
- ########################################################################################################################
120
- ###################### Compare Blob #####################
121
- ########################################################################################################################
266
+ test_blob = test_container.files.head(small_blob_name)
267
+ puts "Get https URL with expires: #{test_blob.public?}, #{test_blob.url(Time.now + 3600)}"
268
+ Fog::Logger.debug test_blob.public?
269
+ Fog::Logger.debug test_blob.url(Time.now + 3600)
122
270
 
123
- Fog::Logger.debug storage_data.compare_blob(container_name, test_container_name)
271
+ ########################################################################################################################
272
+ ###################### Get a http URL with expires ######################
273
+ ########################################################################################################################
124
274
 
125
- ########################################################################################################################
126
- ###################### Blob Exist #####################
127
- ########################################################################################################################
128
-
129
- blob = storage_data.check_blob_exist(container_name, small_blob_name)
130
- if blob
131
- Fog::Logger.debug 'Blob exist'
275
+ puts "Get a http URL with expires: #{test_blob.url(Time.now + 3600, scheme: 'http')}"
276
+
277
+ ########################################################################################################################
278
+ ###################### Lease Blob ######################
279
+ ########################################################################################################################
280
+
281
+ lease_id_blob = storage_data.acquire_blob_lease(container_name, large_blob_name)
282
+ puts 'Leased blob'
283
+
284
+ ########################################################################################################################
285
+ ###################### Release Leased Blob ######################
286
+ ########################################################################################################################
287
+
288
+ storage_data.release_blob_lease(container_name, large_blob_name, lease_id_blob)
289
+ puts 'Release Leased Blob'
290
+
291
+ ########################################################################################################################
292
+ ###################### Delete Blob ######################
293
+ ########################################################################################################################
294
+
295
+ blob = container.files.head(large_blob_name)
296
+ puts "Deleted blob: #{blob.destroy}"
297
+
298
+ ########################################################################################################################
299
+ ###################### Lease Container ######################
300
+ ########################################################################################################################
301
+
302
+ lease_id_container = storage_data.acquire_container_lease(container_name)
303
+ Fog::Logger.debug lease_id_container
304
+ puts 'Leased Container'
305
+
306
+ ########################################################################################################################
307
+ ###################### Release Leased Container ######################
308
+ ########################################################################################################################
309
+
310
+ storage_data.release_container_lease(container_name, lease_id_container)
311
+ puts 'Release Leased Container'
312
+
313
+ ########################################################################################################################
314
+ ###################### Delete Container ######################
315
+ ########################################################################################################################
316
+
317
+ puts "Deleted container: #{container.destroy}"
318
+
319
+ ########################################################################################################################
320
+ ###################### CleanUp ######################
321
+ ########################################################################################################################
322
+
323
+ storage_account.destroy
324
+
325
+ resource_group.destroy
326
+ rescue
327
+ puts 'Integration Test for blob is failing'
328
+ resource_group.destroy unless resource_group.nil?
132
329
  end
133
-
134
- ########################################################################################################################
135
- ###################### Blob Count in a Container #####################
136
- ########################################################################################################################
137
-
138
- Fog::Logger.debug storage_data.list_blobs(container_name).length
139
-
140
- ########################################################################################################################
141
- ###################### Set blob properties ######################
142
- ########################################################################################################################
143
-
144
- storage_data.files.get(container_name, large_blob_name).set_properties(content_encoding: 'utf-8')
145
-
146
- ########################################################################################################################
147
- ###################### Get blob properties ######################
148
- ########################################################################################################################
149
-
150
- storage_data.files.get(container_name, large_blob_name).get_properties
151
-
152
- ########################################################################################################################
153
- ###################### Downlaod blob ######################
154
- ########################################################################################################################
155
-
156
- downloaded_file_name = 'downloaded_' + small_blob_name
157
- storage_data.files.get(container_name, large_blob_name).save_to_file(downloaded_file_name)
158
- File.delete(downloaded_file_name)
159
-
160
- ########################################################################################################################
161
- ###################### Lease Blob ######################
162
- ########################################################################################################################
163
-
164
- lease_id_blob = storage_data.acquire_blob_lease(container_name, large_blob_name)
165
- Fog::Logger.debug lease_id_blob
166
-
167
- ########################################################################################################################
168
- ###################### Release Leased Blob ######################
169
- ########################################################################################################################
170
-
171
- storage_data.release_blob_lease(container_name, large_blob_name, lease_id_blob)
172
-
173
- ########################################################################################################################
174
- ###################### Delete Blob ######################
175
- ########################################################################################################################
176
-
177
- blob_object = storage_data.files.get(container_name, large_blob_name).get_properties
178
- blob_object.destroy
179
-
180
- ########################################################################################################################
181
- ###################### Lease Container ######################
182
- ########################################################################################################################
183
-
184
- lease_id_container = storage_data.acquire_container_lease(container_name)
185
- Fog::Logger.debug lease_id_container
186
-
187
- ########################################################################################################################
188
- ###################### Release Leased Container ######################
189
- ########################################################################################################################
190
-
191
- storage_data.release_container_lease(container_name, lease_id_container)
192
-
193
- ########################################################################################################################
194
- ###################### Delete Container ######################
195
- ########################################################################################################################
196
-
197
- container.destroy
198
-
199
- ########################################################################################################################
200
- ###################### CleanUp ######################
201
- ########################################################################################################################
202
-
203
- storage_account.destroy
204
-
205
- resource_group.destroy