Пример #1
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Start))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    var result = VirtualMachineScaleSetsClient.StartWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceIds).GetAwaiter().GetResult();
                    PSOperationStatusResponse output = new PSOperationStatusResponse
                    {
                        StartTime = this.StartTime,
                        EndTime   = DateTime.Now
                    };

                    if (result != null && result.Request != null && result.Request.RequestUri != null)
                    {
                        output.Name = GetOperationIdFromUrlString(result.Request.RequestUri.ToString());
                    }

                    WriteObject(output);
                }
            });
        }
Пример #2
0
        protected void ExecuteVirtualMachineScaleSetReimageMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            VirtualMachineScaleSetsClient.Reimage(resourceGroupName, vmScaleSetName);
        }
        public override void ExecuteCmdlet()
        {
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Stop) &&
                    (this.Force.IsPresent ||
                     this.ShouldContinue(Properties.Resources.ResourceStoppingConfirmation,
                                         "Stop-AzureRmVmss operation")))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    if (this.ParameterSetName.Equals("FriendMethod"))
                    {
                        var result   = VirtualMachineScaleSetsClient.PowerOff(resourceGroupName, vmScaleSetName, instanceIds);
                        var psObject = new PSOperationStatusResponse();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject);
                        WriteObject(psObject);
                    }
                    else
                    {
                        var result   = VirtualMachineScaleSetsClient.Deallocate(resourceGroupName, vmScaleSetName, instanceIds);
                        var psObject = new PSOperationStatusResponse();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject);
                        WriteObject(psObject);
                    }
                }
            });
        }
Пример #4
0
        public override void ExecuteCmdlet()
        {
            WriteWarning("New-AzureRmVmss: A property of the output of this cmdlet will change in an upcoming breaking change release. " +
                         "The StorageAccountType property for a DataDisk will return Standard_LRS and Premium_LRS");

            switch (ParameterSetName)
            {
            case SimpleParameterSet:
                this.StartAndWait(SimpleParameterSetExecuteCmdlet);
                break;

            default:
                ExecuteClientAction(() =>
                {
                    if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New))
                    {
                        string resourceGroupName          = this.ResourceGroupName;
                        string vmScaleSetName             = this.VMScaleSetName;
                        VirtualMachineScaleSet parameters = new VirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters);

                        var result   = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters);
                        var psObject = new PSVirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject);
                        WriteObject(psObject);
                    }
                });
                break;
            }
        }
Пример #5
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                string resourceGroupName = this.ResourceGroupName;
                string vmScaleSetName    = this.VMScaleSetName;

                var result       = VirtualMachineScaleSetsClient.ListSkus(resourceGroupName, vmScaleSetName);
                var resultList   = result.ToList();
                var nextPageLink = result.NextPageLink;
                while (!string.IsNullOrEmpty(nextPageLink))
                {
                    var pageResult = VirtualMachineScaleSetsClient.ListSkusNext(nextPageLink);
                    foreach (var pageItem in pageResult)
                    {
                        resultList.Add(pageItem);
                    }
                    nextPageLink = pageResult.NextPageLink;
                }
                var psObject = new List <PSVirtualMachineScaleSetSku>();
                foreach (var r in resultList)
                {
                    psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSetSku, PSVirtualMachineScaleSetSku>(r));
                }
                WriteObject(psObject, true);
            });
        }
Пример #6
0
        public override void ExecuteCmdlet()
        {
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsCommon.Set))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    if (this.ParameterSetName.Equals("FriendMethod"))
                    {
                        var result   = VirtualMachineScaleSetsClient.ReimageAll(resourceGroupName, vmScaleSetName, instanceIds);
                        var psObject = new PSOperationStatusResponse();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject);
                        WriteObject(psObject);
                    }
                    else
                    {
                        var result   = VirtualMachineScaleSetsClient.Reimage(resourceGroupName, vmScaleSetName, instanceIds);
                        var psObject = new PSOperationStatusResponse();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject);
                        WriteObject(psObject);
                    }
                }
            });
        }
