示例#1
0
        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();
                }
            }
        }
示例#3
0
        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();
                }
            }
        }
示例#4
0
        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();
            }
        }
示例#5
0
        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 ...");
        }
示例#6
0
        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();
            }
        }
示例#7
0
        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();
            });
        }
示例#8
0
        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();
        }