Limpiar una cuenta de Azure Media Services desde .NET

Cuando estamos desarrollando, un método que no podemos olvidar es uno que elimine todos los assets, locators, jobs y políticas de acceso que se hayan acumulado después de realizar numerosas pruebas. Lo cierto es que es muy sencillo, ya que solamente debemos recorrer cada uno de los listados y eliminar el contenido de ellos a través del método Delete de cada uno de los objetos (también disponemos de DeleteAsync):

[csharp]using Microsoft.WindowsAzure.MediaServices.Client;
using System;
using System.Configuration;

namespace CleanAMSAccount
{
class Program
{
static void Main(string[] args)
{
var context = new CloudMediaContext(ConfigurationManager.AppSettings["AccountName"], ConfigurationManager.AppSettings["AccountKey"]);

Console.WriteLine("Removing programs");

foreach (var program in context.Programs)
{
if (program.State != ProgramState.Stopped)
program.Stop();
program.Delete();
}

Console.WriteLine("Removing channels");

foreach (var channel in context.Channels)
{
if (channel.State != ChannelState.Stopped)
channel.Stop();
channel.Delete();
}

Console.WriteLine("Removing streaming units");

foreach (var endpoint in context.StreamingEndpoints)
{
if (endpoint.State != StreamingEndpointState.Scaling && endpoint.ScaleUnits > 0)
endpoint.Scale(0);
}

Console.WriteLine("Removing encoding units");

foreach (var endpoint in context.EncodingReservedUnits)
{
endpoint.CurrentReservedUnits = 0;
endpoint.Update();
}

Console.WriteLine("Removing channels");

foreach (var channel in context.Channels)
{
channel.Stop();
channel.Delete();
}

Console.WriteLine("Cleaning jobs");

foreach (var job in context.Jobs)
{
job.Delete();
}

Console.WriteLine("Cleaning locators");

foreach (var locator in context.Locators)
{
locator.Delete();
}

Console.WriteLine("Cleaning access policies");

foreach (var accessPolicy in context.AccessPolicies)
{
accessPolicy.Delete();
}

Console.WriteLine("Cleaning assets");

foreach (var asset in context.Assets)
{
asset.Delete();
}

Console.WriteLine("Done!");
Console.ReadLine();
}
}
}
[/csharp]

Espero que sea de utilidad.

¡Saludos!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.