protected override void ProcessRecord() { AutoMapper.Mapper.AddProfile <ComputeAutomationAutoMapperProfile>(); ExecuteClientAction(() => { if (ShouldProcess(this.ResourceGroupName, 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(); Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } else { var result = VirtualMachineScaleSetsClient.Reimage(resourceGroupName, vmScaleSetName, instanceIds); var psObject = new PSOperationStatusResponse(); Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Stop) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.ResourceStoppingConfirmation, "Stop-AzVmssRollingUpgrade operation"))) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; var result = VirtualMachineScaleSetRollingUpgradesClient.CancelWithHttpMessagesAsync(resourceGroupName, vmScaleSetName).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.VMName, VerbsLifecycle.Invoke)) { string resourceGroupName = this.ResourceGroupName; string vmName = this.VMName; bool?tempDisk = this.TempDisk.IsPresent; var result = VirtualMachinesClient.ReimageWithHttpMessagesAsync(resourceGroupName, vmName, tempDisk).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); } }); }
protected override void ProcessRecord() { 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); } } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Start)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; 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); } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.SnapshotName, VerbsSecurity.Revoke)) { string resourceGroupName = this.ResourceGroupName; string snapshotName = this.SnapshotName; var result = SnapshotsClient.RevokeAccessWithHttpMessagesAsync(resourceGroupName, snapshotName).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.Name, VerbsCommon.Remove) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.ResourceRemovalConfirmation, "Remove-AzureRmContainerService operation"))) { string resourceGroupName = this.ResourceGroupName; string containerServiceName = this.Name; var result = ContainerServicesClient.DeleteWithHttpMessagesAsync(resourceGroupName, containerServiceName).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() { ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsCommon.Set)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; string instanceId = this.InstanceId; if (this.ParameterSetName.Equals("FriendMethod")) { var result = VirtualMachineScaleSetVMsClient.ReimageAll(resourceGroupName, vmScaleSetName, instanceId); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } else { var result = VirtualMachineScaleSetVMsClient.Reimage(resourceGroupName, vmScaleSetName, instanceId); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.Name, VerbsCommon.Remove)) { string resourceGroup = this.ResourceGroupName; string restorePointName = this.Name; string restorePointCollectionName = this.RestorePointCollectionName; var result = RestorePointClient.DeleteWithHttpMessagesAsync(resourceGroup, restorePointCollectionName, restorePointName).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.Name, VerbsCommon.Remove) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.ResourceRemovalConfirmation, "Remove-AzGalleryImageVersion operation"))) { string resourceGroupName; string galleryName; string galleryImageName; string galleryImageVersionName; switch (this.ParameterSetName) { case "ResourceIdParameter": resourceGroupName = GetResourceGroupName(this.ResourceId); galleryName = GetResourceName(this.ResourceId, "Microsoft.Compute/Galleries", "Images", "Versions"); galleryImageName = GetInstanceId(this.ResourceId, "Microsoft.Compute/Galleries", "Images", "Versions"); galleryImageVersionName = GetVersion(this.ResourceId, "Microsoft.Compute/Galleries", "Images", "Versions"); break; case "ObjectParameter": resourceGroupName = GetResourceGroupName(this.InputObject.Id); galleryName = GetResourceName(this.InputObject.Id, "Microsoft.Compute/Galleries", "Images", "Versions"); galleryImageName = GetInstanceId(this.InputObject.Id, "Microsoft.Compute/Galleries", "Images", "Versions"); galleryImageVersionName = GetVersion(this.InputObject.Id, "Microsoft.Compute/Galleries", "Images", "Versions"); break; default: resourceGroupName = this.ResourceGroupName; galleryName = this.GalleryName; galleryImageName = this.GalleryImageDefinitionName; galleryImageVersionName = this.Name; break; } var result = GalleryImageVersionsClient.DeleteWithHttpMessagesAsync(resourceGroupName, galleryName, galleryImageName, galleryImageVersionName).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); } }); }
private void RevokeSAS() { var RevokeResult = this.ComputeClient.ComputeManagementClient.Disks.RevokeAccessWithHttpMessagesAsync(this.ResourceGroupName, this.DiskName).GetAwaiter().GetResult(); PSOperationStatusResponse output = new PSOperationStatusResponse { StartTime = this.StartTime, EndTime = DateTime.Now }; if (RevokeResult != null && RevokeResult.Request != null && RevokeResult.Request.RequestUri != null) { output.Name = GetOperationIdFromUrlString(RevokeResult.Request.RequestUri.ToString()); } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.Name, VerbsCommon.Remove)) { string resourceGroupName; string hostGroupName; string hostName; switch (this.ParameterSetName) { case ResourceIdParamSet: resourceGroupName = GetResourceGroupName(this.ResourceId); hostGroupName = GetResourceName(this.ResourceId, "Microsoft.Compute/hostGroups", "hosts"); hostName = GetInstanceId(this.ResourceId, "Microsoft.Compute/hostGroups", "hosts"); break; case ObjectParamSet: resourceGroupName = GetResourceGroupName(this.InputObject.Id); hostGroupName = GetResourceName(this.InputObject.Id, "Microsoft.Compute/hostGroups", "hosts"); hostName = GetInstanceId(this.InputObject.Id, "Microsoft.Compute/hostGroups", "hosts"); break; default: resourceGroupName = this.ResourceGroupName; hostGroupName = this.HostGroupName; hostName = this.Name; break; } var result = DedicatedHostsClient.RestartWithHttpMessagesAsync(resourceGroupName, hostGroupName, hostName).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 = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; string instanceId = this.InstanceId; Rest.Azure.AzureOperationResponse result = null; if (this.ParameterSetName.Equals("FriendMethod")) { result = VirtualMachineScaleSetVMsClient.ReimageAllWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceId).GetAwaiter().GetResult(); } else if (this.ParameterSetName.Equals("RedeployMethodParameter")) { result = VirtualMachineScaleSetVMsClient.RedeployWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceId).GetAwaiter().GetResult(); } else if (this.ParameterSetName.Equals("PerformMaintenanceMethodParameter")) { result = VirtualMachineScaleSetVMsClient.PerformMaintenanceWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceId).GetAwaiter().GetResult(); } else if (this.ParameterSetName.Equals("SimulateEvictionMethodParameter")) { result = VirtualMachineScaleSetVMsClient.SimulateEvictionWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceId).GetAwaiter().GetResult(); } else { result = VirtualMachineScaleSetVMsClient.ReimageWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, instanceId).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); } }); }
protected override void ProcessRecord() { ExecuteClientAction(() => { if (ShouldProcess(this.DiskName, VerbsSecurity.Revoke)) { string resourceGroupName = this.ResourceGroupName; string diskName = this.DiskName; var result = DisksClient.RevokeAccess(resourceGroupName, diskName); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
public override void ExecuteCmdlet() { ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Start)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; var result = VirtualMachineScaleSetRollingUpgradesClient.StartOSUpgrade(resourceGroupName, vmScaleSetName); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
public override void ExecuteCmdlet() { ExecuteClientAction(() => { if (ShouldProcess(this.SnapshotName, VerbsSecurity.Revoke)) { string resourceGroupName = this.ResourceGroupName; string snapshotName = this.SnapshotName; var result = SnapshotsClient.RevokeAccess(resourceGroupName, snapshotName); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
protected override void ProcessRecord() { ExecuteClientAction(() => { if (ShouldProcess(this.VMName, VerbsData.ConvertTo)) { string resourceGroupName = this.ResourceGroupName; string vmName = this.VMName; var result = VirtualMachinesClient.ConvertToManagedDisks(resourceGroupName, vmName); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
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); } }); }
public override void 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.Start(resourceGroupName, vmScaleSetName, instanceIds); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.Name, VerbsCommon.Remove) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.ResourceRemovalConfirmation, "Remove-AzProximityPlacementGroup operation"))) { string resourceGroupName; string proximityPlacementGroupName; switch (this.ParameterSetName) { case "ResourceIdParameter": resourceGroupName = GetResourceGroupName(this.ResourceId); proximityPlacementGroupName = GetResourceName(this.ResourceId, "Microsoft.Compute/proximityPlacementGroups"); break; case "ObjectParameter": resourceGroupName = GetResourceGroupName(this.InputObject.Id); proximityPlacementGroupName = GetResourceName(this.InputObject.Id, "Microsoft.Compute/proximityPlacementGroups"); break; default: resourceGroupName = this.ResourceGroupName; proximityPlacementGroupName = this.Name; break; } var result = ProximityPlacementGroupsClient.DeleteWithHttpMessagesAsync(resourceGroupName, proximityPlacementGroupName).GetAwaiter().GetResult(); PSOperationStatusResponse output = new PSOperationStatusResponse { StartTime = this.StartTime, EndTime = DateTime.Now }; if (result != null) { output.Name = result.RequestId; } WriteObject(output); } }); }
public override void ExecuteCmdlet() { string resourceGroupName; string vmScaleSetName; resourceGroupName = this.ResourceGroupName; vmScaleSetName = this.VMScaleSetName; var expand = new Microsoft.Rest.Azure.OData.ODataQuery <VirtualMachineScaleSetVM>(); expand.Expand = "instanceView"; var vmList = VirtualMachineScaleSetVMsClient.List(resourceGroupName, vmScaleSetName, expand); var resultList = vmList.ToList(); var nextPageLink = vmList.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetVMsClient.ListNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } List <VirtualMachineScaleSetVM> listOfVms = new List <VirtualMachineScaleSetVM>(resultList); Rest.Azure.AzureOperationResponse result = null; foreach (VirtualMachineScaleSetVM vm in listOfVms) { result = VirtualMachineScaleSetVMRunCommandsClient.BeginDeleteWithHttpMessagesAsync(resourceGroupName, vmScaleSetName, vm.InstanceId, this.RunCommandName).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() { ExecuteClientAction(() => { if (ShouldProcess(this.DiskName, VerbsCommon.Remove) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.ResourceRemovalConfirmation, "Remove-AzureRmDisk operation"))) { string resourceGroupName = this.ResourceGroupName; string diskName = this.DiskName; var result = DisksClient.Delete(resourceGroupName, diskName); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
protected override void ProcessRecord() { ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsLifecycle.Stop) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.ResourceStoppingConfirmation, "Stop-AzureRmVmssRollingUpgrade operation"))) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; var result = VirtualMachineScaleSetRollingUpgradesClient.Cancel(resourceGroupName, vmScaleSetName); var psObject = new PSOperationStatusResponse(); ComputeAutomationAutoMapperProfile.Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
private void StartRollingUpdate(string ResourceGroup, string vmssName) { if (ShouldProcess(vmssName, VerbsLifecycle.Start)) { var result = VirtualMachineScaleSetRollingUpgradesClient.StartExtensionUpgradeWithHttpMessagesAsync(ResourceGroup, vmssName).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); } }
protected override void ProcessRecord() { AutoMapper.Mapper.AddProfile <ComputeAutomationAutoMapperProfile>(); ExecuteClientAction(() => { if (ShouldProcess(this.ResourceGroupName, VerbsCommon.Remove) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.ResourceRemovalConfirmation, "Remove-AzureRmSnapshot operation"))) { string resourceGroupName = this.ResourceGroupName; string snapshotName = this.SnapshotName; var result = SnapshotsClient.Delete(resourceGroupName, snapshotName); var psObject = new PSOperationStatusResponse(); Mapper.Map <Azure.Management.Compute.Models.OperationStatusResponse, PSOperationStatusResponse>(result, psObject); WriteObject(psObject); } }); }
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); } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { string resourceGroupName; string sshKeyName; switch (this.ParameterSetName) { case ResourceIDParameterSet: resourceGroupName = GetResourceGroupName(this.ResourceId); sshKeyName = GetResourceName(this.ResourceId, "Microsoft.Compute/SshPublicKeys"); break; case InputObjectParameterSet: resourceGroupName = GetResourceGroupName(this.InputObject.Id); sshKeyName = GetResourceName(this.InputObject.Id, "Microsoft.Compute/SshPublicKeys"); break; default: resourceGroupName = this.ResourceGroupName; sshKeyName = this.Name; break; } var result = SshPublicKeyClient.DeleteWithHttpMessagesAsync(resourceGroupName, sshKeyName).GetAwaiter().GetResult(); PSOperationStatusResponse output = new PSOperationStatusResponse { StartTime = this.StartTime, EndTime = DateTime.Now }; if (result != null && result.Request != null && result.Request.RequestUri != null) { output.Name = result.Request.RequestUri.ToString(); } WriteObject(output); }); }
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); } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { try { WriteVerbose("To be compatible with Azure, Add-AzVhd will automatically try to convert VHDX files to VHD and resize VHD files to N * Mib using Hyper-V Platform, a Windows native virtualization product. During the process the cmdlet will temporarily create a converted/resized file in the same directory as the provided VHD/VHDX file. \nFor more information visit https://aka.ms/usingAdd-AzVhd \n"); Program.SyncOutput = new PSSyncOutputEvents(this); // 1. CONVERT VHDX TO VHD if (this.LocalFilePath.Extension == ".vhdx") { convertVhd(); } // 2. RESIZE VHD CheckForInvalidVhd(); if (this.ParameterSetName == DirectUploadToManagedDiskSet) { // 3. DIRECT UPLOAD TO MANAGED DISK // 3-1. CREATE DISK CONFIG checkForExistingDisk(this.ResourceGroupName, this.DiskName); var diskConfig = CreateDiskConfig(); // 3-2: CREATE DISK createManagedDisk(this.ResourceGroupName, this.DiskName, diskConfig); // 3-3: GENERATE SAS WriteVerbose("Generating SAS"); var grantAccessData = new GrantAccessData(); grantAccessData.Access = "Write"; long gbInBytes = 1073741824; int gb = (int)(this.LocalFilePath.Length / gbInBytes); grantAccessData.DurationInSeconds = 86400 * Math.Max(gb / 100, 1); // 24h per 100gb var accessUri = this.ComputeClient.ComputeManagementClient.Disks.GrantAccess(this.ResourceGroupName, this.DiskName, grantAccessData); Uri sasUri = new Uri(accessUri.AccessSAS); WriteVerbose("SAS generated: " + accessUri.AccessSAS); // 3-4: UPLOAD WriteVerbose("Preparing for Upload"); PSPageBlobClient managedDisk = new PSPageBlobClient(sasUri); DiskUploadCreator diskUploadCreator = new DiskUploadCreator(); var uploadContext = diskUploadCreator.Create(this.LocalFilePath, managedDisk, false); var synchronizer = new DiskSynchronizer(uploadContext, this.NumberOfUploaderThreads ?? DefaultNumberOfUploaderThreads); WriteVerbose("Uploading"); if (synchronizer.Synchronize()) { var result = new VhdUploadContext { LocalFilePath = this.LocalFilePath, DestinationUri = sasUri }; WriteObject(result); } else { WriteVerbose("Upload failed"); } // 3-5: REVOKE SAS WriteVerbose("Revoking SAS"); var RevokeResult = this.ComputeClient.ComputeManagementClient.Disks.RevokeAccessWithHttpMessagesAsync(this.ResourceGroupName, this.DiskName).GetAwaiter().GetResult(); PSOperationStatusResponse output = new PSOperationStatusResponse { StartTime = this.StartTime, EndTime = DateTime.Now }; if (RevokeResult != null && RevokeResult.Request != null && RevokeResult.Request.RequestUri != null) { output.Name = GetOperationIdFromUrlString(RevokeResult.Request.RequestUri.ToString()); } WriteVerbose("SAS revoked."); WriteVerbose("\nUpload complete."); } else { var parameters = ValidateParameters(); var vhdUploadContext = VhdUploaderModel.Upload(parameters); WriteObject(vhdUploadContext); } } finally { if (temporaryFileCreated) { WriteVerbose("Deleting file: " + this.LocalFilePath.FullName); File.Delete(this.LocalFilePath.FullName); } } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("To be compatible with Azure, Add-AzVhd will automatically try to convert VHDX files to VHD, and resize VHD files to N * Mib using Hyper-V Platform, a Windows naitive virtualization product. \nFor more information visit https://aka.ms/usingAdd-AzVhd \n"); Console.ResetColor(); Program.SyncOutput = new PSSyncOutputEvents(this); // 1. CONVERT VHDX TO VHD if (this.LocalFilePath.Extension == ".vhdx") { convertVhd(); } checkForCorruptedAndDynamicallySizedVhd(); checkVhdFileSize(this.LocalFilePath); // 2. RESIZE VHD if (this.skipResizing.IsPresent) { Console.WriteLine("Skipping VHD resizing."); } else { if ((this.LocalFilePath.Length - 512) % 1048576 != 0) { resizeVhdFile(); } else // does not need resizing { WriteVerbose("Vhd file already sized correctly. Proceeding to uploading."); } } if (this.ParameterSetName == DirectUploadToManagedDiskSet) { // 3. DIRECT UPLOAD TO MANAGED DISK // 3-1. CREATE DISK CONFIG checkForExistingDisk(this.ResourceGroupName, this.DiskName); var diskConfig = CreateDiskConfig(); // 3-2: CREATE DISK createManagedDisk(this.ResourceGroupName, this.DiskName, diskConfig); // 3-3: GENERATE SAS Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Generating SAS"); Console.ResetColor(); var grantAccessData = new GrantAccessData(); grantAccessData.Access = "Write"; long gbInBytes = 1073741824; int gb = (int)(this.LocalFilePath.Length / gbInBytes); grantAccessData.DurationInSeconds = 86400 * Math.Max(gb / 100, 1); // 24h per 100gb var accessUri = this.ComputeClient.ComputeManagementClient.Disks.GrantAccess(this.ResourceGroupName, this.DiskName, grantAccessData); Uri sasUri = new Uri(accessUri.AccessSAS); Console.WriteLine("SAS generated: " + accessUri.AccessSAS); // 3-4: UPLOAD Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Preparing for Upload"); Console.ResetColor(); PSPageBlobClient managedDisk = new PSPageBlobClient(sasUri); DiskUploadCreator diskUploadCreator = new DiskUploadCreator(); var uploadContext = diskUploadCreator.Create(this.LocalFilePath, managedDisk, false); var synchronizer = new DiskSynchronizer(uploadContext, this.NumberOfUploaderThreads ?? DefaultNumberOfUploaderThreads); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Uploading"); Console.ResetColor(); if (synchronizer.Synchronize()) { var result = new VhdUploadContext { LocalFilePath = this.LocalFilePath, DestinationUri = sasUri }; WriteObject(result); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Upload failed"); Console.ResetColor(); } // 3-5: REVOKE SAS Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Revoking SAS"); Console.ResetColor(); var RevokeResult = this.ComputeClient.ComputeManagementClient.Disks.RevokeAccessWithHttpMessagesAsync(this.ResourceGroupName, this.DiskName).GetAwaiter().GetResult(); PSOperationStatusResponse output = new PSOperationStatusResponse { StartTime = this.StartTime, EndTime = DateTime.Now }; if (RevokeResult != null && RevokeResult.Request != null && RevokeResult.Request.RequestUri != null) { output.Name = GetOperationIdFromUrlString(RevokeResult.Request.RequestUri.ToString()); } Console.WriteLine("SAS revoked."); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("\nUpload complete."); Console.ResetColor(); } else { var parameters = ValidateParameters(); var vhdUploadContext = VhdUploaderModel.Upload(parameters); WriteObject(vhdUploadContext); } }); }