Reputation: 41
I am using https://www.nuget.org/packages/Microsoft.Azure.Management.Fluent for getting resources in Azure with programmatically(C# .NET-Core Web app) and tried to get resources information by providing service principals as below...
string subscriptionId="XXX";
AzureCredentials cred = new
AzureCredentialsFactory().FromServicePrincipal(UIConstants.ClientID,
UIConstants.Secret, UIConstants.Tenant,AzureEnvironment.AzureGlobalCloud);
var azure = Azure.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(cred)
.WithSubscription(subscriptionId);
How to get list of Empty Resource Groups by using of Azure Mgmt SDK fluent with dotnetcore,C#.net?menas Resource Groups that dont hv any azure resources
Pls, advice on above.
Thanks,
Upvotes: 1
Views: 552
Reputation: 29950
There is no built-in method, you need to write code to check if there are any resources in a resource group.
Here is the sample code, and it can list all the empty resource groups at my side:
using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent.Authentication;
using Microsoft.Azure.Management.ResourceManager.Fluent.Core;
using System;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
string subscriptionId = "xxx";
string clientId = "xxx";
string tenantId = "xxx";
string clientSecret = "xxx";
AzureCredentials cred = new AzureCredentialsFactory()
.FromServicePrincipal(
clientId,
clientSecret,
tenantId,
AzureEnvironment.AzureGlobalCloud
);
var azure = Azure.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(cred)
.WithSubscription(subscriptionId);
RestClient restClient = RestClient.Configure()
.WithEnvironment(AzureEnvironment.AzureGlobalCloud)
.WithCredentials(cred)
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Build();
ResourceManagementClient client = new ResourceManagementClient(restClient);
client.SubscriptionId = subscriptionId;
//list all resource groups
var rgs = azure.ResourceGroups.List();
foreach (var r in rgs)
{
var resources = client.Resources.ListByResourceGroupAsync(r.Name).Result;
//initiate a resource number as 0
int number_of_resources = 0;
//check if there are any resources in the resource group
foreach (var resource in resources)
{
number_of_resources++;
break;
}
//if the resources number is 0 in the resource group, then print out the empty resource group name
if (number_of_resources == 0)
{
Console.WriteLine($"the resource group: {r.Name} is empty");
}
}
Console.WriteLine("**completed**");
Console.ReadLine();
}
}
}
Upvotes: 1