public static async Task UnprovisionApplicationTypeAsync(this FabricClient cluster, string appTypeName, string appTypeVersion) { try { await cluster.ApplicationManager.UnprovisionApplicationAsync(appTypeName, appTypeVersion); } catch (FabricException ex) { if (ex.ErrorCode == FabricErrorCode.ApplicationTypeInUse) { await cluster.DeleteApplicationTypeInstancesAsync(appTypeName); await cluster.ApplicationManager.UnprovisionApplicationAsync(appTypeName, appTypeVersion); } } }
protected static void ShutdownLocalFabricCluster() { logger.Debug("Shutting down the local service fabric cluster environment"); using (var cluster = new FabricClient()) { try { cluster.DeleteApplicationTypeInstancesAsync(appTypeName).GetAwaiter().GetResult(); cluster.ApplicationManager.UnprovisionApplicationAsync(appTypeName, appTypeVersion).GetAwaiter().GetResult(); cluster.ApplicationManager.RemoveApplicationPackage(imageStoreConnectionString, appTypeName); } catch (Exception ex) { logger.Error(ex, "Failed to undeploy and shutdown local service fabric cluster environment"); } } }