Пример #7
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            switch (ParameterSetName)
            {
            case SimpleParameterSet:
                this.StartAndWait(SimpleParameterSetExecuteCmdlet);
                break;

            default:
                ExecuteClientAction(() =>
                {
                    if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New))
                    {
                        string resourceGroupName          = this.ResourceGroupName;
                        string vmScaleSetName             = this.VMScaleSetName;
                        VirtualMachineScaleSet parameters = new VirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters);
                        if (parameters?.VirtualMachineProfile?.StorageProfile?.ImageReference?.Version?.ToLower() != "latest")
                        {
                            WriteWarning("You are deploying VMSS pinned to a specific image version from Azure Marketplace. \n" +
                                         "Consider using \"latest\" as the image version. This allows VMSS to auto upgrade when a newer version is available.");
                        }
                        var result   = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters);
                        var psObject = new PSVirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject);
                        WriteObject(psObject);
                    }
                });
                break;
            }
        }
Пример #8
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            switch (ParameterSetName)
            {
            case SimpleParameterSet:
                this.StartAndWait(SimpleParameterSetExecuteCmdlet);
                break;

            default:
                ExecuteClientAction(() =>
                {
                    if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New))
                    {
                        string resourceGroupName          = this.ResourceGroupName;
                        string vmScaleSetName             = this.VMScaleSetName;
                        VirtualMachineScaleSet parameters = new VirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters);

                        var result   = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters);
                        var psObject = new PSVirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject);
                        WriteObject(psObject);
                    }
                });
                break;
            }
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsDiagnostic.Repair))
                {
                    string resourceGroupName;
                    string vmScaleSetName;
                    switch (this.ParameterSetName)
                    {
                    case "ResourceIdParameter":
                        resourceGroupName = GetResourceGroupName(this.ResourceId);
                        vmScaleSetName    = GetResourceName(this.ResourceId, "Microsoft.Compute/virtualMachineScaleSets");
                        break;

                    case "ObjectParameter":
                        resourceGroupName = GetResourceGroupName(this.VirtualMachineScaleSet.Id);
                        vmScaleSetName    = GetResourceName(this.VirtualMachineScaleSet.Id, "Microsoft.Compute/virtualMachineScaleSets");
                        break;

                    default:
                        resourceGroupName = this.ResourceGroupName;
                        vmScaleSetName    = this.VMScaleSetName;
                        break;
                    }
                    int platformUpdateDomain = this.PlatformUpdateDomain;

                    var result   = VirtualMachineScaleSetsClient.ForceRecoveryServiceFabricPlatformUpdateDomainWalk(resourceGroupName, vmScaleSetName, platformUpdateDomain);
                    var psObject = new PSRecoveryWalkResponse();
                    ComputeAutomationAutoMapperProfile.Mapper.Map <RecoveryWalkResponse, PSRecoveryWalkResponse>(result, psObject);
                    WriteObject(psObject);
                }
            });
        }
