1515from azure .cli .core .commands .client_factory import get_mgmt_service_client
1616from azure .cli .core .commands .events import EVENT_INVOKER_PRE_LOAD_ARGUMENTS
1717from azure .cli .core .commands .validators import IterateValue
18- from azure .cli .core .util import shell_safe_json_parse , get_command_type_kwarg
18+ from azure .cli .core .util import shell_safe_json_parse , get_command_type_kwarg , getprop
1919from azure .cli .core .profiles import ResourceType , get_sdk
2020
2121from knack .arguments import CLICommandArgument , ignore_type
@@ -600,7 +600,7 @@ def remove_properties(instance, argument_values):
600600def throw_and_show_options (instance , part , path ):
601601 from msrest .serialization import Model
602602 options = instance .__dict__ if hasattr (instance , '__dict__' ) else instance
603- if isinstance (instance , Model ) and isinstance (getattr (instance , 'additional_properties' , None ), dict ):
603+ if isinstance (instance , Model ) and isinstance (getprop (instance , 'additional_properties' , None ), dict ):
604604 options .update (options .pop ('additional_properties' ))
605605 parent = '.' .join (path [:- 1 ]).replace ('.[' , '[' )
606606 error_message = "Couldn't find '{}' in '{}'." .format (part , parent )
@@ -673,15 +673,15 @@ def _update_instance(instance, part, path): # pylint: disable=too-many-return-s
673673 matches .append (x )
674674 elif not isinstance (x , dict ):
675675 snake_key = make_snake_case (key )
676- if hasattr (x , snake_key ) and getattr (x , snake_key , None ) == value :
676+ if hasattr (x , snake_key ) and getprop (x , snake_key , None ) == value :
677677 matches .append (x )
678678
679679 if len (matches ) == 1 :
680680 return matches [0 ]
681681 if len (matches ) > 1 :
682682 raise CLIError ("non-unique key '{}' found multiple matches on {}. Key must be unique."
683683 .format (key , path [- 2 ]))
684- if key in getattr (instance , 'additional_properties' , {}):
684+ if key in getprop (instance , 'additional_properties' , {}):
685685 instance .enable_additional_properties_sending ()
686686 return instance .additional_properties [key ]
687687 raise CLIError ("item with value '{}' doesn\' t exist for key '{}' on {}" .format (value , key , path [- 2 ]))
@@ -697,8 +697,8 @@ def _update_instance(instance, part, path): # pylint: disable=too-many-return-s
697697 return instance [part ]
698698
699699 if hasattr (instance , make_snake_case (part )):
700- return getattr (instance , make_snake_case (part ), None )
701- if part in getattr (instance , 'additional_properties' , {}):
700+ return getprop (instance , make_snake_case (part ), None )
701+ if part in getprop (instance , 'additional_properties' , {}):
702702 instance .enable_additional_properties_sending ()
703703 return instance .additional_properties [part ]
704704 raise AttributeError ()
0 commit comments