Skip to content

Commit 1d85f60

Browse files
committed
Remove JRF elements during discover
1 parent 144e847 commit 1d85f60

File tree

8 files changed

+220
-51
lines changed

8 files changed

+220
-51
lines changed

core/src/main/python/discover.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
from wlsdeploy.aliases.wlst_modes import WlstModes
3535
from wlsdeploy.exception import exception_helper
3636
from wlsdeploy.logging.platform_logger import PlatformLogger
37+
from wlsdeploy.tool.create.domain_typedef import DomainTypedef
3738
from wlsdeploy.tool.discover import discoverer
3839
from wlsdeploy.tool.discover.deployments_discoverer import DeploymentsDiscoverer
3940
from wlsdeploy.tool.discover.domain_info_discoverer import DomainInfoDiscoverer
@@ -43,6 +44,7 @@
4344
from wlsdeploy.tool.util import filter_helper
4445
from wlsdeploy.tool.util.variable_injector import VariableInjector
4546
from wlsdeploy.tool.validate.validator import Validator
47+
from wlsdeploy.util import dictionary_utils
4648
from wlsdeploy.util import getcreds
4749
from wlsdeploy.util import model_translator
4850
from wlsdeploy.util import tool_exit
@@ -85,6 +87,12 @@ def __process_args(args):
8587
cla_util = CommandLineArgUtil(_program_name, __required_arguments, __optional_arguments)
8688
required_arg_map, optional_arg_map = cla_util.process_args(args)
8789

90+
domain_type = dictionary_utils.get_element(optional_arg_map, CommandLineArgUtil.DOMAIN_TYPE_SWITCH)
91+
if domain_type is None:
92+
domain_type = 'WLS'
93+
domain_typedef = DomainTypedef(_program_name, domain_type)
94+
optional_arg_map[CommandLineArgUtil.DOMAIN_TYPEDEF] = domain_typedef
95+
8896
__verify_required_args_present(required_arg_map)
8997
__wlst_mode = __process_online_args(optional_arg_map)
9098
__process_archive_filename_arg(required_arg_map)

core/src/main/python/wlsdeploy/tool/create/domain_typedef.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ class DomainTypedef(object):
2424
__domain_typedefs_location = os.path.join(os.environ.get('WLSDEPLOY_HOME'), 'lib', 'typedefs')
2525
__domain_typedef_extension = '.json'
2626

27+
__wild_card_suffix = '%%'
28+
__wild_card_suffix_len = len(__wild_card_suffix)
29+
2730
def __init__(self, program_name, domain_type):
2831
"""
2932
The DomainTypedef constructor.
@@ -61,6 +64,12 @@ def __init__(self, program_name, domain_type):
6164
self._paths_resolved = False
6265
self._model_context = None
6366
self._version_typedef_name = None
67+
68+
if 'system-elements' in self._domain_typedefs_dict:
69+
self._system_elements = self._domain_typedefs_dict['system-elements']
70+
else:
71+
self._system_elements = {}
72+
6473
return
6574

6675
def set_model_context(self, model_context):
@@ -110,6 +119,39 @@ def get_rcu_schemas(self):
110119
# resolution for create.py argument processing.
111120
return list(self._domain_typedef['rcuSchemas'])
112121

122+
def is_system_app(self, name):
123+
return self._is_system_name(name, 'apps')
124+
125+
def is_system_shared_library(self, name):
126+
return self._is_system_name(name, 'shared-libraries')
127+
128+
def is_system_datasource(self, name):
129+
return self._is_system_name(name, 'datasources')
130+
131+
def is_system_coherence_cluster(self, name):
132+
return self._is_system_name(name, 'coherence-clusters')
133+
134+
def is_system_wldf(self, name):
135+
return self._is_system_name(name, 'wldf')
136+
137+
def is_system_startup_class(self, name):
138+
return self._is_system_name(name, 'startup-classes')
139+
140+
def is_system_shutdown_class(self, name):
141+
return self._is_system_name(name, 'shutdown-classes')
142+
143+
def _is_system_name(self, name, key):
144+
if key in self._system_elements:
145+
system_names = self._system_elements[key]
146+
for system_name in system_names:
147+
if system_name.endswith(self.__wild_card_suffix):
148+
prefix = system_name[0:0 - self.__wild_card_suffix_len]
149+
if name.startswith(prefix):
150+
return True
151+
elif system_name == name:
152+
return True
153+
return False
154+
113155
def __resolve_paths(self):
114156
"""
115157
Resolve any tokens in the template paths.

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

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,21 @@ def get_coherence_clusters(self):
7474
coherence_clusters = self._find_names_in_folder(location)
7575
if coherence_clusters is not None:
7676
_logger.info('WLSDPLY-06311', len(coherence_clusters), class_name=_class_name, method_name=_method_name)
77+
typedef = self._model_context.get_domain_typedef()
7778
name_token = self._alias_helper.get_name_token(location)
7879
for coherence_cluster in coherence_clusters:
79-
_logger.info('WLSDPLY-06312', coherence_cluster, class_name=_class_name, method_name=_method_name)
80-
location.add_name_token(name_token, coherence_cluster)
81-
result[coherence_cluster] = OrderedDict()
82-
self._populate_model_parameters(result[coherence_cluster], location)
83-
model_subfolder_name, subfolder_result = self.get_coherence_cache_config(location)
84-
discoverer.add_to_model_if_not_empty(result[coherence_cluster], model_subfolder_name, subfolder_result)
85-
model_subfolder_name, subfolder_result = self.get_coherence_resource(location)
86-
discoverer.add_to_model_if_not_empty(result[coherence_cluster], model_subfolder_name, subfolder_result)
87-
location.remove_name_token(name_token)
80+
if typedef.is_system_coherence_cluster(coherence_cluster):
81+
_logger.info('WLSDPLY-06322', coherence_cluster, class_name=_class_name, method_name=_method_name)
82+
else:
83+
_logger.info('WLSDPLY-06312', coherence_cluster, class_name=_class_name, method_name=_method_name)
84+
location.add_name_token(name_token, coherence_cluster)
85+
result[coherence_cluster] = OrderedDict()
86+
self._populate_model_parameters(result[coherence_cluster], location)
87+
model_subfolder_name, subfolder_result = self.get_coherence_cache_config(location)
88+
discoverer.add_to_model_if_not_empty(result[coherence_cluster], model_subfolder_name, subfolder_result)
89+
model_subfolder_name, subfolder_result = self.get_coherence_resource(location)
90+
discoverer.add_to_model_if_not_empty(result[coherence_cluster], model_subfolder_name, subfolder_result)
91+
location.remove_name_token(name_token)
8892

