Skip to content

Commit 9bd9c78

Browse files
CarolynRountreeddsharpe
authored andcommitted
Wdt automate tokenize credentials (#473)
* tokenize credentials in the model * special cases handled. updated discoverDomain scripts * Update discover.md * change variable file INFO message * Update discover.md * validate variable file is different in create,update,deploy and discover * shorten token names. correct variable file default used * put short name in alias definition * use common short name
1 parent d7b3e55 commit 9bd9c78

File tree

74 files changed

+697
-194
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+697
-194
lines changed

core/src/main/python/create.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from oracle.weblogic.deploy.util import FileUtils
1717
from oracle.weblogic.deploy.util import TranslateException
1818
from oracle.weblogic.deploy.util import VariableException
19-
from oracle.weblogic.deploy.util import WLSDeployArchive
2019
from oracle.weblogic.deploy.util import WLSDeployArchiveIOException
2120
from oracle.weblogic.deploy.util import WebLogicDeployToolingVersion
2221
from oracle.weblogic.deploy.validate import ValidateException
@@ -191,6 +190,7 @@ def __process_model_args(optional_arg_map):
191190
# this requirement is specific to create, other tools will verify it.
192191

193192
cla_helper.validate_model_present(_program_name, optional_arg_map)
193+
cla_helper.validate_variable_file_exists(_program_name, optional_arg_map)
194194
return
195195

196196

core/src/main/python/deploy.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def __process_model_args(optional_arg_map):
126126
"""
127127
cla_helper.validate_optional_archive(_program_name, optional_arg_map)
128128
cla_helper.validate_model_present(_program_name, optional_arg_map)
129+
cla_helper.validate_variable_file_exists(_program_name, optional_arg_map)
129130
return
130131

131132

core/src/main/python/discover.py

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
# Used by shell script to locate WLST
7272
CommandLineArgUtil.MODEL_FILE_SWITCH,
7373
CommandLineArgUtil.DOMAIN_TYPE_SWITCH,
74-
CommandLineArgUtil.VARIABLE_PROPERTIES_FILE_SWITCH,
74+
CommandLineArgUtil.VARIABLE_FILE_SWITCH,
7575
CommandLineArgUtil.ADMIN_URL_SWITCH,
7676
CommandLineArgUtil.ADMIN_USER_SWITCH,
7777
CommandLineArgUtil.ADMIN_PASS_SWITCH,
@@ -189,20 +189,20 @@ def __process_variable_filename_arg(optional_arg_map):
189189
"""
190190
_method_name = '__process_variable_filename_arg'
191191

192-
if CommandLineArgUtil.VARIABLE_PROPERTIES_FILE_SWITCH in optional_arg_map:
193-
variable_injector_file_name = variable_injector.get_default_variable_injector_file_name()
192+
if CommandLineArgUtil.VARIABLE_FILE_SWITCH in optional_arg_map:
193+
variable_injector_file_name = optional_arg_map[CommandLineArgUtil.VARIABLE_FILE_SWITCH]
194194
try:
195-
FileUtils.validateExistingFile(variable_injector_file_name)
195+
FileUtils.validateWritableFile(variable_injector_file_name)
196196
except IllegalArgumentException, ie:
197197
ex = exception_helper.create_cla_exception('WLSDPLY-06021', optional_arg_map[
198-
CommandLineArgUtil.VARIABLE_PROPERTIES_FILE_SWITCH], variable_injector_file_name,
198+
CommandLineArgUtil.VARIABLE_FILE_SWITCH], variable_injector_file_name,
199199
ie.getLocalizedMessage(), error=ie)
200200
__logger.throwing(ex, class_name=_class_name, method_name=_method_name)
201201
raise ex
202202
return
203203

204204

