ibm_cloud_sdk_core 1.2.0 → 1.4.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/README.md +2 -2
- data/lib/ibm_cloud_sdk_core/api_exception.rb +1 -0
- data/lib/ibm_cloud_sdk_core/authenticators/basic_authenticator.rb +3 -2
- data/lib/ibm_cloud_sdk_core/authenticators/bearer_token_authenticator.rb +3 -2
- data/lib/ibm_cloud_sdk_core/authenticators/config_based_authenticator_factory.rb +10 -9
- data/lib/ibm_cloud_sdk_core/authenticators/cp4d_authenticator.rb +4 -3
- data/lib/ibm_cloud_sdk_core/authenticators/iam_authenticator.rb +4 -3
- data/lib/ibm_cloud_sdk_core/authenticators/no_auth_authenticator.rb +1 -1
- data/lib/ibm_cloud_sdk_core/base_service.rb +6 -5
- data/lib/ibm_cloud_sdk_core/detailed_response.rb +1 -0
- data/lib/ibm_cloud_sdk_core/token_managers/cp4d_token_manager.rb +1 -1
- data/lib/ibm_cloud_sdk_core/token_managers/iam_token_manager.rb +3 -3
- data/lib/ibm_cloud_sdk_core/token_managers/jwt_token_manager.rb +2 -2
- data/lib/ibm_cloud_sdk_core/utils.rb +4 -4
- data/lib/ibm_cloud_sdk_core/version.rb +1 -1
- data/lib/ibm_cloud_sdk_core.rb +1 -1
- data/test/test_helper.rb +9 -13
- data/test/unit/test_base_service.rb +10 -10
- data/test/unit/test_configure_http_proxy.rb +1 -1
- data/test/unit/test_cp4d_authenticator.rb +2 -2
- data/test/unit/test_cp4d_token_manager.rb +1 -1
- data/test/unit/test_detailed_response.rb +1 -1
- data/test/unit/test_iam_authenticator.rb +2 -2
- data/test/unit/test_iam_token_manager.rb +1 -1
- data/test/unit/test_jwt_token_manager.rb +1 -1
- data/test/unit/test_utils.rb +2 -2
- metadata +60 -38
- data/rakefile +0 -44
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b501873dae700a349c64c17af64c20f13319c9c3a524b468fdad04d10675c47f
|
|
4
|
+
data.tar.gz: 98c122c0bd5afd0ed512a99942f4301d1d44dd14800e7c81684e4d098533f287
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 74100fd32a22d9a4a7c2f2c98682d6b4466cafd9a2d733015aa6e6797e07f4c9f3ce97aaefa023ba084b0d8d8b9f7a37011691d8472cd05b09b11e688c9cb358
|
|
7
|
+
data.tar.gz: a6f4ef34dc452939e88cb95c068caf875106f773e2460c28f7a7aba98878e44fe1d48346c2d606b7bc00432dbd7e3ea97bd16757864803926cee53c3ace1d250
|
data/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
[](https://github.com/IBM/ruby-sdk-core/actions/workflows/ci.yaml)
|
|
2
|
+
[](https://codecov.io/gh/IBM/ruby-sdk-core/tree/main)
|
|
3
3
|
[](https://rubygems.org/gems/ibm_cloud_sdk_core)
|
|
4
4
|
|
|
5
5
|
# ruby-sdk-core
|
|
@@ -6,6 +6,7 @@ module IBMCloudSdkCore
|
|
|
6
6
|
# Custom exception class for errors returned from the APIs
|
|
7
7
|
class ApiException < StandardError
|
|
8
8
|
attr_reader :code, :error, :info, :transaction_id, :global_transaction_id
|
|
9
|
+
|
|
9
10
|
# :param HTTP::Response response: The response object from the API
|
|
10
11
|
def initialize(code: nil, error: nil, info: nil, transaction_id: nil, global_transaction_id: nil, response: nil)
|
|
11
12
|
if code.nil? || error.nil?
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
|
-
require_relative("./authenticator
|
|
5
|
-
require_relative("../utils
|
|
4
|
+
require_relative("./authenticator")
|
|
5
|
+
require_relative("../utils")
|
|
6
6
|
|
|
7
7
|
module IBMCloudSdkCore
|
|
8
8
|
# Basic Authenticator
|
|
9
9
|
class BasicAuthenticator < Authenticator
|
|
10
10
|
attr_accessor :username, :password, :authentication_type
|
|
11
|
+
|
|
11
12
|
def initialize(vars)
|
|
12
13
|
defaults = {
|
|
13
14
|
username: nil,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
|
-
require_relative("./authenticator
|
|
5
|
-
require_relative("../utils
|
|
4
|
+
require_relative("./authenticator")
|
|
5
|
+
require_relative("../utils")
|
|
6
6
|
|
|
7
7
|
module IBMCloudSdkCore
|
|
8
8
|
# Basic Authenticator
|
|
9
9
|
class BearerTokenAuthenticator < Authenticator
|
|
10
10
|
attr_accessor :authentication_type
|
|
11
|
+
|
|
11
12
|
def initialize(vars)
|
|
12
13
|
defaults = {
|
|
13
14
|
bearer_token: nil
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
|
-
require_relative("./authenticator
|
|
5
|
-
require_relative("./basic_authenticator
|
|
6
|
-
require_relative("./bearer_token_authenticator
|
|
7
|
-
require_relative("./cp4d_authenticator
|
|
8
|
-
require_relative("./iam_authenticator
|
|
9
|
-
require_relative("./no_auth_authenticator
|
|
10
|
-
require_relative("../utils
|
|
4
|
+
require_relative("./authenticator")
|
|
5
|
+
require_relative("./basic_authenticator")
|
|
6
|
+
require_relative("./bearer_token_authenticator")
|
|
7
|
+
require_relative("./cp4d_authenticator")
|
|
8
|
+
require_relative("./iam_authenticator")
|
|
9
|
+
require_relative("./no_auth_authenticator")
|
|
10
|
+
require_relative("../utils")
|
|
11
11
|
|
|
12
12
|
module IBMCloudSdkCore
|
|
13
13
|
# Authenticator
|
|
@@ -17,7 +17,7 @@ module IBMCloudSdkCore
|
|
|
17
17
|
# :return: the authenticator
|
|
18
18
|
def get_authenticator(service_name:)
|
|
19
19
|
config = get_service_properties(service_name)
|
|
20
|
-
|
|
20
|
+
construct_authenticator(config) unless config.nil? || config.empty?
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def construct_authenticator(config)
|
|
@@ -32,7 +32,8 @@ module IBMCloudSdkCore
|
|
|
32
32
|
return BearerTokenAuthenticator.new(config) if auth_type.casecmp(AUTH_TYPE_BEARER_TOKEN).zero?
|
|
33
33
|
return CloudPakForDataAuthenticator.new(config) if auth_type.casecmp(AUTH_TYPE_CP4D).zero?
|
|
34
34
|
return IamAuthenticator.new(config) if auth_type.casecmp(AUTH_TYPE_IAM).zero?
|
|
35
|
-
|
|
35
|
+
|
|
36
|
+
NoAuthAuthenticator.new if auth_type.casecmp(AUTH_TYPE_NO_AUTH).zero?
|
|
36
37
|
end
|
|
37
38
|
end
|
|
38
39
|
end
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
|
-
require_relative("./authenticator
|
|
5
|
-
require_relative("../token_managers/cp4d_token_manager
|
|
6
|
-
require_relative("../utils
|
|
4
|
+
require_relative("./authenticator")
|
|
5
|
+
require_relative("../token_managers/cp4d_token_manager")
|
|
6
|
+
require_relative("../utils")
|
|
7
7
|
|
|
8
8
|
module IBMCloudSdkCore
|
|
9
9
|
# Basic Authenticator
|
|
10
10
|
class CloudPakForDataAuthenticator < Authenticator
|
|
11
11
|
attr_accessor :authentication_type, :disable_ssl_verification
|
|
12
|
+
|
|
12
13
|
def initialize(vars)
|
|
13
14
|
defaults = {
|
|
14
15
|
username: nil,
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
|
-
require_relative("./authenticator
|
|
5
|
-
require_relative("../token_managers/iam_token_manager
|
|
6
|
-
require_relative("../utils
|
|
4
|
+
require_relative("./authenticator")
|
|
5
|
+
require_relative("../token_managers/iam_token_manager")
|
|
6
|
+
require_relative("../utils")
|
|
7
7
|
|
|
8
8
|
module IBMCloudSdkCore
|
|
9
9
|
# Basic Authenticator
|
|
10
10
|
class IamAuthenticator < Authenticator
|
|
11
11
|
attr_accessor :authentication_type, :disable_ssl_verification, :client_id, :client_secret
|
|
12
|
+
|
|
12
13
|
def initialize(vars)
|
|
13
14
|
defaults = {
|
|
14
15
|
url: nil,
|
|
@@ -4,10 +4,10 @@ require("http")
|
|
|
4
4
|
require("rbconfig")
|
|
5
5
|
require("stringio")
|
|
6
6
|
require("json")
|
|
7
|
-
require_relative("./version
|
|
8
|
-
require_relative("./detailed_response
|
|
9
|
-
require_relative("./api_exception
|
|
10
|
-
require_relative("./utils
|
|
7
|
+
require_relative("./version")
|
|
8
|
+
require_relative("./detailed_response")
|
|
9
|
+
require_relative("./api_exception")
|
|
10
|
+
require_relative("./utils")
|
|
11
11
|
require_relative("./authenticators/authenticator")
|
|
12
12
|
require_relative("./authenticators/basic_authenticator")
|
|
13
13
|
require_relative("./authenticators/bearer_token_authenticator")
|
|
@@ -25,6 +25,7 @@ module IBMCloudSdkCore
|
|
|
25
25
|
class BaseService
|
|
26
26
|
attr_accessor :service_name, :service_url
|
|
27
27
|
attr_reader :conn, :authenticator, :disable_ssl_verification
|
|
28
|
+
|
|
28
29
|
def initialize(vars)
|
|
29
30
|
defaults = {
|
|
30
31
|
authenticator: nil,
|
|
@@ -148,7 +149,7 @@ module IBMCloudSdkCore
|
|
|
148
149
|
ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
|
149
150
|
@conn.default_options = { ssl_context: ssl_context }
|
|
150
151
|
end
|
|
151
|
-
add_proxy(proxy) unless proxy.empty? || !proxy
|
|
152
|
+
add_proxy(proxy) unless proxy.empty? || !proxy[:address].is_a?(String) || !proxy[:port].is_a?(Integer)
|
|
152
153
|
add_timeout(timeout) unless timeout.empty? || (!timeout.key?(:per_operation) && !timeout.key?(:global))
|
|
153
154
|
end
|
|
154
155
|
|
|
@@ -6,6 +6,7 @@ module IBMCloudSdkCore
|
|
|
6
6
|
# Custom class for objects returned from API calls
|
|
7
7
|
class DetailedResponse
|
|
8
8
|
attr_reader :status, :headers, :result
|
|
9
|
+
|
|
9
10
|
def initialize(status: nil, headers: nil, body: nil, response: nil)
|
|
10
11
|
if status.nil? || headers.nil? || body.nil?
|
|
11
12
|
@status = response.code
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require("http")
|
|
4
4
|
require("json")
|
|
5
5
|
require("rbconfig")
|
|
6
|
-
require_relative("./../version
|
|
6
|
+
require_relative("./../version")
|
|
7
7
|
require_relative("./jwt_token_manager")
|
|
8
8
|
|
|
9
9
|
module IBMCloudSdkCore
|
|
@@ -17,6 +17,7 @@ module IBMCloudSdkCore
|
|
|
17
17
|
TOKEN_NAME = "access_token"
|
|
18
18
|
|
|
19
19
|
attr_accessor :token_info, :token_name, :client_id, :client_secret
|
|
20
|
+
|
|
20
21
|
def initialize(
|
|
21
22
|
apikey: nil,
|
|
22
23
|
url: nil,
|
|
@@ -51,7 +52,7 @@ module IBMCloudSdkCore
|
|
|
51
52
|
"response_type" => REQUEST_TOKEN_RESPONSE_TYPE
|
|
52
53
|
}
|
|
53
54
|
# @headers.add
|
|
54
|
-
|
|
55
|
+
request(
|
|
55
56
|
method: "POST",
|
|
56
57
|
url: @url,
|
|
57
58
|
headers: headers,
|
|
@@ -59,7 +60,6 @@ module IBMCloudSdkCore
|
|
|
59
60
|
username: @client_id,
|
|
60
61
|
password: @client_secret
|
|
61
62
|
)
|
|
62
|
-
response
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
end
|
|
@@ -4,7 +4,7 @@ require("http")
|
|
|
4
4
|
require("json")
|
|
5
5
|
require("jwt")
|
|
6
6
|
require("rbconfig")
|
|
7
|
-
require_relative("./../version
|
|
7
|
+
require_relative("./../version")
|
|
8
8
|
|
|
9
9
|
module IBMCloudSdkCore
|
|
10
10
|
# Class to manage JWT Token Authentication
|
|
@@ -84,7 +84,7 @@ module IBMCloudSdkCore
|
|
|
84
84
|
end
|
|
85
85
|
return JSON.parse(response.body.to_s) if (200..299).cover?(response.code)
|
|
86
86
|
|
|
87
|
-
require_relative("./../api_exception
|
|
87
|
+
require_relative("./../api_exception")
|
|
88
88
|
raise ApiException.new(response: response)
|
|
89
89
|
end
|
|
90
90
|
end
|
|
@@ -13,7 +13,7 @@ def get_service_properties(service_name)
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def check_bad_first_or_last_char(str)
|
|
16
|
-
|
|
16
|
+
str.start_with?("{", "\"") || str.end_with?("}", "\"") unless str.nil?
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
# checks if the provided value is truthy
|
|
@@ -29,13 +29,13 @@ def load_from_credential_file(service_name, separator = "=")
|
|
|
29
29
|
|
|
30
30
|
# Top-level directory of the project
|
|
31
31
|
if credential_file_path.nil?
|
|
32
|
-
file_path = File.join(File.dirname(__FILE__), "
|
|
32
|
+
file_path = File.join(File.dirname(__FILE__), "/../../#{DEFAULT_CREDENTIALS_FILE_NAME}")
|
|
33
33
|
credential_file_path = file_path if File.exist?(file_path)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
# Home directory
|
|
37
37
|
if credential_file_path.nil?
|
|
38
|
-
file_path = ENV["HOME"]
|
|
38
|
+
file_path = "#{ENV["HOME"]}/#{DEFAULT_CREDENTIALS_FILE_NAME}"
|
|
39
39
|
credential_file_path = file_path if File.exist?(file_path)
|
|
40
40
|
end
|
|
41
41
|
|
|
@@ -72,7 +72,7 @@ def load_from_vcap_services(service_name)
|
|
|
72
72
|
services = JSON.parse(vcap_services)
|
|
73
73
|
credentials = ""
|
|
74
74
|
# search for matching inner name value
|
|
75
|
-
services.
|
|
75
|
+
services.each_value do |val|
|
|
76
76
|
service = val.detect { |item| item["name"] == service_name }
|
|
77
77
|
credentials = service["credentials"] unless service.nil?
|
|
78
78
|
break unless credentials.nil? || credentials.empty?
|
data/lib/ibm_cloud_sdk_core.rb
CHANGED
data/test/test_helper.rb
CHANGED
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require("simplecov")
|
|
4
|
-
require("
|
|
4
|
+
require("simplecov-cobertura")
|
|
5
5
|
require("minitest/reporters")
|
|
6
6
|
|
|
7
|
-
if ENV["
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
add_filter do |src_file|
|
|
13
|
-
File.basename(src_file.filename) == "version.rb"
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
command_name "Minitest"
|
|
17
|
-
end
|
|
7
|
+
SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter if ENV["CI"]
|
|
8
|
+
SimpleCov.start do
|
|
9
|
+
add_filter "/test/"
|
|
10
|
+
add_filter do |src_file|
|
|
11
|
+
File.basename(src_file.filename) == "version.rb"
|
|
18
12
|
end
|
|
13
|
+
|
|
14
|
+
command_name "Minitest"
|
|
19
15
|
end
|
|
20
16
|
|
|
21
17
|
require("minitest/autorun")
|
|
22
|
-
require_relative("./../lib/ibm_cloud_sdk_core
|
|
18
|
+
require_relative("./../lib/ibm_cloud_sdk_core")
|
|
23
19
|
require("minitest/retry")
|
|
24
20
|
|
|
25
21
|
Minitest::Retry.use!
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
4
|
require("jwt")
|
|
5
|
-
require_relative("./../test_helper
|
|
5
|
+
require_relative("./../test_helper")
|
|
6
6
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/basic_authenticator")
|
|
7
7
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/config_based_authenticator_factory")
|
|
8
8
|
require("webmock/minitest")
|
|
@@ -135,7 +135,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
135
135
|
end
|
|
136
136
|
|
|
137
137
|
def test_vcap_services
|
|
138
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
138
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
139
139
|
authenticator = IBMCloudSdkCore::ConfigBasedAuthenticatorFactory.new.get_authenticator(service_name: "salah")
|
|
140
140
|
service = IBMCloudSdkCore::BaseService.new(service_name: "salah", authenticator: authenticator)
|
|
141
141
|
assert_equal(authenticator.username, "mo")
|
|
@@ -144,7 +144,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
def test_dummy_request
|
|
147
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
147
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
148
148
|
stub_request(:get, "https://we.the.best/music")
|
|
149
149
|
.with(
|
|
150
150
|
headers: {
|
|
@@ -167,7 +167,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
167
167
|
)
|
|
168
168
|
service.service_url = "https://gateway.watsonplatform.net/assistant/api/"
|
|
169
169
|
form_data = {}
|
|
170
|
-
file = File.open(Dir.getwd
|
|
170
|
+
file = File.open("#{Dir.getwd}/resources/cnc_test.pdf")
|
|
171
171
|
filename = file.path if filename.nil? && file.respond_to?(:path)
|
|
172
172
|
form_data[:file] = HTTP::FormData::File.new(file, content_type: "application/octet-stream", filename: filename)
|
|
173
173
|
|
|
@@ -185,7 +185,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
def test_dummy_request_fails
|
|
188
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
188
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
189
189
|
response = {
|
|
190
190
|
"code" => "500",
|
|
191
191
|
"error" => "Oh no"
|
|
@@ -262,7 +262,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
262
262
|
authenticator: authenticator,
|
|
263
263
|
service_name: "key_to_service_entry_1"
|
|
264
264
|
)
|
|
265
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
265
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
266
266
|
service.configure_service("key_to_service_entry_1")
|
|
267
267
|
|
|
268
268
|
assert_equal("https://on.the.toolchainplatform.net/devops-insights/api", service.service_url)
|
|
@@ -278,7 +278,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
278
278
|
authenticator: authenticator,
|
|
279
279
|
service_name: "devops_insights"
|
|
280
280
|
)
|
|
281
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
281
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
282
282
|
service.configure_service("devops_insights")
|
|
283
283
|
|
|
284
284
|
assert_equal("https://ibmtesturl.net/devops_insights/api", service.service_url)
|
|
@@ -294,7 +294,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
294
294
|
authenticator: authenticator,
|
|
295
295
|
service_name: "different_name_two"
|
|
296
296
|
)
|
|
297
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
297
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
298
298
|
service.configure_service("different_name_two")
|
|
299
299
|
|
|
300
300
|
assert_equal("https://gateway.watsonplatform.net/different-name-two/api", service.service_url)
|
|
@@ -310,7 +310,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
310
310
|
authenticator: authenticator,
|
|
311
311
|
service_name: "empty_service"
|
|
312
312
|
)
|
|
313
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
313
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
314
314
|
service.configure_service("empty_service")
|
|
315
315
|
|
|
316
316
|
assert_nil(service.service_url)
|
|
@@ -326,7 +326,7 @@ class BaseServiceTest < Minitest::Test
|
|
|
326
326
|
authenticator: authenticator,
|
|
327
327
|
service_name: "no-creds-service-two"
|
|
328
328
|
)
|
|
329
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
329
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
330
330
|
service.configure_service("no-creds-service-two")
|
|
331
331
|
|
|
332
332
|
assert_nil(service.service_url)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
4
|
require("jwt")
|
|
5
|
-
require_relative("./../test_helper
|
|
5
|
+
require_relative("./../test_helper")
|
|
6
6
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/basic_authenticator")
|
|
7
7
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/config_based_authenticator_factory")
|
|
8
8
|
require("webmock/minitest")
|
|
@@ -90,7 +90,7 @@ class Cp4dAuthenticatorTest < Minitest::Test
|
|
|
90
90
|
refute_nil(authenticator)
|
|
91
91
|
assert_equal(authenticator.instance_variable_get(:@token_manager).access_token, token)
|
|
92
92
|
headers = {}
|
|
93
|
-
authenticated_headers = { "Authorization" => "Bearer "
|
|
93
|
+
authenticated_headers = { "Authorization" => "Bearer #{token}" }
|
|
94
94
|
authenticator.authenticate(headers)
|
|
95
95
|
assert_equal(headers, authenticated_headers)
|
|
96
96
|
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
4
|
require("jwt")
|
|
5
|
-
require_relative("./../test_helper
|
|
5
|
+
require_relative("./../test_helper")
|
|
6
6
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/basic_authenticator")
|
|
7
7
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/config_based_authenticator_factory")
|
|
8
8
|
require("webmock/minitest")
|
|
@@ -136,7 +136,7 @@ class IamAuthenticatorTest < Minitest::Test
|
|
|
136
136
|
refute_nil(authenticator)
|
|
137
137
|
assert_equal(authenticator.instance_variable_get(:@token_manager).access_token, token)
|
|
138
138
|
headers = {}
|
|
139
|
-
authenticated_headers = { "Authorization" => "Bearer "
|
|
139
|
+
authenticated_headers = { "Authorization" => "Bearer #{token}" }
|
|
140
140
|
authenticator.authenticate(headers)
|
|
141
141
|
assert_equal(headers, authenticated_headers)
|
|
142
142
|
end
|
data/test/unit/test_utils.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require("json")
|
|
4
4
|
require("jwt")
|
|
5
|
-
require_relative("./../test_helper
|
|
5
|
+
require_relative("./../test_helper")
|
|
6
6
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/basic_authenticator")
|
|
7
7
|
require_relative("./../../lib/ibm_cloud_sdk_core/authenticators/config_based_authenticator_factory")
|
|
8
8
|
require("webmock/minitest")
|
|
@@ -93,7 +93,7 @@ class UtilsTest < Minitest::Test
|
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
def test_get_configuration_from_vcap
|
|
96
|
-
ENV["VCAP_SERVICES"] = JSON.parse(File.read(Dir.getwd
|
|
96
|
+
ENV["VCAP_SERVICES"] = JSON.parse(File.read("#{Dir.getwd}/resources/vcap-testing.json")).to_json
|
|
97
97
|
# get properties
|
|
98
98
|
config = get_service_properties("equals-sign-test")
|
|
99
99
|
auth_type = config[:auth_type] unless config.nil?
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ibm_cloud_sdk_core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mamoon Raja
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: concurrent-ruby
|
|
@@ -30,56 +29,42 @@ dependencies:
|
|
|
30
29
|
requirements:
|
|
31
30
|
- - "~>"
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 5.1
|
|
32
|
+
version: '5.1'
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - "~>"
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 5.1
|
|
39
|
+
version: '5.1'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: jwt
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
44
|
- - "~>"
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
46
|
+
version: '3.2'
|
|
48
47
|
type: :runtime
|
|
49
48
|
prerelease: false
|
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
50
|
requirements:
|
|
52
51
|
- - "~>"
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
53
|
+
version: '3.2'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
55
|
name: bundler
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
|
-
- - "
|
|
58
|
+
- - ">"
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
60
|
+
version: '2'
|
|
62
61
|
type: :development
|
|
63
62
|
prerelease: false
|
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
64
|
requirements:
|
|
66
|
-
- - "
|
|
65
|
+
- - ">"
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: codecov
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0.1'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0.1'
|
|
67
|
+
version: '2'
|
|
83
68
|
- !ruby/object:Gem::Dependency
|
|
84
69
|
name: dotenv
|
|
85
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -182,30 +167,72 @@ dependencies:
|
|
|
182
167
|
name: rubocop
|
|
183
168
|
requirement: !ruby/object:Gem::Requirement
|
|
184
169
|
requirements:
|
|
185
|
-
- -
|
|
170
|
+
- - ">="
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: '1.40'
|
|
173
|
+
type: :development
|
|
174
|
+
prerelease: false
|
|
175
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
176
|
+
requirements:
|
|
177
|
+
- - ">="
|
|
178
|
+
- !ruby/object:Gem::Version
|
|
179
|
+
version: '1.40'
|
|
180
|
+
- !ruby/object:Gem::Dependency
|
|
181
|
+
name: rubocop-performance
|
|
182
|
+
requirement: !ruby/object:Gem::Requirement
|
|
183
|
+
requirements:
|
|
184
|
+
- - ">="
|
|
186
185
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: '0
|
|
186
|
+
version: '0'
|
|
188
187
|
type: :development
|
|
189
188
|
prerelease: false
|
|
190
189
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
190
|
requirements:
|
|
192
|
-
- -
|
|
191
|
+
- - ">="
|
|
193
192
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '0
|
|
193
|
+
version: '0'
|
|
194
|
+
- !ruby/object:Gem::Dependency
|
|
195
|
+
name: rubocop-rails
|
|
196
|
+
requirement: !ruby/object:Gem::Requirement
|
|
197
|
+
requirements:
|
|
198
|
+
- - ">="
|
|
199
|
+
- !ruby/object:Gem::Version
|
|
200
|
+
version: '0'
|
|
201
|
+
type: :development
|
|
202
|
+
prerelease: false
|
|
203
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
204
|
+
requirements:
|
|
205
|
+
- - ">="
|
|
206
|
+
- !ruby/object:Gem::Version
|
|
207
|
+
version: '0'
|
|
195
208
|
- !ruby/object:Gem::Dependency
|
|
196
209
|
name: simplecov
|
|
197
210
|
requirement: !ruby/object:Gem::Requirement
|
|
198
211
|
requirements:
|
|
199
212
|
- - "~>"
|
|
200
213
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '0.
|
|
214
|
+
version: '0.22'
|
|
202
215
|
type: :development
|
|
203
216
|
prerelease: false
|
|
204
217
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
218
|
requirements:
|
|
206
219
|
- - "~>"
|
|
207
220
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: '0.
|
|
221
|
+
version: '0.22'
|
|
222
|
+
- !ruby/object:Gem::Dependency
|
|
223
|
+
name: simplecov-cobertura
|
|
224
|
+
requirement: !ruby/object:Gem::Requirement
|
|
225
|
+
requirements:
|
|
226
|
+
- - ">="
|
|
227
|
+
- !ruby/object:Gem::Version
|
|
228
|
+
version: '0'
|
|
229
|
+
type: :development
|
|
230
|
+
prerelease: false
|
|
231
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
232
|
+
requirements:
|
|
233
|
+
- - ">="
|
|
234
|
+
- !ruby/object:Gem::Version
|
|
235
|
+
version: '0'
|
|
209
236
|
- !ruby/object:Gem::Dependency
|
|
210
237
|
name: webmock
|
|
211
238
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -220,8 +247,6 @@ dependencies:
|
|
|
220
247
|
- - "~>"
|
|
221
248
|
- !ruby/object:Gem::Version
|
|
222
249
|
version: '3.4'
|
|
223
|
-
description:
|
|
224
|
-
email:
|
|
225
250
|
executables: []
|
|
226
251
|
extensions: []
|
|
227
252
|
extra_rdoc_files: []
|
|
@@ -243,7 +268,6 @@ files:
|
|
|
243
268
|
- lib/ibm_cloud_sdk_core/token_managers/jwt_token_manager.rb
|
|
244
269
|
- lib/ibm_cloud_sdk_core/utils.rb
|
|
245
270
|
- lib/ibm_cloud_sdk_core/version.rb
|
|
246
|
-
- rakefile
|
|
247
271
|
- test/test_helper.rb
|
|
248
272
|
- test/unit/test_base_service.rb
|
|
249
273
|
- test/unit/test_configure_http_proxy.rb
|
|
@@ -261,7 +285,6 @@ metadata:
|
|
|
261
285
|
allowed_push_host: https://rubygems.org
|
|
262
286
|
source_code_uri: https://github.com/IBM/ruby-sdk-core
|
|
263
287
|
documentation_uri: https://github.com/IBM/ruby-sdk-core
|
|
264
|
-
post_install_message:
|
|
265
288
|
rdoc_options: []
|
|
266
289
|
require_paths:
|
|
267
290
|
- lib
|
|
@@ -269,15 +292,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
269
292
|
requirements:
|
|
270
293
|
- - ">="
|
|
271
294
|
- !ruby/object:Gem::Version
|
|
272
|
-
version: '2.
|
|
295
|
+
version: '2.7'
|
|
273
296
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
274
297
|
requirements:
|
|
275
298
|
- - ">="
|
|
276
299
|
- !ruby/object:Gem::Version
|
|
277
300
|
version: '0'
|
|
278
301
|
requirements: []
|
|
279
|
-
rubygems_version: 3.
|
|
280
|
-
signing_key:
|
|
302
|
+
rubygems_version: 3.6.7
|
|
281
303
|
specification_version: 4
|
|
282
304
|
summary: Official IBM Cloud SDK core library
|
|
283
305
|
test_files: []
|
data/rakefile
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "dotenv/tasks"
|
|
4
|
-
require "rake/testtask"
|
|
5
|
-
require "rubocop/rake_task"
|
|
6
|
-
|
|
7
|
-
task default: %w[def]
|
|
8
|
-
|
|
9
|
-
RuboCop::RakeTask.new
|
|
10
|
-
|
|
11
|
-
namespace :test do
|
|
12
|
-
Rake::TestTask.new do |t|
|
|
13
|
-
t.name = "unit"
|
|
14
|
-
t.description = "Run unit tests"
|
|
15
|
-
t.libs << "test"
|
|
16
|
-
t.test_files = FileList["test/unit/*.rb"]
|
|
17
|
-
t.verbose = true
|
|
18
|
-
t.warning = true
|
|
19
|
-
t.deps = [:rubocop]
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
Rake::TestTask.new do |t|
|
|
23
|
-
t.name = "appveyor_status"
|
|
24
|
-
t.description = "Checks to ensure that AppVeyor tests pass before deploying from Travis"
|
|
25
|
-
t.libs << "test"
|
|
26
|
-
t.test_files = FileList["test/appveyor_status.rb"]
|
|
27
|
-
t.verbose = false
|
|
28
|
-
t.warning = false
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
desc "Run unit tests"
|
|
33
|
-
task :test do
|
|
34
|
-
Rake::Task["test:unit"].invoke
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
desc "Run tests and generate a code coverage report"
|
|
38
|
-
task :coverage do
|
|
39
|
-
ENV["COVERAGE"] = "true" if ENV["TRAVIS_RUBY_VERSION"] == "2.5.1" || ENV["CI"].nil?
|
|
40
|
-
Rake::Task["test"].execute
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
task def: %i[coverage] do
|
|
44
|
-
end
|