Search in sources :

Example 1 with V3GuestInfo

use of org.ovirt.engine.api.v3.types.V3GuestInfo in project ovirt-engine by oVirt.

the class V3VmHelper method addGuestIp.

/**
 * If the V4 virtual machine has IP addresses reported, then add them to the V3 {@code guest_info} element.
 */
public static void addGuestIp(V3VM vm) {
    String vmId = vm.getId();
    if (vmId != null) {
        SystemResource systemResource = BackendApiResource.getInstance();
        VmsResource vmsResource = systemResource.getVmsResource();
        VmResource vmResource = vmsResource.getVmResource(vmId);
        VmNicsResource nicsResource = vmResource.getNicsResource();
        try {
            Nics fromNics = nicsResource.list();
            List<Ip> fromIps = new ArrayList<>();
            for (Nic fromNic : fromNics.getNics()) {
                ReportedDevices fromDevices = fromNic.getReportedDevices();
                if (fromDevices != null) {
                    for (ReportedDevice fromDevice : fromDevices.getReportedDevices()) {
                        Ips deviceIps = fromDevice.getIps();
                        if (deviceIps != null) {
                            fromIps.addAll(deviceIps.getIps());
                        }
                    }
                }
            }
            if (!fromIps.isEmpty()) {
                V3GuestInfo guestInfo = vm.getGuestInfo();
                if (guestInfo == null) {
                    guestInfo = new V3GuestInfo();
                    vm.setGuestInfo(guestInfo);
                }
                V3IPs ips = guestInfo.getIps();
                if (ips == null) {
                    ips = new V3IPs();
                    guestInfo.setIps(ips);
                }
                ips.getIPs().addAll(adaptOut(fromIps));
            }
        } catch (WebApplicationException exception) {
        // If an application exception is generated while retrieving the details of the NICs is safe to ignore
        // it, as it may be that the user just doesn't have permission to see the NICs, but she may still have
        // permissions to see the other details of the virtual machine.
        }
    }
}
Also used : ReportedDevice(org.ovirt.engine.api.model.ReportedDevice) WebApplicationException(javax.ws.rs.WebApplicationException) Ip(org.ovirt.engine.api.model.Ip) ArrayList(java.util.ArrayList) Nic(org.ovirt.engine.api.model.Nic) ReportedDevices(org.ovirt.engine.api.model.ReportedDevices) Ips(org.ovirt.engine.api.model.Ips) Nics(org.ovirt.engine.api.model.Nics) VmResource(org.ovirt.engine.api.resource.VmResource) VmNicsResource(org.ovirt.engine.api.resource.VmNicsResource) VmsResource(org.ovirt.engine.api.resource.VmsResource) SystemResource(org.ovirt.engine.api.resource.SystemResource) V3GuestInfo(org.ovirt.engine.api.v3.types.V3GuestInfo) V3IPs(org.ovirt.engine.api.v3.types.V3IPs)

Example 2 with V3GuestInfo

use of org.ovirt.engine.api.v3.types.V3GuestInfo in project ovirt-engine by oVirt.

the class V3VmOutAdapter method adapt.

