@@ -187,7 +187,7 @@ def create(self):
187187 return
188188
189189 # 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 ):
191191 """
192192 Override default behavior to create placeholders for referenced Coherence clusters.
193193 :param type_name: the model folder type
@@ -199,7 +199,7 @@ def _create_named_mbeans(self, type_name, model_nodes, base_location, log_create
199199 self .topology_helper .check_coherence_cluster_references (type_name , model_nodes )
200200 # continue with regular processing
201201
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 )
203203
204204 # Override
205205 def _create_mbean (self , type_name , model_nodes , base_location , log_created = False ):
@@ -469,7 +469,7 @@ def __extend_domain(self, domain_home):
469469 self .wlst_helper .add_template (custom_template )
470470
471471 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 )
473473 self .__configure_fmw_infra_database ()
474474
475475 if self .wls_helper .is_set_server_groups_supported ():
@@ -485,6 +485,7 @@ def __extend_domain(self, domain_home):
485485 self .logger .info ('WLSDPLY-12209' , self ._domain_name ,
486486 class_name = self .__class_name , method_name = _method_name )
487487
488+ self .__apply_base_domain_config (topology_folder_list )
488489 self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
489490 return
490491
@@ -538,7 +539,11 @@ def __extend_domain_with_select_template(self, domain_home):
538539 self .__configure_fmw_infra_database ()
539540 self .__configure_opss_secrets ()
540541 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 )
542547
543548 server_groups_to_target = self ._domain_typedef .get_server_groups_to_target ()
544549 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):
552557 if len (dynamic_assigns ) > 0 :
553558 self .target_helper .target_dynamic_server_groups (dynamic_assigns )
554559
560+ self .__apply_base_domain_config (topology_folder_list )
561+
555562 self .logger .info ('WLSDPLY-12205' , self ._domain_name , domain_home ,
556563 class_name = self .__class_name , method_name = _method_name )
557564 self .wlst_helper .write_domain (domain_home )
@@ -568,7 +575,8 @@ def __set_server_groups(self):
568575 if self .wls_helper .is_set_server_groups_supported ():
569576 # 12c versions set server groups directly
570577 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 )
572580 if len (server_assigns ) > 0 :
573581 self .target_helper .target_server_groups (server_assigns )
574582
@@ -603,26 +611,19 @@ def __apply_base_domain_config(self, topology_folder_list):
603611 domain_name_token = self .aliases .get_name_token (location )
604612 location .add_name_token (domain_name_token , self ._domain_name )
605613
606- self .__create_security_folder (location )
607- topology_folder_list .remove (SECURITY )
608-
609614 topology_folder_list .remove (SECURITY_CONFIGURATION )
610615
611616 self .__create_mbeans_used_by_topology_mbeans (location , topology_folder_list )
612617
613- self .__create_machines ( location )
618+ self .__create_machines_clusters_and_servers ( )
614619 topology_folder_list .remove (MACHINE )
615620 topology_folder_list .remove (UNIX_MACHINE )
616-
617- self .__create_clusters_and_servers (location )
618621 topology_folder_list .remove (CLUSTER )
619622 if SERVER_TEMPLATE in topology_folder_list :
620623 topology_folder_list .remove (SERVER_TEMPLATE )
621624 topology_folder_list .remove (SERVER )
622-
623- self .__create_migratable_targets (location )
624625 topology_folder_list .remove (MIGRATABLE_TARGET )
625-
626+ #
626627 self .__create_other_domain_artifacts (location , topology_folder_list )
627628
628629 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
667668 self .__create_xml_registry (location )
668669 topology_folder_list .remove (XML_REGISTRY )
669670
670- def __create_security_folder (self , location ):
671+ def __create_security_folder (self ):
671672 """
672673 Create the /Security folder objects, if any.
673- :param location: the location to use
674674 :raises: CreateException: if an error occurs
675675 """
676676 _method_name = '__create_security_folder'
677677
678+ location = LocationContext ()
679+ domain_name_token = self .aliases .get_name_token (location )
680+ location .add_name_token (domain_name_token , self ._domain_name )
678681 self .logger .entering (str (location ), class_name = self .__class_name , method_name = _method_name )
679682 security_nodes = dictionary_utils .get_dictionary_element (self ._topology , SECURITY )
680683 if len (security_nodes ) > 0 :
@@ -765,16 +768,20 @@ def __create_machines(self, location):
765768 self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
766769 return
767770
768- def __create_clusters_and_servers (self , location ):
771+ def __create_machines_clusters_and_servers (self , delete_now = True ):
769772 """
770773 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
772775 :raises: CreateException: if an error occurs
773776 """
774- _method_name = '__create_clusters_and_servers '
777+ _method_name = '__create_machines_clusters_and_servers '
775778
779+ location = LocationContext ()
780+ domain_name_token = self .aliases .get_name_token (location )
781+ location .add_name_token (domain_name_token , self ._domain_name )
776782 self .logger .entering (str (location ), class_name = self .__class_name , method_name = _method_name )
777783
784+ self .__create_machines (location )
778785 #
779786 # In order for source domain provisioning to work with dynamic clusters, we have to provision
780787 # 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):
788795 jdbc_names = self .topology_helper .create_placeholder_jdbc_resources (resources_dict )
789796 cluster_nodes = dictionary_utils .get_dictionary_element (self ._topology , CLUSTER )
790797 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 )
792799
793800 #
794801 # Now, fully populate the ServerTemplates, if any.
795802 #
796803 server_template_nodes = dictionary_utils .get_dictionary_element (self ._topology , SERVER_TEMPLATE )
797804 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 )
799807
800808 #
801809 # Finally, create/update the servers.
@@ -804,18 +812,19 @@ def __create_clusters_and_servers(self, location):
804812 # There may be a dependency to other servers when the server is in a cluster
805813 self .topology_helper .create_placeholder_servers_in_cluster (self ._topology )
806814 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 )
808816
809817 # targets may have been inadvertently assigned when clusters were added
810818 self .topology_helper .clear_jdbc_placeholder_targeting (jdbc_names )
811-
819+ self . __create_migratable_targets ( location , delete_now = delete_now )
812820 self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
813821 return
814822
815- def __create_migratable_targets (self , location ):
823+ def __create_migratable_targets (self , location , delete_now = True ):
816824 """
817825 Create the /MigratableTarget folder objects, if any.
818826 :param location: the location to use
827+ :param delete_now: Flag to determine if the delete of elements will be delayed
819828 :raises: CreateException: if an error occurs
820829 """
821830 _method_name = '__create_migratable_targets'
@@ -824,7 +833,8 @@ def __create_migratable_targets(self, location):
824833 migratable_target_nodes = dictionary_utils .get_dictionary_element (self ._topology , MIGRATABLE_TARGET )
825834
826835 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 )
828838
829839 self .logger .exiting (class_name = self .__class_name , method_name = _method_name )
830840 return
@@ -872,7 +882,7 @@ def __set_atp_connection_property(self, root_location, property_name, property_v
872882
873883 wlst_name , wlst_value = \
874884 self .aliases .get_wlst_attribute_name_and_value (root_location , DRIVER_PARAMS_PROPERTY_VALUE ,
875- property_value )
885+ property_value )
876886 self .wlst_helper .set (wlst_name , wlst_value )
877887
878888 root_location .remove_name_token (property_name )
@@ -931,7 +941,7 @@ def __configure_fmw_infra_database(self):
931941
932942 wlst_name , wlst_value = \
933943 self .aliases .get_wlst_attribute_name_and_value (location , PASSWORD_ENCRYPTED ,
934- rcu_schema_pwd , masked = True )
944+ rcu_schema_pwd , masked = True )
935945 self .wlst_helper .set_if_needed (wlst_name , wlst_value , masked = True )
936946
937947 location .append_location (JDBC_DRIVER_PARAMS_PROPERTIES )
@@ -946,7 +956,7 @@ def __configure_fmw_infra_database(self):
946956 stb_user = orig_user .replace ('DEV' , rcu_prefix )
947957 wlst_name , wlst_value = \
948958 self .aliases .get_wlst_attribute_name_and_value (location , DRIVER_PARAMS_PROPERTY_VALUE ,
949- stb_user )
959+ stb_user )
950960 self .wlst_helper .set_if_needed (wlst_name , wlst_value )
951961
952962 # need to set other properties
@@ -993,7 +1003,7 @@ def __configure_fmw_infra_database(self):
9931003
9941004 wlst_name , wlst_value = \
9951005 self .aliases .get_wlst_attribute_name_and_value (location , PASSWORD_ENCRYPTED ,
996- rcu_schema_pwd , masked = True )
1006+ rcu_schema_pwd , masked = True )
9971007 self .wlst_helper .set_if_needed (wlst_name , wlst_value , masked = True )
9981008
9991009 location .append_location (JDBC_DRIVER_PARAMS_PROPERTIES )
@@ -1222,7 +1232,8 @@ def __create_credential_mappings(self):
12221232 """
12231233 Create credential mappings from model elements.
12241234 """
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 )
12261237 if default_nodes :
12271238 credential_map_helper = CredentialMapHelper (self .model_context , ExceptionType .CREATE )
12281239 credential_map_helper .create_default_init_file (default_nodes )
0 commit comments