public void CreateReservedIPThenWindowsVM() { try { string reservedIpName = Utilities.GetUniqueShortName("ResrvdIP"); string reservedIpLabel = Utilities.GetUniqueShortName(" ResrvdIPLbl",5); string dnsName = Utilities.GetUniqueShortName("Dns"); string vmName = Utilities.GetUniqueShortName(vmNamePrefix); string deploymentName = Utilities.GetUniqueShortName("Depl"); var input = new ReservedIPContext() { //Address = string.Empty, DeploymentName = string.Empty, Label = reservedIpLabel, InUse = false, Location = locationName, ReservedIPName = reservedIpName, State = "Created" }; // Reserve a new IP Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureReservedIP(reservedIpName, locationName, reservedIpLabel), "Reserve a new IP"); //Get the reserved ip and verify the reserved Ip properties. VerifyReservedIpNotInUse(input); // Create a new VM with the reserved ip. DnsServer dns = null; Utilities.ExecuteAndLog(() => { dns = vmPowershellCmdlets.NewAzureDns(dnsName, DNS_IP); }, "Create a new Azure DNS"); Utilities.ExecuteAndLog(() => { PersistentVM vm = CreateVMObjectWithDataDiskSubnetAndAvailibilitySet(vmName, OS.Windows); vmPowershellCmdlets.NewAzureVM(serviceName, new[] { vm }, vnet, new[] { dns }, location: locationName, reservedIPName: reservedIpName); },"Create a new windows azure vm with reserved ip."); VerifyReservedIpInUse(serviceName,input); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.RemoveAzureVM(vmName, serviceName, true), "Remove Azure VM and verify that a warning is given."); VerifyReservedIpNotInUse(input); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.RemoveAzureReservedIP(reservedIpName, true), "Release the reserved ip"); VerifyReservedIpRemoved(reservedIpName); pass = true; } catch (Exception ex) { pass = false; Console.WriteLine(ex.ToString()); throw; } }
public void CreateReservedIPThenLinuxQuickVM() { try { string reservedIpName = Utilities.GetUniqueShortName("ResrvdIP"); string reservedIpLabel = Utilities.GetUniqueShortName(" ResrvdIPLbl", 5); string dnsName = Utilities.GetUniqueShortName("Dns"); string vmName = Utilities.GetUniqueShortName(vmNamePrefix); string deploymentName = Utilities.GetUniqueShortName("Depl"); string affinityGroup = Utilities.GetUniqueShortName("AffGrp"); var input = new ReservedIPContext() { //Address = string.Empty, DeploymentName = string.Empty, Label = reservedIpLabel, InUse = false, Location = locationName, ReservedIPName = reservedIpName, State = "Created" }; imageName = vmPowershellCmdlets.GetAzureVMImageName(new[] { "Linux" }, false); // Reserve a new IP Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureReservedIP(reservedIpName, locationName, reservedIpLabel), "Reserve a new IP"); VerifyReservedIpNotInUse(input); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureAffinityGroup(affinityGroup, locationName, affinityGroup, affinityGroup), "Create a new affinity group"); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureQuickVM(OS.Linux, vmName, serviceName, imageName, username, password, locationName, InstanceSize.Small.ToString(), null, reservedIpName), "Create a new Azure windows Quick VM with reserved ip."); VerifyReservedIpInUse(serviceName, input); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.StopAzureVM(vmName, serviceName,true), "Stop Azure VM and stay provisioned."); VerifyReservedIpInUse(serviceName, input); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.RemoveAzureService(serviceName, true), "Delete the hosted service"); cleanupIfPassed = false; Utilities.ExecuteAndLog(() => vmPowershellCmdlets.RemoveAzureReservedIP(reservedIpName, true), "Release the reserved ip"); ; VerifyReservedIpRemoved(reservedIpName); pass = true; } catch (Exception ex) { pass = false; Console.WriteLine(ex.ToString()); throw; } }
private void VerifyReservedIpNotInUse(ReservedIPContext input) { input.ServiceName = null; input.InUse = false; input.DeploymentName = null; Utilities.ExecuteAndLog(() => VerifyReservedIp(input), string.Format("Verify that the reserved ip {0} is not in use", input.ReservedIPName)); }
private void VerifyReservedIpInUse(string serviceName,ReservedIPContext input) { input.ServiceName = serviceName; input.InUse = true; input.DeploymentName = serviceName; Utilities.ExecuteAndLog(() => VerifyReservedIp(input), string.Format("Verify that the reserved ip {0} is in use", input.ReservedIPName)); }
/// <summary> /// Verify the properties of the reserved ip /// </summary> /// <param name="input">ReservedIpContext object containing expected values</param> private void VerifyReservedIp(ReservedIPContext input) { var reservedIps = vmPowershellCmdlets.GetAzureReservedIP(input.ReservedIPName); if (reservedIps.Count > 0) { var reservedIpContext = reservedIps[0]; Utilities.PrintContext(reservedIpContext); Utilities.LogAssert(() => Assert.IsFalse(string.IsNullOrEmpty(reservedIpContext.Address)), "Address"); Utilities.LogAssert(() => Assert.AreEqual(input.Location, reservedIpContext.Location), "Location"); Utilities.LogAssert(() => Assert.AreEqual(input.ReservedIPName, reservedIpContext.ReservedIPName), "ReservedIPName"); Utilities.LogAssert(() => Assert.AreEqual(input.State, reservedIpContext.State), "State"); Utilities.LogAssert(() => Assert.AreEqual(input.DeploymentName, reservedIpContext.DeploymentName), "DeploymentName"); Utilities.LogAssert(() => Assert.AreEqual(input.InUse, reservedIpContext.InUse), "InUse"); Utilities.LogAssert(() => Assert.AreEqual(input.ServiceName, reservedIpContext.ServiceName), "ServiceName"); } else { Assert.Fail("Didnt find reserved ip with name {0}", input.ReservedIPName); } }
public void CreateReservedIPThenLinuxVM() { try { string reservedIpName = Utilities.GetUniqueShortName("ResrvdIP"); string reservedIpLabel = Utilities.GetUniqueShortName(" ResrvdIPLbl", 5); string dnsName = Utilities.GetUniqueShortName("Dns"); string vmName = Utilities.GetUniqueShortName(vmNamePrefix); string deploymentName = Utilities.GetUniqueShortName("Depl"); string affinityGroup = Utilities.GetUniqueShortName("AffGrp"); var input = new ReservedIPContext() { //Address = string.Empty, DeploymentName = string.Empty, Label = reservedIpLabel, InUse = false, Location = locationName, ReservedIPName = reservedIpName, State = "Created" }; // Reserve a new IP Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureReservedIP(reservedIpName, locationName, reservedIpLabel), "Reserve a new IP"); //Get the reserved ip and verify the reserved Ip properties. VerifyReservedIpNotInUse(input); // Create a new VM with the reserved ip. DnsServer dns = null; Utilities.ExecuteAndLog(() => { dns = vmPowershellCmdlets.NewAzureDns(dnsName, DNS_IP); }, "Create a new Azure DNS"); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureAffinityGroup(affinityGroup, locationName, affinityGroup, affinityGroup), "Create a new affinity group"); Utilities.ExecuteAndLog(() => { PersistentVM vm = CreateVMObjectWithDataDiskSubnetAndAvailibilitySet(vmName, OS.Linux); vmPowershellCmdlets.NewAzureVM(serviceName, new[] { vm }, vnet, new[] { dns }, affinityGroup: affinityGroup, reservedIPName: reservedIpName); }, ""); VerifyReservedIpInUse(serviceName, input); vmPowershellCmdlets.RemoveAzureDeployment(serviceName,DeploymentSlotType.Production, true); VerifyReservedIpNotInUse(input); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.RemoveAzureReservedIP(reservedIpName, true), "Release the reserved ip"); VerifyReservedIpRemoved(reservedIpName); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.RemoveAzureService(serviceName, true), "Delete the hosted service"); cleanupIfPassed = false; Utilities.ExecuteAndLog(() => vmPowershellCmdlets.RemoveAzureAffinityGroup(affinityGroup), "Delete the affintiy group"); pass = true; } catch (Exception ex) { pass = false; Console.WriteLine(ex.ToString()); throw; } }
public void CreateReservedIPThenPaaSVM() { try { string reservedIpName1 = Utilities.GetUniqueShortName("ResrvdIP1"); ; string reservedIpName2 = Utilities.GetUniqueShortName("ResrvdIP2"); ; string reservedIpLabel1 = Utilities.GetUniqueShortName("ResrvdIPLbl", 5); string reservedIpLabel2 = Utilities.GetUniqueShortName("ResrvdIPLbl", 5); string dnsName = Utilities.GetUniqueShortName("Dns"); string deploymentName1 = Utilities.GetUniqueShortName("Depl"); string deploymentName2 = Utilities.GetUniqueShortName("Depl"); var input1 = new ReservedIPContext() { DeploymentName = string.Empty, Label = reservedIpLabel1, InUse = false, Location = locationName, ReservedIPName = reservedIpName1, State = "Created" }; var input2 = new ReservedIPContext() { DeploymentName = string.Empty, Label = reservedIpLabel2, InUse = false, Location = locationName, ReservedIPName = reservedIpName2, State = "Created" }; // Reserve a new IP Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureReservedIP(reservedIpName1, locationName, reservedIpLabel1), "Reserve a new IP"); //Get the reserved ip and verify the reserved Ip properties. VerifyReservedIpNotInUse(input1); // Reserve a new IP Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureReservedIP(reservedIpName2, locationName, reservedIpLabel2), "Reserve a new IP"); //Get the reserved ip and verify the reserved Ip properties. VerifyReservedIpNotInUse(input2); vmPowershellCmdlets.NewAzureService(serviceName, locationName); var _packageName = Convert.ToString(TestContext.DataRow["packageName"]); var _configName = Convert.ToString(TestContext.DataRow["configName"]); var _configNameupdate = Convert.ToString(TestContext.DataRow["updateConfig"]); string _packagePath = (new FileInfo(Directory.GetCurrentDirectory() + "\\" + _packageName)).FullName; string _configPath1 = StoreConfigFileWithReservedIp(_configName, reservedIpName1); string _configPath2 = StoreConfigFileWithReservedIp(_configName, reservedIpName2); string _configPath1update = StoreConfigFileWithReservedIp(_configNameupdate, reservedIpName1); string _configPath2update = StoreConfigFileWithReservedIp(_configNameupdate, reservedIpName2); vmPowershellCmdlets.NewAzureDeployment(serviceName, _packagePath, _configPath1, DeploymentSlotType.Production, "label", deploymentName1, false, false); vmPowershellCmdlets.NewAzureDeployment(serviceName, _packagePath, _configPath2, DeploymentSlotType.Staging, "label", deploymentName2, false, false); vmPowershellCmdlets.MoveAzureDeployment(serviceName); vmPowershellCmdlets.GetAzureDeployment(serviceName, DeploymentSlotType.Production); vmPowershellCmdlets.GetAzureDeployment(serviceName, DeploymentSlotType.Staging); vmPowershellCmdlets.SetAzureDeploymentConfig(serviceName, DeploymentSlotType.Production, _configPath1update); vmPowershellCmdlets.SetAzureDeploymentConfig(serviceName, DeploymentSlotType.Staging, _configPath2update); pass = true; } catch (Exception ex) { pass = false; Console.WriteLine(ex.ToString()); throw; } }
public void TestAssociateReservedIPToStageSlotIaaSFails() { try { string reservedIpName = Utilities.GetUniqueShortName("ResrvdIP"); string reservedIpLabel = Utilities.GetUniqueShortName(" ResrvdIPLbl", 5); string dnsName = Utilities.GetUniqueShortName("Dns"); string vmName = Utilities.GetUniqueShortName(vmNamePrefix); var input = new ReservedIPContext() { DeploymentName = string.Empty, Label = reservedIpLabel, InUse = false, Location = locationName, ReservedIPName = reservedIpName, State = "Created" }; // Reserve a new IP Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureReservedIP(reservedIpName, locationName, reservedIpLabel), "Reserve a new IP"); //Get the reserved ip and verify the reserved Ip properties. VerifyReservedIpNotInUse(input); // Create a new VM with the reserved ip. DnsServer dns = null; Utilities.ExecuteAndLog(() => { dns = vmPowershellCmdlets.NewAzureDns(dnsName, DNS_IP); }, "Create a new Azure DNS"); Utilities.ExecuteAndLog(() => { PersistentVM vm = Utilities.CreateVMObjectWithDataDiskSubnetAndAvailibilitySet(vmName, OS.Windows, username, password, subnet); vmPowershellCmdlets.NewAzureVM(serviceName, new[] { vm }, vnet, new[] { dns }, location: locationName); }, "Create a new windows azure vm without reserved ip."); Utilities.ExecuteAndLog(() => { vmPowershellCmdlets.SetAzureReservedIPAssociation(reservedIpName, serviceName, DeploymentSlotType.Staging); }, "Create a new Azure Reserved IP Association"); } catch (Exception ex) { pass = true; Console.WriteLine(ex.ToString()); return; } throw new Exception("Test Did not fail as expected when association was tried on stage slot in IaaS"); }
public void CreatePaaSDeploymentAssociateAndDisassociateReservedIp() { try { string reservedIpName = Utilities.GetUniqueShortName("ResrvdIP"); string reservedIpLabel = Utilities.GetUniqueShortName("ResrvdIPLbl", 5); string deploymentName = Utilities.GetUniqueShortName("Depl"); string deploymentLabel = Utilities.GetUniqueShortName("DepLbl", 5); var input = new ReservedIPContext() { DeploymentName = string.Empty, Label = reservedIpLabel, InUse = false, Location = locationName, ReservedIPName = reservedIpName, State = "Created" }; // Reserve a new IP Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureReservedIP(reservedIpName, locationName, reservedIpLabel), "Reserve a new IP"); //Get the reserved ip and verify the reserved Ip properties. VerifyReservedIpNotInUse(input); // Create a new VM with the reserved ip. Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureService(serviceName, locationName), "Create a Hosted Service"); Utilities.ExecuteAndLog(() => vmPowershellCmdlets.NewAzureDeployment(serviceName, "HelloWorld_SDK20.cspkg", "ServiceConfiguration.cscfg", "Staging", deploymentLabel, deploymentName, doNotStart: false, warning: false), "Create a PaaS deployment"); Utilities.ExecuteAndLog(() => { vmPowershellCmdlets.SetAzureReservedIPAssociation(reservedIpName, serviceName, DeploymentSlotType.Staging); }, "Create a new Azure Reserved IP Association"); VerifyReservedIpInUse(serviceName, input, deploymentName); Utilities.ExecuteAndLog(() => { vmPowershellCmdlets.RemoveAzureReservedIPAssociation(reservedIpName, serviceName, true, DeploymentSlotType.Staging); }, "Remove a new Azure Reserved IP Association"); VerifyReservedIpNotInUse(input); Utilities.ExecuteAndLog(() => { vmPowershellCmdlets.RemoveAzureDeployment(serviceName, "Staging", true); }, "Remove a new Azure Reserved IP Association"); } catch (Exception ex) { pass = false; Console.WriteLine(ex.ToString()); throw; } }