package org.ovirt.engine.api.restapi.types;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import org.ovirt.engine.api.model.BootDevice;
import org.ovirt.engine.api.model.BootProtocol;
import org.ovirt.engine.api.model.ConfigurationType;
import org.ovirt.engine.api.model.CpuTune;
import org.ovirt.engine.api.model.DisplayDisconnectAction;
import org.ovirt.engine.api.model.DisplayType;
import org.ovirt.engine.api.model.Host;
import org.ovirt.engine.api.model.Hosts;
import org.ovirt.engine.api.model.InheritableBoolean;
import org.ovirt.engine.api.model.NicConfiguration;
import org.ovirt.engine.api.model.Payload;
import org.ovirt.engine.api.model.SerialNumberPolicy;
import org.ovirt.engine.api.model.Session;
import org.ovirt.engine.api.model.Sessions;
import org.ovirt.engine.api.model.TimeZone;
import org.ovirt.engine.api.model.Usb;
import org.ovirt.engine.api.model.UsbType;
import org.ovirt.engine.api.model.VcpuPin;
import org.ovirt.engine.api.model.VcpuPins;
import org.ovirt.engine.api.model.Vm;
import org.ovirt.engine.api.model.VmDeviceType;
import org.ovirt.engine.api.model.VmPlacementPolicy;
import org.ovirt.engine.api.model.VmType;
import org.ovirt.engine.api.restapi.utils.OsTypeMockUtils;
import org.ovirt.engine.core.common.businessentities.ArchitectureType;
import org.ovirt.engine.core.common.businessentities.GraphicsInfo;
import org.ovirt.engine.core.common.businessentities.GraphicsType;
import org.ovirt.engine.core.common.businessentities.OriginType;
import org.ovirt.engine.core.common.businessentities.OsType;
import org.ovirt.engine.core.common.businessentities.UsbPolicy;
import org.ovirt.engine.core.common.businessentities.VMStatus;
import org.ovirt.engine.core.common.businessentities.VmDynamic;
import org.ovirt.engine.core.common.businessentities.VmPayload;
import org.ovirt.engine.core.common.businessentities.VmStatic;
import org.ovirt.engine.core.common.businessentities.VmStatistics;
import org.ovirt.engine.core.common.config.ConfigValues;
import org.ovirt.engine.core.compat.Guid;
public class VmMapperTest extends
AbstractInvertibleMappingTest<Vm, VmStatic, org.ovirt.engine.core.common.businessentities.VM> {
public VmMapperTest() {
super(Vm.class, VmStatic.class, org.ovirt.engine.core.common.businessentities.VM.class);
}
@BeforeClass
public static void beforeClass() {
OsTypeMockUtils.mockOsTypes();
}
@Override
protected org.ovirt.engine.core.common.businessentities.VM getInverse(VmStatic to) {
VmStatistics statistics = new VmStatistics();
statistics.setCpuUser(10.0);
statistics.setCpuSys(20.0);
VmDynamic dynamic = new VmDynamic();
dynamic.setStatus(VMStatus.Up);
dynamic.setBootSequence(to.getDefaultBootSequence());
dynamic.getGraphicsInfos().put(GraphicsType.SPICE, new GraphicsInfo());
org.ovirt.engine.core.common.businessentities.VM ret =
new org.ovirt.engine.core.common.businessentities.VM(to,
dynamic,
statistics);
ret.setUsageMemPercent(50);
return ret;
}
@Override
protected Vm postPopulate(Vm from) {
from.setType(MappingTestHelper.shuffle(VmType.class));
from.setOrigin(OriginType.VMWARE.name().toLowerCase());
from.getDisplay().setType(MappingTestHelper.shuffle(DisplayType.class));
from.getPayloads().getPayloads().get(0).setType(MappingTestHelper.shuffle(VmDeviceType.class));
List<BootDevice> devices = from.getOs().getBoot().getDevices().getDevices();
for (int i = 0; i < devices.size(); i++) {
devices.set(i, MappingTestHelper.shuffle(BootDevice.class));
}
while (from.getCpu().getTopology().getSockets() == 0) {
from.getCpu().getTopology().setSockets(MappingTestHelper.rand(100));
}
while (from.getCpu().getTopology().getCores() == 0) {
from.getCpu().getTopology().setCores(MappingTestHelper.rand(100));
}
CpuTune cpuTune = new CpuTune();
VcpuPin pin = new VcpuPin();
pin.setVcpu(33);
pin.setCpuSet("1-4,6");
VcpuPins pins = new VcpuPins();
pins.getVcpuPins().add(pin);
cpuTune.setVcpuPins(pins);
from.getCpu().setCpuTune(cpuTune);
from.setTimeZone(new TimeZone());
from.getTimeZone().setName("Australia/Darwin");
// VmPlacement - multiple hosts
from.setPlacementPolicy(createPlacementPolicy(Guid.EVERYONE, Guid.SYSTEM));
// Guest Nics configurations
for (NicConfiguration guestNic : from.getInitialization().getNicConfigurations().getNicConfigurations()) {
guestNic.setBootProtocol(MappingTestHelper.shuffle(BootProtocol.class, BootProtocol.AUTOCONF));
}
from.getDisplay().setType(DisplayType.SPICE);
from.getSerialNumber().setPolicy(SerialNumberPolicy.CUSTOM);
from.getDisplay().setFileTransferEnabled(true);
from.getDisplay().setCopyPasteEnabled(true);
from.getMigration().setAutoConverge(InheritableBoolean.TRUE);
from.getMigration().setCompressed(InheritableBoolean.TRUE);
from.getDisplay().setDisconnectAction(DisplayDisconnectAction.LOCK_SCREEN.toString());
return from;
}
private VmPlacementPolicy createPlacementPolicy(Guid... guids) {
VmPlacementPolicy placementPolicy = new VmPlacementPolicy();
Hosts hostsList = new Hosts();
for (Guid guid : guids) {
Host newHost = new Host();
newHost.setId(guid.toString());
hostsList.getHosts().add(newHost);
}
placementPolicy.setHosts(hostsList);
return placementPolicy;
}
@Override
protected void verify(Vm model, Vm transform) {
assertNotNull(transform);
assertEquals(model.getName(), transform.getName());
assertEquals(model.getId(), transform.getId());
assertEquals(model.getDescription(), transform.getDescription());
assertEquals(model.getComment(), transform.getComment());
assertEquals(model.getType(), transform.getType());
assertEquals(model.getOrigin(), transform.getOrigin());
assertTrue(Math.abs(model.getMemory() - transform.getMemory()) <= (1024 * 1024));
assertNotNull(transform.getTemplate());
assertEquals(model.getTemplate().getId(), transform.getTemplate().getId());
assertNotNull(transform.getCluster());
assertNotNull(transform.getCpu());
assertNotNull(transform.getCpu().getTopology());
assertTrue(Math.abs(model.getCpu().getTopology().getCores() -
transform.getCpu().getTopology().getCores()) < model.getCpu().getTopology().getSockets());
assertEquals(model.getCpu().getTopology().getSockets(),
transform.getCpu().getTopology().getSockets());
assertEquals(model.getBios().getBootMenu().isEnabled(), transform.getBios().getBootMenu().isEnabled());
assertNotNull(transform.getOs());
assertTrue(transform.getOs().isSetBoot());
assertEquals(model.getOs().getBoot().getDevices().getDevices(),
transform.getOs().getBoot().getDevices().getDevices());
assertEquals(model.getOs().getKernel(), transform.getOs().getKernel());
assertEquals(model.getOs().getInitrd(), transform.getOs().getInitrd());
assertEquals(model.getOs().getCmdline(), transform.getOs().getCmdline());
assertTrue(transform.isSetDisplay());
assertEquals(model.isSetDisplay(), transform.isSetDisplay());
assertEquals(model.getDisplay().getType(), transform.getDisplay().getType());
assertEquals(model.getDisplay().getMonitors(), transform.getDisplay().getMonitors());
assertEquals(model.getDisplay().isSingleQxlPci(), transform.getDisplay().isSingleQxlPci());
assertEquals(model.getDisplay().isAllowOverride(), transform.getDisplay().isAllowOverride());
// few hosts in Placement Policy, but unordered
List<Host> modelHostsList = model.getPlacementPolicy().getHosts().getHosts();
List<Host> trnsfHostsList = transform.getPlacementPolicy().getHosts().getHosts();
assertHostsListMatch(modelHostsList, trnsfHostsList);
assertTrue(Math.abs(model.getMemoryPolicy().getGuaranteed() - transform.getMemoryPolicy().getGuaranteed()) <= (1024 * 1024));
assertEquals(model.getTimeZone().getName(), transform.getTimeZone().getName());
assertEquals(model.getDisplay().isSmartcardEnabled(), transform.getDisplay().isSmartcardEnabled());
assertEquals(model.getDisplay().getKeyboardLayout(), transform.getDisplay().getKeyboardLayout());
assertEquals(model.isDeleteProtected(), transform.isDeleteProtected());
assertEquals(model.isTunnelMigration(), transform.isTunnelMigration());
assertEquals(model.getMigrationDowntime(), transform.getMigrationDowntime());
assertEquals(model.getSerialNumber().getPolicy(), transform.getSerialNumber().getPolicy());
assertEquals(model.getSerialNumber().getValue(), transform.getSerialNumber().getValue());
assertEquals(model.getDisplay().isFileTransferEnabled(), transform.getDisplay().isFileTransferEnabled());
assertEquals(model.getDisplay().isCopyPasteEnabled(), transform.getDisplay().isCopyPasteEnabled());
assertEquals(model.isStartPaused(), transform.isStartPaused());
assertEquals(model.getMigration().getAutoConverge(), transform.getMigration().getAutoConverge());
assertEquals(model.getMigration().getCompressed(), transform.getMigration().getCompressed());
assertEquals(model.getDisplay().getDisconnectAction(), transform.getDisplay().getDisconnectAction());
}
private void assertHostsListMatch(List<Host> modelHostsList, List<Host> trnsfHostsList) {
for (Host host : modelHostsList){
boolean foundInTransformation = false;
for (Host otherHost : trnsfHostsList){
if (host.getId().equals(otherHost.getId())){
foundInTransformation = true;
break;
}
}
assertTrue("Umatching dedicated host in Placement Policy", foundInTransformation);
}
}
@Test
public void testVmPayloadMapToPaylod() {
VmPayload vmPayload = new VmPayload();
vmPayload.setDeviceType(org.ovirt.engine.core.common.utils.VmDeviceType.CDROM);
vmPayload.setVolumeId("CD-VOL");
Payload payload = VmMapper.map(vmPayload, null);
assertEquals(vmPayload.getDeviceType().name(), payload.getType().name());
assertEquals(vmPayload.getVolumeId(), payload.getVolumeId());
}
@Test
public void testPayloadMapToVmPaylod() {
Payload payload = new Payload();
payload.setType(VmDeviceType.CDROM);
payload.setVolumeId("CD-VOL");
VmPayload vmPayload = VmMapper.map(payload, null);
assertEquals(payload.getType().name(), vmPayload.getDeviceType().name());
assertEquals(payload.getVolumeId(), vmPayload.getVolumeId());
}
@Test
public void testUpdateHostPinningPolicy() {
final VmStatic vmTemplate = new VmStatic();
vmTemplate.setDedicatedVmForVdsList(Guid.newGuid());
final Vm vm = new Vm();
vm.setPlacementPolicy(createPlacementPolicy(Guid.newGuid(), Guid.newGuid()));
final VmStatic mappedVm = VmMapper.map(vm, vmTemplate);
final List<Guid> hosts = new ArrayList<>();
for (Host host : vm.getPlacementPolicy().getHosts().getHosts()){
hosts.add(Guid.createGuidFromString(host.getId()));
}
assertEquals(new HashSet(hosts), new HashSet(mappedVm.getDedicatedVmForVdsList()));
}
@Test
public void ovfConfigurationMap() {
String ovfConfig = "config";
ConfigurationType configurationType = ConfigurationType.OVF;
Vm model = new Vm();
VmMapper.map(ovfConfig, ConfigurationType.OVF, model);
assertNotNull(model.getInitialization());
assertNotNull(model.getInitialization().getConfiguration());
assertEquals(ovfConfig, model.getInitialization().getConfiguration().getData());
assertEquals(model.getInitialization().getConfiguration().getType(),
configurationType);
}
@Test
public void testGuestFQDN() {
org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM();
VmDynamic vmDynamic = new VmDynamic();
vmDynamic.setStatus(VMStatus.Up);
vmDynamic.setFqdn("localhost.localdomain");
vm.setDynamicData(vmDynamic);
Vm map = VmMapper.map(vm, (Vm) null);
assertNotNull(map.getFqdn());
assertEquals("localhost.localdomain", map.getFqdn());
}
@Test
public void testGuestTimezone() {
org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM();
VmDynamic vmDynamic = new VmDynamic();
vmDynamic.setStatus(VMStatus.Up);
vmDynamic.setGuestOsTimezoneName("This is not a timezone");
vmDynamic.setGuestOsTimezoneOffset(-60);
vm.setDynamicData(vmDynamic);
Vm map = VmMapper.map(vm, (Vm) null);
assertNotNull(map.getGuestTimeZone());
assertEquals("-01:00", map.getGuestTimeZone().getUtcOffset());
assertEquals("This is not a timezone", map.getGuestTimeZone().getName());
}
@Test
public void testGuestOs() {
org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM();
VmDynamic vmDynamic = new VmDynamic();
vmDynamic.setStatus(VMStatus.Up);
vmDynamic.setGuestOsType(OsType.Linux);
vmDynamic.setGuestOsCodename("Santiago");
vmDynamic.setGuestOsDistribution("Red Hat Enterprise Linux Server");
vmDynamic.setGuestOsVersion("6.5");
vmDynamic.setGuestOsArch(ArchitectureType.x86_64);
vmDynamic.setGuestOsKernelVersion("2.6.32-431.el6.x86_64");
vm.setDynamicData(vmDynamic);
Vm map = VmMapper.map(vm, (Vm) null);
assertNotNull(map.getGuestOperatingSystem());
assertEquals("Linux", map.getGuestOperatingSystem().getFamily());
assertEquals("Santiago", map.getGuestOperatingSystem().getCodename());
assertEquals("Red Hat Enterprise Linux Server", map.getGuestOperatingSystem().getDistribution());
assertEquals("6.5", map.getGuestOperatingSystem().getVersion().getFullVersion());
assertNotNull(map.getGuestOperatingSystem().getVersion().getMajor());
assertEquals(6, (long) map.getGuestOperatingSystem().getVersion().getMajor());
assertNotNull(map.getGuestOperatingSystem().getVersion().getMinor());
assertEquals(5, (long) map.getGuestOperatingSystem().getVersion().getMinor());
assertNull(map.getGuestOperatingSystem().getVersion().getBuild());
assertNull(map.getGuestOperatingSystem().getVersion().getRevision());
assertEquals("x86_64", map.getGuestOperatingSystem().getArchitecture());
assertEquals("2.6.32-431.el6.x86_64", map.getGuestOperatingSystem().getKernel().getVersion().getFullVersion());
assertEquals(2, (long)map.getGuestOperatingSystem().getKernel().getVersion().getMajor());
assertEquals(6, (long)map.getGuestOperatingSystem().getKernel().getVersion().getMinor());
assertEquals(32, (long)map.getGuestOperatingSystem().getKernel().getVersion().getBuild());
assertEquals(431, (long)map.getGuestOperatingSystem().getKernel().getVersion().getRevision());
}
@Test
public void testGuestOs2() {
org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM();
VmDynamic vmDynamic = new VmDynamic();
vmDynamic.setStatus(VMStatus.Up);
vmDynamic.setGuestOsType(OsType.Windows);
vmDynamic.setGuestOsCodename("");
vmDynamic.setGuestOsDistribution("");
vmDynamic.setGuestOsVersion("6.2.4800");
vmDynamic.setGuestOsArch(ArchitectureType.x86_64);
vmDynamic.setGuestOsKernelVersion("");
vm.setDynamicData(vmDynamic);
Vm map = VmMapper.map(vm, (Vm) null);
assertNotNull(map.getGuestOperatingSystem());
assertEquals("Windows", map.getGuestOperatingSystem().getFamily());
assertEquals("", map.getGuestOperatingSystem().getCodename());
assertEquals("", map.getGuestOperatingSystem().getDistribution());
assertEquals("6.2.4800", map.getGuestOperatingSystem().getVersion().getFullVersion());
assertNotNull(map.getGuestOperatingSystem().getVersion().getMajor());
assertEquals(6, (long) map.getGuestOperatingSystem().getVersion().getMajor());
assertNotNull(map.getGuestOperatingSystem().getVersion().getMinor());
assertEquals(2, (long) map.getGuestOperatingSystem().getVersion().getMinor());
assertNotNull(map.getGuestOperatingSystem().getVersion().getBuild());
assertEquals(4800, (long) map.getGuestOperatingSystem().getVersion().getBuild());
assertNull(map.getGuestOperatingSystem().getVersion().getRevision());
assertEquals("x86_64", map.getGuestOperatingSystem().getArchitecture());
assertNull(map.getGuestOperatingSystem().getKernel());
}
@Test
public void testDisplayPort() {
org.ovirt.engine.core.common.businessentities.VM entity =
new org.ovirt.engine.core.common.businessentities.VM();
entity.setStatus(VMStatus.Up);
entity.getGraphicsInfos().put(GraphicsType.SPICE, new GraphicsInfo());
entity.getGraphicsInfos().get(GraphicsType.SPICE)
.setPort(5900)
.setTlsPort(9999);
Vm model = VmMapper.map(entity, (Vm) null);
entity.getGraphicsInfos().put(GraphicsType.SPICE, new GraphicsInfo());
entity.getGraphicsInfos().get(GraphicsType.SPICE)
.setPort(null)
.setTlsPort(null);
model = VmMapper.map(entity, (Vm) null);
assertNull(model.getDisplay().getPort());
assertNull(model.getDisplay().getSecurePort());
}
private static final String GLOBAL_SPICE_PROXY = "http://host:12345";
private static final String CLUSTER_SPICE_PROXY = "http://host2:54321";
private static final String POOL_SPICE_PROXY = "http://host3:9999";
@Test
public void testGlobalSpiceProxy() {
org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM();
mcr.mockConfigValue(ConfigValues.SpiceProxyDefault, GLOBAL_SPICE_PROXY);
Vm model = VmMapper.map(entity, (Vm) null);
assertEquals(GLOBAL_SPICE_PROXY, model.getDisplay().getProxy());
}
@Test
public void testClusterSpiceProxy() {
org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM();
entity.setClusterSpiceProxy(CLUSTER_SPICE_PROXY);
Vm model = VmMapper.map(entity, (Vm) null);
assertEquals(CLUSTER_SPICE_PROXY, model.getDisplay().getProxy());
}
@Test
public void testPoolSpiceProxy() {
org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM();
entity.setVmPoolSpiceProxy(POOL_SPICE_PROXY);
Vm model = VmMapper.map(entity, (Vm) null);
assertEquals(POOL_SPICE_PROXY, model.getDisplay().getProxy());
}
@Test
public void testMapHostId() {
org.ovirt.engine.core.common.businessentities.VM entity =
new org.ovirt.engine.core.common.businessentities.VM();
entity.setStatus(VMStatus.Up);
Guid guid = Guid.newGuid();
entity.setRunOnVds(guid);
Vm model = VmMapper.map(entity, (Vm) null);
assertEquals(guid.toString(), model.getHost().getId());
}
@Test
public void testMapConfigurationType() {
org.ovirt.engine.core.common.businessentities.ConfigurationType configurationTypeBll = VmMapper.map(ConfigurationType.OVF, null);
assertEquals(org.ovirt.engine.core.common.businessentities.ConfigurationType.OVF, configurationTypeBll);
ConfigurationType configurationTypeApi = VmMapper.map(org.ovirt.engine.core.common.businessentities.ConfigurationType.OVF, null);
assertEquals(ConfigurationType.OVF, configurationTypeApi);
}
@Test
public void stringToCpuTune() {
CpuTune cpuTune = VmMapper.stringToCpuTune("0#0");
assertNotNull(cpuTune);
assertNotNull(cpuTune.getVcpuPins());
assertEquals(1, cpuTune.getVcpuPins().getVcpuPins().size());
assertEquals(0, (int) cpuTune.getVcpuPins().getVcpuPins().get(0).getVcpu());
assertEquals("0", cpuTune.getVcpuPins().getVcpuPins().get(0).getCpuSet());
}
@Test(expected = IllegalArgumentException.class)
public void stringToVCpupinBadCpuNumber() {
VmMapper.stringToVCpupin("XXX#1-4");
}
@Test(expected = IllegalArgumentException.class)
public void stringToVCpupinWrongFormat() {
VmMapper.stringToVCpupin("X#X#X");
}
@Test
public void stringToVCpupinIntervalsList() {
VcpuPin pin = VmMapper.stringToVCpupin("1#1-4,6");
assertEquals(1, (int) pin.getVcpu());
assertEquals("1-4,6", pin.getCpuSet());
}
@Test
public void stringToVCpupinSimple() {
VcpuPin pin = VmMapper.stringToVCpupin("1#1");
assertEquals(1, (int) pin.getVcpu());
assertEquals("1", pin.getCpuSet());
pin = VmMapper.stringToVCpupin("1#10");
assertEquals(1, (int) pin.getVcpu());
assertEquals("10", pin.getCpuSet());
pin = VmMapper.stringToVCpupin("1#10,11,12");
assertEquals(1, (int) pin.getVcpu());
assertEquals("10,11,12", pin.getCpuSet());
pin = VmMapper.stringToVCpupin("1#10-12,16");
assertEquals(1, (int) pin.getVcpu());
assertEquals("10-12,16", pin.getCpuSet());
}
@Test
public void cpuTuneToString() {
for (String sample : new String[] { "0#0", "0#0_1#1", "0#0_1#1,2,3,6" }) {
assertEquals(sample, VmMapper.cpuTuneToString(VmMapper.stringToCpuTune(sample)));
}
}
@Test
public void getUsbPolicyNullUsb() {
Usb usb = null;
assertEquals(UsbPolicy.DISABLED, VmMapper.getUsbPolicyOnCreate(usb));
}
@Test
public void getUsbPolicyIsSetDisabled() {
Usb usb = new Usb();
assertEquals(UsbPolicy.DISABLED, VmMapper.getUsbPolicyOnCreate(usb));
}
@Test
public void getUsbPolicySetDisabled() {
Usb usb = new Usb();
usb.setEnabled(false);
assertEquals(UsbPolicy.DISABLED, VmMapper.getUsbPolicyOnCreate(usb));
}
@Test
public void getUsbPolicyUsbTypeNative() {
Usb usb = new Usb();
usb.setEnabled(true);
usb.setType(UsbType.NATIVE);
assertEquals(UsbPolicy.ENABLED_NATIVE, VmMapper.getUsbPolicyOnCreate(usb));
}
@Test
public void getUsbPolicyOnUpdateCurrentlyDisabledGotNullUsb() {
Usb usb = null;
UsbPolicy currentPolicy = UsbPolicy.DISABLED;
assertEquals(VmMapper.getUsbPolicyOnUpdate(usb, currentPolicy), currentPolicy);
}
@Test
public void getUsbPolicyOnUpdateCurrentlyNativeGotNullUsb() {
Usb usb = null;
UsbPolicy currentPolicy = UsbPolicy.ENABLED_NATIVE;
assertEquals(VmMapper.getUsbPolicyOnUpdate(usb, currentPolicy), currentPolicy);
}
@Test
public void getUsbPolicyOnUpdateCurrentlyDisabledGotEnabledNotSetPolicyNotSetUsb() {
Usb usb = new Usb();
UsbPolicy currentPolicy = UsbPolicy.DISABLED;
assertEquals(VmMapper.getUsbPolicyOnUpdate(usb, currentPolicy), currentPolicy);
}
@Test
public void getUsbPolicyOnUpdateCurrentlyNativeGotEnabledNotSetPolicyNotSetUsb() {
Usb usb = new Usb();
UsbPolicy currentPolicy = UsbPolicy.ENABLED_NATIVE;
assertEquals(VmMapper.getUsbPolicyOnUpdate(usb, currentPolicy), currentPolicy);
}
@Test
public void getUsbPolicyOnUpdateCurrentlyDisabledGotEnabledNotSetNativePolicyUsb() {
Usb usb = new Usb();
usb.setType(UsbType.NATIVE);
assertEquals(UsbPolicy.DISABLED, VmMapper.getUsbPolicyOnUpdate(usb, UsbPolicy.DISABLED));
}
@Test
public void getUsbPolicyOnUpdateCurrentlyNativeGotEnabledNotSetNativePolicyUsb() {
Usb usb = new Usb();
usb.setType(UsbType.NATIVE);
assertEquals(UsbPolicy.ENABLED_NATIVE, VmMapper.getUsbPolicyOnUpdate(usb, UsbPolicy.ENABLED_NATIVE));
}
@Test
public void getUsbPolicyOnUpdateCurrentlyDisabledGotDisabledNativePolicyUsb() {
Usb usb = new Usb();
usb.setEnabled(false);
usb.setType(UsbType.NATIVE);
assertEquals(UsbPolicy.DISABLED, VmMapper.getUsbPolicyOnUpdate(usb, UsbPolicy.DISABLED));
}
@Test
public void getUsbPolicyOnUpdateCurrentlyNativeGotEnabledNativePolicyUsb() {
Usb usb = new Usb();
usb.setEnabled(true);
usb.setType(UsbType.NATIVE);
assertEquals(UsbPolicy.ENABLED_NATIVE, VmMapper.getUsbPolicyOnUpdate(usb, UsbPolicy.ENABLED_NATIVE));
}
@Test
public void getUsbPolicyOnUpdateCurrentlyDisabledGotEnabledNativePolicyUsb() {
Usb usb = new Usb();
usb.setEnabled(true);
usb.setType(UsbType.NATIVE);
assertEquals(UsbPolicy.ENABLED_NATIVE, VmMapper.getUsbPolicyOnUpdate(usb, UsbPolicy.DISABLED));
}
@Test
public void testMapSessions() {
org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM();
VmDynamic vmDynamic = new VmDynamic();
vmDynamic.setConsoleCurrentUserName("admin");
vmDynamic.setClientIp("1.1.1.1");
vmDynamic.setGuestCurrentUserName("Ori");
vm.setDynamicData(vmDynamic);
Sessions sessions = VmMapper.map(vm, new Sessions());
assertNotNull(sessions);
assertEquals(2, sessions.getSessions().size());
Session consoleSession =
sessions.getSessions().get(0).getUser().getUserName().equals("admin") ? sessions.getSessions().get(0)
: sessions.getSessions().get(1);
Session guestSession =
sessions.getSessions().get(0).getUser().getUserName().equals("Ori") ? sessions.getSessions().get(0)
: sessions.getSessions().get(1);
assertEquals("admin", consoleSession.getUser().getUserName());
assertEquals("1.1.1.1", consoleSession.getIp().getAddress());
assertTrue(consoleSession.isConsoleUser());
assertEquals("Ori", guestSession.getUser().getUserName());
}
}