Skip to content

Commit d7ee0f5

Browse files
Fix for top level removal between models (#692)
* Fix for top level removal between models * Update compare_model_test.py
1 parent 4f327d7 commit d7ee0f5

File tree

3 files changed

+103
-2
lines changed

3 files changed

+103
-2
lines changed

core/src/main/python/compare_model.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ def recursive_changed_detail(self, key, token, root):
158158
last=token.rfind(PATH_TOKEN)
159159
token=root
160160

161-
162161
# already out of recursive calls, add all entries from current dictionary
163162
# resources.JDBCSubsystemResources.* (note it may not have the lower level nodes
164163
added_token=token
@@ -227,7 +226,7 @@ def calculate_changed_model(self):
227226
# Top level: e.g. delete all resources, all appDeployments
228227

229228
for s in removed:
230-
self.recursive_changed_detail(s,token, s)
229+
self.recursive_changed_detail(s, s, s)
231230
self._add_results(all_removed, True)
232231

233232
except (KeyError, IndexError), ke:

core/src/test/python/compare_model_test.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,60 @@ def testCompareModelInvalidFile(self):
190190

191191
self.assertNotEqual(return_code, 0)
192192

193+
def testDeleteModelAppDeployments(self):
194+
_method_name = 'testCompareModelFull'
195+
196+
_variables_file = self._resources_dir + '/compare_model_model1.10.properties'
197+
_new_model_file = self._resources_dir + '/compare_model_model5.yaml'
198+
_old_model_file = self._resources_dir + '/compare_model_model1.yaml'
199+
_temp_dir = os.path.join(tempfile.gettempdir(), _method_name)
200+
201+
if os.path.exists(_temp_dir):
202+
shutil.rmtree(_temp_dir)
203+
204+
os.mkdir(_temp_dir)
205+
206+
mw_home = os.environ['MW_HOME']
207+
args_map = {
208+
'-oracle_home': mw_home,
209+
'-variable_file': _variables_file,
210+
'-output_dir' : _temp_dir,
211+
'-domain_type' : 'WLS',
212+
'-trailing_arguments': [ _new_model_file, _old_model_file ]
213+
}
214+
215+
try:
216+
model_context = ModelContext('CompareModelTestCase', args_map)
217+
obj = ModelFileDiffer(_new_model_file, _old_model_file, model_context, _temp_dir)
218+
return_code = obj.compare()
219+
self.assertEqual(return_code, 0)
220+
221+
yaml_result = _temp_dir + os.sep + 'diffed_model.yaml'
222+
stdout_result = obj.get_compare_msgs()
223+
model_dictionary = FileToPython(yaml_result).parse()
224+
yaml_exists = os.path.exists(yaml_result)
225+
226+
self.assertEqual(yaml_exists, True)
227+
self.assertEqual(len(stdout_result), 1)
228+
229+
self.assertEqual(model_dictionary.has_key('appDeployments'), True)
230+
self.assertEqual(model_dictionary['appDeployments'].has_key('Library'), True)
231+
self.assertEqual(model_dictionary['appDeployments'].has_key('Application'), True)
232+
self.assertEqual(model_dictionary['appDeployments']['Application'].has_key('!myear'), True)
233+
self.assertEqual(model_dictionary['appDeployments']['Library'].has_key('!jax-rs#[email protected]'), True)
234+
self.assertEqual(model_dictionary['appDeployments']['Library'].has_key('!jsf#[email protected]'), True)
235+
236+
except (CompareException, PyWLSTException), te:
237+
return_code = 2
238+
self._logger.severe('WLSDPLY-05709',
239+
te.getLocalizedMessage(), error=te,
240+
class_name=self._program_name, method_name=_method_name)
241+
242+
if os.path.exists(_temp_dir):
243+
shutil.rmtree(_temp_dir)
244+
245+
self.assertEqual(return_code, 0)
246+
193247

194248
if __name__ == '__main__':
195249
unittest.main()
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Copyright (c) 2020, Oracle Corporation and/or its affiliates.
2+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
3+
4+
domainInfo:
5+
AdminUserName: 'weblogic'
6+
AdminPassword: 'welcome2'
7+
ServerStartMode: 'prod'
8+
topology:
9+
Name: domain1
10+
AdminServerName: "admin-server"
11+
SecurityConfiguration:
12+
NodeManagerUsername : 'weblogic'
13+
NodeManagerPasswordEncrypted : 'welcome1'
14+
Cluster:
15+
"cluster-1":
16+
DynamicServers:
17+
ServerTemplate: "cluster-1-template"
18+
ServerNamePrefix: "managed-server"
19+
DynamicClusterSize: 5
20+
MaxDynamicClusterSize: 5
21+
CalculatedListenPorts: false
22+
Server:
23+
"admin-server":
24+
ListenPort: 10011
25+
ServerTemplate:
26+
"cluster-1-template":
27+
Cluster: "cluster-1"
28+
ListenPort : '5001'
29+
ServerStart:
30+
Arguments: ['-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6006']
31+
JTAMigratableTarget:
32+
StrictOwnershipCheck: true
33+
Cluster: "cluster-1"
34+
resources:
35+
WebAppContainer:
36+
WAPEnabled: '@@PROP:WAPENABLED@@'
37+
FilterDispatchedRequestsEnabled: true
38+
AllowAllRoles: true
39+
XPoweredByHeaderLevel: NONE
40+
ServletAuthenticationFormURL: true
41+
ServletReloadCheckSecs: 1
42+
ChangeSessionIDOnAuthentication: true
43+
AuthCookieEnabled: true
44+
WorkContextPropagationEnabled: true
45+
ReloginEnabled: true
46+
GzipCompression:
47+
GzipCompressionContentType: [ text/html, text/xml, text/plain ]
48+
GzipCompressionEnabled: true

0 commit comments

Comments
 (0)