public void Initialize() { vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); storageAccountKey = vmPowershellCmdlets.GetAzureStorageAccountKey(defaultAzureSubscription.CurrentStorageAccount); Assert.AreEqual(defaultAzureSubscription.CurrentStorageAccount, storageAccountKey.StorageAccountName); destination = string.Format(@"http://{0}.blob.core.windows.net/vhdstore/{1}", defaultAzureSubscription.CurrentStorageAccount, Utilities.GetUniqueShortName("PSTestAzureVhd")); patchDestination = string.Format(@"http://{0}.blob.core.windows.net/vhdstore/{1}", defaultAzureSubscription.CurrentStorageAccount, Utilities.GetUniqueShortName("PSTestAzureVhd")); destinationSasUri = string.Format(@"http://{0}.blob.core.windows.net/vhdstore/{1}", defaultAzureSubscription.CurrentStorageAccount, Utilities.GetUniqueShortName("PSTestAzureVhd")); patchDestinationSasUri = string.Format(@"http://{0}.blob.core.windows.net/vhdstore/{1}", defaultAzureSubscription.CurrentStorageAccount, Utilities.GetUniqueShortName("PSTestAzureVhd")); var destinationBlob = new CloudPageBlob(new Uri(destinationSasUri), new StorageCredentials(storageAccountKey.StorageAccountName, storageAccountKey.Primary)); var patchDestinationBlob = new CloudPageBlob(new Uri(patchDestinationSasUri), new StorageCredentials(storageAccountKey.StorageAccountName, storageAccountKey.Primary)); var policy = new SharedAccessBlobPolicy() { Permissions = SharedAccessBlobPermissions.Delete | SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.List, SharedAccessExpiryTime = DateTime.UtcNow + TimeSpan.FromHours(1) }; var destinationBlobToken = destinationBlob.GetSharedAccessSignature(policy); var patchDestinationBlobToken = patchDestinationBlob.GetSharedAccessSignature(policy); destinationSasUri += destinationBlobToken; patchDestinationSasUri += patchDestinationBlobToken; blobUrlRoot = string.Format(@"http://{0}.blob.core.windows.net/", defaultAzureSubscription.CurrentStorageAccount); perfFile = "perf.csv"; }
private static void Retry(string cmdlet, string message, int maxTry = 20, int intervalSecond = 10) { ServiceManagementCmdletTestHelper pscmdlet = new ServiceManagementCmdletTestHelper(); for (int i = 0; i < maxTry; i++) { try { pscmdlet.RunPSScript(cmdlet); break; } catch (Exception e) { if (i == maxTry) { Console.WriteLine("Max try reached. Couldn't perform within the given time."); } if (e.ToString().Contains(message)) { Thread.Sleep(intervalSecond * 1000); continue; } else { throw; } } } }
public void AzureAffinityGroupTest() { StartTest(MethodBase.GetCurrentMethod().Name, testStartTime); string affinityName1 = Convert.ToString(TestContext.DataRow["affinityName1"]); string affinityLabel1 = Convert.ToString(TestContext.DataRow["affinityLabel1"]); string location1 = CheckLocation(Convert.ToString(TestContext.DataRow["location1"])); string description1 = Convert.ToString(TestContext.DataRow["description1"]); string affinityName2 = Convert.ToString(TestContext.DataRow["affinityName2"]); string affinityLabel2 = Convert.ToString(TestContext.DataRow["affinityLabel2"]); string location2 = CheckLocation(Convert.ToString(TestContext.DataRow["location2"])); string description2 = Convert.ToString(TestContext.DataRow["description2"]); try { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); // Remove previously created affinity groups foreach (var aff in vmPowershellCmdlets.GetAzureAffinityGroup(null)) { if (aff.Name == affinityName1 || aff.Name == affinityName2) { vmPowershellCmdlets.RemoveAzureAffinityGroup(aff.Name); } } // New-AzureAffinityGroup vmPowershellCmdlets.NewAzureAffinityGroup(affinityName1, location1, affinityLabel1, description1); vmPowershellCmdlets.NewAzureAffinityGroup(affinityName2, location2, affinityLabel2, description2); Console.WriteLine("Affinity groups created: {0}, {1}", affinityName1, affinityName2); // Get-AzureAffinityGroup pass = AffinityGroupVerify(vmPowershellCmdlets.GetAzureAffinityGroup(affinityName1)[0], affinityName1, affinityLabel1, location1, description1); pass &= AffinityGroupVerify(vmPowershellCmdlets.GetAzureAffinityGroup(affinityName2)[0], affinityName2, affinityLabel2, location2, description2); // Set-AzureAffinityGroup vmPowershellCmdlets.SetAzureAffinityGroup(affinityName2, affinityLabel1, description1); Console.WriteLine("update affinity group: {0}", affinityName2); pass &= AffinityGroupVerify(vmPowershellCmdlets.GetAzureAffinityGroup(affinityName2)[0], affinityName2, affinityLabel1, location2, description1); // Remove-AzureAffinityGroup vmPowershellCmdlets.RemoveAzureAffinityGroup(affinityName2); pass &= Utilities.CheckRemove(vmPowershellCmdlets.GetAzureAffinityGroup, affinityName2); vmPowershellCmdlets.RemoveAzureAffinityGroup(affinityName1); pass &= Utilities.CheckRemove(vmPowershellCmdlets.GetAzureAffinityGroup, affinityName1); } catch (Exception e) { pass = false; Assert.Fail(e.ToString()); } }
public void Initialize() { vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); storageAccountKey = vmPowershellCmdlets.GetAzureStorageAccountKey(defaultAzureSubscription.CurrentStorageAccount); Assert.AreEqual(defaultAzureSubscription.CurrentStorageAccount, storageAccountKey.StorageAccountName); blobUrlRoot = string.Format(@"http://{0}.blob.core.windows.net/", defaultAzureSubscription.CurrentStorageAccount); perfFile = "perf.csv"; }
public static void SetTestSettings() { vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); CredentialHelper.GetTestSettings(Resource.TestSettings); vmPowershellCmdlets.RemoveAzureSubscriptions(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(CredentialHelper.PublishSettingsFile); if (string.IsNullOrEmpty(CredentialHelper.DefaultSubscriptionName)) { defaultAzureSubscription = vmPowershellCmdlets.GetCurrentAzureSubscription(); if (string.IsNullOrEmpty(Resource.DefaultSubscriptionName)) { CredentialHelper.DefaultSubscriptionName = defaultAzureSubscription.SubscriptionName; } } else { defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(CredentialHelper.DefaultSubscriptionName); } locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { CredentialHelper.Location }); // Get-AzureLocation if (String.IsNullOrEmpty(locationName)) { Console.WriteLine("No location is selected!"); } Console.WriteLine("Location Name: {0}", locationName); if (defaultAzureSubscription.CurrentStorageAccount == null && !string.IsNullOrEmpty(CredentialHelper.DefaultStorageName)) { SetDefaultStorage(); } imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "Windows" }, false); // Get-AzureVMImage if (String.IsNullOrEmpty(imageName)) { Console.WriteLine("No image is selected!"); } else { Console.WriteLine("Image Name: {0}", imageName); } }
public static void AssemblyInit(TestContext context) { vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); if (string.IsNullOrEmpty(Resource.DefaultSubscriptionName)) { Console.WriteLine("No subscription is selected!"); } else { defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); if (defaultAzureSubscription.CurrentStorageAccount == null || Utilities.CheckRemove(vmPowershellCmdlets.GetAzureStorageAccount, defaultAzureSubscription.CurrentStorageAccount)) { string defaultStorage = Utilities.GetUniqueShortName("storage"); vmPowershellCmdlets.NewAzureStorageAccount(defaultStorage, Resource.Location); defaultAzureSubscription = vmPowershellCmdlets.SetAzureSubscription(defaultAzureSubscription.SubscriptionName, defaultStorage); } storageAccountKey = vmPowershellCmdlets.GetAzureStorageAccountKey(defaultAzureSubscription.CurrentStorageAccount); Assert.AreEqual(defaultAzureSubscription.CurrentStorageAccount, storageAccountKey.StorageAccountName); blobUrlRoot = (vmPowershellCmdlets.GetAzureStorageAccount(defaultAzureSubscription.CurrentStorageAccount)[0].Endpoints.ToArray())[0]; locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); // Get-AzureLocation if (String.IsNullOrEmpty(locationName)) { Console.WriteLine("No location is selected!"); } Console.WriteLine("Location Name: {0}", locationName); imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "Windows", "testvmimage" }, false); // Get-AzureVMImage if (String.IsNullOrEmpty(imageName)) { Console.WriteLine("No image is selected!"); } Console.WriteLine("Image Name: {0}", imageName); } }
public static void CopyTestData(string srcContainer, string srcBlob, string destContainer, string destBlob) { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); Process currentProcess = Process.GetCurrentProcess(); StringDictionary environment = currentProcess.StartInfo.EnvironmentVariables; string storageAccount = environment[CredentialHelper.StorageAccountVariable]; string storageAccountKey = environment[CredentialHelper.StorageAccountKeyVariable]; // Create a container try { vmPowershellCmdlets.RunPSScript("Get-AzureStorageContainer -Name " + destContainer); } catch { // Create a container. vmPowershellCmdlets.RunPSScript("New-AzureStorageContainer -Name " + destContainer); } // Make SAS Uri for the source blob. string srcSasUri = Utilities.GenerateSasUri(CredentialHelper.CredentialBlobUriFormat, storageAccount, storageAccountKey, srcContainer, srcBlob); vmPowershellCmdlets.RunPSScript(string.Format("Start-AzureStorageBlobCopy -SrcUri \"{0}\" -DestContainer {1} -DestBlob {2} -Force", srcSasUri, destContainer, destBlob)); for (int i = 0; i < 60; i++) { var result = vmPowershellCmdlets.CheckCopyBlobStatus(destContainer, destBlob); if (result.Status.ToString().Equals("Success")) { break; } else { System.Threading.Thread.Sleep(10 * 1000); } } }
public void NewWindowsAzureQuickVM() { powershell.Invoke(); ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "Windows", "testvmimage" }, false); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); string newAzureQuickVMName = Utilities.GetUniqueShortName("PSTestVM"); string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "pstestuser", "p@ssw0rd", locationName); // Verify PersistentVMRoleContext vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(newAzureQuickVMName, vmRoleCtxt.Name, true); // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); }
public static Uri GetDeploymentAndWaitForReady(string serviceName, string slot, int waitTime, int maxWaitTime) { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); DateTime startTime = DateTime.Now; while (true) { bool allReady = true; DeploymentInfoContext result = vmPowershellCmdlets.GetAzureDeployment(serviceName, slot); int instanceNum = result.RoleInstanceList.Count; bool[] isReady = new bool[instanceNum]; for (int j = 0; j < instanceNum; j++) { var instance = result.RoleInstanceList[j]; Console.WriteLine("Instance: {0}, Status: {1}", instance.InstanceName, instance.InstanceStatus); isReady[j] = (instance.InstanceStatus == "ReadyRole"); allReady &= isReady[j]; } if (!allReady && (DateTime.Now - startTime).TotalSeconds < maxWaitTime) { Console.WriteLine("Some roles are not ready, waiting for {0} seconds.", waitTime); Thread.Sleep(waitTime * 1000); } else if (!allReady) // some roles are not ready, and time-out. { Assert.Fail("Deployment is not ready within {0} seconds!", maxWaitTime); } else // all roles are ready { Console.WriteLine("Result of the deployment: {0}", result.Status); return(result.Url); } } }
public void AdvancedProvisioning() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); string newAzureVM1Name = Utilities.GetUniqueShortName("PSTestVM"); string newAzureVM2Name = Utilities.GetUniqueShortName("PSTestVM"); string newAzureSvcName = Utilities.GetUniqueShortName("PSTestService"); vmPowershellCmdlets.NewAzureService(newAzureSvcName, newAzureSvcName, locationName); AzureVMConfigInfo azureVMConfigInfo1 = new AzureVMConfigInfo(newAzureVM1Name, VMSizeInfo.ExtraSmall, imageName); AzureVMConfigInfo azureVMConfigInfo2 = new AzureVMConfigInfo(newAzureVM2Name, VMSizeInfo.ExtraSmall, imageName); AzureProvisioningConfigInfo azureProvisioningConfig = new AzureProvisioningConfigInfo(OS.Windows, "p@ssw0rd"); AddAzureDataDiskConfig azureDataDiskConfigInfo = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, 50, "datadisk1", 0); AzureEndPointConfigInfo azureEndPointConfigInfo = new AzureEndPointConfigInfo(ProtocolInfo.tcp, 80, 80, "web", "lbweb", 80, ProtocolInfo.http, @"/"); PersistentVMConfigInfo persistentVMConfigInfo1 = new PersistentVMConfigInfo(azureVMConfigInfo1, azureProvisioningConfig, azureDataDiskConfigInfo, azureEndPointConfigInfo); PersistentVMConfigInfo persistentVMConfigInfo2 = new PersistentVMConfigInfo(azureVMConfigInfo2, azureProvisioningConfig, azureDataDiskConfigInfo, azureEndPointConfigInfo); PersistentVM persistentVM1 = vmPowershellCmdlets.GetPersistentVM(persistentVMConfigInfo1); PersistentVM persistentVM2 = vmPowershellCmdlets.GetPersistentVM(persistentVMConfigInfo2); PersistentVM[] VMs = { persistentVM1, persistentVM2 }; vmPowershellCmdlets.NewAzureVM(newAzureSvcName, VMs); // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureVM1Name, newAzureSvcName); vmPowershellCmdlets.RemoveAzureVM(newAzureVM2Name, newAzureSvcName); /* RemoveAzureService doesn't work */ //vmPowershellCmdlets.RemoveAzureService(newAzureSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureVM1Name, newAzureSvcName)); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureVM2Name, newAzureSvcName)); }
private static void Retry(string cmdlet, string message, int maxTry = 1, int intervalSecond = 10) { ServiceManagementCmdletTestHelper pscmdlet = new ServiceManagementCmdletTestHelper(); for (int i = 0; i < maxTry; i++) { try { pscmdlet.RunPSScript(cmdlet); break; } catch (Exception e) { if (i == maxTry) { Console.WriteLine("Max try reached. Couldn't perform within the given time."); } if (e.ToString().Contains(message)) { //Thread.Sleep(intervalSecond * 1000); continue; } else { throw; } } } }
public void Initialize() { vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); // Import-AzurePublishSettingsFile defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); // Set-AzureSubscription Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); storageAccountKey = vmPowershellCmdlets.GetAzureStorageAccountKey(defaultAzureSubscription.CurrentStorageAccount); // Get-AzureStorageKey Assert.AreEqual(defaultAzureSubscription.CurrentStorageAccount, storageAccountKey.StorageAccountName); locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); // Get-AzureLocation Console.WriteLine("Location Name: {0}", locationName); imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); // Get-AzureVMImage Console.WriteLine("Image Name: {0}", imageName); if (vmPowershellCmdlets.TestAzureServiceName(serviceName)) { Console.WriteLine("Service Name: {0} already exists.", serviceName); } else { vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, vmName, serviceName, imageName, "p@ssw0rd", locationName); Console.WriteLine("Service Name: {0} is created.", serviceName); } }
public void CaptureImagingExportingImportingVMConfig() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); // Import-AzurePublishSettingsFile var defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); // Set-AzureSubscription Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); // string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); // Get-AzureVMImage Console.WriteLine("Image Name: {0}", imageName); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); // Get-AzureLocation Console.WriteLine("Location Name: {0}", locationName); // Create a unique VM name string newAzureVMName = Utilities.GetUniqueShortName("PSTestVM"); Console.WriteLine("VM Name: {0}", newAzureVMName); // Create a unique Service Name string newAzureSvcName = Utilities.GetUniqueShortName("PSTestService"); vmPowershellCmdlets.NewAzureService(newAzureSvcName, newAzureSvcName, locationName); Console.WriteLine("VM Service Name: {0}", newAzureSvcName); // starting the test. AzureVMConfigInfo azureVMConfigInfo = new AzureVMConfigInfo(newAzureVMName, VMSizeInfo.Small, imageName); // parameters for New-AzureVMConfig (-Name -InstanceSize -ImageName) AzureProvisioningConfigInfo azureProvisioningConfig = new AzureProvisioningConfigInfo(OS.Windows, "p@ssw0rd"); // parameters for Add-AzureProvisioningConfig (-Windows -Password) PersistentVMConfigInfo persistentVMConfigInfo = new PersistentVMConfigInfo(azureVMConfigInfo, azureProvisioningConfig, null, null); PersistentVM persistentVM = vmPowershellCmdlets.GetPersistentVM(persistentVMConfigInfo); // New-AzureVMConfig & Add-AzureProvisioningConfig PersistentVM[] VMs = { persistentVM }; vmPowershellCmdlets.NewAzureVM(newAzureSvcName, VMs); // New-AzureVM Console.WriteLine("The VM is successfully created: {0}", persistentVM.RoleName); PersistentVMRoleContext vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(persistentVM.RoleName, newAzureSvcName); Assert.AreEqual(vmRoleCtxt.Name, persistentVM.RoleName, true); vmPowershellCmdlets.StopAzureVM(newAzureVMName, newAzureSvcName); // Stop-AzureVM for (int i = 0; i < 3; i++) { vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(persistentVM.RoleName, newAzureSvcName); if (vmRoleCtxt.InstanceStatus == "StoppedVM") break; else { Console.WriteLine("The status of the VM {0} : {1}", persistentVM.RoleName, vmRoleCtxt.InstanceStatus); Thread.Sleep(120000); } } Assert.AreEqual(vmRoleCtxt.InstanceStatus, "StoppedVM", true); //TODO // RDP //TODO: // Run sysprep and shutdown // Check the status of VM //PersistentVMRoleContext vmRoleCtxt2 = vmPowershellCmdlets.GetAzureVM(newAzureVMName, newAzureSvcName); // Get-AzureVM -Name //Assert.AreEqual(newAzureVMName, vmRoleCtxt2.Name, true); // // Save-AzureVMImage //string newImageName = "newImage"; //string newImageLabel = "newImageLabel"; //string postAction = "Delete"; // Save-AzureVMImage -ServiceName -Name -NewImageName -NewImageLabel -PostCaptureAction //vmPowershellCmdlets.SaveAzureVMImage(newAzureSvcName, newAzureVMName, newImageName, newImageLabel, postAction); // Cleanup vmPowershellCmdlets.RemoveAzureVM(persistentVM.RoleName, newAzureSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(persistentVM.RoleName, newAzureSvcName)); }
public void UpdateAndReboot() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); string newAzureQuickVMName = Utilities.GetUniqueShortName("PSTestVM"); string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "p@ssw0rd", locationName); AddAzureDataDiskConfig azureDataDiskConfigInfo1 = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, 50, "datadisk1", 0); AddAzureDataDiskConfig azureDataDiskConfigInfo2 = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, 50, "datadisk2", 1); AddAzureDataDiskConfig[] dataDiskConfig = { azureDataDiskConfigInfo1, azureDataDiskConfigInfo2 }; vmPowershellCmdlets.AddVMDataDisks(newAzureQuickVMName, newAzureQuickVMSvcName, dataDiskConfig); SetAzureDataDiskConfig setAzureDataDiskConfig1 = new SetAzureDataDiskConfig(HostCaching.ReadOnly, 0); SetAzureDataDiskConfig setAzureDataDiskConfig2 = new SetAzureDataDiskConfig(HostCaching.ReadOnly, 0); SetAzureDataDiskConfig[] diskConfig = { setAzureDataDiskConfig1, setAzureDataDiskConfig2 }; vmPowershellCmdlets.SetVMDataDisks(newAzureQuickVMName, newAzureQuickVMSvcName, diskConfig); SetAzureVMSizeConfig vmSizeConfig = new SetAzureVMSizeConfig(InstanceSize.Medium); vmPowershellCmdlets.SetVMSize(newAzureQuickVMName, newAzureQuickVMSvcName, vmSizeConfig); // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); /* RemoveAzureService doesn't work */ //vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); }
public void ProvisionLinuxVM() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); //vmPowershellCmdlets.ImportAzurePublishSettingsFile(Resource.PublishSettingsFile); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); //Assert.IsFalse(vmPowershellCmdlets.TestAzureServiceName(newAzureQuickVMSvcName)); string newAzureQuickVMName = Utilities.GetUniqueShortName("PSLinuxVM"); string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "Linux", "testvmimage" }, false); vmPowershellCmdlets.NewAzureQuickLinuxVM(OS.Linux, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "user", "p@ssw0rd", locationName); // Verify PersistentVMRoleContext vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(newAzureQuickVMName, vmRoleCtxt.Name, true); // Disabling Stop / start / restart tests for now due to timing isues /* // Stop & start the VM vmPowershellCmdlets.StopAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(vmRoleCtxt.PowerState, VMPowerState.Stopped); vmPowershellCmdlets.StartAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(vmRoleCtxt.PowerState, VMPowerState.Started.ToString()); // Restart the VM vmPowershellCmdlets.StopAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(vmRoleCtxt.PowerState, VMPowerState.Stopped); vmPowershellCmdlets.RestartAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(vmRoleCtxt.PowerState, VMPowerState.Started.ToString()); * */ // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); // RemoveAzureService is failing. Need to investigate furnter */ //vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); //TODO: Need to do proper cleanup of the service // vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); // Assert.AreEqual(null, vmPowershellCmdlets.GetAzureService(newAzureQuickVMSvcName)); }
public void NewWindowsAzureQuickVM() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); var defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); string newAzureQuickVMName = Utilities.GetUniqueShortName("PSTestVM"); string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "p@ssw0rd", locationName); // Verify PersistentVMRoleContext vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(newAzureQuickVMName, vmRoleCtxt.Name, true); // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); }
public void ModifyingVM() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); string newAzureQuickVMName = Utilities.GetUniqueShortName("PSTestVM"); string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "p@ssw0rd", locationName); AddAzureDataDiskConfig azureDataDiskConfigInfo1 = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, 50, "datadisk1", 0); AddAzureDataDiskConfig azureDataDiskConfigInfo2 = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, 50, "datadisk2", 1); AzureEndPointConfigInfo azureEndPointConfigInfo = new AzureEndPointConfigInfo(ProtocolInfo.tcp, 1433, 2000, "sql"); AddAzureDataDiskConfig[] dataDiskConfig = { azureDataDiskConfigInfo1, azureDataDiskConfigInfo2 }; vmPowershellCmdlets.AddVMDataDisksAndEndPoint(newAzureQuickVMName, newAzureQuickVMSvcName, dataDiskConfig, azureEndPointConfigInfo); SetAzureDataDiskConfig setAzureDataDiskConfig1 = new SetAzureDataDiskConfig(HostCaching.ReadWrite, 0); SetAzureDataDiskConfig setAzureDataDiskConfig2 = new SetAzureDataDiskConfig(HostCaching.ReadWrite, 0); SetAzureDataDiskConfig[] diskConfig = { setAzureDataDiskConfig1, setAzureDataDiskConfig2 }; vmPowershellCmdlets.SetVMDataDisks(newAzureQuickVMName, newAzureQuickVMSvcName, diskConfig); vmPowershellCmdlets.GetAzureDataDisk(newAzureQuickVMName, newAzureQuickVMSvcName); // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); /* RemoveAzureService doesn't work */ //vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); }
public void GetAzureVMImage() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.GetAzureVMImage(); }
public void ManagingRDPSSHConnectivity() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); // Import-AzurePublishSettingsFile var defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); // Set-AzureSubscription Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); // string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); // Get-AzureVMImage Console.WriteLine("Image Name: {0}", imageName); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); // Get-AzureLocation Console.WriteLine("Location Name: {0}", locationName); // Create a unique VM name string newAzureQuickVMName = Utilities.GetUniqueShortName("PSTestVM"); // Create a unique Service Name string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); // Create a new Azure quick VM vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "p@ssw0rd", locationName); // New-AzureQuickVM Console.WriteLine("VM is created successfully: -Name {0} -ServiceName {1}", newAzureQuickVMName, newAzureQuickVMSvcName); // starting the test. PersistentVMRoleContext vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); // Get-AzureVM InputEndpointContext inputEndpointCtxt = vmPowershellCmdlets.GetAzureEndpoint(vmRoleCtxt); // Get-AzureEndpoint Console.WriteLine("InputEndpointContext Name: {0}", inputEndpointCtxt.Name); Console.WriteLine("InputEndpointContext port: {0}", inputEndpointCtxt.Port); Console.WriteLine("InputEndpointContext protocol: {0}", inputEndpointCtxt.Protocol); Assert.AreEqual(inputEndpointCtxt.Name, "RemoteDesktop", true); string path = "C:\\temp\\myvmconnection.rdp"; vmPowershellCmdlets.GetAzureRemoteDesktopFile(newAzureQuickVMName, newAzureQuickVMSvcName, path, false); // Get-AzureRemoteDesktopFile Console.WriteLine("RDP file is successfully created at: {0}", path); // ToDo: Automate RDP. //vmPowershellCmdlets.GetAzureRemoteDesktopFile(newAzureQuickVMName, newAzureQuickVMSvcName, path, true); // Get-AzureRemoteDesktopFile -Launch Console.WriteLine("Test passed"); // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); Console.WriteLine("VM is successfully removed"); // vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); // Assert.AreEqual(null, vmPowershellCmdlets.GetAzureService(newAzureQuickVMSvcName)); //Console.WriteLine("The service is successfully removed"); //TODO: Need to do proper cleanup of the service // vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); // Assert.AreEqual(null, vmPowershellCmdlets.GetAzureService(newAzureQuickVMSvcName)); }
public void ManagingDiskImages() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); // Import-AzurePublishSettingsFile var defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); // Set-AzureSubscription Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); // Get-AzureVMImage Console.WriteLine("Image Name: {0}", imageName); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); // Get-AzureLocation Console.WriteLine("Location Name: {0}", locationName); // Create a unique VM name and Service Name string newAzureQuickVMName = Utilities.GetUniqueShortName("PSTestVM"); string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "p@ssw0rd", locationName); // New-AzureQuickVM Console.WriteLine("VM is created successfully: -Name {0} -ServiceName {1}", newAzureQuickVMName, newAzureQuickVMSvcName); // starting the test. Collection<DiskContext> vmDisks = vmPowershellCmdlets.GetAzureDiskAttachedToRoleName(new[] { newAzureQuickVMName }); // Get-AzureDisk | Where {$_.AttachedTo.RoleName -eq $vmname } foreach (var disk in vmDisks) Console.WriteLine("The disk, {0}, is created", disk.DiskName); vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); // Remove-AzureVM Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); Console.WriteLine("The VM, {0}, is successfully removed.", newAzureQuickVMName); foreach (var disk in vmDisks) { for (int i = 0; i < 3; i++) { try { vmPowershellCmdlets.RemoveAzureDisk(disk.DiskName, true); // Remove-AzureDisk break; } catch (Exception e) { if (e.ToString().ToLowerInvariant().Contains("currently in use") && i != 2) { Console.WriteLine("The vhd, {0}, is still in the state of being used by the deleted VM", disk.DiskName); Thread.Sleep(120000); continue; } else { Assert.Fail("error during Remove-AzureDisk: {0}", e.ToString()); } } } try { vmPowershellCmdlets.GetAzureDisk(disk.DiskName); // Get-AzureDisk -DiskName (try to get the removed disk.) Assert.Fail("Disk is not removed: {0}", disk.DiskName); } catch (Exception e) { if (e.ToString().ToLowerInvariant().Contains("does not exist")) { Console.WriteLine("The disk, {0}, is successfully removed.", disk.DiskName); continue; } else { Assert.Fail("Exception: {0}", e.ToString()); } } } vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); // Clean up the service. try { vmPowershellCmdlets.GetAzureService(newAzureQuickVMSvcName); Assert.Fail("The service, {0}, is not removed", newAzureQuickVMSvcName); } catch (Exception e) { if (e.ToString().ToLowerInvariant().Contains("does not exist")) { Console.WriteLine("The service, {0}, is successfully removed", newAzureQuickVMSvcName); } else { Assert.Fail("Error occurred: {0}", e.ToString()); } } }
public void ExportingImportingVMConfigAsTemplateforRepeatableUsage() { ServiceManagementCmdletTestHelper vmPowershellCmdlets = new ServiceManagementCmdletTestHelper(); vmPowershellCmdlets.ImportAzurePublishSettingsFile(); // Import-AzurePublishSettingsFile var defaultAzureSubscription = vmPowershellCmdlets.SetDefaultAzureSubscription(Resource.DefaultSubscriptionName); // Set-AzureSubscription Assert.AreEqual(Resource.DefaultSubscriptionName, defaultAzureSubscription.SubscriptionName); // string imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "MSFT", "testvmimage" }, false); // Get-AzureVMImage Console.WriteLine("Image Name: {0}", imageName); string locationName = vmPowershellCmdlets.GetAzureLocationName(new[] { Resource.Location }, false); // Get-AzureLocation Console.WriteLine("Location Name: {0}", locationName); // Create a unique VM name string newAzureQuickVMName = Utilities.GetUniqueShortName("PSTestVM"); // Create a unique Service Name string newAzureQuickVMSvcName = Utilities.GetUniqueShortName("PSTestService"); // Create a new Azure quick VM vmPowershellCmdlets.NewAzureQuickVM(OS.Windows, newAzureQuickVMName, newAzureQuickVMSvcName, imageName, "p@ssw0rd", locationName); // New-AzureQuickVM Console.WriteLine("VM is created successfully: -Name {0} -ServiceName {1}", newAzureQuickVMName, newAzureQuickVMSvcName); // starting the test. string path = "C:\\temp\\mytestvmconfig1.xml"; PersistentVMRoleContext vmRole = vmPowershellCmdlets.ExportAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName, path); // Export-AzureVM Console.WriteLine("Exporting VM is successfully done: path - {0} Name - {1}", path, vmRole.Name); vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); // Remove-AzureVM Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); Console.WriteLine("The VM is successfully removed: {0}", newAzureQuickVMName); List<PersistentVM> VMs = new List<PersistentVM>(); foreach (var pervm in vmPowershellCmdlets.ImportAzureVM(path)) // Import-AzureVM { VMs.Add(pervm); Console.WriteLine("The VM, {0}, is imported.", pervm.RoleName); } for (int i = 0; i < 3; i++) { try { vmPowershellCmdlets.NewAzureVM(newAzureQuickVMSvcName, VMs.ToArray()); // New-AzureVM Console.WriteLine("All VMs are successfully created."); foreach (var vm in VMs) { Console.WriteLine("created VM: {0}", vm.RoleName); } break; } catch (Exception e) { if (e.ToString().ToLowerInvariant().Contains("currently in use") && i != 2) { Console.WriteLine("The removed VM is still using the vhd"); Thread.Sleep(120000); continue; } else { Assert.Fail("error during New-AzureVM: {0}", e.ToString()); } } } // Verify PersistentVMRoleContext vmRoleCtxt = vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(newAzureQuickVMName, vmRoleCtxt.Name, true); // Cleanup vmPowershellCmdlets.RemoveAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName); Assert.AreEqual(null, vmPowershellCmdlets.GetAzureVM(newAzureQuickVMName, newAzureQuickVMSvcName)); vmPowershellCmdlets.RemoveAzureService(newAzureQuickVMSvcName); // Clean up the service. try { vmPowershellCmdlets.GetAzureService(newAzureQuickVMSvcName); Assert.Fail("The service, {0}, is not removed", newAzureQuickVMSvcName); } catch (Exception e) { if (e.ToString().ToLowerInvariant().Contains("does not exist")) { Console.WriteLine("The service, {0}, is successfully removed", newAzureQuickVMSvcName); } else { Assert.Fail("Error occurred: {0}", e.ToString()); } } }