8993
_logger.exiting(class_name=_class_name, method_name=_method_name, result=result)
9094
return model_top_folder_name, result

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

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -83,21 +83,25 @@ def get_datasources(self):
8383
datasources = self._find_names_in_folder(location)
8484
if datasources is not None:
8585
_logger.info('WLSDPLY-06340', len(datasources), class_name=_class_name, method_name=_method_name)
86+
typedef = self._model_context.get_domain_typedef()
8687
name_token = self._alias_helper.get_name_token(location)
8788
for datasource in datasources:
88-
_logger.info('WLSDPLY-06341', datasource, class_name=_class_name, method_name=_method_name)
89-
result[datasource] = OrderedDict()
90-
location.add_name_token(name_token, datasource)
91-
self._populate_model_parameters(result[datasource], location)
89+
if typedef.is_system_datasource(datasource):
90+
_logger.info('WLSDPLY-06361', datasource, class_name=_class_name, method_name=_method_name)
91+
else:
92+
_logger.info('WLSDPLY-06341', datasource, class_name=_class_name, method_name=_method_name)
93+
result[datasource] = OrderedDict()
94+
location.add_name_token(name_token, datasource)
95+
self._populate_model_parameters(result[datasource], location)
9296

93-
location.append_location(model_second_folder)
94-
if self.wlst_cd(self._alias_helper.get_wlst_attributes_path(location), location):
95-
result[datasource][model_second_folder] = OrderedDict()
96-
resource_result = result[datasource][model_second_folder]
97-
self._populate_model_parameters(resource_result, location)
98-
self._discover_subfolders(resource_result, location)
99-
location.remove_name_token(name_token)
100-
location.pop_location()
97+
location.append_location(model_second_folder)
98+
if self.wlst_cd(self._alias_helper.get_wlst_attributes_path(location), location):
99+
result[datasource][model_second_folder] = OrderedDict()
100+
resource_result = result[datasource][model_second_folder]
101+
self._populate_model_parameters(resource_result, location)
102+
self._discover_subfolders(resource_result, location)
103+
location.remove_name_token(name_token)
104+
location.pop_location()
101105
_logger.exiting(class_name=_class_name, method_name=_method_name, result=result)
102106
return model_top_folder_name, result
103107

