public override void ExecuteCmdlet() { VirtualMachine pendingVirtualMachine = null; var virtualMachineOperations = new VirtualMachineOperations(this.WebClientFactory); Guid? jobId = Guid.Empty; var newVirtualMachine = new VirtualMachine() { Name = Name, VMTemplateId = Template.ID, LocalAdminUserName = VMCredential.UserName, LocalAdminPassword = ExtractSecureString(VMCredential.Password), }; pendingVirtualMachine = virtualMachineOperations.Create(newVirtualMachine, out jobId); if (!jobId.HasValue) { throw new WAPackOperationException(Resources.CreateFailedErrorMessage); } WaitForJobCompletion(jobId); var createdVM = virtualMachineOperations.Read(pendingVirtualMachine.ID); WriteObject(createdVM); }
public override void ExecuteCmdlet() { VirtualMachine pendingVirtualMachine = null; var virtualMachineOperations = new VirtualMachineOperations(this.WebClientFactory); Guid? jobId = Guid.Empty; var newVirtualMachine = new VirtualMachine() { Name = Name, VMTemplateId = Template.ID, UserName = VMCredential.UserName, Password = ExtractSecureString(VMCredential.Password), }; pendingVirtualMachine = virtualMachineOperations.Create(newVirtualMachine, out jobId); if (!jobId.HasValue) { throw new WAPackOperationException(Resources.CreateFailedErrorMessage); } var jobInfo = new JobOperations(this.WebClientFactory).WaitOnJob(jobId.Value); if (jobInfo.jobStatus == JobStatusEnum.Failed) { this.WriteErrorDetails(new Exception(jobInfo.errorMessage)); } var createdVM = virtualMachineOperations.Read(pendingVirtualMachine.ID); WriteObject(createdVM); }
public override void ExecuteCmdlet() { VirtualMachine newVirtualMachine = null; var virtualMachineOperations = new VirtualMachineOperations(this.WebClientFactory); Guid? jobId = Guid.Empty; var virtualNetworkAdaptersWithVNet = this.CustomizeVnaInput(); if (this.ParameterSetName == WAPackCmdletParameterSets.CreateWindowsVMFromTemplate) { newVirtualMachine = new VirtualMachine() { Name = Name, VMTemplateId = Template.ID, LocalAdminUserName = VMCredential.UserName, LocalAdminPassword = ExtractSecureString(VMCredential.Password), NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet, ProductKey = ProductKey, }; } else if (this.ParameterSetName == WAPackCmdletParameterSets.CreateLinuxVMFromTemplate) { newVirtualMachine = new VirtualMachine() { Name = Name, VMTemplateId = Template.ID, LocalAdminUserName = VMCredential.UserName, LocalAdminPassword = ExtractSecureString(VMCredential.Password), NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet, LinuxAdministratorSSHKeyString = AdministratorSSHKey }; } else if (this.ParameterSetName == WAPackCmdletParameterSets.CreateVMFromOSDisks) { newVirtualMachine = new VirtualMachine() { Name = Name, HardwareProfileId = VMSizeProfile.ID, VirtualHardDiskId = OSDisk.ID, NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet }; } var createdVirtualMachine = virtualMachineOperations.Create(newVirtualMachine, out jobId); if (!jobId.HasValue) { throw new WAPackOperationException(Resources.CreateFailedErrorMessage); } var jobInfo = new JobOperations(this.WebClientFactory).WaitOnJob(jobId.Value); if (jobInfo.jobStatus == JobStatusEnum.Failed) { this.WriteErrorDetails(new Exception(jobInfo.errorMessage)); } createdVirtualMachine = virtualMachineOperations.Read(createdVirtualMachine.ID); WriteObject(createdVirtualMachine); }
public void CreateVMFromTemplate() { var mockChannel = new MockRequestChannel(); var testCloud = new Cloud { ID = Guid.NewGuid(), StampId = Guid.NewGuid() }; mockChannel.AddReturnObject(testCloud); var vmToCreate = new VirtualMachine { VMTemplateId = Guid.NewGuid(), Name = "Test" }; var vmToReturn = new VirtualMachine { ID = Guid.NewGuid(), Name = vmToCreate.Name, CloudId = testCloud.ID, StampId = testCloud.StampId }; mockChannel.AddReturnObject(vmToReturn, new WebHeaderCollection { "x-ms-request-id:" + Guid.NewGuid() }); var vmOps = new VirtualMachineOperations(new WebClientFactory(new Subscription(), mockChannel)); Guid?jobOut; var resultVM = vmOps.Create(vmToCreate, out jobOut); //Check the results that client returns Assert.NotNull(resultVM); Assert.True(resultVM is VirtualMachine); Assert.Equal(resultVM.ID, vmToReturn.ID); Assert.Equal(resultVM.Name, vmToReturn.Name); Assert.Equal(resultVM.CloudId, vmToReturn.CloudId); Assert.Equal(resultVM.StampId, vmToReturn.StampId); //Check the requests that the client made var requestList = mockChannel.ClientRequests; Assert.Equal(requestList.Count, 2); Assert.Equal(requestList[1].Item1.Method, HttpMethod.Post.ToString()); Assert.True(requestList[1].Item1.RequestUri.ToString().TrimEnd(new[] { '/' }).EndsWith("/VirtualMachines")); var sentVM = mockChannel.DeserializeClientPayload <VirtualMachine>(requestList[1].Item2); Assert.NotNull(sentVM); Assert.True(sentVM.Count == 1); Assert.Equal(sentVM[0].CloudId, testCloud.ID); Assert.Equal(sentVM[0].StampId, testCloud.StampId); Assert.Equal(sentVM[0].Name, vmToCreate.Name); Assert.Equal(sentVM[0].VMTemplateId, vmToCreate.VMTemplateId); }
public void VmCreateShouldThrowWhenNoObjectReturned() { var mockChannel = new MockRequestChannel(); var testCloud = new Cloud { ID = Guid.NewGuid(), StampId = Guid.NewGuid() }; mockChannel.AddReturnObject(testCloud); var vmOps = new VirtualMachineOperations(new WebClientFactory(new Subscription(), mockChannel)); var vmToCreate = new VirtualMachine { VirtualHardDiskId = Guid.NewGuid(), Name = "Test" }; Guid?jobOut; Assert.Throws <WAPackOperationException>(() => vmOps.Create(vmToCreate, out jobOut)); }
public void VmCreateShouldThrowIfNoVhdAndNoTemplateSupplied() { var channel = new MockRequestChannel(); var testCloud = new Cloud { ID = Guid.NewGuid(), StampId = Guid.NewGuid() }; channel.AddReturnObject(testCloud); var sub = new Subscription(); var vmOps = new VirtualMachineOperations(new WebClientFactory(sub, channel)); var vmToCreate = new VirtualMachine { Name = "Test" }; Guid?jobOut; Assert.Throws <WAPackOperationException>(() => vmOps.Create(vmToCreate, out jobOut)); }
public override void ExecuteCmdlet() { Utilities.WAPackIaaS.DataContract.VirtualMachine newVirtualMachine = null; var virtualMachineOperations = new VirtualMachineOperations(this.WebClientFactory); Guid? jobId = Guid.Empty; var virtualNetworkAdaptersWithVNet = this.CustomizeVnaInput(); if (this.ParameterSetName == WAPackCmdletParameterSets.CreateWindowsVMFromTemplate) { newVirtualMachine = new Utilities.WAPackIaaS.DataContract.VirtualMachine() { Name = Name, VMTemplateId = Template.ID, LocalAdminUserName = VMCredential.UserName, LocalAdminPassword = ExtractSecureString(VMCredential.Password), NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet, ProductKey = ProductKey, }; } else if (this.ParameterSetName == WAPackCmdletParameterSets.CreateLinuxVMFromTemplate) { newVirtualMachine = new Utilities.WAPackIaaS.DataContract.VirtualMachine() { Name = Name, VMTemplateId = Template.ID, LocalAdminUserName = VMCredential.UserName, LocalAdminPassword = ExtractSecureString(VMCredential.Password), NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet, LinuxAdministratorSSHKeyString = AdministratorSSHKey }; } else if (this.ParameterSetName == WAPackCmdletParameterSets.CreateVMFromOSDisks) { newVirtualMachine = new Utilities.WAPackIaaS.DataContract.VirtualMachine() { Name = Name, HardwareProfileId = VMSizeProfile.ID, VirtualHardDiskId = OSDisk.ID, NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet }; } var createdVirtualMachine = virtualMachineOperations.Create(newVirtualMachine, out jobId); if (!jobId.HasValue) { throw new WAPackOperationException(Resources.CreateFailedErrorMessage); } WaitForJobCompletion(jobId); createdVirtualMachine = virtualMachineOperations.Read(createdVirtualMachine.ID); WriteObject(createdVirtualMachine); }
public void VmCreateShouldThrowWhenNoObjectReturned() { var mockChannel = new MockRequestChannel(); var testCloud = new Cloud { ID = Guid.NewGuid(), StampId = Guid.NewGuid() }; mockChannel.AddReturnObject(testCloud); var vmOps = new VirtualMachineOperations(new WebClientFactory(new Subscription(), mockChannel)); var vmToCreate = new VirtualMachine { VirtualHardDiskId = Guid.NewGuid(), Name = "Test" }; Guid? jobOut; vmOps.Create(vmToCreate, out jobOut); }
public void VmCreateShouldThrowIfNoVhdAndNoTemplateSupplied() { var channel = new MockRequestChannel(); var testCloud = new Cloud { ID = Guid.NewGuid(), StampId = Guid.NewGuid() }; channel.AddReturnObject(testCloud); var sub = new Subscription(); var vmOps = new VirtualMachineOperations(new WebClientFactory(sub, channel)); var vmToCreate = new VirtualMachine {Name = "Test"}; Guid? jobOut; vmOps.Create(vmToCreate, out jobOut); }
public void CreateVMFromTemplate() { var mockChannel = new MockRequestChannel(); var testCloud = new Cloud { ID = Guid.NewGuid(), StampId = Guid.NewGuid() }; mockChannel.AddReturnObject(testCloud); var vmToCreate = new VirtualMachine { VMTemplateId = Guid.NewGuid(), Name = "Test" }; var vmToReturn = new VirtualMachine { ID = Guid.NewGuid(), Name = vmToCreate.Name, CloudId = testCloud.ID, StampId = testCloud.StampId }; mockChannel.AddReturnObject(vmToReturn, new WebHeaderCollection { "x-ms-request-id:" + Guid.NewGuid() }); var vmOps = new VirtualMachineOperations(new WebClientFactory(new Subscription(), mockChannel)); Guid? jobOut; var resultVM = vmOps.Create(vmToCreate, out jobOut); //Check the results that client returns Assert.IsNotNull(resultVM); Assert.IsInstanceOfType(resultVM, typeof(VirtualMachine)); Assert.AreEqual(resultVM.ID, vmToReturn.ID); Assert.AreEqual(resultVM.Name, vmToReturn.Name); Assert.AreEqual(resultVM.CloudId, vmToReturn.CloudId); Assert.AreEqual(resultVM.StampId, vmToReturn.StampId); //Check the requests that the client made var requestList = mockChannel.ClientRequests; Assert.AreEqual(requestList.Count, 2); Assert.AreEqual(requestList[1].Item1.Method, HttpMethod.Post.ToString()); Assert.IsTrue(requestList[1].Item1.RequestUri.ToString().TrimEnd(new[] { '/' }).EndsWith("/VirtualMachines")); var sentVM = mockChannel.DeserializeClientPayload<VirtualMachine>(requestList[1].Item2); Assert.IsNotNull(sentVM); Assert.IsTrue(sentVM.Count == 1); Assert.AreEqual(sentVM[0].CloudId, testCloud.ID); Assert.AreEqual(sentVM[0].StampId, testCloud.StampId); Assert.AreEqual(sentVM[0].Name, vmToCreate.Name); Assert.AreEqual(sentVM[0].VMTemplateId, vmToCreate.VMTemplateId); }
protected override void ExecuteCommand() { VirtualMachine newVirtualMachine = null; var virtualMachineOperations = new VirtualMachineOperations(this.WebClientFactory); Guid? jobId = Guid.Empty; var virtualNetworkAdaptersWithVNet = this.CustomizeVnaInput(); if (this.ParameterSetName == WAPackCmdletParameterSets.CreateWindowsVMFromTemplate) { newVirtualMachine = new VirtualMachine() { Name = Name, VMTemplateId = Template.ID, UserName = VMCredential.UserName, Password = ExtractSecureString(VMCredential.Password), NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet, ProductKey = ProductKey, }; } else if (this.ParameterSetName == WAPackCmdletParameterSets.CreateLinuxVMFromTemplate) { newVirtualMachine = new VirtualMachine() { Name = Name, VMTemplateId = Template.ID, UserName = VMCredential.UserName, Password = ExtractSecureString(VMCredential.Password), NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet, LinuxAdministratorSSHKeyString = AdministratorSSHKey }; } else if (this.ParameterSetName == WAPackCmdletParameterSets.CreateVMFromOSDisks) { newVirtualMachine = new VirtualMachine() { Name = Name, HardwareProfileId = VMSizeProfile.ID, VirtualHardDiskId = OSDisk.ID, NewVirtualNetworkAdapterInput = virtualNetworkAdaptersWithVNet }; } var createdVirtualMachine = virtualMachineOperations.Create(newVirtualMachine, out jobId); if (!jobId.HasValue) { throw new WAPackOperationException(Resources.CreateFailedErrorMessage); } var jobInfo = new JobOperations(this.WebClientFactory).WaitOnJob(jobId.Value); if (jobInfo.jobStatus == JobStatusEnum.Failed) { this.WriteErrorDetails(new Exception(jobInfo.errorMessage)); } createdVirtualMachine = virtualMachineOperations.Read(createdVirtualMachine.ID); WriteObject(createdVirtualMachine); }