11
11
#
12
12
# If the flag is not provided then all output is written to the standard out.
13
13
#
14
- #
15
-
14
+ import os
16
15
import sets
17
- import sys , os , traceback
16
+ import sys
17
+ import traceback
18
18
19
- from java .lang import System
20
19
import java .io .File as JFile
21
20
import java .io .FileOutputStream as JFileOutputStream
22
21
import java .io .IOException as JIOException
23
22
import java .io .PrintWriter as JPrintWriter
24
- import oracle .weblogic .deploy .util .TranslateException as TranslateException
23
+ from java .lang import System
24
+ from oracle .weblogic .deploy .aliases import AliasException
25
+ from oracle .weblogic .deploy .compare import CompareException
26
+ from oracle .weblogic .deploy .exception import ExceptionHelper
25
27
from oracle .weblogic .deploy .util import CLAException
26
28
from oracle .weblogic .deploy .util import FileUtils
27
29
from oracle .weblogic .deploy .util import PyOrderedDict
28
- from oracle .weblogic .deploy .util import VariableException
29
- from oracle .weblogic .deploy .compare import CompareException
30
- from oracle .weblogic .deploy .exception import ExceptionHelper
31
- from oracle .weblogic .deploy .aliases import AliasException
32
30
from oracle .weblogic .deploy .util import PyWLSTException
33
- from wlsdeploy .exception import exception_helper
31
+ from oracle .weblogic .deploy .util import VariableException
32
+ from oracle .weblogic .deploy .validate import ValidateException
34
33
34
+ import oracle .weblogic .deploy .util .TranslateException as TranslateException
35
+ from wlsdeploy .aliases .aliases import Aliases
36
+ from wlsdeploy .aliases .location_context import LocationContext
37
+ from wlsdeploy .aliases .wlst_modes import WlstModes
38
+ from wlsdeploy .exception import exception_helper
39
+ from wlsdeploy .exception .expection_types import ExceptionType
40
+ from wlsdeploy .json .json_translator import COMMENT_MATCH
41
+ from wlsdeploy .json .json_translator import PythonToJson
35
42
from wlsdeploy .logging .platform_logger import PlatformLogger
43
+ from wlsdeploy .tool .validate .validator import Validator
36
44
from wlsdeploy .util import cla_helper
37
45
from wlsdeploy .util import variables
38
- from wlsdeploy .json .json_translator import COMMENT_MATCH
39
- from wlsdeploy .util .model_translator import FileToPython
40
- from wlsdeploy .yaml .yaml_translator import PythonToYaml
41
- from wlsdeploy .json .json_translator import PythonToJson
42
46
from wlsdeploy .util .cla_utils import CommandLineArgUtil
43
- from wlsdeploy .aliases .aliases import Aliases
44
- from wlsdeploy .aliases .wlst_modes import WlstModes
45
- from wlsdeploy .aliases .location_context import LocationContext
46
47
from wlsdeploy .util .model_context import ModelContext
47
- from wlsdeploy .tool .validate .validator import Validator
48
- from oracle .weblogic .deploy .validate import ValidateException
49
- from wlsdeploy .exception .expection_types import ExceptionType
48
+ from wlsdeploy .util .model_translator import FileToPython
49
+ from wlsdeploy .yaml .yaml_translator import PythonToYaml
50
50
51
51
VALIDATION_FAIL = 2
52
52
PATH_TOKEN = '|'
@@ -136,49 +136,49 @@ def recursive_changed_detail(self, key, token, root):
136
136
"""
137
137
debug ("DEBUG: Entering recursive_changed_detail key=%s token=%s root=%s" , key , token , root )
138
138
139
- a = ModelDiffer (self .current_dict [key ], self .past_dict [key ])
140
- diff = a .changed ()
141
- added = a .added ()
142
- removed = a .removed ()
143
- saved_token = token
139
+ a = ModelDiffer (self .current_dict [key ], self .past_dict [key ])
140
+ diff = a .changed ()
141
+ added = a .added ()
142
+ removed = a .removed ()
143
+ saved_token = token
144
144
145
145
debug ('DEBUG: In recursive changed detail %s' , diff )
146
146
debug ('DEBUG: In recursive added detail %s' , added )
147
147
if len (diff ) > 0 :
148
148
for o in diff :
149
- token = saved_token
149
+ token = saved_token
150
150
# The token is a | separated string that is used to parse and rebuilt the structure later
151
151
debug ('DEBUG: in recursive changed detail walking down 1 %s' , o )
152
- token = token + PATH_TOKEN + o
152
+ token = token + PATH_TOKEN + o
153
153
if a .is_dict (o ):
154
154
debug ('DEBUG: in recursive changed detail walking down 2 %s' , token )
155
- a .recursive_changed_detail (o ,token , root )
156
- last = token .rfind (PATH_TOKEN )
157
- token = root
155
+ a .recursive_changed_detail (o , token , root )
156
+ last = token .rfind (PATH_TOKEN )
157
+ token = root
158
158
else :
159
159
all_changes .append (token )
160
- last = token .rfind (PATH_TOKEN )
161
- token = root
160
+ last = token .rfind (PATH_TOKEN )
161
+ token = root
162
162
163
163
# already out of recursive calls, add all entries from current dictionary
164
164
# resources.JDBCSubsystemResources.* (note it may not have the lower level nodes
165
- added_token = token
166
- debug ('DEBUG: current added token %s' , added_token )
165
+ added_token = token
166
+ debug ('DEBUG: current added token %s' , added_token )
167
167
if len (added ) > 0 :
168
168
for item in added :
169
- token = saved_token
169
+ token = saved_token
170
170
debug ('DEBUG: recursive added token %s item %s ' , token , item )
171
171
all_added .append (token + PATH_TOKEN + item )
172
172
173
173
# We don't really care about this, just put something here is enough
174
174
if len (removed ) > 0 :
175
175
for item in removed :
176
- token = saved_token
176
+ token = saved_token
177
177
debug ('DEBUG: removed %s' , item )
178
178
all_removed .append (token + PATH_TOKEN + item )
179
179
debug ('DEBUG: Exiting recursive_changed_detail' )
180
180
181
- def is_dict (self ,key ):
181
+ def is_dict (self , key ):
182
182
"""
183
183
Check to see if the ke in the current dictionary is a dictionary.
184
184
:param key: key of the dictionary
@@ -238,7 +238,7 @@ def calculate_changed_model(self):
238
238
raise ex
239
239
except AliasException , ae :
240
240
_logger .severe ('WLSDPLY-05709' , ae .getLocalizedMessage (),
241
- error = ae , class_name = _class_name , method_name = _method_name )
241
+ error = ae , class_name = _class_name , method_name = _method_name )
242
242
ex = exception_helper .create_compare_exception (ae .getLocalizedMessage (), error = ae )
243
243
_logger .throwing (ex , class_name = _class_name , method_name = _method_name )
244
244
raise ex
@@ -251,7 +251,7 @@ def _is_alias_folder(self, path):
251
251
"""
252
252
debug ("DEBUG: Entering is_alias_folder %s" , path )
253
253
path_tokens = path .split (PATH_TOKEN )
254
- model_context = ModelContext ("test" , { })
254
+ model_context = ModelContext ("test" , {})
255
255
location = LocationContext ()
256
256
last_token = path_tokens [- 1 ]
257
257
aliases = Aliases (model_context , wlst_mode = WlstModes .OFFLINE , exception_type = ExceptionType .COMPARE )
@@ -290,9 +290,9 @@ def _add_results(self, ar_changes, is_delete=False, is_change=False):
290
290
# Skipp adding if it is a delete of an attribute
291
291
found_in_allowable_delete = self ._is_alias_folder (item )
292
292
if not found_in_allowable_delete :
293
- compare_msgs .add (('WLSDPLY-05701' ,item ))
293
+ compare_msgs .add (('WLSDPLY-05701' , item ))
294
294
continue
295
- splitted = item .split (PATH_TOKEN ,1 )
295
+ splitted = item .split (PATH_TOKEN , 1 )
296
296
n = len (splitted )
297
297
result = PyOrderedDict ()
298
298
walked = []
@@ -310,12 +310,12 @@ def _add_results(self, ar_changes, is_delete=False, is_change=False):
310
310
else :
311
311
result = tmp
312
312
walked .append (splitted [0 ])
313
- splitted = splitted [1 ].split (PATH_TOKEN ,1 )
313
+ splitted = splitted [1 ].split (PATH_TOKEN , 1 )
314
314
n = len (splitted )
315
315
#
316
316
# result is the dictionary format
317
317
#
318
- leaf = result
318
+ leaf = result
319
319
if is_change :
320
320
value_tree = self .past_dict
321
321
else :
@@ -343,7 +343,7 @@ def _add_results(self, ar_changes, is_delete=False, is_change=False):
343
343
if is_delete :
344
344
is_folder_path = self ._is_alias_folder (item )
345
345
split_delete = item .split (PATH_TOKEN )
346
- #allowable_delete_length = len(allowable_delete.split(PATH_TOKEN))
346
+ # allowable_delete_length = len(allowable_delete.split(PATH_TOKEN))
347
347
split_delete_length = len (split_delete )
348
348
if is_folder_path :
349
349
app_key = split_delete [split_delete_length - 1 ]
@@ -453,8 +453,10 @@ def compare(self):
453
453
arg_map [CommandLineArgUtil .MODEL_FILE_SWITCH ] = model_file_name
454
454
model_context_copy = self .model_context .copy (arg_map )
455
455
val_copy = Validator (model_context_copy , aliases , wlst_mode = WlstModes .OFFLINE )
456
- return_code = val_copy .validate_in_standalone_mode (model_dictionary ,
457
- None ,
456
+
457
+ # any variables should have been substituted at this point
458
+ validate_variables = {}
459
+ return_code = val_copy .validate_in_standalone_mode (model_dictionary , validate_variables ,
458
460
archive_file_name = None )
459
461
460
462
if return_code == Validator .ReturnCode .STOP :
@@ -470,8 +472,7 @@ def compare(self):
470
472
arg_map [CommandLineArgUtil .MODEL_FILE_SWITCH ] = model_file_name
471
473
model_context_copy = self .model_context .copy (arg_map )
472
474
val_copy = Validator (model_context_copy , aliases , wlst_mode = WlstModes .OFFLINE )
473
- return_code = val_copy .validate_in_standalone_mode (model_dictionary ,
474
- None ,
475
+ return_code = val_copy .validate_in_standalone_mode (model_dictionary , validate_variables ,
475
476
archive_file_name = None )
476
477
477
478
if return_code == Validator .ReturnCode .STOP :
@@ -480,19 +481,19 @@ def compare(self):
480
481
past_dict = model_dictionary
481
482
except ValidateException , te :
482
483
_logger .severe ('WLSDPLY-20009' , _program_name , model_file_name , te .getLocalizedMessage (),
483
- error = te , class_name = _class_name , method_name = _method_name )
484
+ error = te , class_name = _class_name , method_name = _method_name )
484
485
ex = exception_helper .create_compare_exception (te .getLocalizedMessage (), error = te )
485
486
_logger .throwing (ex , class_name = _class_name , method_name = _method_name )
486
487
return VALIDATION_FAIL
487
488
except VariableException , ve :
488
489
_logger .severe ('WLSDPLY-20009' , _program_name , model_file_name , ve .getLocalizedMessage (),
489
- error = ve , class_name = _class_name , method_name = _method_name )
490
+ error = ve , class_name = _class_name , method_name = _method_name )
490
491
ex = exception_helper .create_compare_exception (ve .getLocalizedMessage (), error = ve )
491
492
_logger .throwing (ex , class_name = _class_name , method_name = _method_name )
492
493
return VALIDATION_FAIL
493
494
except TranslateException , pe :
494
495
_logger .severe ('WLSDPLY-20009' , _program_name , model_file_name , pe .getLocalizedMessage (),
495
- error = pe , class_name = _class_name , method_name = _method_name )
496
+ error = pe , class_name = _class_name , method_name = _method_name )
496
497
ex = exception_helper .create_compare_exception (pe .getLocalizedMessage (), error = pe )
497
498
_logger .throwing (ex , class_name = _class_name , method_name = _method_name )
498
499
return VALIDATION_FAIL
@@ -534,7 +535,7 @@ def compare(self):
534
535
if writer :
535
536
writer .close ()
536
537
_logger .severe ('WLSDPLY-05708' , file_name , ioe .getLocalizedMessage (),
537
- error = ioe , class_name = _class_name , method_name = _method_name )
538
+ error = ioe , class_name = _class_name , method_name = _method_name )
538
539
return 2
539
540
else :
540
541
print format_message ('WLSDPLY-05707' )
@@ -583,7 +584,7 @@ def main():
583
584
model1 = model_context .get_trailing_argument (0 )
584
585
model2 = model_context .get_trailing_argument (1 )
585
586
586
- for f in [ model1 , model2 ]:
587
+ for f in [model1 , model2 ]:
587
588
if not os .path .exists (f ):
588
589
raise CLAException ("Model %s does not exists" % f )
589
590
if os .path .isdir (f ):
@@ -596,7 +597,7 @@ def main():
596
597
raise CLAException ("Model extension must be either yaml or json" )
597
598
598
599
if not (FileUtils .isYamlFile (model1_file ) and FileUtils .isYamlFile (model2_file )
599
- or FileUtils .isJsonFile (model1_file ) and FileUtils .isJsonFile (model2_file )):
600
+ or FileUtils .isJsonFile (model1_file ) and FileUtils .isJsonFile (model2_file )):
600
601
ext = os .path .splitext (model1 )[1 ]
601
602
raise CLAException ("Model %s is not a %s file " % (model2 , ext ))
602
603
@@ -620,7 +621,7 @@ def main():
620
621
for line in compare_msgs :
621
622
msg_key = line [0 ]
622
623
msg_value = line [1 ]
623
- writer .println ( "%s. %s" % (index , format_message (msg_key ,msg_value .replace (PATH_TOKEN , "-->" ))))
624
+ writer .println ("%s. %s" % (index , format_message (msg_key ,msg_value .replace (PATH_TOKEN , "-->" ))))
624
625
index = index + 1
625
626
writer .println (BLANK_LINE )
626
627
fos .close ()
@@ -631,7 +632,7 @@ def main():
631
632
if writer :
632
633
writer .close ()
633
634
_logger .severe ('WLSDPLY-05708' , file_name , ioe .getLocalizedMessage (),
634
- error = ioe , class_name = _class_name , method_name = _method_name )
635
+ error = ioe , class_name = _class_name , method_name = _method_name )
635
636
else :
636
637
if len (compare_msgs ) > 0 :
637
638
print BLANK_LINE
@@ -650,7 +651,7 @@ def main():
650
651
exit_code = 2
651
652
if exit_code != CommandLineArgUtil .HELP_EXIT_CODE :
652
653
_logger .severe ('WLSDPLY-20008' , _program_name , ex .getLocalizedMessage (), error = ex ,
653
- class_name = _class_name , method_name = _method_name )
654
+ class_name = _class_name , method_name = _method_name )
654
655
cla_helper .clean_up_temp_files ()
655
656
sys .exit (exit_code )
656
657
except CompareException , ce :
@@ -681,5 +682,3 @@ def format_message(key, *args):
681
682
682
683
if __name__ == "__main__" :
683
684
main ()
684
-
685
-
0 commit comments