@@ -297,14 +301,18 @@ def get_wldf_system_resources(self):
297301
wldf_resources = self._find_names_in_folder(location)
298302
if wldf_resources is not None:
299303
_logger.info('WLSDPLY-06357', len(wldf_resources), class_name=_class_name, method_name=_method_name)
304+
typedef = self._model_context.get_domain_typedef()
300305
name_token = self._alias_helper.get_name_token(location)
301306
for wldf_resource in wldf_resources:
302-
_logger.info('WLSDPLY-06358', wldf_resource, class_name=_class_name, method_name=_method_name)
303-
location.add_name_token(name_token, wldf_resource)
304-
result[wldf_resource] = OrderedDict()
305-
self._populate_model_parameters(result[wldf_resource], location)
306-
self._discover_subfolders(result[wldf_resource], location)
307-
location.remove_name_token(name_token)
307+
if typedef.is_system_wldf(wldf_resource):
308+
_logger.info('WLSDPLY-06362', wldf_resource, class_name=_class_name, method_name=_method_name)
309+
else:
310+
_logger.info('WLSDPLY-06358', wldf_resource, class_name=_class_name, method_name=_method_name)
311+
location.add_name_token(name_token, wldf_resource)
312+
result[wldf_resource] = OrderedDict()
313+
self._populate_model_parameters(result[wldf_resource], location)
314+
self._discover_subfolders(result[wldf_resource], location)
315+
location.remove_name_token(name_token)
308316
_logger.exiting(class_name=_class_name, method_name=_method_name, result=model_top_folder_name)
309317
return model_top_folder_name, result
310318

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

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,19 @@ def get_shared_libraries(self):
6464
libraries = self._find_names_in_folder(location)
6565
if libraries:
6666
_logger.info('WLSDPLY-06381', len(libraries), class_name=_class_name, method_name=_method_name)
67+
typedef = self._model_context.get_domain_typedef()
6768
name_token = self._alias_helper.get_name_token(location)
6869
for library in libraries:
69-
_logger.info('WLSDPLY-06382', library, class_name=_class_name, method_name=_method_name)
70-
location.add_name_token(name_token, library)
71-
result[library] = OrderedDict()
72-
self._populate_model_parameters(result[library], location)
73-
self._add_shared_libraries_to_archive(library, result[library])
74-
self._discover_subfolders(result[library], location)
75-
location.remove_name_token(name_token)
70+
if typedef.is_system_shared_library(library):
71+
_logger.info('WLSDPLY-06401', library, class_name=_class_name, method_name=_method_name)
72+
else:
73+
_logger.info('WLSDPLY-06382', library, class_name=_class_name, method_name=_method_name)
74+
location.add_name_token(name_token, library)
75+
result[library] = OrderedDict()
76+
self._populate_model_parameters(result[library], location)
77+
self._add_shared_libraries_to_archive(library, result[library])
78+
self._discover_subfolders(result[library], location)
79+
location.remove_name_token(name_token)
7680

7781
_logger.exiting(class_name=_class_name, method_name=_method_name, result=model_top_folder_name)
7882
return model_top_folder_name, result
@@ -185,15 +189,20 @@ def get_applications(self):
185189
applications = self._find_names_in_folder(location)
186190
if applications:
187191
_logger.info('WLSDPLY-06391', len(applications), class_name=_class_name, method_name=_method_name)
192+
typedef = self._model_context.get_domain_typedef()
188193
name_token = self._alias_helper.get_name_token(location)
189194
for application in applications:
190-
_logger.info('WLSDPLY-06392', application, class_name=_class_name, method_name=_method_name)
191-
location.add_name_token(name_token, application)
192-
result[application] = OrderedDict()
193-
self._populate_model_parameters(result[application], location)
194-
self._add_application_to_archive(application, result[application])
195-
self._discover_subfolders(result[application], location)
196-
location.remove_name_token(name_token)
195+
if typedef.is_system_app(application):
196+
_logger.info('WLSDPLY-06400', application, class_name=_class_name, method_name=_method_name)
197+
else:
198+
_logger.info('WLSDPLY-06392', application, class_name=_class_name, method_name=_method_name)
199+
print(" application: " + str(application) + ": " + str(typedef.is_system_app(application)))
200+
location.add_name_token(name_token, application)
201+
result[application] = OrderedDict()
202+
self._populate_model_parameters(result[application], location)
203+
self._add_application_to_archive(application, result[application])
204+
self._discover_subfolders(result[application], location)
205+
location.remove_name_token(name_token)
197206

198207
_logger.exiting(class_name=_class_name, method_name=_method_name, result=result)
199208
return model_top_folder_name, result

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

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,17 @@ def get_startup_classes(self):
8282
startup_classes = self._find_names_in_folder(location)
8383
if startup_classes is not None:
8484
_logger.info('WLSDPLY-06442', len(startup_classes), class_name=_class_name, method_name=_method_name)
85+
typedef = self._model_context.get_domain_typedef()
8586
name_token = self._alias_helper.get_name_token(location)
8687
for startup_class in startup_classes:
87-
_logger.info('WLSDPLY-06443', startup_class, class_name=_class_name, method_name=_method_name)
88-
result[startup_class] = OrderedDict()
89-
location.add_name_token(name_token, startup_class)
90-
self._populate_model_parameters(result[startup_class], location)
91-
location.remove_name_token(name_token)
88+
if typedef.is_system_startup_class(startup_class):
89+
_logger.info('WLSDPLY-06447', startup_class, class_name=_class_name, method_name=_method_name)
90+
else:
91+
_logger.info('WLSDPLY-06443', startup_class, class_name=_class_name, method_name=_method_name)
92+
result[startup_class] = OrderedDict()
93+
location.add_name_token(name_token, startup_class)
94+
self._populate_model_parameters(result[startup_class], location)
95+
location.remove_name_token(name_token)
9296