205-
def __discover(model_context, aliases):
205+
def __discover(model_context, aliases, injector):
206206
"""
207207
Populate the model from the domain.
208208
:param model_context: the model context
@@ -216,14 +216,14 @@ def __discover(model_context, aliases):
216216
try:
217217
_add_domain_name(base_location, aliases)
218218
DomainInfoDiscoverer(model_context, model.get_model_domain_info(), base_location, wlst_mode=__wlst_mode,
219-
aliases=aliases).discover()
219+
aliases=aliases, variable_injector=injector).discover()
220220
TopologyDiscoverer(model_context, model.get_model_topology(), base_location, wlst_mode=__wlst_mode,
221-
aliases=aliases).discover()
221+
aliases=aliases, variable_injector=injector).discover()
222222
ResourcesDiscoverer(model_context, model.get_model_resources(), base_location, wlst_mode=__wlst_mode,
223-
aliases=aliases).discover()
223+
aliases=aliases, variable_injector=injector).discover()
224224
DeploymentsDiscoverer(model_context, model.get_model_app_deployments(), base_location, wlst_mode=__wlst_mode,
225-
aliases=aliases).discover()
226-
__discover_multi_tenant(model, model_context, base_location, aliases)
225+
aliases=aliases, variable_injector=injector).discover()
226+
__discover_multi_tenant(model, model_context, base_location, aliases, injector)
227227
except AliasException, ae:
228228
wls_version = WebLogicHelper(__logger).get_actual_weblogic_version()
229229
wlst_mode = WlstModes.from_value(__wlst_mode)
@@ -255,14 +255,15 @@ def _add_domain_name(location, aliases):
255255
raise de
256256

257257

258-
def __discover_multi_tenant(model, model_context, base_location, aliases):
258+
def __discover_multi_tenant(model, model_context, base_location, aliases, injector):
259259
"""
260260
Discover the multi-tenant-related parts of the domain, if they exist.
261261
:param model: the model object to populate
262262
:param model_context: the model context object
263263
:raises DiscoverException: if an error occurs during discovery
264264
"""
265-
MultiTenantDiscoverer(model, model_context, base_location, wlst_mode=__wlst_mode, aliases=aliases).discover()
265+
MultiTenantDiscoverer(model, model_context, base_location,
266+
wlst_mode=__wlst_mode, aliases=aliases, variable_injector=injector).discover()
266267
return
267268

268269

@@ -423,7 +424,7 @@ def __persist_model(model, model_context):
423424
return
424425

425426

426-
def __check_and_customize_model(model, model_context, aliases):
427+
def __check_and_customize_model(model, model_context, aliases, injector):
427428
"""
428429
Customize the model dictionary before persisting. Validate the model after customization for informational
429430
purposes. Any validation errors will not stop the discovered model to be persisted.
@@ -435,10 +436,12 @@ def __check_and_customize_model(model, model_context, aliases):
435436
if filter_helper.apply_filters(model.get_model(), "discover"):
436437
__logger.info('WLSDPLY-06014', _class_name=_class_name, method_name=_method_name)
437438

438-
inserted, variable_model, variable_file_name = VariableInjector(_program_name, model.get_model(), model_context,
439-
WebLogicHelper(
440-
__logger).get_actual_weblogic_version()).\
441-
inject_variables_keyword_file()
439+
cache = None
440+
if injector is not None:
441+
cache = injector.get_variable_cache()
442+
inserted, variable_model, variable_file_name = \
443+
VariableInjector(_program_name, model.get_model(), model_context,
444+
WebLogicHelper(__logger).get_actual_weblogic_version(), cache).inject_variables_keyword_file()
442445
if inserted:
443446
model = Model(variable_model)
444447
try:
@@ -481,7 +484,6 @@ def main(args):
481484

482485
exit_code = CommandLineArgUtil.PROG_OK_EXIT_CODE
483486

484-
model_context = None
485487
try:
486488
model_context = __process_args(args)
487489
except CLAException, ex:
@@ -503,15 +505,23 @@ def main(args):
503505

504506
aliases = Aliases(model_context, wlst_mode=__wlst_mode)
505507
model = None
508+
discover_injector = None
509+
if model_context.get_variable_file() is not None:
510+
discover_injector = VariableInjector(_program_name, dict(), model_context,
511+
WebLogicHelper(__logger).get_actual_weblogic_version())
512+
513+
__logger.info('WLSDPLY-06025', class_name=_class_name, method_name=_method_name)
514+
else:
515+
__logger.info('WLSDPLY-06024', class_name=_class_name, method_name=_method_name)
506516
try:
507-
model = __discover(model_context, aliases)
517+
model = __discover(model_context, aliases, discover_injector)
508518
except DiscoverException, ex:
509519
__logger.severe('WLSDPLY-06011', _program_name, model_context.get_domain_name(),
510520
model_context.get_domain_home(), ex.getLocalizedMessage(),
511521
error=ex, class_name=_class_name, method_name=_method_name)
512522
__log_and_exit(model_context, CommandLineArgUtil.PROG_ERROR_EXIT_CODE, _class_name, _method_name)
513-
514-
model = __check_and_customize_model(model, model_context, aliases)
523+
524+
model = __check_and_customize_model(model, model_context, aliases, discover_injector)
515525

516526
try:
517527
__persist_model(model, model_context)
@@ -525,6 +535,7 @@ def main(args):
525535

526536
__log_and_exit(model_context, exit_code, _class_name, _method_name)
527537

538+
528539
if __name__ == '__main__' or __name__ == 'main':
529540
WebLogicDeployToolingVersion.logVersionInfo(_program_name)
530541
main(sys.argv)

