1717logger = get_logger (__name__ )
1818
1919
20- class ContainerAppFunctionsDecorator (BaseResource ):
21- """Base decorator for Container App Functions operations"""
20+ class ContainerAppFunctionKeysDecorator (BaseResource ):
21+ """Base decorator for Container App Function Keys operations"""
2222
2323 def __init__ (self , cmd : AzCliCommand , client : Any , raw_parameters : Dict , models : str ):
2424 super ().__init__ (cmd , client , raw_parameters , models )
2525
2626 def get_argument_function_name (self ):
2727 return self .get_param ("function_name" )
2828
29+ def get_argument_revision_name (self ):
30+ return self .get_param ("revision_name" )
2931
30- class ContainerAppFunctionKeysListDecorator (ContainerAppFunctionsDecorator ):
32+ def validate_common_arguments (self ):
33+ """Validate common arguments required for all function operations"""
34+ resource_group_name = self .get_argument_resource_group_name ()
35+ name = self .get_argument_name ()
36+ revision_name = self .get_argument_revision_name ()
37+
38+ if not resource_group_name :
39+ raise ValidationError ("Resource group name is required." )
40+
41+ if not name :
42+ raise ValidationError ("Container app name is required." )
43+
44+ if not revision_name :
45+ raise ValidationError ("Revision name is required." )
46+
47+ return resource_group_name , name , revision_name
48+
49+ def validate_function_arguments (self ):
50+ """Validate arguments required for function-specific operations"""
51+ resource_group_name , name , revision_name = self .validate_common_arguments ()
52+ function_name = self .get_argument_function_name ()
53+
54+ if not function_name :
55+ raise ValidationError ("Function name is required." )
56+
57+ return resource_group_name , name , revision_name , function_name
58+
59+
60+ class ContainerAppFunctionKeysListDecorator (ContainerAppFunctionKeysDecorator ):
3161 """Decorator for listing function keys"""
3262
3363 def __init__ (self , cmd : AzCliCommand , client : Any , raw_parameters : Dict , models : str ):
@@ -36,18 +66,7 @@ def __init__(self, cmd: AzCliCommand, client: Any, raw_parameters: Dict, models:
3666 def list_keys (self ):
3767 """List keys for a specific function"""
3868 try :
39- function_name = self .get_argument_function_name ()
40- resource_group_name = self .get_argument_resource_group_name ()
41- name = self .get_argument_name ()
42-
43- if not resource_group_name :
44- raise ValidationError ("Resource group name is required." )
45-
46- if not name :
47- raise ValidationError ("Container app name is required." )
48-
49- if not function_name :
50- raise ValidationError ("Function name is required." )
69+ resource_group_name , name , revision_name , function_name = self .validate_function_arguments ()
5170
5271 return self .client .list_function_keys (
5372 cmd = self .cmd ,
@@ -59,7 +78,7 @@ def list_keys(self):
5978 handle_raw_exception (e )
6079
6180
62- class ContainerAppFunctionKeysUpdateDecorator (ContainerAppFunctionsDecorator ):
81+ class ContainerAppFunctionKeysUpdateDecorator (ContainerAppFunctionKeysDecorator ):
6382 """Decorator for updating function keys"""
6483
6584 def __init__ (self , cmd : AzCliCommand , client : Any , raw_parameters : Dict , models : str ):
@@ -71,26 +90,21 @@ def get_argument_key_name(self):
7190 def get_argument_key_value (self ):
7291 return self .get_param ("key_value" )
7392
93+ def validate_update_arguments (self ):
94+ """Validate arguments required for updating function keys"""
95+ resource_group_name , name , revision_name , function_name = self .validate_function_arguments ()
96+ key_name = self .get_argument_key_name ()
97+
98+ if not key_name :
99+ raise ValidationError ("Key name is required." )
100+
101+ return resource_group_name , name , revision_name , function_name , key_name
102+
74103 def update_keys (self ):
75104 """Update keys for a specific function"""
76105 try :
77- function_name = self .get_argument_function_name ()
78- key_name = self .get_argument_key_name ()
106+ resource_group_name , name , revision_name , function_name , key_name = self .validate_update_arguments ()
79107 key_value = self .get_argument_key_value ()
80- resource_group_name = self .get_argument_resource_group_name ()
81- name = self .get_argument_name ()
82-
83- if not resource_group_name :
84- raise ValidationError ("Resource group name is required." )
85-
86- if not name :
87- raise ValidationError ("Container app name is required." )
88-
89- if not function_name :
90- raise ValidationError ("Function name is required." )
91-
92- if not key_name :
93- raise ValidationError ("Key name is required." )
94108
95109 return self .client .update_function_keys (
96110 cmd = self .cmd ,
@@ -104,7 +118,7 @@ def update_keys(self):
104118 handle_raw_exception (e )
105119
106120
107- class ContainerAppFunctionHostKeysListDecorator (ContainerAppFunctionsDecorator ):
121+ class ContainerAppFunctionHostKeysListDecorator (ContainerAppFunctionKeysDecorator ):
108122 """Decorator for listing host keys"""
109123
110124 def __init__ (self , cmd : AzCliCommand , client : Any , raw_parameters : Dict , models : str ):
@@ -113,14 +127,7 @@ def __init__(self, cmd: AzCliCommand, client: Any, raw_parameters: Dict, models:
113127 def list_host_keys (self ):
114128 """List host keys for the container app function host"""
115129 try :
116- resource_group_name = self .get_argument_resource_group_name ()
117- name = self .get_argument_name ()
118-
119- if not resource_group_name :
120- raise ValidationError ("Resource group name is required." )
121-
122- if not name :
123- raise ValidationError ("Container app name is required." )
130+ resource_group_name , name , revision_name = self .validate_common_arguments ()
124131
125132 return self .client .list_host_keys (
126133 cmd = self .cmd ,
@@ -131,7 +138,7 @@ def list_host_keys(self):
131138 handle_raw_exception (e )
132139
133140
134- class ContainerAppFunctionHostKeysUpdateDecorator (ContainerAppFunctionsDecorator ):
141+ class ContainerAppFunctionHostKeysUpdateDecorator (ContainerAppFunctionKeysDecorator ):
135142 """Decorator for updating host keys"""
136143
137144 def __init__ (self , cmd : AzCliCommand , client : Any , raw_parameters : Dict , models : str ):
@@ -146,26 +153,25 @@ def get_argument_key_name(self):
146153 def get_argument_key_value (self ):
147154 return self .get_param ("key_value" )
148155
156+ def validate_host_key_arguments (self ):
157+ """Validate arguments required for updating host keys"""
158+ resource_group_name , name , revision_name = self .validate_common_arguments ()
159+ key_type = self .get_argument_key_type ()
160+ key_name = self .get_argument_key_name ()
161+
162+ if not key_type :
163+ raise ValidationError ("Key type is required." )
164+
165+ if not key_name :
166+ raise ValidationError ("Key name is required." )
167+
168+ return resource_group_name , name , revision_name , key_type , key_name
169+
149170 def update_host_keys (self ):
150171 """Update host keys for the container app function host"""
151172 try :
152- key_type = self .get_argument_key_type ()
153- key_name = self .get_argument_key_name ()
173+ resource_group_name , name , revision_name , key_type , key_name = self .validate_host_key_arguments ()
154174 key_value = self .get_argument_key_value ()
155- resource_group_name = self .get_argument_resource_group_name ()
156- name = self .get_argument_name ()
157-
158- if not resource_group_name :
159- raise ValidationError ("Resource group name is required." )
160-
161- if not name :
162- raise ValidationError ("Container app name is required." )
163-
164- if not key_type :
165- raise ValidationError ("Key type is required." )
166-
167- if not key_name :
168- raise ValidationError ("Key name is required." )
169175
170176 return self .client .update_host_keys (
171177 cmd = self .cmd ,
0 commit comments