9397
_logger.exiting(class_name=_class_name, method_name=_method_name, result=result)
9498
return model_top_folder_name, result
@@ -107,13 +111,17 @@ def get_shutdown_classes(self):
107111
shutdown_classes = self._find_names_in_folder(location)
108112
if shutdown_classes is not None:
109113
_logger.info('WLSDPLY-06445', len(shutdown_classes), class_name=_class_name, method_name=_method_name)
114+
typedef = self._model_context.get_domain_typedef()
110115
name_token = self._alias_helper.get_name_token(location)
111116
for shutdown_class in shutdown_classes:
112-
_logger.info('WLSDPLY-06446', shutdown_class, class_name=_class_name, method_name=_method_name)
113-
result[shutdown_class] = OrderedDict()
114-
location.add_name_token(name_token, shutdown_class)
115-
self._populate_model_parameters(result[shutdown_class], location)
116-
location.remove_name_token(name_token)
117+
if typedef.is_system_shutdown_class(shutdown_class):
118+
_logger.info('WLSDPLY-06448', shutdown_class, class_name=_class_name, method_name=_method_name)
119+
else:
120+
_logger.info('WLSDPLY-06446', shutdown_class, class_name=_class_name, method_name=_method_name)
121+
result[shutdown_class] = OrderedDict()
122+
location.add_name_token(name_token, shutdown_class)
123+
self._populate_model_parameters(result[shutdown_class], location)
124+
location.remove_name_token(name_token)
117125

118126
_logger.exiting(class_name=_class_name, method_name=_method_name, result=result)
119127
return model_top_folder_name, result

core/src/main/resources/oracle/weblogic/deploy/messages/wlsdeploy_rb.properties

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,7 @@ WLSDPLY-06319=Added Coherence Cluster {0} cache configuration file from location
483483
WLSDPLY-06320=Added Coherence Cluster {0} persistence directory {1} type {2} to archive file
484484
WLSDPLY-06321=Unable to access Coherence Cluster {0} cache configuration file {1} and will not add the file to \
485485
the archive : {2}
486+
WLSDPLY-06322=Skipping system Coherence Cluster System Resource {0}
486487

487488
# common_resources_discoverer.py
488489
WLSDPLY-06340=Discovering {0} JDBC System Resources
@@ -506,6 +507,8 @@ WLSDPLY-06357=Discovering {0} WLDF System Resources
506507
WLSDPLY-06358=Adding WLDF System Resource {0}
507508
WLSDPLY-06359=Collect script from location {0} for WLDF script action {1}
508509
WLSDPLY-06360=Unable to locate and add {0} Script file {1} to archive file : {2}
510+
WLSDPLY-06361=Skipping system JDBC System Resource {0}
511+
WLSDPLY-06362=Skipping system WLDF System Resource {0}
509512

510513
# deployments_discoverer.py
511514
WLSDPLY-06380=Discovering domain model deployments
@@ -533,6 +536,8 @@ WLSDPLY-06397=Unable to add application {0} binary {1} to archive : {2}
533536
WLSDPLY-06398=Application {0} has new source path location {1} which will match the archive file deployment location
534537
WLSDPLY-06399=Application {0} plan deployment has new source path location {1} which will match the \
535538
archive file deployment location
539+
WLSDPLY-06400=Skipping system application {0}
540+
WLSDPLY-06401=Skipping system shared library {0}
536541

537542
# domain_info_discoverer.py
538543
WLSDPLY-06420=Add the java archive files from the domain library {0} to the archive file
@@ -546,6 +551,8 @@ WLSDPLY-06442=Discovering {0} Startup Classes
546551
WLSDPLY-06443=Adding StartupClass {0}
547552
WLSDPLY-06445=Discovering {0} Shutdown Classes
548553
WLSDPLY-06446=Adding ShutdownClass {0}
554+
WLSDPLY-06447=Skipping system Startup Class {0}
555+
WLSDPLY-06448=Skipping system Shutdown Class {0}
549556

550557
# jms_resources_discoverer.py
551558
WLSDPLY-06460=Discovering JMS Resources

0 commit comments

Comments
 (0)