Skip to content

Commit 13cd9e7

Browse files
understand what is effectively readonly fields (#1253)
* understand what is effectively readonly fields * requested fixes
1 parent a55a2e2 commit 13cd9e7

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

integration-tests/alias-test/verify/src/test/python/aliastest/verify/alias_helper.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,7 @@ def get_wlst_read_type(self, location, model_name):
139139

140140
def is_derived_default(self, location, model_name):
141141
return self.__aliases.is_derived_default(location, model_name)
142+
143+
def get_wlst_access_rod_attribute_names(self, location):
144+
return self.__aliases.get_wlst_access_rod_attribute_names(location)
145+

integration-tests/alias-test/verify/src/test/python/aliastest/verify/verifier.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -496,15 +496,16 @@ def _check_attribute_exists(self, location, generated_attribute, generated_attri
496496
_logger.entering(location.get_folder_path(), generated_attribute,
497497
class_name=CLASS_NAME, method_name=_method_name)
498498

499-
exists, model_attribute_name = self._does_alias_attribute_exist(location, generated_attribute,
499+
exists, model_attribute_name, rod = self._does_alias_attribute_exist(location, generated_attribute,
500500
generated_attribute_info, alias_name_map)
501501
if exists:
502-
if model_attribute_name is None:
502+
if model_attribute_name is None or rod:
503503
# if the alias attribute is correctly identified as read-only, it's not an error, but we cannot
504504
# verify any of the other attribute information using aliases methods. And since its read-only
505505
# we don't really care about any of the attribute information. This is also true for clear
506506
# text password fields.
507-
exists = False
507+
if not rod:
508+
exists = False
508509
# clear text attributes (don't have Encrypted on the end) are not defined in the definitions
509510
# they are only artificially known and ignored by alias definitions
510511
read_only = \
@@ -544,9 +545,15 @@ def _does_alias_attribute_exist(self, location, generated_attribute, generated_a
544545
lower_case_list = alias_name_map.values()
545546
exists = True
546547
model_attribute = None
548+
rod = False
547549
try:
548550
# no exception is thrown if it is found but read only, just returns empty model_attribute name
549551
model_attribute = self._alias_helper.get_model_attribute_name(location, generated_attribute)
552+
# if value returned check to see if access type is ROD. If so change model_attribute to None
553+
if model_attribute is not None:
554+
wlst_attributes = self._alias_helper.get_wlst_access_rod_attribute_names(location)
555+
if wlst_attributes is not None and generated_attribute in wlst_attributes:
556+
rod = True
550557
except AliasException:
551558
exists = False
552559

@@ -580,7 +587,7 @@ def _does_alias_attribute_exist(self, location, generated_attribute, generated_a
580587
class_name=CLASS_NAME, method_name=_method_name)
581588

582589
_logger.exiting(result=model_attribute, class_name=CLASS_NAME, method_name=_method_name)
583-
return exists, model_attribute
590+
return exists, model_attribute, rod
584591

585592
def _is_generated_attribute_readonly(self, location, generated_attribute, generated_attribute_info,
586593
alias_get_required_attribute_list=None):

0 commit comments

Comments
 (0)