oci-logging-analytics-kubernetes-discovery 1.0.2 → 1.1.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/.gitignore +2 -1
- data/bin/oci-loganalytics-kubernetes-discovery +102 -25
- data/lib/config/oci_client_retry_config.rb +11 -8
- data/lib/discover/infrastructure.rb +81 -29
- data/lib/discover/object.rb +19 -4
- data/lib/dto/infra/load_balancer_payload.rb +32 -0
- data/lib/dto/infra/node_pool_payload.rb +28 -0
- data/lib/dto/infra/{node_pool_entity_payload.rb → resource_payload.rb} +6 -6
- data/lib/dto/infra/subnet_payload.rb +34 -0
- data/lib/dto/infra_objects_payload.rb +3 -3
- data/lib/dto/kubernetes_objects_payload.rb +19 -15
- data/lib/dto/state.rb +7 -3
- data/lib/enum/auth_type_enum.rb +1 -0
- data/lib/enum/infrastructure_resource_discovery.rb +1 -0
- data/lib/enum/object_client_mapping_enum.rb +1 -1
- data/lib/enum/stack_job_lifecycle_state_enum.rb +14 -0
- data/lib/enum/stack_job_operation_enum.rb +10 -0
- data/lib/infra_resources.rb +142 -41
- data/lib/objects_resources.rb +16 -6
- data/lib/oci_loganalytics_resources_discovery.rb +104 -77
- data/lib/util/helper.rb +15 -0
- data/lib/util/kube_client.rb +1 -0
- data/lib/util/kubectl_ops.rb +1 -1
- data/lib/util/log_analytics.rb +2 -2
- data/lib/util/oci_clients.rb +222 -103
- data/lib/util/service_logs.rb +559 -0
- data/lib/util/state_manager.rb +12 -2
- data/lib/util/string_utils.rb +48 -0
- data/lib/version.rb +1 -1
- data/oci-logging-analytics-kubernetes-discovery.gemspec +1 -1
- metadata +13 -10
- data/lib/dto/infra/cluster_entity_payload.rb +0 -22
- data/lib/dto/infra/load_balancers_entity_payload.rb +0 -22
- data/lib/dto/infra/subnet_entity_payload.rb +0 -22
- data/lib/dto/infra/vcn_entity_payload.rb +0 -22
data/lib/util/oci_clients.rb
CHANGED
@@ -13,43 +13,129 @@ module Util
|
|
13
13
|
|
14
14
|
module_function
|
15
15
|
|
16
|
-
attr_accessor :oci_clients, :ce_client, :id_client, :lb_client, :la_client, :rs_client,
|
17
|
-
:
|
16
|
+
attr_accessor :oci_clients, :ce_client, :id_client, :lb_client, :la_client, :rs_client,
|
17
|
+
:vcn_client, :oci_config, :instance_principals_signer, :la_endpoint,
|
18
|
+
:auth_type, :auth_config_object, :oci_domain, :oci_retry_config, :oci_region
|
18
19
|
|
19
|
-
|
20
|
+
# This must be the first method called before any other method
|
21
|
+
def initialize(auth_config_hash)
|
20
22
|
begin
|
21
|
-
|
23
|
+
initialize_auth_config(auth_config_hash)
|
24
|
+
rescue StandardError => e
|
25
|
+
logger.error("Error occurred in creating authentication object - #{e}")
|
26
|
+
raise e
|
27
|
+
end
|
28
|
+
logger.debug('Successfully loaded the OCI auth config.')
|
29
|
+
|
30
|
+
begin
|
31
|
+
create_clients
|
32
|
+
rescue StandardError => e
|
33
|
+
logger.error("Error occurred in creating OCI clients - #{e}")
|
34
|
+
raise e
|
35
|
+
end
|
36
|
+
logger.debug('OCI clients created successfully.')
|
37
|
+
|
38
|
+
set_clients
|
39
|
+
end
|
22
40
|
|
23
|
-
|
24
|
-
|
25
|
-
|
41
|
+
def initialize_auth_config(auth_config_hash)
|
42
|
+
@auth_type = auth_config_hash[:auth_type]
|
43
|
+
@oci_domain = auth_config_hash[:oci_domain]
|
44
|
+
@la_endpoint = auth_config_hash[:endpoint]
|
45
|
+
|
46
|
+
begin
|
47
|
+
if @auth_type == Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
48
|
+
@oci_config = OCI::Config.new
|
49
|
+
if @oci_domain.nil?
|
50
|
+
@instance_principals_signer = OCI::Auth::Signers::InstancePrincipalsSecurityTokenSigner.new
|
51
|
+
else
|
52
|
+
federation_endpoint = "https://auth.#{@oci_domain}/v1/x509"
|
53
|
+
logger.info("Federation Endpoint: #{federation_endpoint}")
|
54
|
+
@instance_principals_signer = OCI::Auth::Signers::InstancePrincipalsSecurityTokenSigner.new(
|
55
|
+
federation_endpoint: federation_endpoint
|
56
|
+
)
|
57
|
+
end
|
58
|
+
@oci_region = @instance_principals_signer.region
|
59
|
+
# elsif @auth_type == Enum::AuthTypeEnum::OKE_WORKLOAD_IDENTITY
|
60
|
+
# @workload_identity_signer = OCI::Auth::Signers::oke_workload_resource_principal_signer
|
61
|
+
elsif @auth_type == Enum::AuthTypeEnum::CONFIG
|
62
|
+
@oci_config = OCI::ConfigFileLoader.load_config(config_file_location: auth_config_hash[:config_file_location],
|
63
|
+
profile_name: auth_config_hash[:profile_name])
|
64
|
+
@oci_region = @oci_config.region
|
65
|
+
else
|
66
|
+
raise Exception::InvalidOption, "#{@auth_type}"
|
26
67
|
end
|
68
|
+
rescue StandardError => e
|
69
|
+
logger.error("Error occurred while initializing OCI authentication configuration. Error: #{e}")
|
70
|
+
raise e
|
71
|
+
end
|
72
|
+
set_auth_config_object
|
73
|
+
end
|
27
74
|
|
28
|
-
|
29
|
-
|
30
|
-
@
|
31
|
-
@
|
32
|
-
@
|
75
|
+
def set_clients
|
76
|
+
@oci_clients = {
|
77
|
+
ce_client: @ce_client,
|
78
|
+
id_client: @id_client,
|
79
|
+
lb_client: @lb_client,
|
80
|
+
la_client: @la_client,
|
81
|
+
rqs_client: @rqs_client,
|
82
|
+
vcn_client: @vcn_client,
|
83
|
+
rms_client: @rms_client
|
84
|
+
}
|
85
|
+
end
|
86
|
+
|
87
|
+
def get_clients
|
88
|
+
@oci_clients
|
89
|
+
end
|
90
|
+
|
91
|
+
def get_region
|
92
|
+
@oci_region
|
93
|
+
end
|
94
|
+
|
95
|
+
def get_domain
|
96
|
+
@oci_domain
|
97
|
+
end
|
98
|
+
|
99
|
+
def create_clients()
|
100
|
+
begin
|
101
|
+
@oci_retry_config = Config::OCIClientRetryConfig.custom_retry_policy
|
102
|
+
|
103
|
+
@la_client = initialize_la_client
|
104
|
+
@ce_client = initialize_ce_client
|
105
|
+
@id_client = initialize_id_client
|
106
|
+
@lb_client = initialize_lb_client
|
107
|
+
@rqs_client = initialize_rqs_client
|
108
|
+
@vcn_client = initialize_vcn_client
|
109
|
+
@rms_client = initialize_rms_client
|
33
110
|
rescue StandardError => e
|
34
111
|
logger.error("Error while creating OCI clients. Error: #{e}")
|
35
112
|
raise e
|
36
113
|
end
|
37
|
-
|
38
|
-
nil
|
114
|
+
logger.info('OCI clients created.')
|
39
115
|
end
|
40
116
|
|
41
|
-
def initialize_ce_client(
|
117
|
+
def initialize_ce_client()
|
42
118
|
client = nil
|
43
|
-
|
119
|
+
endpoint = nil
|
120
|
+
retry_config = Config::OCIClientRetryConfig.oci_default_retry_config if @oci_retry_config.nil?
|
121
|
+
unless @oci_domain.nil?
|
122
|
+
endpoint = "https://containerengine.#{@oci_domain}"
|
123
|
+
logger.info("CE Client endpoint: #{endpoint}")
|
124
|
+
end
|
125
|
+
logger.debug("Creating container engine client with auth_type: #{@auth_type}")
|
44
126
|
begin
|
45
|
-
case
|
127
|
+
case @auth_type
|
46
128
|
when Enum::AuthTypeEnum::CONFIG
|
47
|
-
client = OCI::ContainerEngine::ContainerEngineClient.new(config:
|
129
|
+
client = OCI::ContainerEngine::ContainerEngineClient.new(config: @oci_config, endpoint: endpoint, retry_config: retry_config)
|
48
130
|
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
49
|
-
client = OCI::ContainerEngine::ContainerEngineClient.new(
|
131
|
+
client = OCI::ContainerEngine::ContainerEngineClient.new(
|
132
|
+
config: @oci_config, endpoint: endpoint,
|
133
|
+
signer: @instance_principals_signer,
|
134
|
+
retry_config: retry_config)
|
50
135
|
else
|
51
|
-
logger.warn("Unknown auth_type '#{
|
136
|
+
logger.warn("Unknown auth_type '#{@auth_type}' provided for container engine client.")
|
52
137
|
end
|
138
|
+
logger.debug('CE Client created.')
|
53
139
|
@ce_client = client
|
54
140
|
rescue StandardError => e
|
55
141
|
logger.error("Error while creating container engine client: #{e}")
|
@@ -58,20 +144,25 @@ module Util
|
|
58
144
|
client
|
59
145
|
end
|
60
146
|
|
61
|
-
def initialize_id_client(
|
147
|
+
def initialize_id_client()
|
62
148
|
client = nil
|
63
|
-
|
149
|
+
endpoint = nil
|
150
|
+
retry_config = Config::OCIClientRetryConfig.oci_default_retry_config if @oci_retry_config.nil?
|
151
|
+
unless @oci_domain.nil?
|
152
|
+
endpoint = "https://identity.#{@oci_domain}"
|
153
|
+
logger.info("ID Client endpoint: #{endpoint}")
|
154
|
+
end
|
155
|
+
logger.debug("Creating identity client with auth_type: #{@auth_type}")
|
64
156
|
begin
|
65
|
-
case
|
157
|
+
case @auth_type
|
66
158
|
when Enum::AuthTypeEnum::CONFIG
|
67
|
-
client = OCI::Identity::IdentityClient.new(config:
|
68
|
-
when Enum::AuthTypeEnum::
|
69
|
-
client = OCI::Identity::IdentityClient.new(config:
|
70
|
-
when Enum::AuthTypeEnum::PRINCIPAL
|
71
|
-
client = OCI::Identity::IdentityClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
159
|
+
client = OCI::Identity::IdentityClient.new(config: @oci_config, endpoint: endpoint, retry_config: retry_config)
|
160
|
+
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
161
|
+
client = OCI::Identity::IdentityClient.new(config: @oci_config, endpoint: endpoint, signer: @instance_principals_signer, retry_config: retry_config)
|
72
162
|
else
|
73
|
-
logger.warn("Unknown auth_type '#{
|
163
|
+
logger.warn("Unknown auth_type '#{@auth_type}' provided for identity client.")
|
74
164
|
end
|
165
|
+
logger.debug('ID Client created.')
|
75
166
|
@id_client = client
|
76
167
|
rescue StandardError => e
|
77
168
|
logger.error("Error while creating identity client: #{e}")
|
@@ -80,20 +171,25 @@ module Util
|
|
80
171
|
@id_client
|
81
172
|
end
|
82
173
|
|
83
|
-
def initialize_lb_client(
|
174
|
+
def initialize_lb_client()
|
84
175
|
client = nil
|
85
|
-
|
176
|
+
endpoint = nil
|
177
|
+
retry_config = Config::OCIClientRetryConfig.oci_default_retry_config if @oci_retry_config.nil?
|
178
|
+
unless @oci_domain.nil?
|
179
|
+
endpoint = "https://iaas.#{@oci_domain}"
|
180
|
+
logger.info("LB Client endpoint: #{endpoint}")
|
181
|
+
end
|
182
|
+
logger.debug("Creating load balancer client with auth_type: #{@auth_type}")
|
86
183
|
begin
|
87
|
-
case
|
184
|
+
case @auth_type
|
88
185
|
when Enum::AuthTypeEnum::CONFIG
|
89
|
-
client = OCI::LoadBalancer::LoadBalancerClient.new(config:
|
90
|
-
when Enum::AuthTypeEnum::
|
91
|
-
client = OCI::LoadBalancer::LoadBalancerClient.new(config:
|
92
|
-
when Enum::AuthTypeEnum::PRINCIPAL
|
93
|
-
client = OCI::LoadBalancer::LoadBalancerClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
186
|
+
client = OCI::LoadBalancer::LoadBalancerClient.new(config: @oci_config, endpoint: endpoint, retry_config: retry_config)
|
187
|
+
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
188
|
+
client = OCI::LoadBalancer::LoadBalancerClient.new(config: @oci_config, endpoint: endpoint, signer: @instance_principals_signer, retry_config: retry_config)
|
94
189
|
else
|
95
|
-
logger.warn("Unknown auth_type '#{
|
190
|
+
logger.warn("Unknown auth_type '#{@auth_type}' provided for load balancer client.")
|
96
191
|
end
|
192
|
+
logger.debug('LB Client created.')
|
97
193
|
@lb_client = client
|
98
194
|
rescue StandardError => e
|
99
195
|
logger.error("Error while creating load balancer client: #{e}")
|
@@ -102,26 +198,34 @@ module Util
|
|
102
198
|
@lb_client
|
103
199
|
end
|
104
200
|
|
105
|
-
def initialize_la_client(
|
201
|
+
def initialize_la_client()
|
106
202
|
client = nil
|
107
|
-
|
108
|
-
|
203
|
+
retry_config = Config::OCIClientRetryConfig.oci_default_retry_config if @oci_retry_config.nil?
|
204
|
+
|
205
|
+
logger.debug("Creating log analytics client with auth_type: #{@auth_type}")
|
206
|
+
|
207
|
+
endpoint = @la_endpoint
|
208
|
+
if endpoint.nil? && !@oci_domain.nil?
|
209
|
+
endpoint = "https://loganalytics.#{@oci_domain}"
|
210
|
+
logger.info("LA Client endpoint: #{endpoint}")
|
211
|
+
end
|
109
212
|
|
110
213
|
begin
|
111
|
-
case
|
214
|
+
case @auth_type
|
112
215
|
when Enum::AuthTypeEnum::CONFIG
|
113
|
-
client = OCI::LogAnalytics::LogAnalyticsClient.new(config:
|
114
|
-
endpoint:
|
115
|
-
retry_config:
|
216
|
+
client = OCI::LogAnalytics::LogAnalyticsClient.new(config: @oci_config,
|
217
|
+
endpoint: endpoint,
|
218
|
+
retry_config: retry_config)
|
116
219
|
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
117
|
-
client = OCI::LogAnalytics::LogAnalyticsClient.new(config:
|
118
|
-
endpoint:
|
119
|
-
signer:
|
120
|
-
retry_config:
|
220
|
+
client = OCI::LogAnalytics::LogAnalyticsClient.new(config: @oci_config,
|
221
|
+
endpoint: endpoint,
|
222
|
+
signer: @instance_principals_signer,
|
223
|
+
retry_config: retry_config)
|
121
224
|
else
|
122
|
-
logger.warn("Unknown auth_type while creating log analytics client: #{
|
225
|
+
logger.warn("Unknown auth_type while creating log analytics client: #{@auth_type}")
|
123
226
|
raise StandardError, 'Unknown auth_type for log analytics client.'
|
124
227
|
end
|
228
|
+
logger.debug('LA Client created.')
|
125
229
|
@la_client = client
|
126
230
|
rescue StandardError => e
|
127
231
|
logger.error("Error while creating log analytics client: #{e}")
|
@@ -130,86 +234,99 @@ module Util
|
|
130
234
|
@la_client
|
131
235
|
end
|
132
236
|
|
133
|
-
def
|
237
|
+
def initialize_rqs_client()
|
134
238
|
client = nil
|
135
|
-
|
239
|
+
endpoint = nil
|
240
|
+
retry_config = Config::OCIClientRetryConfig.oci_default_retry_config if @oci_retry_config.nil?
|
241
|
+
|
242
|
+
unless @oci_domain.nil?
|
243
|
+
endpoint = "https://query.#{@oci_domain}"
|
244
|
+
logger.info("RQS Client endpoint: #{endpoint}")
|
245
|
+
end
|
246
|
+
|
247
|
+
logger.debug("Creating resource search client with auth_type: #{@auth_type}")
|
248
|
+
|
136
249
|
begin
|
137
|
-
case
|
250
|
+
case @auth_type
|
138
251
|
when Enum::AuthTypeEnum::CONFIG
|
139
|
-
client = OCI::ResourceSearch::ResourceSearchClient.new(config:
|
140
|
-
when Enum::AuthTypeEnum::
|
141
|
-
client = OCI::ResourceSearch::ResourceSearchClient.new(config:
|
142
|
-
when Enum::AuthTypeEnum::PRINCIPAL
|
143
|
-
client = OCI::ResourceSearch::ResourceSearchClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
252
|
+
client = OCI::ResourceSearch::ResourceSearchClient.new(config: @oci_config, endpoint: endpoint, retry_config: retry_config)
|
253
|
+
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
254
|
+
client = OCI::ResourceSearch::ResourceSearchClient.new(config: @oci_config, endpoint: endpoint, signer: @instance_principals_signer, retry_config: retry_config)
|
144
255
|
else
|
145
|
-
logger.warn("Unknown auth_type '#{
|
256
|
+
logger.warn("Unknown auth_type '#{@auth_type}' provided for resource search client.")
|
146
257
|
end
|
147
|
-
|
258
|
+
logger.debug('RQS Client created.')
|
259
|
+
@rqs_client = client
|
148
260
|
rescue StandardError => e
|
149
261
|
logger.error("Error while creating resource search client: #{e}")
|
150
262
|
raise e
|
151
263
|
end
|
152
|
-
@
|
264
|
+
@rqs_client
|
153
265
|
end
|
154
266
|
|
155
|
-
def
|
267
|
+
def initialize_vcn_client()
|
156
268
|
client = nil
|
157
|
-
|
269
|
+
endpoint = nil
|
270
|
+
retry_config = Config::OCIClientRetryConfig.oci_default_retry_config if @oci_retry_config.nil?
|
271
|
+
|
272
|
+
unless @oci_domain.nil?
|
273
|
+
# NOTE: Dec 3rd, 2024
|
274
|
+
# VCN endpoint does not support region.oci.domain template hence converting to region.domain template
|
275
|
+
endpoint = "https://iaas.#{@oci_domain.gsub('.oci', '')}"
|
276
|
+
logger.info("VCN Client endpoint: #{endpoint}")
|
277
|
+
end
|
278
|
+
|
279
|
+
logger.debug("Creating virtual network client with auth_type: #{@auth_type}")
|
280
|
+
|
158
281
|
begin
|
159
|
-
case
|
282
|
+
case @auth_type
|
160
283
|
when Enum::AuthTypeEnum::CONFIG
|
161
|
-
client = OCI::Core::VirtualNetworkClient.new(config:
|
162
|
-
when Enum::AuthTypeEnum::
|
163
|
-
client = OCI::Core::VirtualNetworkClient.new(config:
|
164
|
-
when Enum::AuthTypeEnum::PRINCIPAL
|
165
|
-
client = OCI::Core::VirtualNetworkClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
284
|
+
client = OCI::Core::VirtualNetworkClient.new(config: @oci_config, endpoint: endpoint, retry_config: retry_config)
|
285
|
+
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
286
|
+
client = OCI::Core::VirtualNetworkClient.new(config: @oci_config, endpoint: endpoint, signer: @instance_principals_signer, retry_config: retry_config)
|
166
287
|
else
|
167
|
-
logger.warn("Unknown auth_type '#{
|
288
|
+
logger.warn("Unknown auth_type '#{@auth_type}' provided for virtual network client.")
|
168
289
|
end
|
169
|
-
|
290
|
+
logger.debug('VCN Client created.')
|
291
|
+
@vcn_client = client
|
170
292
|
rescue StandardError => e
|
171
293
|
logger.error("Error while creating virtual network client: #{e}")
|
172
294
|
raise e
|
173
295
|
end
|
174
|
-
@
|
296
|
+
@vcn_client
|
175
297
|
end
|
176
298
|
|
177
|
-
def
|
178
|
-
|
299
|
+
def initialize_rms_client()
|
300
|
+
client = nil
|
301
|
+
endpoint = nil
|
302
|
+
retry_config = Config::OCIClientRetryConfig.oci_default_retry_config if @oci_retry_config.nil?
|
179
303
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
end
|
304
|
+
unless @oci_domain.nil?
|
305
|
+
endpoint = "https://resourcemanager.#{@oci_domain}"
|
306
|
+
logger.info("VCN Client endpoint: #{endpoint}")
|
307
|
+
end
|
185
308
|
|
186
|
-
|
187
|
-
|
309
|
+
begin
|
310
|
+
case @auth_type
|
311
|
+
when Enum::AuthTypeEnum::CONFIG
|
312
|
+
client = OCI::ResourceManager::ResourceManagerClient.new(config: @oci_config,
|
313
|
+
endpoint: endpoint,
|
314
|
+
retry_config: retry_config)
|
315
|
+
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
316
|
+
client = OCI::ResourceManager::ResourceManagerClient.new(config: @oci_config,
|
317
|
+
endpoint: endpoint,
|
318
|
+
signer: @instance_principals_signer,
|
319
|
+
retry_config: retry_config)
|
188
320
|
else
|
189
|
-
|
190
|
-
@instance_principals_signer = instance_principals_signer = OCI::Auth::Signers::InstancePrincipalsSecurityTokenSigner.new
|
191
|
-
@auth_type = Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
321
|
+
logger.warn("Unknown auth_type '#{auth_object[:auth_type]}' provided for resource manager client.")
|
192
322
|
end
|
323
|
+
logger.debug('RMS Client created.')
|
324
|
+
@rms_client = client
|
193
325
|
rescue StandardError => e
|
194
|
-
logger.error("Error
|
326
|
+
logger.error("Error while creating resource manager client: #{e}")
|
195
327
|
raise e
|
196
328
|
end
|
197
|
-
|
198
|
-
end
|
199
|
-
|
200
|
-
def get_clients
|
201
|
-
@oci_clients
|
202
|
-
end
|
203
|
-
|
204
|
-
def set_clients
|
205
|
-
@oci_clients = {
|
206
|
-
ce_client: @ce_client,
|
207
|
-
id_client: @id_client,
|
208
|
-
lb_client: @lb_client,
|
209
|
-
la_client: @la_client,
|
210
|
-
rs_client: @rs_client,
|
211
|
-
vnc_client: @vnc_client
|
212
|
-
}
|
329
|
+
@rms_client
|
213
330
|
end
|
214
331
|
|
215
332
|
def get_auth_config_object
|
@@ -219,9 +336,11 @@ module Util
|
|
219
336
|
def set_auth_config_object
|
220
337
|
@auth_object = {
|
221
338
|
oci_config: @oci_config,
|
222
|
-
|
339
|
+
la_endpoint: @la_endpoint,
|
223
340
|
instance_principals_signer: @instance_principals_signer,
|
224
|
-
|
341
|
+
# workload_identity_signer: @workload_identity_signer,
|
342
|
+
auth_type: @auth_type,
|
343
|
+
oci_domain: @oci_domain
|
225
344
|
}.compact
|
226
345
|
end
|
227
346
|
end
|