public void ValidateAvailableExtesnion(VirtualMachineExtensionImageContext extension) { Utilities.PrintContext(extension); Assert.IsFalse(string.IsNullOrEmpty(extension.ExtensionName)); Assert.IsFalse(string.IsNullOrEmpty(extension.Publisher)); Assert.IsFalse(string.IsNullOrEmpty(extension.Version)); if (!extension.IsJsonExtension) { switch (extension.ExtensionName) { case "DiagnosticsAgent": { Assert.IsFalse(string.IsNullOrEmpty(extension.PublicConfigurationSchema)); break; } case "VMAccessAgent": { Assert.IsFalse(string.IsNullOrEmpty(extension.PublicConfigurationSchema)); Assert.IsFalse(string.IsNullOrEmpty(extension.PrivateConfigurationSchema)); break; } } } }
public void UpdateVMWithExtensionTest() { try { var availableExtensions = vmPowershellCmdlets.GetAzureVMAvailableExtension(); if (availableExtensions.Count > 0) { vmAccessExtension = availableExtensions.First(extension => extension.ExtensionName.Equals(VmAccessAgentExtensionName)); //Deploy a new IaaS VM with Extension using Add-AzureVMExtension var vm = CreateIaaSVMObject(vmName); vmPowershellCmdlets.NewAzureVM(serviceName, new[] { vm }, locationName); vm = GetAzureVM(vmName, serviceName); //Set extension without version vm = vmPowershellCmdlets.SetAzureVMExtension(vm, vmAccessExtension.ExtensionName, vmAccessExtension.Publisher, null, referenceName, publicConfiguration, privateConfiguration); vmPowershellCmdlets.UpdateAzureVM(vmName, serviceName, vm); ValidateVMAccessExtension(vmName, serviceName, true); vmPowershellCmdlets.RemoveAzureVMExtension(GetAzureVM(vmName, serviceName), vmAccessExtension.ExtensionName, vmAccessExtension.Publisher); pass = true; } else { Console.WriteLine("There are no Azure VM extension available"); } pass = true; } catch (Exception e) { Console.WriteLine(e.ToString()); throw; } }
public void AddRoleWithExtensionTest() { try { var availableExtensions = vmPowershellCmdlets.GetAzureVMAvailableExtension(); vmAccessExtension = availableExtensions.First(extension => extension.ExtensionName.Equals(VmAccessAgentExtensionName)); //Create an deployment var vm1 = CreateIaaSVMObject(vmName); vmPowershellCmdlets.NewAzureVM(serviceName, new[] { vm1 }, locationName); //Add a role with extension enabled. string referenceName = Utilities.GetUniqueShortName(referenceNamePrefix); string vmName2 = Utilities.GetUniqueShortName(vmNamePrefix); var vm2 = CreateIaaSVMObject(vmName2); vm2 = vmPowershellCmdlets.SetAzureVMExtension(vm2, vmAccessExtension.ExtensionName, vmAccessExtension.Publisher, version, referenceName, publicConfiguration, privateConfiguration, disable: false, forceUpdate: true); vmPowershellCmdlets.NewAzureVM(serviceName, new[] { vm2 }); ValidateVMAccessExtension(vmName2, serviceName, true); pass = true; } catch (Exception e) { Console.WriteLine(e.ToString()); throw; } }
private void GetCustomScriptExtensionVersion() { Utilities.PrintHeader("Listing the available VM extensions"); var extensionsInfo = vmPowershellCmdlets.GetAzureVMAvailableExtension(ConstCustomScriptExtensionName, ConstCustomScriptExtensionPublisher, true); customScriptExtension = extensionsInfo.OrderBy(c => c.Version).LastOrDefault(); Console.WriteLine("Using CustomScript Extension Version: {0}", customScriptExtension.Version); Utilities.PrintFooter("Listing the available VM extensions"); }
public void UpdateVMWithExtensionTest() { try { var availableExtensions = vmPowershellCmdlets.GetAzureVMAvailableExtension(); if (availableExtensions.Count > 0) { vmAccessExtension = availableExtensions.First(extension => extension.ExtensionName.Equals(VmAccessAgentExtensionName)); // Deploy a new IaaS VM with Extension using Add-AzureVMExtension var vm = CreateIaaSVMObject(vmName); vmPowershellCmdlets.NewAzureVM(serviceName, new[] { vm }, locationName); vm = GetAzureVM(vmName, serviceName); vm = vmPowershellCmdlets.SetAzureVMExtension(vm, vmAccessExtension.ExtensionName, vmAccessExtension.Publisher, version, referenceName, publicConfiguration, privateConfiguration, "pubkey1", "prikey1", forceUpdate: true); vmPowershellCmdlets.UpdateAzureVM(vmName, serviceName, vm); var updatedVM = vmPowershellCmdlets.GetAzureVM(vmName, serviceName); var updatedExt = updatedVM.VM.ResourceExtensionReferences.First( e => e.Name == vmAccessExtension.ExtensionName && e.Publisher == vmAccessExtension.Publisher && e.Version == version); Assert.IsTrue(updatedExt.ResourceExtensionParameterValues.Any(r => r.Type == "Public" && r.Key == "pubkey1")); ValidateVMAccessExtension(vmName, serviceName, true); vmPowershellCmdlets.RemoveAzureVMExtension(GetAzureVM(vmName, serviceName), vmAccessExtension.ExtensionName, vmAccessExtension.Publisher); pass = true; } else { Console.WriteLine("There are no Azure VM extension available"); } pass = true; } catch (Exception e) { Console.WriteLine(e.ToString()); throw; } }
public void AzureVMExtensionTest() { try { // Get the available VM Extension var availableExtensions = vmPowershellCmdlets.GetAzureVMAvailableExtension(); vmAccessExtension = availableExtensions.First(extension => extension.ExtensionName.Equals(VmAccessAgentExtensionName)); if (availableExtensions.Count > 0) { // Deploy a new IaaS VM with Extension using Add-AzureVMExtension Console.WriteLine("Create a new VM with VM access extension."); var vm = CreateIaaSVMObject(vmName); vm = vmPowershellCmdlets.SetAzureVMExtension(vm, vmAccessExtension.ExtensionName, vmAccessExtension.Publisher, version, referenceName, publicConfigPath: publicConfigPath, privateConfigPath:privateConfigPath, disable: false, forceUpdate: true); vmPowershellCmdlets.NewAzureVM(serviceName, new[] {vm}, locationName); Console.WriteLine("Created a new VM {0} with VM access extension. Service Name : {1}",vmName,serviceName); ValidateVMAccessExtension(vmName, serviceName, true); // Verify that the extension actually work VerifyRDPExtension(vmName, serviceName); // Disbale extesnion DisableExtension(vmName, serviceName); ValidateVMAccessExtension(vmName, serviceName, false); pass = true; } else { Console.WriteLine("There are no Azure VM extension available"); } } catch (Exception e) { Console.WriteLine(e.ToString()); throw; } }
private void GetCustomScriptExtensionVersion() { Utilities.PrintHeader("Listing the available VM extensions"); var extensionsInfo = vmPowershellCmdlets.GetAzureVMAvailableExtension(ConstCustomScriptExtensionName, ConstCustomScriptExtensionPublisher, true); customScriptExtension = extensionsInfo.Where(c => c.Version.Equals("1.1")).FirstOrDefault(); Match m = Regex.Match(customScriptExtension.Version, @"((\.).*?){2}"); if (m.Success) { customScriptExtension.Version = customScriptExtension.Version.Substring(0, m.Groups[2].Captures[1].Index); } Console.WriteLine("Using CustomScript Extension Version: {0}", customScriptExtension.Version); Utilities.PrintFooter("Listing the available VM extensions"); }
public void ValidateAvailableExtesnion(VirtualMachineExtensionImageContext extension) { Utilities.PrintContext(extension); Assert.IsFalse(string.IsNullOrEmpty(extension.ExtensionName)); Assert.IsFalse(string.IsNullOrEmpty(extension.Publisher)); Assert.IsFalse(string.IsNullOrEmpty(extension.Version)); // Intentionally commented as the cmdlet prod cmdlet doesnt have these properties and dogfood returns errors // now //Assert.IsTrue(extension.ReplicationCompleted); //Assert.IsTrue(Utilities.validateHttpUri(extension.PrivacyUri.ToString())); //Assert.IsTrue(Utilities.validateHttpUri(extension.PrivacyUri.ToString())); //Assert.IsTrue(Utilities.validateHttpUri(extension.Eula.ToString())); switch (extension.ExtensionName) { //case "BGInfo": // { // Assert.IsTrue(extension.ReplicationCompleted); // break; // } case "DiagnosticsAgent": { Assert.IsFalse(string.IsNullOrEmpty(extension.PublicConfigurationSchema)); break; } case "VMAccessAgent": { Assert.IsFalse(string.IsNullOrEmpty(extension.PublicConfigurationSchema)); Assert.IsFalse(string.IsNullOrEmpty(extension.PrivateConfigurationSchema)); //Assert.IsFalse(string.IsNullOrEmpty(extension.SampleConfig)); break; } } }