private RunVmOnceParams createRunVmOnceParams(Vm vm, boolean volatileRun) { VM entity = getEntity(entityType, QueryType.GetVmByVmId, new IdQueryParameters(guid), id, true); RunVmOnceParams params = map(vm, map(map(entity, new Vm()), new RunVmOnceParams(guid))); if (vm.isSetPlacementPolicy()) { Set<Guid> hostsGuidsSet = parent.validateAndUpdateHostsInPlacementPolicy(vm.getPlacementPolicy()); if (hostsGuidsSet.size() > 0) { // take the arbitrary first host for run destination params.setDestinationVdsId(hostsGuidsSet.iterator().next()); } } if (vm.isSetInitialization()) { if (vm.getInitialization().isSetCloudInit()) { params.setInitializationType(InitializationType.CloudInit); } params.setVmInit(InitializationMapper.map(vm.getInitialization(), entity.getVmInit())); } params.setVolatileRun(volatileRun); return params; }
@Test public void testUpdateVmPolicySingleHostId() { setUpUdpateVm(); setUriInfo(setUpActionExpectations(ActionType.UpdateVm, VmManagementParametersBase.class, new String[] {}, new Object[] {}, true, true)); Vm model = getModel(0); model.setPlacementPolicy(new VmPlacementPolicy()); model.getPlacementPolicy().setHosts(new Hosts()); model.getPlacementPolicy().getHosts().getHosts().add(new Host()); model.getPlacementPolicy().getHosts().getHosts().get(0).setId(GUIDS[1].toString()); verifyModel(resource.update(model), 0); }
@Test public void testUpdateVmPolicySingleHostName() { setUpUdpateVm(); setUpGetHostByNameExpectations(1); setUriInfo(setUpActionExpectations(ActionType.UpdateVm, VmManagementParametersBase.class, new String[] {}, new Object[] {}, true, true)); Vm model = getModel(0); model.setPlacementPolicy(new VmPlacementPolicy()); model.getPlacementPolicy().setHosts(new Hosts()); model.getPlacementPolicy().getHosts().getHosts().add(new Host()); model.getPlacementPolicy().getHosts().getHosts().get(0).setName(NAMES[1]); verifyModel(resource.update(model), 0); }
@Test public void testAddWithPlacementPolicySingleHostName() { setUpAddVm(); setUpGetHostByNameExpectations(1); setUpGetConsoleExpectations(1); setUpCreationExpectations(ActionType.AddVm, AddVmParameters.class, new String[]{"StorageDomainId"}, new Object[]{GUIDS[0]}, true, true, GUIDS[2], QueryType.GetVmByVmId, IdQueryParameters.class, new String[]{"Id"}, new Object[]{GUIDS[2]}, getEntity(2)); Vm model = createModel(null); model.setPlacementPolicy(new VmPlacementPolicy()); model.getPlacementPolicy().setHosts(new Hosts()); model.getPlacementPolicy().getHosts().getHosts().add(new Host()); model.getPlacementPolicy().getHosts().getHosts().get(0).setName(NAMES[1]); Response response = collection.add(model); assertEquals(201, response.getStatus()); assertTrue(response.getEntity() instanceof Vm); verifyModel((Vm) response.getEntity(), 2); }
@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 testAddWithPlacementPolicySingleHostId() { setUpAddVm(); setUpGetConsoleExpectations(1); setUpCreationExpectations(ActionType.AddVm, AddVmParameters.class, new String[]{"StorageDomainId"}, new Object[]{GUIDS[0]}, true, true, GUIDS[2], QueryType.GetVmByVmId, IdQueryParameters.class, new String[]{"Id"}, new Object[]{GUIDS[2]}, getEntity(2)); Vm model = createModel(null); model.setPlacementPolicy(new VmPlacementPolicy()); model.getPlacementPolicy().setHosts(new Hosts()); model.getPlacementPolicy().getHosts().getHosts().add(new Host()); model.getPlacementPolicy().getHosts().getHosts().get(0).setId(GUIDS[1].toString()); Response response = collection.add(model); assertEquals(201, response.getStatus()); assertTrue(response.getEntity() instanceof Vm); verifyModel((Vm) response.getEntity(), 2); }
@Test public void testAddWithPlacementPolicyHostsIds() { setUpAddVm(); setUpCreationExpectations(ActionType.AddVm, AddVmParameters.class, new String[]{"StorageDomainId"}, new Object[]{GUIDS[0]}, true, true, GUIDS[2], QueryType.GetVmByVmId, IdQueryParameters.class, new String[]{"Id"}, new Object[]{GUIDS[2]}, getEntity(2)); Vm model = createModel(null); model.setPlacementPolicy(new VmPlacementPolicy()); Hosts hosts = new Hosts(); for (int i =0; i < GUIDS.length; i++){ Host newHost = new Host(); newHost.setId(GUIDS[i].toString()); hosts.getHosts().add(newHost); } model.getPlacementPolicy().setHosts(hosts); Response response = collection.add(model); assertEquals(201, response.getStatus()); assertTrue(response.getEntity() instanceof Vm); verifyModel((Vm) response.getEntity(), 2); }
hosts.getHosts().add(newHost); model.getPlacementPolicy().setHosts(hosts); Response response = collection.add(model); assertEquals(201, response.getStatus());
parent.validateAndUpdateHostsInPlacementPolicy(incoming.getPlacementPolicy());
@Test public void testUpdateVmPolicyHostsIds() { setUpUdpateVm(); setUriInfo(setUpActionExpectations(ActionType.UpdateVm, VmManagementParametersBase.class, new String[] {}, new Object[] {}, true, true)); Vm model = getModel(0); model.setPlacementPolicy(new VmPlacementPolicy()); Hosts hosts = new Hosts(); for (int i =0; i < GUIDS.length; i++){ Host newHost = new Host(); newHost.setId(GUIDS[i].toString()); hosts.getHosts().add(newHost); } model.getPlacementPolicy().setHosts(hosts); verifyModel(resource.update(model), 0); }
@Test public void testUpdateVmPolicyHostsNames() { setUpUdpateVm(); for (int i =0; i < NAMES.length; i++){ setUpGetHostByNameExpectations(i); } setUriInfo(setUpActionExpectations(ActionType.UpdateVm, VmManagementParametersBase.class, new String[] {}, new Object[] {}, true, true)); Vm model = getModel(0); model.setPlacementPolicy(new VmPlacementPolicy()); Hosts hosts = new Hosts(); for (int i =0; i < NAMES.length; i++){ Host newHost = new Host(); newHost.setName(NAMES[i]); hosts.getHosts().add(newHost); } model.getPlacementPolicy().setHosts(hosts); verifyModel(resource.update(model), 0); }
Set<Guid> hostGuidsSet = validateAndUpdateHostsInPlacementPolicy(vm.getPlacementPolicy()); staticVm.setDedicatedVmForVdsList(new LinkedList<>(hostGuidsSet)); } else {
to.setPlacementPolicy(adaptOut(from.getPlacementPolicy()));
assertEquals(model.getDisplay().isAllowOverride(), transform.getDisplay().isAllowOverride()); 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));