test/integration/blob.rb in gitlab-fog-azure-rm-1.8.0 vs test/integration/blob.rb in gitlab-fog-azure-rm-1.9.0

- old
+ new

@@ -6,70 +6,42 @@ ###################### Keep it Uncommented! ###################### ######################################################################################################################## azure_credentials = YAML.load_file(File.expand_path('credentials/azure.yml', __dir__)) -rs = Fog::Resources::AzureRM.new( - tenant_id: azure_credentials['tenant_id'], - client_id: azure_credentials['client_id'], - client_secret: azure_credentials['client_secret'], - subscription_id: azure_credentials['subscription_id'] -) - -storage = Fog::Storage::AzureRM.new( - tenant_id: azure_credentials['tenant_id'], - client_id: azure_credentials['client_id'], - client_secret: azure_credentials['client_secret'], - subscription_id: azure_credentials['subscription_id'], - environment: azure_credentials['environment'] -) - ######################################################################################################################## ###################### Resource names ##################### ######################################################################################################################## -time = current_time -resource_group_name = "Blob-RG-#{time}" -storage_account_name = "sa#{time}" +time = Time.now.to_i container_name = "con#{time}" test_container_name = "tcon#{time}" ######################################################################################################################## ###################### Prerequisites ###################### ######################################################################################################################## begin - resource_group = rs.resource_groups.create( - name: resource_group_name, - location: LOCATION - ) - - storage_account = storage.storage_accounts.create( - name: storage_account_name, - location: LOCATION, - resource_group: resource_group_name - ) - - access_key = storage_account.get_access_keys[0].value - Fog::Logger.debug access_key.inspect storage_data = Fog::Storage.new( provider: 'AzureRM', - azure_storage_account_name: storage_account.name, - azure_storage_access_key: access_key, + azure_storage_account_name: azure_credentials['azure_storage_account_name'], + azure_storage_access_key: azure_credentials['azure_storage_access_key'], + azure_storage_endpoint: azure_credentials['azure_storage_endpoint'], environment: azure_credentials['environment'] ) + scheme = URI.parse(azure_credentials.fetch('azure_storage_endpoint', 'https:')).scheme ######################################################################################################################## ###################### Create Container ###################### ######################################################################################################################## - storage_data.directories.create( + test_container1 = storage_data.directories.create( key: container_name, public: true ) - storage_data.directories.create( + test_container2 = storage_data.directories.create( key: test_container_name, public: false ) ######################################################################################################################## @@ -269,10 +241,28 @@ ######################################################################################################################## puts "Get a http URL with expires: #{test_blob.url(Time.now + 3600, scheme: 'http')}" ######################################################################################################################## + ###################### Test generated GET and PUT URLs ###################### + ######################################################################################################################## + + url_blob_name = 'url-test.txt' + url_blob_content = 'Hello world.' + get_url = storage_data.public_send("get_blob_#{scheme}_url", container_name, url_blob_name, Time.now + 3600) + put_url = storage_data.public_send("put_blob_#{scheme}_url", container_name, url_blob_name, Time.now + 3600) + + response = Faraday.put(put_url, url_blob_content, 'x-ms-blob-type' => 'BlockBlob') + raise unless response.success? + puts 'Uploaded blob using PUT blob URL' + + response = Faraday.get(get_url) + raise unless response.success? + raise unless response.body == url_blob_content + puts 'Downloaded blob using GET blob URL' + + ######################################################################################################################## ###################### Lease Blob ###################### ######################################################################################################################## lease_id_blob = storage_data.acquire_blob_lease(container_name, large_blob_name) puts 'Leased blob' @@ -290,8 +280,10 @@ blob = container.files.head(large_blob_name) puts "Deleted blob: #{blob.destroy}" rescue => ex puts "Integration Test for blob is failing: #{ex.inspect}\n#{ex.backtrace.join("\n")}" + raise ensure - resource_group.destroy unless resource_group.nil? + test_container1&.destroy + test_container2&.destroy end