11"""
2- Copyright (c) 2017, 2024 , Oracle and/or its affiliates.
2+ Copyright (c) 2017, 2025 , Oracle and/or its affiliates.
33Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
44"""
55from array import array
@@ -117,20 +117,21 @@ def _add_named_elements(self, type_name, model_nodes, location, delete_now=True)
117117
118118 child_nodes = dictionary_utils .get_dictionary_element (model_nodes , name )
119119 self ._create_and_cd (location , existing_names , child_nodes )
120- self ._set_attributes_and_add_subfolders (location , child_nodes )
120+ self ._set_attributes_and_add_subfolders (location , child_nodes , delete_now = delete_now )
121121
122122 #
123123 # This method exists purely to allow subclasses to override how an mbean is created.
124124 #
125125 def _create_and_cd (self , location , existing_names , child_nodes ):
126126 deployer_utils .create_and_cd (location , existing_names , self .aliases )
127127
128- def _add_subfolders (self , model_nodes , location , excludes = None ):
128+ def _add_subfolders (self , model_nodes , location , excludes = None , delete_now = True ):
129129 """
130130 Add each model sub-folder from the specified nodes and set its attributes.
131131 :param model_nodes: the child nodes of a model element
132132 :param location: the location where sub-folders should be added
133133 :param excludes: optional list of sub-folder names to be excluded from processing
134+ :param delete_now: Flag to determine if deletes are processed immediately or delayed
134135 """
135136 location = LocationContext (location )
136137 model_subfolder_names = self .aliases .get_model_subfolder_names (location )
@@ -142,16 +143,17 @@ def _add_subfolders(self, model_nodes, location, excludes=None):
142143 if len (subfolder_nodes ) != 0 :
143144 sub_location = LocationContext (location ).append_location (subfolder )
144145 if self .aliases .supports_multiple_mbean_instances (sub_location ):
145- self ._add_named_elements (subfolder , subfolder_nodes , location )
146+ self ._add_named_elements (subfolder , subfolder_nodes , location , delete_now = delete_now )
146147 else :
147- self ._add_model_elements (subfolder , subfolder_nodes , location )
148+ self ._add_model_elements (subfolder , subfolder_nodes , location , delete_now = delete_now )
148149
149- def _add_model_elements (self , type_name , model_nodes , location ):
150+ def _add_model_elements (self , type_name , model_nodes , location , delete_now = True ):
150151 """
151152 Add each model element from the specified nodes at the specified location and set its attributes.
153+ :param type_name: the name of the model folder to add
152154 :param model_nodes: the child nodes of a model element
153155 :param location: the location where sub-folders should be added
154- :param type_name: the name of the model folder to add
156+ :param delete_now: Flag to determine if deletes are processed immediately or delayed
155157 """
156158 _method_name = '_add_model_elements'
157159
@@ -169,18 +171,19 @@ def _add_model_elements(self, type_name, model_nodes, location):
169171
170172 deployer_utils .create_and_cd (location , existing_subfolder_names , self .aliases )
171173
172- self ._set_attributes_and_add_subfolders (location , model_nodes )
174+ self ._set_attributes_and_add_subfolders (location , model_nodes , delete_now = delete_now )
173175
174- def _set_attributes_and_add_subfolders (self , location , model_nodes ):
176+ def _set_attributes_and_add_subfolders (self , location , model_nodes , delete_now = True ):
175177 """
176178 Set the attributes and add sub-folders for the specified location.
177179 This method can be overridden for finer control of the ordering
178180 :param location: the location of the attributes and sub-folders
179181 :param model_nodes: a map of model nodes including attributes and sub-folders
182+ :param delete_now: Flag to determine if deletes are processed immediately or delayed
180183 :raise: DeployException: if an error condition is encountered
181184 """
182185 self .set_attributes (location , model_nodes )
183- self ._add_subfolders (model_nodes , location )
186+ self ._add_subfolders (model_nodes , location , delete_now = delete_now )
184187
185188 def set_attributes (self , location , model_nodes , excludes = None ):
186189 """
0 commit comments