@@ -187,7 +187,7 @@ def create(self):
187
187
return
188
188
189
189
# Override
190
- def _create_named_mbeans (self , type_name , model_nodes , base_location , log_created = False ):
190
+ def _create_named_mbeans (self , type_name , model_nodes , base_location , log_created = False , delete_now = True ):
191
191
"""
192
192
Override default behavior to create placeholders for referenced Coherence clusters.
193
193
:param type_name: the model folder type
@@ -199,7 +199,7 @@ def _create_named_mbeans(self, type_name, model_nodes, base_location, log_create
199
199
self .topology_helper .check_coherence_cluster_references (type_name , model_nodes )
200
200
# continue with regular processing
201
201
202
- Creator ._create_named_mbeans (self , type_name , model_nodes , base_location , log_created = log_created )
202
+ Creator ._create_named_mbeans (self , type_name , model_nodes , base_location , log_created = log_created , delete_now = delete_now )
203
203
204
204
# Override
205
205
def _create_mbean (self , type_name , model_nodes , base_location , log_created = False ):
@@ -469,7 +469,7 @@ def __extend_domain(self, domain_home):
469
469
self .wlst_helper .add_template (custom_template )
470
470
471
471
topology_folder_list = self .aliases .get_model_topology_top_level_folder_names ()
472
- self .__apply_base_domain_config ( topology_folder_list )
472
+ self .__create_machines_clusters_and_servers ( delete_now = False )
473
473
self .__configure_fmw_infra_database ()
474
474
475
475
if self .wls_helper .is_set_server_groups_supported ():
@@ -485,6 +485,7 @@ def __extend_domain(self, domain_home):
485
485
self .logger .info ('WLSDPLY-12209' , self ._domain_name ,
486
486
class_name = self .__class_name , method_name = _method_name )
487
487
488
+ self .__apply_base_domain_config (topology_folder_list )
488
489
self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
489
490
return
490
491
@@ -538,7 +539,11 @@ def __extend_domain_with_select_template(self, domain_home):
538
539
self .__configure_fmw_infra_database ()
539
540
self .__configure_opss_secrets ()
540
541
topology_folder_list = self .aliases .get_model_topology_top_level_folder_names ()
541
- self .__apply_base_domain_config (topology_folder_list )
542
+
543
+ self .__create_security_folder ()
544
+ topology_folder_list .remove (SECURITY )
545
+
546
+ self .__create_machines_clusters_and_servers (delete_now = False )
542
547
543
548
server_groups_to_target = self ._domain_typedef .get_server_groups_to_target ()
544
549
dynamic_cluster_server_groups_to_target = self ._domain_typedef .get_dynamic_cluster_server_groups ()
@@ -552,6 +557,8 @@ def __extend_domain_with_select_template(self, domain_home):
552
557
if len (dynamic_assigns ) > 0 :
553
558
self .target_helper .target_dynamic_server_groups (dynamic_assigns )
554
559
560
+ self .__apply_base_domain_config (topology_folder_list )
561
+
555
562
self .logger .info ('WLSDPLY-12205' , self ._domain_name , domain_home ,
556
563
class_name = self .__class_name , method_name = _method_name )
557
564
self .wlst_helper .write_domain (domain_home )
@@ -568,7 +575,8 @@ def __set_server_groups(self):
568
575
if self .wls_helper .is_set_server_groups_supported ():
569
576
# 12c versions set server groups directly
570
577
server_groups_to_target = self ._domain_typedef .get_server_groups_to_target ()
571
- server_assigns , dynamic_assigns = self .target_helper .target_server_groups_to_servers (server_groups_to_target )
578
+ server_assigns , dynamic_assigns = \
579
+ self .target_helper .target_server_groups_to_servers (server_groups_to_target )
572
580
if len (server_assigns ) > 0 :
573
581
self .target_helper .target_server_groups (server_assigns )
574
582
@@ -603,26 +611,19 @@ def __apply_base_domain_config(self, topology_folder_list):
603
611
domain_name_token = self .aliases .get_name_token (location )
604
612
location .add_name_token (domain_name_token , self ._domain_name )
605
613
606
- self .__create_security_folder (location )
607
- topology_folder_list .remove (SECURITY )
608
-
609
614
topology_folder_list .remove (SECURITY_CONFIGURATION )
610
615
611
616
self .__create_mbeans_used_by_topology_mbeans (location , topology_folder_list )
612
617
613
- self .__create_machines ( location )
618
+ self .__create_machines_clusters_and_servers ( )
614
619
topology_folder_list .remove (MACHINE )
615
620
topology_folder_list .remove (UNIX_MACHINE )
616
-
617
- self .__create_clusters_and_servers (location )
618
621
topology_folder_list .remove (CLUSTER )
619
622
if SERVER_TEMPLATE in topology_folder_list :
620
623
topology_folder_list .remove (SERVER_TEMPLATE )
621
624
topology_folder_list .remove (SERVER )
622
-
623
- self .__create_migratable_targets (location )
624
625
topology_folder_list .remove (MIGRATABLE_TARGET )
625
-
626
+ #
626
627
self .__create_other_domain_artifacts (location , topology_folder_list )
627
628
628
629
self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
@@ -667,14 +668,16 @@ def __create_mbeans_used_by_topology_mbeans(self, location, topology_folder_list
667
668
self .__create_xml_registry (location )
668
669
topology_folder_list .remove (XML_REGISTRY )
669
670
670
- def __create_security_folder (self , location ):
671
+ def __create_security_folder (self ):
671
672
"""
672
673
Create the /Security folder objects, if any.
673
- :param location: the location to use
674
674
:raises: CreateException: if an error occurs
675
675
"""
676
676
_method_name = '__create_security_folder'
677
677
678
+ location = LocationContext ()
679
+ domain_name_token = self .aliases .get_name_token (location )
680
+ location .add_name_token (domain_name_token , self ._domain_name )
678
681
self .logger .entering (str (location ), class_name = self .__class_name , method_name = _method_name )
679
682
security_nodes = dictionary_utils .get_dictionary_element (self ._topology , SECURITY )
680
683
if len (security_nodes ) > 0 :
@@ -765,16 +768,20 @@ def __create_machines(self, location):
765
768
self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
766
769
return
767
770
768
- def __create_clusters_and_servers (self , location ):
771
+ def __create_machines_clusters_and_servers (self , delete_now = True ):
769
772
"""
770
773
Create the /Cluster, /ServerTemplate, and /Server folder objects.
771
- :param location: the location to use
774
+ :param delete_now: Flag determing whether the delete of the elements will be delayed
772
775
:raises: CreateException: if an error occurs
773
776
"""
774
- _method_name = '__create_clusters_and_servers '
777
+ _method_name = '__create_machines_clusters_and_servers '
775
778
779
+ location = LocationContext ()
780
+ domain_name_token = self .aliases .get_name_token (location )
781
+ location .add_name_token (domain_name_token , self ._domain_name )
776
782
self .logger .entering (str (location ), class_name = self .__class_name , method_name = _method_name )
777
783
784
+ self .__create_machines (location )
778
785
#
779
786
# In order for source domain provisioning to work with dynamic clusters, we have to provision
780
787
# the ServerTemplates. There is a cyclical dependency between Server Template and Clusters so we
@@ -788,14 +795,15 @@ def __create_clusters_and_servers(self, location):
788
795
jdbc_names = self .topology_helper .create_placeholder_jdbc_resources (resources_dict )
789
796
cluster_nodes = dictionary_utils .get_dictionary_element (self ._topology , CLUSTER )
790
797
if len (cluster_nodes ) > 0 :
791
- self ._create_named_mbeans (CLUSTER , cluster_nodes , location , log_created = True )
798
+ self ._create_named_mbeans (CLUSTER , cluster_nodes , location , log_created = True , delete_now = delete_now )
792
799
793
800
#
794
801
# Now, fully populate the ServerTemplates, if any.
795
802
#
796
803
server_template_nodes = dictionary_utils .get_dictionary_element (self ._topology , SERVER_TEMPLATE )
797
804
if len (server_template_nodes ) > 0 :
798
- self ._create_named_mbeans (SERVER_TEMPLATE , server_template_nodes , location , log_created = True )
805
+ self ._create_named_mbeans (SERVER_TEMPLATE , server_template_nodes , location , log_created = True ,
806
+ delete_now = delete_now )
799
807
800
808
#
801
809
# Finally, create/update the servers.
@@ -804,18 +812,19 @@ def __create_clusters_and_servers(self, location):
804
812
# There may be a dependency to other servers when the server is in a cluster
805
813
self .topology_helper .create_placeholder_servers_in_cluster (self ._topology )
806
814
if len (server_nodes ) > 0 :
807
- self ._create_named_mbeans (SERVER , server_nodes , location , log_created = True )
815
+ self ._create_named_mbeans (SERVER , server_nodes , location , log_created = True , delete_now = delete_now )
808
816
809
817
# targets may have been inadvertently assigned when clusters were added
810
818
self .topology_helper .clear_jdbc_placeholder_targeting (jdbc_names )
811
-
819
+ self . __create_migratable_targets ( location , delete_now = delete_now )
812
820
self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
813
821
return
814
822
815
- def __create_migratable_targets (self , location ):
823
+ def __create_migratable_targets (self , location , delete_now = True ):
816
824
"""
817
825
Create the /MigratableTarget folder objects, if any.
818
826
:param location: the location to use
827
+ :param delete_now: Flag to determine if the delete of elements will be delayed
819
828
:raises: CreateException: if an error occurs
820
829
"""
821
830
_method_name = '__create_migratable_targets'
@@ -824,7 +833,8 @@ def __create_migratable_targets(self, location):
824
833
migratable_target_nodes = dictionary_utils .get_dictionary_element (self ._topology , MIGRATABLE_TARGET )
825
834
826
835
if len (migratable_target_nodes ) > 0 :
827
- self ._create_named_mbeans (MIGRATABLE_TARGET , migratable_target_nodes , location , log_created = True )
836
+ self ._create_named_mbeans (MIGRATABLE_TARGET , migratable_target_nodes , location , log_created = True ,
837
+ delete_now = delete_now )
828
838
829
839
self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
830
840
return
@@ -872,7 +882,7 @@ def __set_atp_connection_property(self, root_location, property_name, property_v
872
882
873
883
wlst_name , wlst_value = \
874
884
self .aliases .get_wlst_attribute_name_and_value (root_location , DRIVER_PARAMS_PROPERTY_VALUE ,
875
- property_value )
885
+ property_value )
876
886
self .wlst_helper .set (wlst_name , wlst_value )
877
887
878
888
root_location .remove_name_token (property_name )
@@ -931,7 +941,7 @@ def __configure_fmw_infra_database(self):
931
941
932
942
wlst_name , wlst_value = \
933
943
self .aliases .get_wlst_attribute_name_and_value (location , PASSWORD_ENCRYPTED ,
934
- rcu_schema_pwd , masked = True )
944
+ rcu_schema_pwd , masked = True )
935
945
self .wlst_helper .set_if_needed (wlst_name , wlst_value , masked = True )
936
946
937
947
location .append_location (JDBC_DRIVER_PARAMS_PROPERTIES )
@@ -946,7 +956,7 @@ def __configure_fmw_infra_database(self):
946
956
stb_user = orig_user .replace ('DEV' , rcu_prefix )
947
957
wlst_name , wlst_value = \
948
958
self .aliases .get_wlst_attribute_name_and_value (location , DRIVER_PARAMS_PROPERTY_VALUE ,
949
- stb_user )
959
+ stb_user )
950
960
self .wlst_helper .set_if_needed (wlst_name , wlst_value )
951
961
952
962
# need to set other properties
@@ -993,7 +1003,7 @@ def __configure_fmw_infra_database(self):
993
1003
994
1004
wlst_name , wlst_value = \
995
1005
self .aliases .get_wlst_attribute_name_and_value (location , PASSWORD_ENCRYPTED ,
996
- rcu_schema_pwd , masked = True )
1006
+ rcu_schema_pwd , masked = True )
997
1007
self .wlst_helper .set_if_needed (wlst_name , wlst_value , masked = True )
998
1008
999
1009
location .append_location (JDBC_DRIVER_PARAMS_PROPERTIES )
@@ -1222,7 +1232,8 @@ def __create_credential_mappings(self):
1222
1232
"""
1223
1233
Create credential mappings from model elements.
1224
1234
"""
1225
- default_nodes = dictionary_utils .get_dictionary_element (self ._domain_info , WLS_USER_PASSWORD_CREDENTIAL_MAPPINGS )
1235
+ default_nodes = dictionary_utils .get_dictionary_element (self ._domain_info ,
1236
+ WLS_USER_PASSWORD_CREDENTIAL_MAPPINGS )
1226
1237
if default_nodes :
1227
1238
credential_map_helper = CredentialMapHelper (self .model_context , ExceptionType .CREATE )
1228
1239
credential_map_helper .create_default_init_file (default_nodes )
0 commit comments