Пример #10
0
        protected void ExecuteVirtualMachineScaleSetGetMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName))
            {
                var result   = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName);
                var psObject = new PSVirtualMachineScaleSet();
                Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject);
                WriteObject(psObject);
            }
            else if (!string.IsNullOrEmpty(resourceGroupName))
            {
                var result   = VirtualMachineScaleSetsClient.List(resourceGroupName);
                var psObject = new List <PSVirtualMachineScaleSetList>();
                foreach (var r in result)
                {
                    psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r));
                }
                WriteObject(psObject);
            }
            else
            {
                var result   = VirtualMachineScaleSetsClient.ListAll();
                var psObject = new List <PSVirtualMachineScaleSetList>();
                foreach (var r in result)
                {
                    psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r));
                }
                WriteObject(psObject);
            }
        }
        protected override void ProcessRecord()
        {
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.ResourceGroupName, VerbsLifecycle.Stop) &&
                    (this.Force.IsPresent ||
                     this.ShouldContinue(Properties.Resources.ResourceStoppingConfirmation,
                                         "Stop-AzureRmVmss operation")))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    if (this.ParameterSetName.Equals("FriendMethod"))
                    {
                        var result = VirtualMachineScaleSetsClient.PowerOff(resourceGroupName, vmScaleSetName, instanceIds);
                        WriteObject(result);
                    }
                    else
                    {
                        var result = VirtualMachineScaleSetsClient.Deallocate(resourceGroupName, vmScaleSetName, instanceIds);
                        WriteObject(result);
                    }
                }
            });
        }
        protected void ExecuteVirtualMachineScaleSetListAllNextMethod(object[] invokeMethodInputParameters)
        {
            string nextPageLink = (string)ParseParameter(invokeMethodInputParameters[0]);

            var result = VirtualMachineScaleSetsClient.ListAllNext(nextPageLink);

            WriteObject(result);
        }
        protected void ExecuteVirtualMachineScaleSetGetInstanceViewMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            var result = VirtualMachineScaleSetsClient.GetInstanceView(resourceGroupName, vmScaleSetName);

            WriteObject(result);
        }
Пример #14
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            switch (ParameterSetName)
            {
            case SimpleParameterSet:
                this.StartAndWait(SimpleParameterSetExecuteCmdlet);
                break;

            default:
                ExecuteClientAction(() =>
                {
                    if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New))
                    {
                        string resourceGroupName          = this.ResourceGroupName;
                        string vmScaleSetName             = this.VMScaleSetName;
                        VirtualMachineScaleSet parameters = new VirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters);
                        if (parameters?.VirtualMachineProfile?.StorageProfile?.ImageReference?.Version?.ToLower() != "latest")
                        {
                            WriteWarning("You are deploying VMSS pinned to a specific image version from Azure Marketplace. \n" +
                                         "Consider using \"latest\" as the image version. This allows VMSS to auto upgrade when a newer version is available.");
                        }

                        if (parameters?.OrchestrationMode == "Flexible")
                        {
                            if (parameters?.VirtualMachineProfile?.NetworkProfile?.NetworkInterfaceConfigurations != null)
                            {
                                foreach (var nicConfig in parameters.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations)
                                {
                                    if (nicConfig.IpConfigurations != null)
                                    {
                                        foreach (var ipConfig in nicConfig.IpConfigurations)
                                        {
                                            ipConfig.LoadBalancerInboundNatPools = null;
                                        }
                                    }
                                }
                            }

                            parameters.UpgradePolicy = null;

                            flexibleOrchestrationModeDefaultParameters(parameters);
                            checkFlexibleOrchestrationModeParamsDefaultParamSet(parameters);
                        }


                        var result   = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters);
                        var psObject = new PSVirtualMachineScaleSet();
                        ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject);
                        WriteObject(psObject);
                    }
                });
                break;
            }
        }
        protected void ExecuteVirtualMachineScaleSetCreateOrUpdateMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string name = (string)ParseParameter(invokeMethodInputParameters[1]);
            VirtualMachineScaleSet parameters = (VirtualMachineScaleSet)ParseParameter(invokeMethodInputParameters[2]);

            var result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, name, parameters);

            WriteObject(result);
        }
Пример #16
0
        protected void ExecuteVirtualMachineScaleSetForceRecoveryServiceFabricPlatformUpdateDomainWalkMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName    = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName       = (string)ParseParameter(invokeMethodInputParameters[1]);
            int    platformUpdateDomain = (int)ParseParameter(invokeMethodInputParameters[2]);

            var result = VirtualMachineScaleSetsClient.ForceRecoveryServiceFabricPlatformUpdateDomainWalk(resourceGroupName, vmScaleSetName, platformUpdateDomain);

            WriteObject(result);
        }
