Search in sources :

Example 41 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class OvfHelper method buildMetadataDictionaryForVm.

/**
 * Adds the given vm metadata to the given map
 */
private String buildMetadataDictionaryForVm(VM vm) {
    List<DiskImage> allVmImages = new ArrayList<>();
    List<DiskImage> filteredDisks = DisksFilter.filterImageDisks(vm.getDiskList(), ONLY_SNAPABLE, ONLY_ACTIVE);
    List<LunDisk> lunDisks = DisksFilter.filterLunDisks(vm.getDiskMap().values());
    List<AffinityGroup> affinityGroups = affinityGroupDao.getAllAffinityGroupsByVmId(vm.getId());
    Set<DbUser> dbUsers = new HashSet<>(dbUserDao.getAllForVm(vm.getId()));
    List<Label> affinityLabels = labelDao.getAllByEntityIds(Collections.singletonList(vm.getId()));
    for (DiskImage diskImage : filteredDisks) {
        List<DiskImage> images = diskImageDao.getAllSnapshotsForLeaf(diskImage.getImageId());
        images.forEach(d -> d.setDiskVmElements(Collections.singletonList(diskImage.getDiskVmElementForVm(vm.getId()))));
        allVmImages.addAll(images);
    }
    FullEntityOvfData fullEntityOvfData = new FullEntityOvfData(vm);
    fullEntityOvfData.setDiskImages(allVmImages);
    fullEntityOvfData.setLunDisks(lunDisks);
    fullEntityOvfData.setAffinityGroups(affinityGroups);
    fullEntityOvfData.setAffinityLabels(affinityLabels);
    fullEntityOvfData.setDbUsers(dbUsers);
    populateUserToRoles(fullEntityOvfData, vm.getId());
    return ovfManager.exportVm(vm, fullEntityOvfData, clusterUtils.getCompatibilityVersion(vm));
}
Also used : ArrayList(java.util.ArrayList) Label(org.ovirt.engine.core.common.businessentities.Label) FullEntityOvfData(org.ovirt.engine.core.common.businessentities.storage.FullEntityOvfData) LunDisk(org.ovirt.engine.core.common.businessentities.storage.LunDisk) AffinityGroup(org.ovirt.engine.core.common.scheduling.AffinityGroup) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage) DbUser(org.ovirt.engine.core.common.businessentities.aaa.DbUser) HashSet(java.util.HashSet)

Example 42 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class LabelActionParametersTest method validateValidName.

@Test
public void validateValidName() throws Exception {
    Label label = createLabel("validLabelName");
    validateLabelNameLength(label, true);
}
Also used : Label(org.ovirt.engine.core.common.businessentities.Label) Test(org.junit.Test)

Example 43 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class AddLabelCommand method executeCommand.

@Override
protected void executeCommand() {
    Label label = new LabelBuilder(getParameters().getLabel()).build();
    labelDao.save(label);
    vmStaticDao.incrementDbGenerationForVms(new ArrayList<Guid>(label.getVms()));
    setSucceeded(true);
    setActionReturnValue(label.getId());
}
Also used : Label(org.ovirt.engine.core.common.businessentities.Label) LabelBuilder(org.ovirt.engine.core.common.businessentities.LabelBuilder) Guid(org.ovirt.engine.core.compat.Guid)

Example 44 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class AddLabelCommand method validate.

@Override
protected boolean validate() {
    Label label = labelDao.get(getLabelId());
    if (label != null) {
        addValidationMessage(EngineMessage.AFFINITY_LABEL_ID_ALREADY_EXISTS);
        return false;
    }
    if (getParameters().getLabel().getName().isEmpty()) {
        addValidationMessage(EngineMessage.AFFINITY_LABEL_BAD_NAME);
        return false;
    }
    label = labelDao.getByName(getParameters().getLabel().getName());
    if (label != null) {
        addValidationMessage(EngineMessage.AFFINITY_LABEL_NAME_ALREADY_EXISTS);
        return false;
    }
    if (getParameters().getLabel().isReadOnly() && !isInternalExecution()) {
        addValidationMessage(EngineMessage.AFFINITY_LABEL_READ_ONLY);
        return false;
    }
    return true;
}
Also used : Label(org.ovirt.engine.core.common.businessentities.Label)

Example 45 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class LabelFilterPolicyUnitTest method testSimple.

@Test
public void testSimple() throws Exception {
    Label red = new LabelBuilder().entities(vm, host1).build();
    List<Label> labels = Collections.singletonList(red);
    doReturn(labels).when(labelDao).getAllByEntityIds(any());
    assertThat(unit.filter(cluster, hosts, vm, new HashMap<>(), new PerHostMessages())).contains(host1).doesNotContain(host2);
}
Also used : HashMap(java.util.HashMap) Label(org.ovirt.engine.core.common.businessentities.Label) LabelBuilder(org.ovirt.engine.core.common.businessentities.LabelBuilder) PerHostMessages(org.ovirt.engine.core.common.scheduling.PerHostMessages) Test(org.junit.Test)

Aggregations

Label (org.ovirt.engine.core.common.businessentities.Label)47 Test (org.junit.Test)19 LabelBuilder (org.ovirt.engine.core.common.businessentities.LabelBuilder)19 Guid (org.ovirt.engine.core.compat.Guid)14 LabelActionParameters (org.ovirt.engine.core.common.action.LabelActionParameters)7 VmStatic (org.ovirt.engine.core.common.businessentities.VmStatic)7 ArrayList (java.util.ArrayList)5 HashMap (java.util.HashMap)4 HashSet (java.util.HashSet)3 VM (org.ovirt.engine.core.common.businessentities.VM)3 PerHostMessages (org.ovirt.engine.core.common.scheduling.PerHostMessages)3 WebApplicationException (javax.ws.rs.WebApplicationException)2 AffinityLabel (org.ovirt.engine.api.model.AffinityLabel)2 Host (org.ovirt.engine.api.model.Host)2 Vm (org.ovirt.engine.api.model.Vm)2 VDS (org.ovirt.engine.core.common.businessentities.VDS)2 DbUser (org.ovirt.engine.core.common.businessentities.aaa.DbUser)2 DiskImage (org.ovirt.engine.core.common.businessentities.storage.DiskImage)2 FullEntityOvfData (org.ovirt.engine.core.common.businessentities.storage.FullEntityOvfData)2 LunDisk (org.ovirt.engine.core.common.businessentities.storage.LunDisk)2