public async Task WhenGuestAttributesDisabledByPolicy_ThenOsPropertiesAreNull( [WindowsInstance] ResourceTask <InstanceLocator> testInstance, [Credential(Role = PredefinedRole.ComputeViewer)] ResourceTask <ICredential> credential) { var locator = await testInstance; var gceAdapter = new ComputeEngineAdapter(await credential); var inventoryService = new Mock <IInventoryService>(); inventoryService.Setup(s => s.GetInstanceInventoryAsync( It.IsAny <InstanceLocator>(), It.IsAny <CancellationToken>())) .Throws(new GoogleApiException("mock", "mock") { Error = new Apis.Requests.RequestError() { Code = 412 } }); var model = await InstancePropertiesInspectorModel.LoadAsync( await testInstance, gceAdapter, inventoryService.Object, CancellationToken.None); Assert.AreEqual(locator.Name, model.InstanceName); Assert.AreEqual("RUNNING", model.Status); Assert.IsFalse(model.IsOsInventoryInformationPopulated); Assert.IsNull(model.Architecture); Assert.IsNull(model.KernelVersion); Assert.IsNull(model.OperatingSystemFullName); Assert.IsNull(model.OperatingSystemVersion); }
public async Task WhenLoadAsyncCompletes_ThenPropertiesArePopulated( [WindowsInstance] ResourceTask <InstanceLocator> testInstance, [Credential(Role = PredefinedRole.ComputeViewer)] ResourceTask <ICredential> credential) { var locator = await testInstance; var gceAdapter = new ComputeEngineAdapter(await credential); var model = await InstancePropertiesInspectorModel.LoadAsync( await testInstance, gceAdapter, new InventoryService(gceAdapter), CancellationToken.None); Assert.AreEqual(locator.Name, model.InstanceName); Assert.IsNull(model.Hostname); Assert.AreEqual("RUNNING", model.Status); Assert.IsNotNull(model.InternalIp); Assert.IsNotNull(model.ExternalIp); Assert.IsNotNull(model.Licenses); Assert.AreEqual(model.IsOsInventoryInformationPopulated ? FeatureFlag.Enabled : FeatureFlag.Disabled, model.OsInventory); Assert.AreEqual(FeatureFlag.Disabled, model.Diagnostics); Assert.AreEqual(FeatureFlag.Enabled, model.GuestAttributes); Assert.IsNull(model.InternalDnsMode); Assert.IsFalse(model.IsSoleTenant); Assert.AreEqual(WindowsInstanceAttribute.DefaultMachineType, model.MachineType); Assert.IsNull(model.Tags); }
public void WhenFlagSetInCommonInstanceMetadataOnly_ThenInstanceCommonInstanceMetadataPrevails() { var project = new Project() { CommonInstanceMetadata = new Metadata() { Items = new[] { new Metadata.ItemsData() { Key = "VmDnsSetting", Value = "ZonalOnly" } } } }; var instance = new Instance { Metadata = new Metadata() }; var model = new InstancePropertiesInspectorModel(project, instance, null); Assert.AreEqual("ZonalOnly", model.InternalDnsMode); }
public void WhenFlagSetInInstanceMetadataOnly_ThenInstanceMetadataPrevails() { var project = new Project(); var instance = new Instance { Metadata = new Metadata() { Items = new[] { new Metadata.ItemsData() { Key = "VmDnsSetting", Value = "ZonalPreferred" }, new Metadata.ItemsData() { Key = "enable-oslogin-2fa", Value = "true" } } } }; var model = new InstancePropertiesInspectorModel(project, instance, null); Assert.AreEqual("ZonalPreferred", model.InternalDnsMode); Assert.AreEqual(FeatureFlag.Enabled, model.OsLogin2FA); }
public void WhenMetadataIsEmpty_ThenDefaultsAreApplied() { var project = new Project(); var instance = new Instance(); var model = new InstancePropertiesInspectorModel(project, instance, null); Assert.AreEqual(FeatureFlag.Disabled, model.OsInventory); Assert.AreEqual(FeatureFlag.Disabled, model.Diagnostics); Assert.AreEqual(FeatureFlag.Disabled, model.SerialPortAccess); Assert.AreEqual(FeatureFlag.Disabled, model.GuestAttributes); Assert.IsNull(model.InternalDnsMode); }
public void WhenFlagSetInCommonInstanceMetadataAndInstanceMetadata_ThenInstanceMetadataPrevails() { var project = new Project() { CommonInstanceMetadata = new Metadata() { Items = new[] { new Metadata.ItemsData() { Key = "VmDnsSetting", Value = "ZonalOnly" }, new Metadata.ItemsData() { Key = "enable-oslogin", Value = "true" }, new Metadata.ItemsData() { Key = "enable-oslogin-2fa", Value = "true" }, new Metadata.ItemsData() { Key = "block-project-ssh-keys", Value = "false" } } } }; var instance = new Instance { Metadata = new Metadata() { Items = new[] { new Metadata.ItemsData() { Key = "VmDnsSetting", Value = "ZonalPreferred" }, new Metadata.ItemsData() { Key = "enable-oslogin", Value = "false" }, new Metadata.ItemsData() { Key = "enable-oslogin-2fa", Value = "false" }, new Metadata.ItemsData() { Key = "block-project-ssh-keys", Value = "true" } } } }; var model = new InstancePropertiesInspectorModel(project, instance, null); Assert.AreEqual("ZonalPreferred", model.InternalDnsMode); Assert.AreEqual(FeatureFlag.Disabled, model.OsLogin); Assert.AreEqual(FeatureFlag.Disabled, model.OsLogin2FA); Assert.AreEqual(FeatureFlag.Enabled, model.BlockProjectSshKeys); }