Пример #17
0
        protected void ExecuteVirtualMachineScaleSetGetMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName))
            {
                var result   = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName);
                var psObject = new PSVirtualMachineScaleSet();
                Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject);
                WriteObject(psObject);
            }
            else if (!string.IsNullOrEmpty(resourceGroupName))
            {
                var result       = VirtualMachineScaleSetsClient.List(resourceGroupName);
                var resultList   = result.ToList();
                var nextPageLink = result.NextPageLink;
                while (!string.IsNullOrEmpty(nextPageLink))
                {
                    var pageResult = VirtualMachineScaleSetsClient.ListNext(nextPageLink);
                    foreach (var pageItem in pageResult)
                    {
                        resultList.Add(pageItem);
                    }
                    nextPageLink = pageResult.NextPageLink;
                }
                var psObject = new List <PSVirtualMachineScaleSetList>();
                foreach (var r in resultList)
                {
                    psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r));
                }
                WriteObject(psObject, true);
            }
            else
            {
                var result       = VirtualMachineScaleSetsClient.ListAll();
                var resultList   = result.ToList();
                var nextPageLink = result.NextPageLink;
                while (!string.IsNullOrEmpty(nextPageLink))
                {
                    var pageResult = VirtualMachineScaleSetsClient.ListAllNext(nextPageLink);
                    foreach (var pageItem in pageResult)
                    {
                        resultList.Add(pageItem);
                    }
                    nextPageLink = pageResult.NextPageLink;
                }
                var psObject = new List <PSVirtualMachineScaleSetList>();
                foreach (var r in resultList)
                {
                    psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r));
                }
                WriteObject(psObject, true);
            }
        }
        protected void ExecuteVirtualMachineScaleSetStartMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            System.Collections.Generic.IList <string> instanceIds = null;
            if (invokeMethodInputParameters[2] != null)
            {
                var inputArray2 = Array.ConvertAll((object[])ParseParameter(invokeMethodInputParameters[2]), e => e.ToString());
                instanceIds = inputArray2.ToList();
            }

            VirtualMachineScaleSetsClient.Start(resourceGroupName, vmScaleSetName, instanceIds);
        }
Пример #19
0
        protected override void ProcessRecord()
        {
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.ResourceGroupName, VerbsLifecycle.Start))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    var result = VirtualMachineScaleSetsClient.Start(resourceGroupName, vmScaleSetName, instanceIds);
                    WriteObject(result);
                }
            });
        }
        protected override void ProcessRecord()
        {
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.ResourceGroupName, VerbsData.Update))
                {
                    string resourceGroupName          = this.ResourceGroupName;
                    string vmScaleSetName             = this.VMScaleSetName;
                    VirtualMachineScaleSet parameters = this.VirtualMachineScaleSet;

                    var result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters);
                    WriteObject(result);
                }
            });
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsCommon.Set))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    Rest.Azure.AzureOperationResponse result = null;
                    if (this.ParameterSetName.Equals("FriendMethod"))
                    {
                        result = VirtualMachineScaleSetsClient.ReimageAllWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceIds).GetAwaiter().GetResult();
                    }
                    else if (this.ParameterSetName.Equals("RedeployMethodParameter"))
                    {
                        result = VirtualMachineScaleSetsClient.RedeployWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceIds).GetAwaiter().GetResult();
                    }
                    else if (this.ParameterSetName.Equals("PerformMaintenanceMethodParameter"))
                    {
                        result = VirtualMachineScaleSetsClient.PerformMaintenanceWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceIds).GetAwaiter().GetResult();
                    }
                    else
                    {
                        var vmScaleSetReimageInput         = new VirtualMachineScaleSetReimageParameters();
                        vmScaleSetReimageInput.InstanceIds = instanceIds;
                        vmScaleSetReimageInput.TempDisk    = this.TempDisk.IsPresent;
                        result = VirtualMachineScaleSetsClient.ReimageWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, vmScaleSetReimageInput).GetAwaiter().GetResult();
                    }

                    PSOperationStatusResponse output = new PSOperationStatusResponse
                    {
                        StartTime = this.StartTime,
                        EndTime   = DateTime.Now
                    };

                    if (result != null && result.Request != null && result.Request.RequestUri != null)
                    {
                        output.Name = GetOperationIdFromUrlString(result.Request.RequestUri.ToString());
                    }

                    WriteObject(output);
                }
            });
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsCommon.Set))
                {
                    string resourceGroupName;
                    string vmScaleSetName;
                    switch (this.ParameterSetName)
                    {
                    case "ResourceIdParameter":
                        resourceGroupName = GetResourceGroupName(this.ResourceId);
                        vmScaleSetName    = GetResourceName(this.ResourceId, "Microsoft.Compute/virtualMachineScaleSets");
                        break;

                    case "ObjectParameter":
                        resourceGroupName = GetResourceGroupName(this.InputObject.Id);
                        vmScaleSetName    = GetResourceName(this.InputObject.Id, "Microsoft.Compute/virtualMachineScaleSets");
                        break;

                    default:
                        resourceGroupName = this.ResourceGroupName;
                        vmScaleSetName    = this.VMScaleSetName;
                        break;
                    }

                    OrchestrationServiceStateInput parameters = new OrchestrationServiceStateInput();
                    parameters.ServiceName = this.ServiceName;
                    parameters.Action      = this.Action;

                    var result = VirtualMachineScaleSetsClient.SetOrchestrationServiceStateWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, parameters).GetAwaiter().GetResult();
                    PSOperationStatusResponse output = new PSOperationStatusResponse
                    {
                        StartTime = this.StartTime,
                        EndTime   = DateTime.Now
                    };

                    if (result != null && result.Request != null && result.Request.RequestUri != null)
                    {
                        output.Name = GetOperationIdFromUrlString(result.Request.RequestUri.ToString());
                    }

                    WriteObject(output);
                }
            });
        }
