39
39
from wlsdeploy .tool .discover .topology_discoverer import TopologyDiscoverer
40
40
from wlsdeploy .tool .util import filter_helper
41
41
from wlsdeploy .tool .util import model_context_helper
42
+ from wlsdeploy .tool .util .credential_injector import CredentialInjector
42
43
from wlsdeploy .tool .util .variable_injector import VariableInjector
43
44
from wlsdeploy .tool .util import wlst_helper
44
45
from wlsdeploy .tool .util .wlst_helper import WlstHelper
@@ -164,12 +165,12 @@ def __process_java_home(optional_arg_map):
164
165
class_name = _class_name , method_name = _method_name )
165
166
166
167
167
- def __discover (model_context , aliases , injector , helper ):
168
+ def __discover (model_context , aliases , credential_injector , helper ):
168
169
"""
169
170
Populate the model from the domain.
170
171
:param model_context: the model context
171
172
:param aliases: aliases instance for discover
172
- :param injector: variable injector instance
173
+ :param credential_injector: credential injector instance
173
174
:param helper: wlst_helper instance
174
175
:return: the fully-populated model
175
176
:raises DiscoverException: if an error occurred while discover the domain
@@ -181,14 +182,14 @@ def __discover(model_context, aliases, injector, helper):
181
182
try :
182
183
_add_domain_name (base_location , aliases , helper )
183
184
DomainInfoDiscoverer (model_context , model .get_model_domain_info (), base_location , wlst_mode = __wlst_mode ,
184
- aliases = aliases , variable_injector = injector ).discover ()
185
+ aliases = aliases , credential_injector = credential_injector ).discover ()
185
186
TopologyDiscoverer (model_context , model .get_model_topology (), base_location , wlst_mode = __wlst_mode ,
186
- aliases = aliases , variable_injector = injector ).discover ()
187
+ aliases = aliases , credential_injector = credential_injector ).discover ()
187
188
ResourcesDiscoverer (model_context , model .get_model_resources (), base_location , wlst_mode = __wlst_mode ,
188
- aliases = aliases , variable_injector = injector ).discover ()
189
+ aliases = aliases , credential_injector = credential_injector ).discover ()
189
190
DeploymentsDiscoverer (model_context , model .get_model_app_deployments (), base_location , wlst_mode = __wlst_mode ,
190
- aliases = aliases , variable_injector = injector ).discover ()
191
- __discover_multi_tenant (model , model_context , base_location , aliases , injector )
191
+ aliases = aliases , credential_injector = credential_injector ).discover ()
192
+ __discover_multi_tenant (model , model_context , base_location , aliases , credential_injector )
192
193
except AliasException , ae :
193
194
wls_version = WebLogicHelper (__logger ).get_actual_weblogic_version ()
194
195
wlst_mode = WlstModes .from_value (__wlst_mode )
@@ -228,7 +229,7 @@ def __discover_multi_tenant(model, model_context, base_location, aliases, inject
228
229
:raises DiscoverException: if an error occurs during discovery
229
230
"""
230
231
MultiTenantDiscoverer (model , model_context , base_location ,
231
- wlst_mode = __wlst_mode , aliases = aliases , variable_injector = injector ).discover ()
232
+ wlst_mode = __wlst_mode , aliases = aliases , credential_injector = injector ).discover ()
232
233
return
233
234
234
235
@@ -391,38 +392,45 @@ def __persist_model(model, model_context):
391
392
return
392
393
393
394
394
- def __check_and_customize_model (model , model_context , aliases , password_injector ):
395
+ def __check_and_customize_model (model , model_context , aliases , credential_injector ):
395
396
"""
396
397
Customize the model dictionary before persisting. Validate the model after customization for informational
397
398
purposes. Any validation errors will not stop the discovered model to be persisted.
398
399
:param model: completely discovered model, before any tokenization
399
400
:param model_context: configuration from command-line
400
401
:param aliases: used for validation if model changes are made
401
- :param password_injector : injector created to collect and tokenize passwords , possibly None
402
+ :param credential_injector : injector created to collect and tokenize credentials , possibly None
402
403
"""
403
404
_method_name = '__check_and_customize_model'
404
405
__logger .entering (class_name = _class_name , method_name = _method_name )
405
406
406
407
if filter_helper .apply_filters (model .get_model (), "discover" , model_context ):
407
408
__logger .info ('WLSDPLY-06014' , _class_name = _class_name , method_name = _method_name )
408
409
409
- cache = None
410
- if password_injector is not None :
411
- cache = password_injector .get_variable_cache ()
410
+ # target config always present in model context, default config if not declared
411
+ target_configuration = model_context .get_target_configuration ()
412
412
413
- # Generate k8s create secret script, possibly using lax validation method
414
- if model_context .is_targetted_config ():
415
- validation_method = model_context .get_target_configuration ().get_validation_method ()
416
- model_context .set_validation_method (validation_method )
417
- target_configuration_helper .generate_k8s_script (model_context , cache , model .get_model ())
413
+ # if target config declared, use the validation method it contains (lax, etc.)
414
+ if model_context .is_targetted_config ():
415
+ validation_method = target_configuration .get_validation_method ()
416
+ model_context .set_validation_method (validation_method )
417
+
418
+ credential_cache = None
419
+ if credential_injector is not None :
420
+ credential_cache = credential_injector .get_variable_cache ()
421
+
422
+ # Generate k8s create secret script
423
+ if target_configuration .uses_credential_secrets ():
424
+ target_configuration_helper .generate_k8s_script (model_context , credential_cache , model .get_model ())
418
425
419
- # if target handles password substitution , clear property cache to keep out of variables file.
420
- if model_context .get_target_configuration ().manages_credentials ():
421
- cache .clear ()
426
+ # if target handles credential configuration , clear property cache to keep out of variables file.
427
+ if model_context .get_target_configuration ().manages_credentials ():
428
+ credential_cache .clear ()
422
429
423
- # Apply the injectors specified in model_variable_injector.json, or in the target configuration
430
+ # Apply the injectors specified in model_variable_injector.json, or in the target configuration.
431
+ # Include the variable mappings that were collected in credential_cache.
424
432
variable_injector = VariableInjector (_program_name , model .get_model (), model_context ,
425
- WebLogicHelper (__logger ).get_actual_weblogic_version (), cache )
433
+ WebLogicHelper (__logger ).get_actual_weblogic_version (), credential_cache )
426
434
427
435
inserted , variable_model , variable_file_name = variable_injector .inject_variables_keyword_file ()
428
436
@@ -490,23 +498,23 @@ def main(args):
490
498
491
499
aliases = Aliases (model_context , wlst_mode = __wlst_mode , exception_type = ExceptionType .DISCOVER )
492
500
model = None
493
- discover_injector = None
501
+ credential_injector = None
494
502
if model_context .get_variable_file () is not None :
495
- discover_injector = VariableInjector (_program_name , dict (), model_context ,
496
- WebLogicHelper (__logger ).get_actual_weblogic_version ())
503
+ credential_injector = CredentialInjector (_program_name , dict (), model_context ,
504
+ WebLogicHelper (__logger ).get_actual_weblogic_version ())
497
505
498
506
__logger .info ('WLSDPLY-06025' , class_name = _class_name , method_name = _method_name )
499
507
else :
500
508
__logger .info ('WLSDPLY-06024' , class_name = _class_name , method_name = _method_name )
501
509
502
510
try :
503
- model = __discover (model_context , aliases , discover_injector , helper )
511
+ model = __discover (model_context , aliases , credential_injector , helper )
504
512
505
513
if model_context .is_targetted_config ():
506
514
# do this before variables have been inserted into model
507
515
target_configuration_helper .create_additional_output (model , model_context , aliases , ExceptionType .DISCOVER )
508
516
509
- model = __check_and_customize_model (model , model_context , aliases , discover_injector )
517
+ model = __check_and_customize_model (model , model_context , aliases , credential_injector )
510
518
511
519
except DiscoverException , ex :
512
520
__logger .severe ('WLSDPLY-06011' , _program_name , model_context .get_domain_name (),
0 commit comments