gitlab-fog-azure-rm 1.4.0 → 1.7.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.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +1 -1
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +14 -0
- data/gitlab-fog-azure-rm.gemspec +1 -1
- data/lib/fog/azurerm/credentials.rb +6 -2
- data/lib/fog/azurerm/requests/storage/delete_object.rb +15 -0
- data/lib/fog/azurerm/requests/storage/get_object.rb +25 -0
- data/lib/fog/azurerm/storage.rb +3 -1
- data/lib/fog/azurerm/version.rb +1 -1
- data/rakefile +3 -0
- data/test/requests/storage/test_delete_object.rb +42 -0
- data/test/requests/storage/test_get_object.rb +34 -0
- data/test/test_credentials.rb +3 -3
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96a2a16b2feac00c533b0489e6572ccd808c11e44f9f3efab5b69bdc392aea04
|
4
|
+
data.tar.gz: 8e7a5d519fa7002896efb7c00fe7bb73440f875cc0a428dba625695ed6c385bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36e3c183ee97204706d901c25c3791b760980d0dcf84440d2370dddff622f54670db85a11e1badec9853341e661d057d519b990912b626c9d86e16c9461e2ebf
|
7
|
+
data.tar.gz: b20976bdfab522b172572194e2f6f0693129c3f6315910fb9d8331cd11e9855ecce53292f22d982b7d6c7811267bce716cf6e680a04d3bf9e703988ee21b2f1e
|
data/.gitlab-ci.yml
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 1.7.0
|
4
|
+
|
5
|
+
- Fix #get_object return type to be consistent with other Fog providers !36
|
6
|
+
- Require Ruby 2.7+ !36
|
7
|
+
|
8
|
+
## 1.6.0
|
9
|
+
|
10
|
+
- Add get_object request method !34
|
11
|
+
- Fix uninitialized constant errors !35
|
12
|
+
|
13
|
+
## 1.5.0
|
14
|
+
|
15
|
+
- Add delete_object request method !32
|
16
|
+
|
3
17
|
## 1.4.0
|
4
18
|
|
5
19
|
- Move all top-level constants and functions to Fog::AzureRM !30
|
data/gitlab-fog-azure-rm.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.homepage = 'https://gitlab.com/gitlab-org/gitlab-fog-azure-rm'
|
16
16
|
spec.rdoc_options = %w[--charset=UTF-8]
|
17
17
|
spec.extra_rdoc_files = %w[README.md]
|
18
|
-
spec.required_ruby_version = '>= 2.
|
18
|
+
spec.required_ruby_version = '>= 2.7.0'
|
19
19
|
spec.post_install_message = 'Thanks for installing!'
|
20
20
|
spec.add_development_dependency 'codeclimate-test-reporter' , '~> 1.0.0'
|
21
21
|
spec.add_development_dependency 'minitest', '~> 5.8.4'
|
@@ -2,7 +2,11 @@ module Fog
|
|
2
2
|
module Credentials
|
3
3
|
# This class is managing credentials token
|
4
4
|
class AzureRM
|
5
|
-
|
5
|
+
class << self
|
6
|
+
include Fog::AzureRM::Utilities::General
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.get_credentials(tenant_id, client_id, client_secret, environment = Fog::AzureRM::ENVIRONMENT_AZURE_CLOUD)
|
6
10
|
if @credentials.nil? || new_management_credential?(tenant_id, client_id, client_secret, environment)
|
7
11
|
get_new_credentials(tenant_id, client_id, client_secret, environment)
|
8
12
|
else
|
@@ -10,7 +14,7 @@ module Fog
|
|
10
14
|
end
|
11
15
|
end
|
12
16
|
|
13
|
-
def self.get_token(tenant_id, client_id, client_secret, environment = ENVIRONMENT_AZURE_CLOUD)
|
17
|
+
def self.get_token(tenant_id, client_id, client_secret, environment = Fog::AzureRM::ENVIRONMENT_AZURE_CLOUD)
|
14
18
|
get_credentials(tenant_id, client_id, client_secret, environment) if @credentials.nil?
|
15
19
|
@token_provider.get_authentication_header
|
16
20
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class AzureRM
|
4
|
+
# This class provides the actual implementation for service calls.
|
5
|
+
class Real
|
6
|
+
alias delete_object delete_blob
|
7
|
+
end
|
8
|
+
|
9
|
+
# This class provides the mock implementation for unit tests.
|
10
|
+
class Mock
|
11
|
+
alias delete_object delete_blob
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class AzureRM
|
4
|
+
# This class provides the actual implemention for service calls.
|
5
|
+
class Real
|
6
|
+
def get_object(...)
|
7
|
+
blob, body = get_blob(...)
|
8
|
+
|
9
|
+
blob[:body] = body
|
10
|
+
blob
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# This class provides the mock implementation for unit tests.
|
15
|
+
class Mock
|
16
|
+
def get_object(...)
|
17
|
+
blob, body = get_blob(...)
|
18
|
+
|
19
|
+
blob[:body] = body
|
20
|
+
blob
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/fog/azurerm/storage.rb
CHANGED
@@ -40,9 +40,9 @@ module Fog
|
|
40
40
|
request :compare_container_blobs
|
41
41
|
request :acquire_blob_lease
|
42
42
|
request :release_blob_lease
|
43
|
-
request :delete_blob
|
44
43
|
request :get_blob
|
45
44
|
request :get_blob_url
|
45
|
+
request :get_object
|
46
46
|
request :get_object_url
|
47
47
|
request :get_blob_http_url
|
48
48
|
request :get_blob_https_url
|
@@ -50,8 +50,10 @@ module Fog
|
|
50
50
|
request :put_blob_block
|
51
51
|
request :put_blob_https_url
|
52
52
|
request :put_object_url
|
53
|
+
request :delete_blob
|
53
54
|
request :delete_blob_https_url
|
54
55
|
request :delete_object_url
|
56
|
+
request :delete_object
|
55
57
|
request :commit_blob_blocks
|
56
58
|
request :create_page_blob
|
57
59
|
request :put_blob_pages
|
data/lib/fog/azurerm/version.rb
CHANGED
data/rakefile
CHANGED
@@ -5,6 +5,7 @@ task default: :cc_coverage
|
|
5
5
|
task :test do
|
6
6
|
ENV['COVERAGE'] = nil
|
7
7
|
ENV['CODECLIMATE_REPO_TOKEN'] = nil
|
8
|
+
Dir.glob('test/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
8
9
|
Dir.glob('test/models/**/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
9
10
|
Dir.glob('test/requests/**/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
10
11
|
end
|
@@ -13,6 +14,7 @@ desc 'Generates a coverage report for minitest-cases using simple-cov'
|
|
13
14
|
task :coverage do
|
14
15
|
ENV['CODECLIMATE_REPO_TOKEN'] = nil
|
15
16
|
ENV['COVERAGE'] = 'true'
|
17
|
+
Dir.glob('test/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
16
18
|
Dir.glob('test/models/**/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
17
19
|
Dir.glob('test/requests/**/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
18
20
|
end
|
@@ -21,6 +23,7 @@ desc 'Generates a coverage report for minitest-cases using code-climate'
|
|
21
23
|
task :cc_coverage do
|
22
24
|
ENV['COVERAGE'] = nil
|
23
25
|
ENV['CODECLIMATE_REPO_TOKEN'] = 'b1401494baa004d90402414cb33a7fc6420fd3693e60c677a120ddefd7d84cfd'
|
26
|
+
Dir.glob('test/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
24
27
|
Dir.glob('test/models/**/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
25
28
|
Dir.glob('test/requests/**/test_*.rb').each { |file| require File.expand_path file, __dir__ }
|
26
29
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.expand_path '../../test_helper', __dir__
|
2
|
+
|
3
|
+
# Storage Blob Class
|
4
|
+
class TestDeleteObject < Minitest::Test
|
5
|
+
# This class posesses the test cases for the requests of deleting storage blobs.
|
6
|
+
def setup
|
7
|
+
Fog.mock!
|
8
|
+
@mock_service = Fog::Storage::AzureRM.new(storage_account_credentials)
|
9
|
+
Fog.unmock!
|
10
|
+
@mocked_response = mocked_storage_http_error
|
11
|
+
@mocked_not_found_response = mocked_storage_http_not_found_error
|
12
|
+
|
13
|
+
@service = Fog::Storage::AzureRM.new(storage_account_credentials)
|
14
|
+
@blob_client = @service.instance_variable_get(:@blob_client)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_delete_object_success
|
18
|
+
@blob_client.stub :delete_blob, true do
|
19
|
+
assert @service.delete_object('test_container', 'test_blob')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_delete_object_with_not_found_success
|
24
|
+
http_exception = ->(*) { raise Azure::Core::Http::HTTPError.new(@mocked_not_found_response) }
|
25
|
+
@blob_client.stub :delete_blob, http_exception do
|
26
|
+
assert @service.delete_object('test_container', 'test_blob')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_delete_object_http_exception
|
31
|
+
http_exception = ->(*) { raise Azure::Core::Http::HTTPError.new(@mocked_response) }
|
32
|
+
@blob_client.stub :delete_blob, http_exception do
|
33
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
34
|
+
@service.delete_object('test_container', 'test_blob')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_delete_object_mock
|
40
|
+
assert @mock_service.delete_blob('test_container', 'test_blob')
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.expand_path '../../test_helper', __dir__
|
2
|
+
|
3
|
+
# Storage Blob Class
|
4
|
+
class TestGetObject < Minitest::Test
|
5
|
+
# This class posesses the test cases for the requests of getting storage blob.
|
6
|
+
def setup
|
7
|
+
Fog.mock!
|
8
|
+
@mock_service = Fog::Storage::AzureRM.new(storage_account_credentials)
|
9
|
+
Fog.unmock!
|
10
|
+
@mocked_response = mocked_storage_http_error
|
11
|
+
|
12
|
+
@service = Fog::Storage::AzureRM.new(storage_account_credentials)
|
13
|
+
@blob_client = @service.instance_variable_get(:@blob_client)
|
14
|
+
|
15
|
+
@raw_cloud_blob = storage_blob
|
16
|
+
@blob = ApiStub::Requests::Storage::File.blob_as_hash
|
17
|
+
@blob_with_content = @blob.merge(body: 'content')
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_get_object_success
|
21
|
+
@blob_client.stub :get_blob, @blob_with_content do
|
22
|
+
assert_equal @blob_with_content, @service.get_object('test_container', 'test_blob')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_get_object_not_found
|
27
|
+
exception = ->(*) { raise StandardError.new('Not found(404). Not exist') }
|
28
|
+
@blob_client.stub :get_blob, exception do
|
29
|
+
assert_raises('NotFound') do
|
30
|
+
@service.get_object('test_container', 'test_blob')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/test/test_credentials.rb
CHANGED
@@ -38,7 +38,7 @@ class TestCredentials < Minitest::Test
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_get_token_method_with_china_environment
|
41
|
-
Fog::Credentials::AzureRM.get_credentials(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret], ENVIRONMENT_AZURE_CHINA_CLOUD)
|
41
|
+
Fog::Credentials::AzureRM.get_credentials(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret], Fog::AzureRM::ENVIRONMENT_AZURE_CHINA_CLOUD)
|
42
42
|
token_provider = Fog::Credentials::AzureRM.instance_variable_get(:@token_provider)
|
43
43
|
token_provider.stub :get_authentication_header, 'Bearer <some-token>' do
|
44
44
|
assert_equal Fog::Credentials::AzureRM.get_token(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret]), 'Bearer <some-token>'
|
@@ -46,7 +46,7 @@ class TestCredentials < Minitest::Test
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_get_token_method_with_us_government_environment
|
49
|
-
Fog::Credentials::AzureRM.get_credentials(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret], ENVIRONMENT_AZURE_US_GOVERNMENT)
|
49
|
+
Fog::Credentials::AzureRM.get_credentials(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret], Fog::AzureRM::ENVIRONMENT_AZURE_US_GOVERNMENT)
|
50
50
|
token_provider = Fog::Credentials::AzureRM.instance_variable_get(:@token_provider)
|
51
51
|
token_provider.stub :get_authentication_header, 'Bearer <some-token>' do
|
52
52
|
assert_equal Fog::Credentials::AzureRM.get_token(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret]), 'Bearer <some-token>'
|
@@ -54,7 +54,7 @@ class TestCredentials < Minitest::Test
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_get_token_method_with_german_environment
|
57
|
-
Fog::Credentials::AzureRM.get_credentials(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret], ENVIRONMENT_AZURE_GERMAN_CLOUD)
|
57
|
+
Fog::Credentials::AzureRM.get_credentials(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret], Fog::AzureRM::ENVIRONMENT_AZURE_GERMAN_CLOUD)
|
58
58
|
token_provider = Fog::Credentials::AzureRM.instance_variable_get(:@token_provider)
|
59
59
|
token_provider.stub :get_authentication_header, 'Bearer <some-token>' do
|
60
60
|
assert_equal Fog::Credentials::AzureRM.get_token(@creds[:tenant_id], @creds[:client_id], @creds[:client_secret]), 'Bearer <some-token>'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-fog-azure-rm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shaffan Chaudhry
|
@@ -18,7 +18,7 @@ authors:
|
|
18
18
|
autorequire:
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
|
-
date:
|
21
|
+
date: 2023-02-27 00:00:00.000000000 Z
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
24
|
name: codeclimate-test-reporter
|
@@ -237,6 +237,7 @@ files:
|
|
237
237
|
- lib/fog/azurerm/requests/storage/delete_blob.rb
|
238
238
|
- lib/fog/azurerm/requests/storage/delete_blob_https_url.rb
|
239
239
|
- lib/fog/azurerm/requests/storage/delete_container.rb
|
240
|
+
- lib/fog/azurerm/requests/storage/delete_object.rb
|
240
241
|
- lib/fog/azurerm/requests/storage/delete_object_url.rb
|
241
242
|
- lib/fog/azurerm/requests/storage/get_blob.rb
|
242
243
|
- lib/fog/azurerm/requests/storage/get_blob_http_url.rb
|
@@ -246,6 +247,7 @@ files:
|
|
246
247
|
- lib/fog/azurerm/requests/storage/get_container_acl.rb
|
247
248
|
- lib/fog/azurerm/requests/storage/get_container_properties.rb
|
248
249
|
- lib/fog/azurerm/requests/storage/get_container_url.rb
|
250
|
+
- lib/fog/azurerm/requests/storage/get_object.rb
|
249
251
|
- lib/fog/azurerm/requests/storage/get_object_url.rb
|
250
252
|
- lib/fog/azurerm/requests/storage/list_blobs.rb
|
251
253
|
- lib/fog/azurerm/requests/storage/list_containers.rb
|
@@ -294,6 +296,7 @@ files:
|
|
294
296
|
- test/requests/storage/test_delete_blob.rb
|
295
297
|
- test/requests/storage/test_delete_blob_https_url.rb
|
296
298
|
- test/requests/storage/test_delete_container.rb
|
299
|
+
- test/requests/storage/test_delete_object.rb
|
297
300
|
- test/requests/storage/test_get_blob.rb
|
298
301
|
- test/requests/storage/test_get_blob_http_url.rb
|
299
302
|
- test/requests/storage/test_get_blob_https_url.rb
|
@@ -302,6 +305,7 @@ files:
|
|
302
305
|
- test/requests/storage/test_get_container_acl.rb
|
303
306
|
- test/requests/storage/test_get_container_properties.rb
|
304
307
|
- test/requests/storage/test_get_container_url.rb
|
308
|
+
- test/requests/storage/test_get_object.rb
|
305
309
|
- test/requests/storage/test_list_blobs.rb
|
306
310
|
- test/requests/storage/test_list_containers.rb
|
307
311
|
- test/requests/storage/test_put_blob_block.rb
|
@@ -331,14 +335,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
331
335
|
requirements:
|
332
336
|
- - ">="
|
333
337
|
- !ruby/object:Gem::Version
|
334
|
-
version: 2.
|
338
|
+
version: 2.7.0
|
335
339
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
336
340
|
requirements:
|
337
341
|
- - ">="
|
338
342
|
- !ruby/object:Gem::Version
|
339
343
|
version: '0'
|
340
344
|
requirements: []
|
341
|
-
rubygems_version: 3.
|
345
|
+
rubygems_version: 3.4.7
|
342
346
|
signing_key:
|
343
347
|
specification_version: 4
|
344
348
|
summary: Module for the 'fog' gem to support Azure Blob Storage with CarrierWave and
|