@Override
public V3VM adapt(Vm from) {
    V3VM to = new V3VM();
    // Remove the links for "rels" that are new in version 4 of the API:
    if (from.isSetLinks()) {
        List<Link> links = from.getLinks().stream().filter(link -> !RELS_TO_REMOVE.contains(link.getRel())).collect(toList());
        to.getLinks().addAll(adaptOut(links));
    }
    if (from.isSetActions()) {
        to.setActions(adaptOut(from.getActions()));
        // In version 3 of the API the actions related to snapshots used non standard URL segments, with underscores
        // to separate words: preview_snapshot, commit_snapshot and undo_snapshot. In version 4 of the API all the
        // URL segments use the same style for URL segments, without underscores, there are no exceptions. So in
        // order to keep backwards compatibility we need to add the underscores to the action links generated by
        // version 4 of the API.
        to.getActions().getLinks().stream().filter(this::isSnapshotLink).forEach(this::fixSnapshotLink);
    }
    if (from.isSetBios()) {
        to.setBios(adaptOut(from.getBios()));
    }
    if (from.isSetCdroms()) {
        to.setCdroms(new V3CdRoms());
        to.getCdroms().getCdRoms().addAll(adaptOut(from.getCdroms().getCdroms()));
    }
    if (from.isSetCluster()) {
        to.setCluster(adaptOut(from.getCluster()));
    }
    if (from.isSetComment()) {
        to.setComment(from.getComment());
    }
    if (from.isSetConsole()) {
        to.setConsole(adaptOut(from.getConsole()));
    }
    if (from.isSetCpu()) {
        to.setCpu(adaptOut(from.getCpu()));
    }
    if (from.isSetCpuProfile()) {
        to.setCpuProfile(adaptOut(from.getCpuProfile()));
    }
    if (from.isSetCpuShares()) {
        to.setCpuShares(from.getCpuShares());
    }
    if (from.isSetCreationTime()) {
        to.setCreationTime(from.getCreationTime());
    }
    if (from.isSetCustomCpuModel()) {
        to.setCustomCpuModel(from.getCustomCpuModel());
    }
    if (from.isSetCustomEmulatedMachine()) {
        to.setCustomEmulatedMachine(from.getCustomEmulatedMachine());
    }
    if (from.isSetCustomProperties()) {
        to.setCustomProperties(new V3CustomProperties());
        to.getCustomProperties().getCustomProperty().addAll(adaptOut(from.getCustomProperties().getCustomProperties()));
    }
    if (from.isSetDeleteProtected()) {
        to.setDeleteProtected(from.isDeleteProtected());
    }
    if (from.isSetDescription()) {
        to.setDescription(from.getDescription());
    }
    if (from.isSetDiskAttachments()) {
        V3Disks toDisks = new V3Disks();
        for (DiskAttachment fromDiskAttachment : from.getDiskAttachments().getDiskAttachments()) {
            Disk fromDisk = fromDiskAttachment.getDisk();
            if (fromDisk != null) {
                V3Disk toDisk = adaptOut(fromDisk);
                toDisks.getDisks().add(toDisk);
            }
        }
        to.setDisks(toDisks);
    }
    if (from.isSetDisplay()) {
        to.setDisplay(adaptOut(from.getDisplay()));
    }
    if (from.isSetDomain()) {
        to.setDomain(adaptOut(from.getDomain()));
    }
    if (from.isSetExternalHostProvider()) {
        to.setExternalHostProvider(adaptOut(from.getExternalHostProvider()));
    }
    if (from.isSetFloppies()) {
        to.setFloppies(new V3Floppies());
        to.getFloppies().getFloppies().addAll(adaptOut(from.getFloppies().getFloppies()));
    }
    if (from.isSetGuestOperatingSystem()) {
        to.setGuestOperatingSystem(adaptOut(from.getGuestOperatingSystem()));
    }
    if (from.isSetGuestTimeZone()) {
        to.setGuestTimeZone(adaptOut(from.getGuestTimeZone()));
    }
    if (from.isSetHighAvailability()) {
        to.setHighAvailability(adaptOut(from.getHighAvailability()));
    }
    if (from.isSetHost()) {
        to.setHost(adaptOut(from.getHost()));
    }
    if (from.isSetId()) {
        to.setId(from.getId());
    }
    if (from.isSetHref()) {
        to.setHref(from.getHref());
    }
    if (from.isSetInitialization()) {
        to.setInitialization(adaptOut(from.getInitialization()));
    }
    if (from.isSetInstanceType()) {
        to.setInstanceType(adaptOut(from.getInstanceType()));
    }
    if (from.isSetIo()) {
        to.setIo(adaptOut(from.getIo()));
    }
    if (from.isSetKatelloErrata()) {
        to.setKatelloErrata(new V3KatelloErrata());
        to.getKatelloErrata().getKatelloErrata().addAll(adaptOut(from.getKatelloErrata().getKatelloErrata()));
    }
    if (from.isSetLargeIcon()) {
        to.setLargeIcon(adaptOut(from.getLargeIcon()));
    }
    if (from.isSetMemory()) {
        to.setMemory(from.getMemory());
    }
    if (from.isSetMemoryPolicy()) {
        to.setMemoryPolicy(adaptOut(from.getMemoryPolicy()));
    }
    if (from.isSetMigration()) {
        to.setMigration(adaptOut(from.getMigration()));
    }
    if (from.isSetMigrationDowntime()) {
        to.setMigrationDowntime(from.getMigrationDowntime());
    }
    if (from.isSetName()) {
        to.setName(from.getName());
    }
    if (from.isSetNextRunConfigurationExists()) {
        to.setNextRunConfigurationExists(from.isNextRunConfigurationExists());
    }
    if (from.isSetNics()) {
        to.setNics(new V3Nics());
        to.getNics().getNics().addAll(adaptOut(from.getNics().getNics()));
    }
    if (from.isSetNumaTuneMode()) {
        to.setNumaTuneMode(from.getNumaTuneMode().value());
    }
    if (from.isSetOrigin()) {
        to.setOrigin(from.getOrigin());
    }
    if (from.isSetOs()) {
        to.setOs(adaptOut(from.getOs()));
    }
    if (from.isSetPayloads()) {
        to.setPayloads(new V3Payloads());
        to.getPayloads().getPayload().addAll(adaptOut(from.getPayloads().getPayloads()));
    }
    if (from.isSetPermissions()) {
        to.setPermissions(new V3Permissions());
        to.getPermissions().getPermissions().addAll(adaptOut(from.getPermissions().getPermissions()));
    }
    if (from.isSetPlacementPolicy()) {
        to.setPlacementPolicy(adaptOut(from.getPlacementPolicy()));
    }
    if (from.isSetQuota()) {
        to.setQuota(adaptOut(from.getQuota()));
    }
    if (from.isSetReportedDevices()) {
        to.setReportedDevices(new V3ReportedDevices());
        to.getReportedDevices().getReportedDevices().addAll(adaptOut(from.getReportedDevices().getReportedDevices()));
    }
    if (from.isSetRngDevice()) {
        to.setRngDevice(adaptOut(from.getRngDevice()));
    }
    if (from.isSetRunOnce()) {
        to.setRunOnce(from.isRunOnce());
    }
    if (from.isSetSerialNumber()) {
        to.setSerialNumber(adaptOut(from.getSerialNumber()));
    }
    if (from.isSetSmallIcon()) {
        to.setSmallIcon(adaptOut(from.getSmallIcon()));
    }
    if (from.isSetSnapshots()) {
        to.setSnapshots(new V3Snapshots());
        to.getSnapshots().getSnapshots().addAll(adaptOut(from.getSnapshots().getSnapshots()));
    }
    if (from.isSetSoundcardEnabled()) {
        to.setSoundcardEnabled(from.isSoundcardEnabled());
    }
    if (from.isSetSso()) {
        to.setSso(adaptOut(from.getSso()));
    }
    if (from.isSetStartPaused()) {
        to.setStartPaused(from.isStartPaused());
    }
    if (from.isSetStartTime()) {
        to.setStartTime(from.getStartTime());
    }
    if (from.isSetStateless()) {
        to.setStateless(from.isStateless());
    }
    if (from.isSetStatistics()) {
        to.setStatistics(new V3Statistics());
        to.getStatistics().getStatistics().addAll(adaptOut(from.getStatistics().getStatistics()));
    }
    if (from.isSetStatus()) {
        V3Status status = to.getStatus();
        if (status == null) {
            status = new V3Status();
            to.setStatus(status);
        }
        status.setState(from.getStatus().value());
    }
    if (from.isSetStatusDetail()) {
        V3Status status = to.getStatus();
        if (status == null) {
            status = new V3Status();
            to.setStatus(status);
        }
        status.setDetail(from.getStatusDetail());
    }
    if (from.isSetStopReason()) {
        to.setStopReason(from.getStopReason());
    }
    if (from.isSetStopTime()) {
        to.setStopTime(from.getStopTime());
    }
    if (from.isSetStorageDomain()) {
        to.setStorageDomain(adaptOut(from.getStorageDomain()));
    }
    if (from.isSetTags()) {
        to.setTags(new V3Tags());
        to.getTags().getTags().addAll(adaptOut(from.getTags().getTags()));
    }
    if (from.isSetTemplate()) {
        to.setTemplate(adaptOut(from.getTemplate()));
    }
    if (from.isSetTimeZone()) {
        to.setTimeZone(adaptOut(from.getTimeZone()));
    }
    if (from.isSetTunnelMigration()) {
        to.setTunnelMigration(from.isTunnelMigration());
    }
    if (from.isSetType()) {
        to.setType(from.getType().value());
    }
    if (from.isSetUsb()) {
        to.setUsb(adaptOut(from.getUsb()));
    }
    if (from.isSetUseLatestTemplateVersion()) {
        to.setUseLatestTemplateVersion(from.isUseLatestTemplateVersion());
    }
    if (from.isSetVirtioScsi()) {
        to.setVirtioScsi(adaptOut(from.getVirtioScsi()));
    }
    if (from.isSetVmPool()) {
        to.setVmPool(adaptOut(from.getVmPool()));
    }
    if (from.isSetWatchdogs()) {
        to.setWatchdogs(new V3WatchDogs());
        to.getWatchdogs().getWatchDogs().addAll(adaptOut(from.getWatchdogs().getWatchdogs()));
    }
    // new structured "time_zone" element containing the name of the time zone and the UTC offset:
    if (from.isSetTimeZone() && !to.isSetTimezone()) {
        TimeZone timeZone = from.getTimeZone();
        if (timeZone.isSetName()) {
            to.setTimezone(timeZone.getName());
        }
    }
    // If the V4 virtual machine has a value for the "fqdn" element, then copy it to the V3 "guest_info" element:
    if (from.isSetFqdn()) {
        V3GuestInfo guestInfo = to.getGuestInfo();
        if (guestInfo == null) {
            guestInfo = new V3GuestInfo();
            to.setGuestInfo(guestInfo);
        }
        guestInfo.setFqdn(from.getFqdn());
    }
    return to;
}
Also used : V3Tags(org.ovirt.engine.api.v3.types.V3Tags) V3Permissions(org.ovirt.engine.api.v3.types.V3Permissions) Vm(org.ovirt.engine.api.model.Vm) V3WatchDogs(org.ovirt.engine.api.v3.types.V3WatchDogs) TimeZone(org.ovirt.engine.api.model.TimeZone) V3CdRoms(org.ovirt.engine.api.v3.types.V3CdRoms) V3VM(org.ovirt.engine.api.v3.types.V3VM) HashSet(java.util.HashSet) DiskAttachment(org.ovirt.engine.api.model.DiskAttachment) Disk(org.ovirt.engine.api.model.Disk) V3GuestInfo(org.ovirt.engine.api.v3.types.V3GuestInfo) V3OutAdapters.adaptOut(org.ovirt.engine.api.v3.adapters.V3OutAdapters.adaptOut) V3Disk(org.ovirt.engine.api.v3.types.V3Disk) V3Status(org.ovirt.engine.api.v3.types.V3Status) V3Adapter(org.ovirt.engine.api.v3.V3Adapter) V3Floppies(org.ovirt.engine.api.v3.types.V3Floppies) V3KatelloErrata(org.ovirt.engine.api.v3.types.V3KatelloErrata) V3ReportedDevices(org.ovirt.engine.api.v3.types.V3ReportedDevices) Set(java.util.Set) V3Statistics(org.ovirt.engine.api.v3.types.V3Statistics) V3Snapshots(org.ovirt.engine.api.v3.types.V3Snapshots) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) V3Nics(org.ovirt.engine.api.v3.types.V3Nics) Link(org.ovirt.engine.api.model.Link) V3Disks(org.ovirt.engine.api.v3.types.V3Disks) V3CustomProperties(org.ovirt.engine.api.v3.types.V3CustomProperties) V3Link(org.ovirt.engine.api.v3.types.V3Link) V3Payloads(org.ovirt.engine.api.v3.types.V3Payloads) V3Floppies(org.ovirt.engine.api.v3.types.V3Floppies) V3Tags(org.ovirt.engine.api.v3.types.V3Tags) V3Permissions(org.ovirt.engine.api.v3.types.V3Permissions) V3KatelloErrata(org.ovirt.engine.api.v3.types.V3KatelloErrata) V3Payloads(org.ovirt.engine.api.v3.types.V3Payloads) V3ReportedDevices(org.ovirt.engine.api.v3.types.V3ReportedDevices) V3Statistics(org.ovirt.engine.api.v3.types.V3Statistics) V3WatchDogs(org.ovirt.engine.api.v3.types.V3WatchDogs) TimeZone(org.ovirt.engine.api.model.TimeZone) V3VM(org.ovirt.engine.api.v3.types.V3VM) DiskAttachment(org.ovirt.engine.api.model.DiskAttachment) V3CustomProperties(org.ovirt.engine.api.v3.types.V3CustomProperties) V3Disk(org.ovirt.engine.api.v3.types.V3Disk) V3Snapshots(org.ovirt.engine.api.v3.types.V3Snapshots) V3Disks(org.ovirt.engine.api.v3.types.V3Disks) V3Status(org.ovirt.engine.api.v3.types.V3Status) V3GuestInfo(org.ovirt.engine.api.v3.types.V3GuestInfo) V3Nics(org.ovirt.engine.api.v3.types.V3Nics) Disk(org.ovirt.engine.api.model.Disk) V3Disk(org.ovirt.engine.api.v3.types.V3Disk) Link(org.ovirt.engine.api.model.Link) V3Link(org.ovirt.engine.api.v3.types.V3Link) V3CdRoms(org.ovirt.engine.api.v3.types.V3CdRoms)

Aggregations

V3GuestInfo (org.ovirt.engine.api.v3.types.V3GuestInfo)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Set (java.util.Set)1 Collectors.toList (java.util.stream.Collectors.toList)1 WebApplicationException (javax.ws.rs.WebApplicationException)1 Disk (org.ovirt.engine.api.model.Disk)1 DiskAttachment (org.ovirt.engine.api.model.DiskAttachment)1 Ip (org.ovirt.engine.api.model.Ip)1 Ips (org.ovirt.engine.api.model.Ips)1 Link (org.ovirt.engine.api.model.Link)1 Nic (org.ovirt.engine.api.model.Nic)1 Nics (org.ovirt.engine.api.model.Nics)1 ReportedDevice (org.ovirt.engine.api.model.ReportedDevice)1 ReportedDevices (org.ovirt.engine.api.model.ReportedDevices)1 TimeZone (org.ovirt.engine.api.model.TimeZone)1 Vm (org.ovirt.engine.api.model.Vm)1 SystemResource (org.ovirt.engine.api.resource.SystemResource)1 VmNicsResource (org.ovirt.engine.api.resource.VmNicsResource)1