core/src/main/python/update.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ def __process_model_args(optional_arg_map):
135135
"""
136136
cla_helper.validate_optional_archive(_program_name, optional_arg_map)
137137
cla_helper.validate_model_present(_program_name, optional_arg_map)
138+
cla_helper.validate_variable_file_exists(_program_name, optional_arg_map)
138139
return
139140

140141

core/src/main/python/variable_inject.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ def main(args):
310310
__logger.exiting(result=exit_code, class_name=_class_name, method_name=_method_name)
311311
sys.exit(exit_code)
312312

313+
313314
if __name__ == '__main__' or __name__ == 'main':
314315
WebLogicDeployToolingVersion.logVersionInfo(_program_name)
315316
main(sys.argv)

core/src/main/python/wlsdeploy/aliases/alias_constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
RESTART_REQUIRED = 'restart_required'
2626
SET_MBEAN_TYPE = 'set_mbean_type'
2727
SET_METHOD = 'set_method'
28+
SHORT_NAME = 'short_name'
2829
UNRESOLVED_ATTRIBUTES_MAP = '__unresolved_attributes__'
2930
UNRESOLVED_FOLDERS_MAP = '__unresolved_folders__'
3031
USES_PATH_TOKENS = 'uses_path_tokens'

core/src/main/python/wlsdeploy/aliases/alias_entries.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
from wlsdeploy.aliases.alias_constants import SECURITY_PROVIDER_NAME_MAP
3737
from wlsdeploy.aliases.alias_constants import SET_MBEAN_TYPE
3838
from wlsdeploy.aliases.alias_constants import SET_METHOD
39+
from wlsdeploy.aliases.alias_constants import SHORT_NAME
3940
from wlsdeploy.aliases.alias_constants import SINGLE
4041
from wlsdeploy.aliases.alias_constants import UNRESOLVED_ATTRIBUTES_MAP
4142
from wlsdeploy.aliases.alias_constants import UNRESOLVED_FOLDERS_MAP
@@ -110,7 +111,7 @@ class AliasEntries(object):
110111
'Server': 'Server',
111112
'ServerTemplate': 'ServerTemplate',
112113
'ShutdownClass': 'ShutdownClass',
113-
'SingletonService' : 'SingletonService',
114+
'SingletonService': 'SingletonService',
114115
'StartupClass': 'StartupClass',
115116
'UnixMachine': 'UnixMachine',
116117
'VirtualHost': 'VirtualHost',
@@ -842,7 +843,7 @@ def is_version_valid_location(self, location):
842843
"""
843844
_method_name = 'is_version_valid_location'
844845

845-
_logger.entering(str(location),class_name=_class_name, method_name=_method_name)
846+
_logger.entering(str(location), class_name=_class_name, method_name=_method_name)
846847

