public override void Execute() { int numberOfRgs = 2; var context = Context; for (int i = 0; i < numberOfRgs; i++) { var createMultipleVms = new CreateMultipleVms(context); createMultipleVms.Execute(); context = new ScenarioContext(); } var subscription = new AzureResourceManagerClient().Subscription(Context.SubscriptionId); Regex reg = new Regex($"{Context.VmName}.*-e"); Parallel.ForEach(subscription.ListVirtualMachines(), vm => { if (reg.IsMatch(vm.Id.Name)) { Console.WriteLine($"Stopping {vm.Id.ResourceGroup} {vm.Id.Name}"); vm.PowerOff(); Console.WriteLine($"Starting {vm.Id.ResourceGroup} {vm.Id.Name}"); vm.PowerOn(); } }); }
public async override void Execute() { #region SETUP ScenarioContext[] contexts = new ScenarioContext[] { new ScenarioContext(), new ScenarioContext("c9cbd920-c00c-427c-852b-8aaf38badaeb") }; ParallelOptions options = new ParallelOptions { MaxDegreeOfParallelism = 1 }; Parallel.ForEach(contexts, options, context => { var createMultipleVms = new CreateMultipleVms(context); createMultipleVms.Execute(); }); #endregion var client = new AzureResourceManagerClient(); foreach (var sub in client.Subscriptions().List()) { await foreach (var armResource in sub.ListVirtualMachinesByNameAsync("even")) { var vmOperations = VirtualMachineOperations.FromGeneric(armResource); Console.WriteLine($"Stopping {vmOperations.Id.Subscription} {vmOperations.Id.ResourceGroup} {vmOperations.Id.Name}"); vmOperations.PowerOff(); Console.WriteLine($"Starting {vmOperations.Id.Subscription} {vmOperations.Id.ResourceGroup} {vmOperations.Id.Name}"); vmOperations.PowerOn(); } } }
public override void Execute() { #region SETUP ScenarioContext[] contexts = new ScenarioContext[] { new ScenarioContext(), new ScenarioContext("c9cbd920-c00c-427c-852b-8aaf38badaeb") }; ParallelOptions options = new ParallelOptions { MaxDegreeOfParallelism = 1 }; Parallel.ForEach(contexts, options, context => { var createMultipleVms = new CreateMultipleVms(context); createMultipleVms.Execute(); }); #endregion var rmClient = new ResourcesManagementClient(Context.SubscriptionId, Context.Credential); foreach (var sub in rmClient.Subscriptions.List()) { var compute = new ComputeManagementClient(Context.SubscriptionId, Context.Credential); // since compute does not provide any filtering service side, filters must be applied client-side foreach (var vm in compute.VirtualMachines.ListAll().Where(v => v.Name.Contains("MyFilterString"))) { Console.WriteLine($"Found VM {vm.Name}"); Console.WriteLine("--------Stopping VM--------"); // It is somewhat awkward to have to parse the identity of the VM to get the resoource group to make this call var resourceGroupName = GetResourceGroup(vm.Id); compute.VirtualMachines.StartPowerOff(resourceGroupName, vm.Name).WaitForCompletionAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } } }
public override void Execute() { var createMultipleVms = new CreateMultipleVms(Context); createMultipleVms.Execute(); var rg = new AzureResourceManagerClient().ResourceGroup(Context.SubscriptionId, Context.RgName).Get().Value; //set tags on random vms Random rand = new Random(Environment.TickCount); foreach (var generic in rg.VirtualMachines().ListByName(Environment.UserName)) { var vm = VirtualMachineOperations.FromGeneric(generic); if (rand.NextDouble() > 0.5) { Console.WriteLine("adding tag to {0}", vm.Id.Name); vm.StartAddTag("tagkey", "tagvalue"); } } var filteredList = rg.VirtualMachines().List().Where(vm => { string value; return(vm.Data.Tags.TryGetValue("tagkey", out value) && value == "tagvalue"); }); foreach (var vm in filteredList) { Console.WriteLine("--------Stopping VM {0}--------", vm.Id.Name); vm.PowerOff(); Console.WriteLine("--------Starting VM {0}--------", vm.Id.Name); vm.PowerOn(); } }
public override void Execute() { var createMultipleVms = new CreateMultipleVms(Context); createMultipleVms.Execute(); var sub = new AzureResourceManagerClient().GetSubscriptionOperations(Context.SubscriptionId); var rg = sub.GetResourceGroupOperations(Context.RgName); var virtualMachineContainer = rg.GetVirtualMachineContainer(); foreach (var response in virtualMachineContainer.List()) { var virtualMachine = virtualMachineContainer.Get(response.Data.Id.Name); Debug.Assert(virtualMachine.Value.Data.Name.Equals(response.Data.Id.Name)); } var virtualNetworkContainer = rg.GetVirtualNetworkContainer(); foreach (var response in virtualNetworkContainer.List()) { var virtualNetwork = virtualNetworkContainer.Get(response.Data.Id.Name); Debug.Assert(virtualNetwork.Value.Data.Name.Equals(response.Data.Id.Name)); foreach (var subnetResponse in response.GetSubnetContainer().List()) { var actualSubnet = subnetResponse.Get(); var subnets = response.GetSubnetContainer().Get(actualSubnet.Value.Data.Name); Debug.Assert(subnets.Value.Data.Name.Equals(actualSubnet.Value.Data.Name)); } } Console.WriteLine("\nDone all asserts passed ..."); }
public override void Execute() { var createMultipleVms = new CreateMultipleVms(Context); createMultipleVms.Execute(); var sub = new AzureResourceManagerClient().GetSubscriptionOperations(Context.SubscriptionId); foreach (var armResource in sub.ListVirtualMachinesByName("-e")) { var vmOperations = VirtualMachineOperations.FromGeneric(armResource); Console.WriteLine($"Stopping {armResource.Id.ResourceGroup} : {armResource.Id.Name}"); vmOperations.PowerOff(); Console.WriteLine($"Starting {armResource.Id.ResourceGroup} : {armResource.Id.Name}"); vmOperations.PowerOn(); } }
public override void Execute() { var createMultipleVms = new CreateMultipleVms(Context); createMultipleVms.Execute(); var client = new AzureResourceManagerClient(); foreach (var sub in client.Subscriptions().List()) { var vmList = sub.ListVirtualMachines(); foreach (var vm in vmList.Where(armResource => armResource.Data.Name.Contains("-o"))) { Console.WriteLine($"In subscription list: Stopping {vm.Id}"); vm.PowerOff(); Console.WriteLine($"In subscription list: Starting {vm.Id}"); vm.PowerOn(); } } var resourceGroup = new AzureResourceManagerClient().ResourceGroup(Context.SubscriptionId, Context.RgName); resourceGroup.VirtualMachines().List().Select(vm => { var parts = vm.Id.Name.Split('-'); var n = Convert.ToInt32(parts[0].Last()); return(vm, n); }) .Where(tuple => tuple.n % 2 == 0) .ToList() .ForEach(tuple => { Console.WriteLine($"In resource group list: Stopping {tuple.vm.Id.Name}"); tuple.vm.PowerOff(); Console.WriteLine($"In resource group list: Starting {tuple.vm.Id.Name}"); tuple.vm.PowerOn(); }); }
public override void Execute() { var createMultipleVms = new CreateMultipleVms(Context); createMultipleVms.Execute(); var rmClient = new ResourcesManagementClient(Context.SubscriptionId, Context.Credential); var computeClient = new ComputeManagementClient(Context.SubscriptionId, Context.Credential); //set tags on random vms Random rand = new Random(Environment.TickCount); foreach (var vm in computeClient.VirtualMachines.ListAll()) { if (rand.NextDouble() > 0.5) { Console.WriteLine("adding tag to {0}", vm.Name); var vmUpdate = new VirtualMachineUpdate(); vmUpdate.Tags.Add("tagKey", "tagValue"); // note that, when using a subscription list, I need to parse the resource group from the resource ID in order to execute any operations computeClient.VirtualMachines.StartUpdate(GetResourceGroup(vm.Id), vm.Name, vmUpdate).WaitForCompletionAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } } var filteredList = rmClient.Resources.ListByResourceGroup(Context.RgName, filter: $"tagName eq 'tagKey' and tagValue eq 'tagValue'").Where(r => { return(string.Equals(r.Type, "Microsoft.Compute/virtualMachines", StringComparison.InvariantCultureIgnoreCase)); }); // note that we could also accomplish this by using the rp-specific list, but this would require client filtering by tag name and value foreach (var vm in filteredList) { Console.WriteLine("--------Stopping VM {0}--------", vm.Name); computeClient.VirtualMachines.StartPowerOff(Context.RgName, vm.Name).WaitForCompletionAsync().ConfigureAwait(false).GetAwaiter().GetResult(); Console.WriteLine("--------Starting VM {0}--------", vm.Name); computeClient.VirtualMachines.StartStart(Context.RgName, vm.Name).WaitForCompletionAsync().ConfigureAwait(false).GetAwaiter().GetResult(); } }
public override void Execute() { var createMultipleVms = new CreateMultipleVms(Context); createMultipleVms.Execute(); var rg = new AzureResourceManagerClient().ResourceGroup(Context.SubscriptionId, Context.RgName).Get().Value; foreach (var availabilitySet in rg.AvailabilitySets().ListByName(Environment.UserName)) { Console.WriteLine($"--------AvailabilitySet operation id--------: {availabilitySet.Id}"); } foreach (var availabilitySet in rg.AvailabilitySets().ListByNameExpanded(Environment.UserName)) { Console.WriteLine($"--------AvailabilitySet id--------: {availabilitySet.Data.Id}"); } foreach (var vm in rg.VirtualMachines().ListByName(Environment.UserName)) { Console.WriteLine($"--------VM operation id--------: {vm.Id}"); } foreach (var vm in rg.VirtualMachines().ListByNameExpanded(Environment.UserName)) { Console.WriteLine($"--------VM id--------: {vm.Data.Id}"); } foreach (var networkInterface in rg.NetworkInterfaces().ListByName(Environment.UserName)) { Console.WriteLine($"--------NetworkInterface operation id--------: {networkInterface.Id}"); } foreach (var networkInterface in rg.NetworkInterfaces().ListByNameExpanded(Environment.UserName)) { Console.WriteLine($"--------NetworkInterface id--------: {networkInterface.Data.Id}"); } foreach (var networkSecurityGroup in rg.NetworkSecurityGroups().ListByName(Environment.UserName)) { Console.WriteLine($"--------NetworkSecurityGroup operation id--------: {networkSecurityGroup.Id}"); } foreach (var networkSecurityGroup in rg.NetworkSecurityGroups().ListByNameExpanded(Environment.UserName)) { Console.WriteLine($"--------NetworkSecurityGroup id--------: {networkSecurityGroup.Data.Id}"); } foreach (var publicIpAddress in rg.PublicIpAddresses().ListByName(Environment.UserName)) { Console.WriteLine($"--------PublicIpAddress operation id--------: {publicIpAddress.Id}"); } foreach (var publicIpAddress in rg.NetworkSecurityGroups().ListByNameExpanded(Environment.UserName)) { Console.WriteLine($"--------PublicIpAddress id--------: {publicIpAddress.Data.Id}"); } foreach (var VNet in rg.VirtualNetworks().ListByName(Environment.UserName)) { Console.WriteLine($"--------VNet operation id--------: {VNet.Id}"); } foreach (var VNet in rg.VirtualNetworks().ListByNameExpanded(Environment.UserName)) { Console.WriteLine($"--------VNet id--------: {VNet.Data.Id}"); } ExecuteAsync(rg).GetAwaiter().GetResult(); }