15
15
from azure .cli .core .commands .client_factory import get_mgmt_service_client
16
16
from azure .cli .core .commands .events import EVENT_INVOKER_PRE_LOAD_ARGUMENTS
17
17
from 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
19
19
from azure .cli .core .profiles import ResourceType , get_sdk
20
20
21
21
from knack .arguments import CLICommandArgument , ignore_type
@@ -600,7 +600,7 @@ def remove_properties(instance, argument_values):
600
600
def throw_and_show_options (instance , part , path ):
601
601
from msrest .serialization import Model
602
602
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 ):
604
604
options .update (options .pop ('additional_properties' ))
605
605
parent = '.' .join (path [:- 1 ]).replace ('.[' , '[' )
606
606
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
673
673
matches .append (x )
674
674
elif not isinstance (x , dict ):
675
675
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 :
677
677
matches .append (x )
678
678
679
679
if len (matches ) == 1 :
680
680
return matches [0 ]
681
681
if len (matches ) > 1 :
682
682
raise CLIError ("non-unique key '{}' found multiple matches on {}. Key must be unique."
683
683
.format (key , path [- 2 ]))
684
- if key in getattr (instance , 'additional_properties' , {}):
684
+ if key in getprop (instance , 'additional_properties' , {}):
685
685
instance .enable_additional_properties_sending ()
686
686
return instance .additional_properties [key ]
687
687
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
697
697
return instance [part ]
698
698
699
699
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' , {}):
702
702
instance .enable_additional_properties_sending ()
703
703
return instance .additional_properties [part ]
704
704
raise AttributeError ()
0 commit comments