847848
code = ValidationCodes.VALID
848849
message = ''
@@ -886,6 +887,21 @@ def is_valid_model_attribute_name_for_location(self, location, model_attribute_n
886887
_logger.exiting(class_name=_class_name, method_name=_method_name, result=[result, valid_version_range])
887888
return result, valid_version_range
888889

890+
def get_folder_short_name_for_location(self, location):
891+
"""
892+
Retrieve the shortened name for the model folder at the provided location.
893+
:param location: location context for the model folder
894+
:return: short name or model_folder name if not short named assigned
895+
"""
896+
_method_name = 'get_folder_short_name'
897+
_logger.entering(location.get_folder_path(), class_name=_class_name, method_name=_method_name)
898+
folder_dict = self.__get_dictionary_for_location(location, False)
899+
result = ''
900+
if SHORT_NAME in folder_dict:
901+
result = folder_dict[SHORT_NAME]
902+
_logger.exiting(class_name=_class_name, method_name=_method_name, result=result)
903+
return result
904+
889905
###########################################################################
890906
# Private helper methods #
891907
###########################################################################
@@ -1127,6 +1143,9 @@ def __apply_wlst_context_changes(self, path_name, alias_dict, parent_dict):
11271143
if DEFAULT_NAME_VALUE in alias_dict:
11281144
result[DEFAULT_NAME_VALUE] = self._resolve_curly_braces(alias_dict[DEFAULT_NAME_VALUE])
11291145

1146+
if SHORT_NAME in alias_dict:
1147+
result[SHORT_NAME] = alias_dict[SHORT_NAME]
1148+
11301149
if WLST_PATHS in alias_dict:
11311150
wlst_paths = alias_dict[WLST_PATHS]
11321151
result_wlst_paths = dict()
@@ -1288,7 +1307,7 @@ def __resolve_folder_params(self, path_name, alias_dict):
12881307
add_entry = folder_set
12891308
break
12901309
for key, value in add_entry.iteritems():
1291-
if key not in [ ATTRIBUTES, FOLDERS ]:
1310+
if key not in [ATTRIBUTES, FOLDERS]:
12921311
alias_dict[key] = value
12931312
else:
12941313
_logger.fine('WLSDPLY-08136', path_name, value, class_name=_class_name,

core/src/main/python/wlsdeploy/aliases/aliases.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,16 @@ def get_model_folder_path(self, location):
152152
"""
153153
return self._alias_entries.get_model_folder_path_for_location(location)
154154

155+
def get_folder_short_name(self, location):
156+
"""
157+
Return the short name for the folder at the provided location or an empty
158+
string if the short name is not defined for the folder in the alias
159+
definition.
160+
:param location: location context for the folder
161+
:return: short name or empty string if not found
162+
"""
163+
return self._alias_entries.get_folder_short_name_for_location(location)
164+
155165
###########################################################################
156166
# WLST Path-related methods #
157167
###########################################################################

core/src/main/python/wlsdeploy/aliases/model_constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
DISTRIBUTED_QUEUE_MEMBER = 'DistributedQueueMember'
9292
DISTRIBUTED_TOPIC = 'DistributedTopic'
9393
DISTRIBUTED_TOPIC_MEMBER = 'DistributedTopicMember'
94+
DOMAIN = 'Domain'
9495
DOMAIN_NAME = 'Name'
9596
DOMAIN_INFO = 'domainInfo'
9697
DOMAIN_LIBRARIES = 'domainLibraries'

core/src/main/python/wlsdeploy/tool/discover/coherence_resources_discoverer.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@ class CoherenceResourcesDiscoverer(Discoverer):
3030
Discover the weblogic coherence resources from the domain.
3131
"""
3232

33-
def __init__(self, model_context, resource_dictionary, base_location, wlst_mode=WlstModes.OFFLINE, aliases=None):
33+
def __init__(self, model_context, resource_dictionary, base_location,
34+
wlst_mode=WlstModes.OFFLINE, aliases=None, variable_injector=None):
3435
"""
3536
Initialize this discoverer instance with the specific information needed to discover coherence resources.
3637
:param model_context: context about the model for this instance of discover domain
3738
:param resource_dictionary: was provided on the discover call, else use initialized resources
3839
:param base_location: current context for discover or new context if not provided
3940
"""
40-
Discoverer.__init__(self, model_context, base_location, wlst_mode, aliases)
41+
Discoverer.__init__(self, model_context, base_location, wlst_mode, aliases, variable_injector)
4142
self._dictionary = resource_dictionary
4243
self._add_att_handler(model_constants.COHERENCE_CUSTOM_CLUSTER_CONFIGURATION,
4344
self._add_custom_configuration_to_archive)

core/src/main/python/wlsdeploy/tool/discover/common_resources_discoverer.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@ class CommonResourcesDiscoverer(Discoverer):
3030
partition resource group.
3131
"""
3232

33-
def __init__(self, model_context, resource_dictionary, base_location, wlst_mode=WlstModes.OFFLINE, aliases=None):
33+
def __init__(self, model_context, resource_dictionary, base_location,
34+
wlst_mode=WlstModes.OFFLINE, aliases=None, variable_injector=None):
3435
"""
3536
3637
:param model_context: context about the model for this instance of discover domain
3738
:param resource_dictionary: to populate the common resources. By default, populates the initialized resources
3839
:param base_location: to look for common weblogic resources. By default this is the global path or '/'
3940
"""
40-
Discoverer.__init__(self, model_context, base_location, wlst_mode, aliases)
41+
Discoverer.__init__(self, model_context, base_location, wlst_mode, aliases, variable_injector)
4142
self._dictionary = resource_dictionary
4243
self._add_att_handler(model_constants.PATH_TO_SCRIPT, self._add_wldf_script)
4344

@@ -65,7 +66,8 @@ def discover(self):
6566
model_folder_name, folder_result = self.get_wldf_system_resources()
6667
discoverer.add_to_model_if_not_empty(self._dictionary, model_folder_name, folder_result)
6768
CoherenceResourcesDiscoverer(self._model_context, self._dictionary, self._base_location,
68-
wlst_mode=self._wlst_mode, aliases=self._aliases).discover()
69+
wlst_mode=self._wlst_mode, aliases=self._aliases,
70+
variable_injector=self._get_variable_injector()).discover()
6971

7072
_logger.exiting(class_name=_class_name, method_name=_method_name)
7173
return self._dictionary

0 commit comments

Comments
 (0)