Пример #23
0
        protected override void ProcessRecord()
        {
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Start))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    var result   = VirtualMachineScaleSetsClient.Start(resourceGroupName, vmScaleSetName, instanceIds);
                    var psObject = new PSOperationStatusResponse();
                    ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject);
                    WriteObject(psObject);
                }
            });
        }
Пример #24
0
        protected void ExecuteVirtualMachineScaleSetListAllMethod(object[] invokeMethodInputParameters)
        {
            var result       = VirtualMachineScaleSetsClient.ListAll();
            var resultList   = result.ToList();
            var nextPageLink = result.NextPageLink;

            while (!string.IsNullOrEmpty(nextPageLink))
            {
                var pageResult = VirtualMachineScaleSetsClient.ListAllNext(nextPageLink);
                foreach (var pageItem in pageResult)
                {
                    resultList.Add(pageItem);
                }
                nextPageLink = pageResult.NextPageLink;
            }
            WriteObject(resultList, true);
        }
        protected override void ProcessRecord()
        {
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New))
                {
                    string resourceGroupName          = this.ResourceGroupName;
                    string vmScaleSetName             = this.VMScaleSetName;
                    VirtualMachineScaleSet parameters = new VirtualMachineScaleSet();
                    ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters);

                    var result   = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters);
                    var psObject = new PSVirtualMachineScaleSet();
                    ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject);
                    WriteObject(psObject);
                }
            });
        }
