Skip to content

Commit 10eaf6e

Browse files
Jira wdt 343 subbranch (#573)
* Issue #343 Clear targeting of JDBC placeholders that were created * Issue #343 Corrected version overlap for LogMonitoringMaxThrottleMessageSignatureCount alias * Issue #343 Fix online update * rearrange code * change arrangement of base domains
1 parent 258267a commit 10eaf6e

File tree

7 files changed

+86
-50
lines changed

7 files changed

+86
-50
lines changed

core/src/main/python/update.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,8 @@ def __update_online(model, model_context, aliases):
240240
exit_code = 0
241241

242242
__update_online_domain(model_context)
243+
__wlst_helper.edit()
244+
__wlst_helper.start_edit()
243245

244246
topology_updater.set_server_groups()
245247
__update_online_domain(model_context)

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

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -342,11 +342,11 @@ def __create_domain(self):
342342

343343
if self.wls_helper.is_select_template_supported():
344344
self.__create_base_domain_with_select_template(self._domain_home)
345+
self.__extend_domain_with_select_template(self._domain_home)
345346
else:
346347
self.__create_base_domain(self._domain_home)
348+
self.__extend_domain(self._domain_home)
347349

348-
topology_folder_list = self.alias_helper.get_model_topology_top_level_folder_names()
349-
self.__apply_base_domain_config(topology_folder_list)
350350
if len(self.files_to_extract_from_archive) > 0:
351351
for file_to_extract in self.files_to_extract_from_archive:
352352
self.archive_helper.extract_file(file_to_extract)
@@ -359,28 +359,6 @@ def __create_domain(self):
359359
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
360360
return
361361

362-
def __extend_domain_svrgrps(self):
363-
"""
364-
Create the domain.
365-
:raises: CreateException: if an error occurs
366-
"""
367-
_method_name = '__create_domain'
368-
369-
self.logger.entering(class_name=self.__class_name, method_name=_method_name)
370-
domain_type = self.model_context.get_domain_type()
371-
self.logger.info('WLSDPLY-12203', domain_type, class_name=self.__class_name, method_name=_method_name)
372-
373-
self.wlst_helper.read_domain(self._domain_home)
374-
375-
if self.wls_helper.is_select_template_supported():
376-
self.__extend_domain_with_select_template(self._domain_home)
377-
else:
378-
self.__extend_domain(self._domain_home)
379-
380-
self.wlst_helper.update_domain()
381-
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
382-
return
383-
384362
def __deploy(self):
385363
"""
386364
Update the domain with domain attributes, resources and deployments.
@@ -397,9 +375,10 @@ def __deploy(self):
397375
return
398376

399377
def __deploy_after_update(self):
400-
401-
self.__extend_domain_svrgrps()
378+
_method_name = '__deploy_after_update'
379+
self.logger.entering(class_name=self.__class_name, method_name=_method_name)
402380
model_deployer.deploy_model_after_update(self.model, self.model_context, self.aliases)
381+
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
403382

404383
def __deploy_resources_and_apps(self):
405384
"""
@@ -449,8 +428,8 @@ def __extend_domain(self, domain_home):
449428

450429
extension_templates = self._domain_typedef.get_extension_templates()
451430
custom_templates = self._domain_typedef.get_custom_extension_templates()
452-
if (len(extension_templates) == 0) and (len(custom_templates) == 0):
453-
return
431+
# if (len(extension_templates) == 0) and (len(custom_templates) == 0):
432+
# return
454433

455434
self.logger.info('WLSDPLY-12207', self._domain_name, domain_home,
456435
class_name=self.__class_name, method_name=_method_name)
@@ -466,6 +445,8 @@ def __extend_domain(self, domain_home):
466445
class_name=self.__class_name, method_name=_method_name)
467446
self.wlst_helper.add_template(custom_template)
468447

448+
topology_folder_list = self.alias_helper.get_model_topology_top_level_folder_names()
449+
self.__apply_base_domain_config(topology_folder_list)
469450
self.__configure_fmw_infra_database()
470451

471452
if self.wls_helper.is_set_server_groups_supported():
@@ -498,16 +479,6 @@ def __create_base_domain_with_select_template(self, domain_home):
498479
class_name=self.__class_name, method_name=_method_name)
499480

