@@ -41,10 +41,12 @@ def install_vme(
4141 for extension_type in include_extension_types :
4242 extension_resource_id = (
4343 f"{ cluster_resource_id } /Providers/Microsoft.KubernetesConfiguration/"
44- f"extensions/{ consts .BundleExtensionNames [extension_type ]} "
44+ f"extensions/{ consts .BundleExtensionTypeNames [extension_type ]} "
4545 )
4646 try :
47- resources .get_by_id (extension_resource_id , '2022-11-01' )
47+ ext = resources .get_by_id (extension_resource_id , '2022-11-01' )
48+ if ext .properties ['provisioningState' ] == 'Failed' :
49+ raise ResourceNotFoundError ()
4850 print (f"Extension { extension_type } already exists, skipping installation." )
4951 continue
5052 except ResourceNotFoundError :
@@ -61,14 +63,15 @@ def install_vme(
6163 "--cluster-type" ,
6264 consts .CONNECTEDCLUSTER_TYPE ,
6365 "--name" ,
64- consts .BundleExtensionNames [extension_type ],
66+ consts .BundleExtensionTypeNames [extension_type ],
6567 "--extension-type" ,
6668 extension_type ,
6769 "--scope" ,
6870 "cluster"
6971 ]
70- utils .call_subprocess_raise_output (command )
72+ result = utils .call_subprocess_raise_output (command )
7173 print (f"Installed extension { extension_type } successfully." )
74+ print (result )
7275
7376 print ("All extensions installed successfully." )
7477
@@ -103,7 +106,7 @@ def uninstall_vme(
103106 "--cluster-type" ,
104107 "connectedClusters" ,
105108 "--name" ,
106- consts .BundleExtensionNames [extension_type ],
109+ consts .BundleExtensionTypeNames [extension_type ],
107110 "--force" ,
108111 "--yes" ]
109112 utils .call_subprocess_raise_output (command )
@@ -177,3 +180,31 @@ def upgrade_vme(
177180
178181 if (not deployment ):
179182 raise CLIError (consts .UPGRADE_TIMEOUT_MSG .format (wait_timeout ))
183+
184+
185+ def list_vme (
186+ cmd ,
187+ resource_group_name : str ,
188+ cluster_name : str ):
189+ subscription_id = get_subscription_id (cmd .cli_ctx )
190+
191+ # Check whether the cluster exists
192+ resources = cf_resources (cmd .cli_ctx , subscription_id )
193+ cluster_resource_id = '/subscriptions/{0}/resourceGroups/{1}/providers/{2}/{3}/{4}' .format (
194+ subscription_id , resource_group_name , consts .CONNECTEDCLUSTER_RP , consts .CONNECTEDCLUSTER_TYPE , cluster_name )
195+ resources .get_by_id (cluster_resource_id , '2024-12-01-preview' )
196+
197+ results = []
198+ extension_names = consts .BundleExtensionNames
199+ for extension_name in extension_names :
200+ extension_resource_id = (
201+ f"{ cluster_resource_id } /Providers/Microsoft.KubernetesConfiguration/"
202+ f"extensions/{ extension_name } "
203+ )
204+ try :
205+ ext = resources .get_by_id (extension_resource_id , '2022-11-01' )
206+ results .append (ext )
207+ except ResourceNotFoundError :
208+ continue
209+
210+ return results
0 commit comments