@@ -31,9 +31,10 @@ def register_providers():
31
31
_register_one_provider ('Microsoft.EventGrid/domains' , '2020-04-01-preview' , True )
32
32
_register_one_provider ('Microsoft.SignalRService/signalr' , '2020-05-01' , False )
33
33
_register_one_provider ('Microsoft.Network/applicationGateways' , '2020-05-01' , True )
34
+ _register_one_provider ('Microsoft.Compute/diskAccesses' , '2020-05-01' , False , support_connection_operation = False )
34
35
35
36
36
- def _register_one_provider (provider , api_version , support_list_or_not , resource_get_api_version = None ):
37
+ def _register_one_provider (provider , api_version , support_list_or_not , resource_get_api_version = None , support_connection_operation = True ): # pylint: disable=line-too-long
37
38
"""
38
39
:param provider: namespace + type.
39
40
:param api_version: API version for private link scenarios.
@@ -43,12 +44,20 @@ def _register_one_provider(provider, api_version, support_list_or_not, resource_
43
44
general_client_settings = {
44
45
"api_version" : api_version ,
45
46
"support_list_or_not" : support_list_or_not ,
46
- "resource_get_api_version" : resource_get_api_version
47
+ "resource_get_api_version" : resource_get_api_version ,
48
+ "support_connection_operation" : support_connection_operation
47
49
}
48
50
49
51
TYPE_CLIENT_MAPPING [provider ] = general_client_settings
50
52
51
53
54
+ def _check_connection_operation_support (rp_mapping , resource_provider ):
55
+ if resource_provider in rp_mapping \
56
+ and isinstance (rp_mapping [resource_provider ], dict ) \
57
+ and not rp_mapping [resource_provider ]['support_connection_operation' ]:
58
+ raise CLIError ("Resource provider {} currently does not support this operation" .format (resource_provider ))
59
+
60
+
52
61
def _get_client (rp_mapping , resource_provider ):
53
62
for key , value in rp_mapping .items ():
54
63
if str .lower (key ) == str .lower (resource_provider ):
@@ -68,6 +77,7 @@ def list_private_link_resource(cmd, resource_group_name, name, resource_provider
68
77
69
78
def approve_private_endpoint_connection (cmd , resource_group_name , resource_name , resource_provider ,
70
79
name , approval_description = None ):
80
+ _check_connection_operation_support (TYPE_CLIENT_MAPPING , resource_provider )
71
81
client = _get_client (TYPE_CLIENT_MAPPING , resource_provider )
72
82
return client .approve_private_endpoint_connection (cmd , resource_group_name ,
73
83
resource_name , name ,
@@ -76,18 +86,21 @@ def approve_private_endpoint_connection(cmd, resource_group_name, resource_name,
76
86
77
87
def reject_private_endpoint_connection (cmd , resource_group_name , resource_name , resource_provider ,
78
88
name , rejection_description = None ):
89
+ _check_connection_operation_support (TYPE_CLIENT_MAPPING , resource_provider )
79
90
client = _get_client (TYPE_CLIENT_MAPPING , resource_provider )
80
91
return client .reject_private_endpoint_connection (cmd , resource_group_name ,
81
92
resource_name , name ,
82
93
rejection_description )
83
94
84
95
85
96
def remove_private_endpoint_connection (cmd , resource_group_name , resource_name , resource_provider , name ):
97
+ _check_connection_operation_support (TYPE_CLIENT_MAPPING , resource_provider )
86
98
client = _get_client (TYPE_CLIENT_MAPPING , resource_provider )
87
99
return client .remove_private_endpoint_connection (cmd , resource_group_name , resource_name , name )
88
100
89
101
90
102
def show_private_endpoint_connection (cmd , resource_group_name , resource_name , resource_provider , name ):
103
+ _check_connection_operation_support (TYPE_CLIENT_MAPPING , resource_provider )
91
104
client = _get_client (TYPE_CLIENT_MAPPING , resource_provider )
92
105
return client .show_private_endpoint_connection (cmd , resource_group_name , resource_name , name )
93
106
0 commit comments