500481
self.wlst_helper.select_template(base_template)
501-
self.wlst_helper.load_templates()
502-
503-
self.__set_core_domain_params()
504-
self.logger.info('WLSDPLY-12205', self._domain_name, domain_home,
505-
class_name=self.__class_name, method_name=_method_name)
506-
self.wlst_helper.write_domain(domain_home)
507-
self.wlst_helper.close_template()
508-
self.logger.info('WLSDPLY-12206', self._domain_name, domain_home,
509-
class_name=self.__class_name, method_name=_method_name)
510-
self.wlst_helper.read_domain(domain_home)
511482

512483
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
513484
return
@@ -524,8 +495,6 @@ def __extend_domain_with_select_template(self, domain_home):
524495

525496
extension_templates = self._domain_typedef.get_extension_templates()
526497
custom_templates = self._domain_typedef.get_custom_extension_templates()
527-
if (len(extension_templates) == 0) and (len(custom_templates) == 0):
528-
return
529498

530499
for extension_template in extension_templates:
531500
self.logger.info('WLSDPLY-12211', extension_template,
@@ -538,29 +507,62 @@ def __extend_domain_with_select_template(self, domain_home):
538507
self.wlst_helper.select_custom_template(custom_template)
539508

540509
self.logger.info('WLSDPLY-12212', class_name=self.__class_name, method_name=_method_name)
541-
if len(extension_templates) > 0 or len(custom_templates) > 0:
542-
self.wlst_helper.load_templates()
510+
self.wlst_helper.load_templates()
543511

512+
self.__set_core_domain_params()
544513
if len(extension_templates) > 0:
545514
self.__set_app_dir()
546515
self.__configure_fmw_infra_database()
516+
self.__configure_opss_secrets()
517+
topology_folder_list = self.alias_helper.get_model_topology_top_level_folder_names()
518+
self.__apply_base_domain_config(topology_folder_list)
547519

548520
self.logger.info('WLSDPLY-12206', self._domain_name, domain_home,
549521
class_name=self.__class_name, method_name=_method_name)
550-
551522
server_groups_to_target = self._domain_typedef.get_server_groups_to_target()
552523
server_assigns, dynamic_assigns = self.target_helper.target_server_groups_to_servers(server_groups_to_target)
553524
if len(server_assigns) > 0:
554525
self.target_helper.target_server_groups(server_assigns)
555526

556-
self.__configure_opss_secrets()
557-
558527
if len(dynamic_assigns) > 0:
559528
self.target_helper.target_server_groups_to_dynamic_clusters(dynamic_assigns)
560529

530+
self.logger.info('WLSDPLY-12205', self._domain_name, domain_home,
531+
class_name=self.__class_name, method_name=_method_name)
532+
self.wlst_helper.write_domain(domain_home)
533+
self.wlst_helper.close_template()
534+
self.logger.info('WLSDPLY-12206', self._domain_name, domain_home,
535+
class_name=self.__class_name, method_name=_method_name)
536+
self.wlst_helper.read_domain(domain_home)
561537
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
562538
return
563539

540+
def __set_server_groups(self):
541+
_method_name = '__set_server_groups'
542+
self.logger.entering(class_name=self.__class_name, method_name=_method_name)
543+
if self.wls_helper.is_set_server_groups_supported():
544+
# 12c versions set server groups directly
545+
server_groups_to_target = self._domain_typedef.get_server_groups_to_target()
546+
server_assigns, dynamic_assigns = self.target_helper.target_server_groups_to_servers(server_groups_to_target)
547+
if len(server_assigns) > 0:
548+
self.target_helper.target_server_groups(server_assigns)
549+
550+
if len(dynamic_assigns) > 0:
551+
self.target_helper.target_server_groups_to_dynamic_clusters(dynamic_assigns)
552+
553+
elif self._domain_typedef.is_jrf_domain_type() or \
554+
(self._domain_typedef.get_targeting() == TargetingType.APPLY_JRF):
555+
# for 11g, if template list includes JRF, or if specified in domain typedef, use applyJRF
556+
self.target_helper.target_jrf_groups_to_clusters_servers()
557+
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
558+
559+
def __update_domain(self):
560+
_method_name = '__update_domain'
561+
self.logger.entering(class_name=self.__class_name, method_name=_method_name)
562+
self.wlst_helper.update_domain()
563+
self.wlst_helper.close_domain()
564+
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
565+
564566
def __apply_base_domain_config(self, topology_folder_list):
565567
"""
566568
Apply the base domain configuration from the model topology section.
@@ -758,7 +760,7 @@ def __create_clusters_and_servers(self, location):
758760

759761
# create placeholders for JDBC resources that may be referenced in cluster definition.
760762
resources_dict = self.model.get_model_resources()
761-
self.topology_helper.create_placeholder_jdbc_resources(resources_dict)
763+
jdbc_names = self.topology_helper.create_placeholder_jdbc_resources(resources_dict)
762764
cluster_nodes = dictionary_utils.get_dictionary_element(self._topology, CLUSTER)
763765
if len(cluster_nodes) > 0:
764766
self._create_named_mbeans(CLUSTER, cluster_nodes, location, log_created=True)
@@ -779,6 +781,9 @@ def __create_clusters_and_servers(self, location):
779781
if len(server_nodes) > 0:
780782
self._create_named_mbeans(SERVER, server_nodes, location, log_created=True)
781783

784+
# targets may have been inadvertently assigned when clusters were added
785+
self.topology_helper.clear_jdbc_placeholder_targeting(jdbc_names)
786+
782787
self.logger.exiting(class_name=self.__class_name, method_name=_method_name)
783788
return
784789

core/src/main/python/wlsdeploy/tool/deploy/topology_updater.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def update(self):
102102
self._topology_helper.create_placeholder_server_templates(self._topology)
103103

104104
# create placeholders for JDBC resources that may be referenced in cluster definition.
105-
self._topology_helper.create_placeholder_jdbc_resources(self._resources)
105+
jdbc_names = self._topology_helper.create_placeholder_jdbc_resources(self._resources)
106106

107107
self._process_section(self._topology, folder_list, CLUSTER, location)
108108
self._process_section(self._topology, folder_list, SERVER_TEMPLATE, location)
@@ -113,6 +113,9 @@ def update(self):
113113

114114
self._process_section(self._topology, folder_list, SERVER, location)
115115

116+
# targets may have been inadvertently assigned when clusters were added
117+
self.topology_helper.clear_jdbc_placeholder_targeting(jdbc_names)
118+
116119
self._process_section(self._topology, folder_list, MIGRATABLE_TARGET, location)
117120

118121
new_managed_server_list, new_configured_cluster_list = self._create_list_of_setservergroups_targets()

core/src/main/python/wlsdeploy/tool/util/target_helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ def target_server_groups_to_dynamic_clusters(self, dynamic_cluster_assigns):
207207
If JRF or RestrictedJRF skip the check and do the applyJRF function to automatically target to the cluster.
208208
:param dynamic_cluster_assigns: The assignments from domainInfo targeting limits applied to dynamic lusters
209209
"""
210-
_method_name = 'target_server_group_resources_to_dyanamic_cluster'
210+
_method_name = 'target_server_groups_to_dynamic_clusters'
211211
self.logger.entering(str(dynamic_cluster_assigns), class_name=self.__class_name, method_name=_method_name)
212212

213213
domain_typedef = self.model_context.get_domain_typedef()

core/src/main/python/wlsdeploy/tool/util/topology_helper.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,9 @@ def create_placeholder_jdbc_resources(self, resources):
9393
Create a placeholder JDBC resource for each name in the resources section.
9494
This is necessary because cluster attributes may reference JDBC resources.
9595
:param resources: the resource model nodes
96+
:return: a list of names of created placeholders
9697
"""
97-
self.create_placeholder_named_elements(LocationContext(), JDBC_SYSTEM_RESOURCE, resources)
98+
return self.create_placeholder_named_elements(LocationContext(), JDBC_SYSTEM_RESOURCE, resources)
9899

99100
def create_placeholder_named_elements(self, location, model_type, model_nodes):
100101
"""
@@ -103,8 +104,10 @@ def create_placeholder_named_elements(self, location, model_type, model_nodes):
103104
:param location: the location for the nodes to be added
104105
:param model_type: the type of the specified model nodes
105106
:param model_nodes: the model nodes
107+
:return: a list of names of created placeholders
106108
"""
107109
_method_name = 'create_placeholder_named_elements'
110+
holder_names = []
108111
original_location = self.wlst_helper.get_pwd()
109112
resource_location = LocationContext(location).append_location(model_type)
110113

@@ -125,8 +128,10 @@ def create_placeholder_named_elements(self, location, model_type, model_nodes):
125128
resource_location.add_name_token(token, name)
126129
deployer_utils.create_and_cd(resource_location, existing_names, self.alias_helper)
127130
self._update_placeholder(model_type, name, resource_location)
131+
holder_names.append(name)
128132

129133
self.wlst_helper.cd(original_location)
134+
return holder_names
130135

131136
def _update_placeholder(self, type_name, name, location):
132137
"""
@@ -148,6 +153,26 @@ def _update_placeholder(self, type_name, name, location):
148153
self.wlst_helper.set('Name', name)
149154
self.wlst_helper.cd(original_location)
150155

156+
def clear_jdbc_placeholder_targeting(self, jdbc_names):
157+
"""
158+
Remove any targets for the JDBC resources in the specified list of names.
159+
Targets may have been inadvertently assigned when clusters were added after JDBC placeholders.
160+
:param jdbc_names: names of placeholders to clear
161+
"""
162+
_method_name = 'clear_jdbc_placeholder_targeting'
163+
resource_location = LocationContext().append_location(JDBC_SYSTEM_RESOURCE)
164+
token = self.alias_helper.get_name_token(resource_location)
165+
166+
for name in jdbc_names:
167+
self.logger.info('WLSDPLY-19404', JDBC_SYSTEM_RESOURCE, name, class_name=self.__class_name,
168+
method_name=_method_name)
169+
170+
resource_location.add_name_token(token, name)
171+
wlst_path = self.alias_helper.get_wlst_attributes_path(resource_location)
172+
if self.wlst_helper.path_exists(wlst_path):
173+
mbean = self.wlst_helper.get_mbean_for_wlst_path(wlst_path)
174+
mbean.setTargets(None)
175+
151176
def qualify_nm_properties(self, type_name, model_nodes, base_location, model_context, attribute_setter):
152177
"""
153178
For the NM properties MBean, update the keystore file path to be fully qualified with the domain directory.

core/src/main/resources/oracle/weblogic/deploy/aliases/category_modules/Server.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@
250250
"LogFileSeverity": [ {"version": "[10,)", "wlst_mode": "both", "wlst_name": "LogFileSeverity", "wlst_path": "WP001", "value": {"default": "Trace" }, "wlst_type": "string" } ],
251251
"LogMonitoringEnabled": [ {"version": "[12.2.1,)", "wlst_mode": "both", "wlst_name": "LogMonitoringEnabled", "wlst_path": "WP001", "value": {"default": "true" }, "wlst_type": "boolean"} ],
252252
"LogMonitoringIntervalSecs": [ {"version": "[12.2.1,)", "wlst_mode": "both", "wlst_name": "LogMonitoringIntervalSecs", "wlst_path": "WP001", "value": {"default": 30 }, "wlst_type": "integer"} ],
253-
"LogMonitoringMaxThrottleMessageSignatureCount": [ {"version": "[12.2.1.1,)", "wlst_mode": "online", "wlst_name": "LogMonitoringMaxThrottleMessageSignatureCount", "wlst_path": "WP001", "value": {"default": 1000 }, "wlst_type": "integer"} ,
253+
"LogMonitoringMaxThrottleMessageSignatureCount": [ {"version": "[12.2.1.1,12.2.1.3)", "wlst_mode": "online", "wlst_name": "LogMonitoringMaxThrottleMessageSignatureCount", "wlst_path": "WP001", "value": {"default": 1000 }, "wlst_type": "integer"} ,
254254
{"version": "[12.2.1.3,)", "wlst_mode": "both", "wlst_name": "LogMonitoringMaxThrottleMessageSignatureCount", "wlst_path": "WP001", "value": {"default": 1000 }, "wlst_type": "integer"} ],
255255
"LogMonitoringThrottleMessageLength": [ {"version": "[12.2.1,)", "wlst_mode": "both", "wlst_name": "LogMonitoringThrottleMessageLength", "wlst_path": "WP001", "value": {"default": 50 }, "wlst_type": "integer"} ],
256256
"LogMonitoringThrottleThreshold": [ {"version": "[12.2.1,)", "wlst_mode": "both", "wlst_name": "LogMonitoringThrottleThreshold", "wlst_path": "WP001", "value": {"default": 1500 }, "wlst_type": "integer"} ],

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1345,6 +1345,7 @@ WLSDPLY-19400=Creating placeholder for server template {0}
13451345
WLSDPLY-19401=Creating placeholder for JDBC resource {0}
13461346
WLSDPLY-19402=Creating placeholder for Server resource {0}
13471347
WLSDPLY-19403=Creating placeholder for {0} {1}
1348+
WLSDPLY-19404=Clearing targets for {0} placeholder {1}
13481349

13491350
# wlsdeploy/tool/util/variable_injector.py
13501351
WLSDPLY-19500=Model variable injector values loaded from location {0}

0 commit comments

Comments
 (0)