Пример #26
0
        protected void ExecuteVirtualMachineScaleSetListSkusMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            var result       = VirtualMachineScaleSetsClient.ListSkus(resourceGroupName, vmScaleSetName);
            var resultList   = result.ToList();
            var nextPageLink = result.NextPageLink;

            while (!string.IsNullOrEmpty(nextPageLink))
            {
                var pageResult = VirtualMachineScaleSetsClient.ListSkusNext(nextPageLink);
                foreach (var pageItem in pageResult)
                {
                    resultList.Add(pageItem);
                }
                nextPageLink = pageResult.NextPageLink;
            }
            WriteObject(resultList, true);
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            bool?forcedelete = ForceDeletion.HasValue ? ForceDeletion.Value : (bool?)null;

            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsCommon.Remove) &&
                    (this.Force.IsPresent ||
                     this.ShouldContinue(Properties.Resources.ResourceRemovalConfirmation,
                                         "Remove-AzVmss operation")))
                {
                    string resourceGroupName   = this.ResourceGroupName;
                    string vmScaleSetName      = this.VMScaleSetName;
                    IList <string> instanceIds = this.InstanceId;

                    Rest.Azure.AzureOperationResponse result = null;
                    if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName) && instanceIds != null)
                    {
                        result = VirtualMachineScaleSetsClient.DeleteInstancesWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceIds, forceDeletion: forcedelete).GetAwaiter().GetResult();
                    }
                    else
                    {
                        result = VirtualMachineScaleSetsClient.DeleteWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, forceDeletion: forcedelete).GetAwaiter().GetResult();
                    }

                    PSOperationStatusResponse output = new PSOperationStatusResponse
                    {
                        StartTime = this.StartTime,
                        EndTime   = DateTime.Now
                    };

                    if (result != null && result.Request != null && result.Request.RequestUri != null)
                    {
                        output.Name = GetOperationIdFromUrlString(result.Request.RequestUri.ToString());
                    }

                    WriteObject(output);
                }
            });
        }
Пример #28
0
        protected void ExecuteVirtualMachineScaleSetDeleteInstancesMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            System.Collections.Generic.IList <string> instanceIds = null;
            if (invokeMethodInputParameters[2] != null)
            {
                var inputArray2 = Array.ConvertAll((object[])ParseParameter(invokeMethodInputParameters[2]), e => e.ToString());
                instanceIds = inputArray2.ToList();
            }

            if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName) && instanceIds != null)
            {
                VirtualMachineScaleSetsClient.DeleteInstances(resourceGroupName, vmScaleSetName, instanceIds);
            }
            else
            {
                VirtualMachineScaleSetsClient.Delete(resourceGroupName, vmScaleSetName);
            }
        }
        protected void ExecuteVirtualMachineScaleSetGetMethod(object[] invokeMethodInputParameters)
        {
            string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
            string vmScaleSetName    = (string)ParseParameter(invokeMethodInputParameters[1]);

            if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName))
            {
                var result = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName);
                WriteObject(result);
            }
            else if (!string.IsNullOrEmpty(resourceGroupName))
            {
                var result = VirtualMachineScaleSetsClient.List(resourceGroupName);
                WriteObject(result);
            }
            else
            {
                var result = VirtualMachineScaleSetsClient.ListAll();
                WriteObject(result);
            }
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Stop) &&
                    (this.Force.IsPresent ||
                     this.ShouldContinue(Properties.Resources.ResourceStoppingConfirmation,
                                         "Stop-AzVmss operation")))
                {
                    string resourceGroupName = this.ResourceGroupName;
                    string vmScaleSetName    = this.VMScaleSetName;
                    System.Collections.Generic.IList <string> instanceIds = this.InstanceId;

                    Rest.Azure.AzureOperationResponse result = null;
                    if (this.ParameterSetName.Equals("FriendMethod"))
                    {
                        bool?skipShutdown = this.SkipShutdown.IsPresent ? (bool?)true : null;
                        result            = VirtualMachineScaleSetsClient.PowerOffWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, skipShutdown, instanceIds).GetAwaiter().GetResult();
                    }
                    else
                    {
                        result = VirtualMachineScaleSetsClient.DeallocateWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceIds).GetAwaiter().GetResult();
                    }

                    PSOperationStatusResponse output = new PSOperationStatusResponse
                    {
                        StartTime = this.StartTime,
                        EndTime   = DateTime.Now
                    };

                    if (result != null && result.Request != null && result.Request.RequestUri != null)
                    {
                        output.Name = GetOperationIdFromUrlString(result.Request.RequestUri.ToString());
                    }

                    WriteObject(output);
                }
            });
        }