Search in sources :

Example 6 with Network

use of org.ovirt.engine.api.model.Network in project ovirt-engine by oVirt.

the class CompletenessAssertorTest method testCompleteListSubFields.

@Test
public void testCompleteListSubFields() throws Exception {
    HostNic bond = new HostNic();
    bond.setName("joe");
    bond.setNetwork(new Network());
    bond.getNetwork().setId("0");
    bond.setBonding(new Bonding());
    bond.getBonding().setSlaves(new HostNics());
    HostNic slave = new HostNic();
    slave.setId("0");
    bond.getBonding().getSlaves().getHostNics().add(slave);
    slave = new HostNic();
    slave.setId("0");
    bond.getBonding().getSlaves().getHostNics().add(slave);
    CompletenessAssertor.validateParameters(bond, "name", "network.id|name", "bonding.slaves.id|name");
}
Also used : HostNic(org.ovirt.engine.api.model.HostNic) Network(org.ovirt.engine.api.model.Network) Bonding(org.ovirt.engine.api.model.Bonding) HostNics(org.ovirt.engine.api.model.HostNics) Test(org.junit.Test)

Example 7 with Network

use of org.ovirt.engine.api.model.Network in project ovirt-engine by oVirt.

the class BackendClustersResource method doPopulate.

@Override
protected org.ovirt.engine.api.model.Cluster doPopulate(org.ovirt.engine.api.model.Cluster cluster, Cluster entity) {
    final Guid clusterId = entity.getId();
    final org.ovirt.engine.core.common.businessentities.network.Network network = getOptionalEntity(org.ovirt.engine.core.common.businessentities.network.Network.class, QueryType.GetManagementNetwork, new IdQueryParameters(clusterId), clusterId.toString(), false);
    if (network != null) {
        final Network managementNetwork = new Network();
        managementNetwork.setCluster(cluster);
        managementNetwork.setId(network.getId().toString());
        cluster.setManagementNetwork(managementNetwork);
    }
    return cluster;
}
Also used : IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) Network(org.ovirt.engine.api.model.Network) Guid(org.ovirt.engine.core.compat.Guid)

Example 8 with Network

use of org.ovirt.engine.api.model.Network in project ovirt-engine by oVirt.

the class V3NICHelper method setNetworkAndPortMirroring.

/**
 * Populates the {@code network} and {@code port_mirroring} attributes used in V3.
 *
 * @param v4Nic the V4 NIC where the details of the NIC profile will be extracted from
 * @param v3Nic the V3 NIC object that will be populated
 */
public static void setNetworkAndPortMirroring(Nic v4Nic, V3NIC v3Nic) {
    // Do nothing if the V4 NIC doesn't specify a profile:
    VnicProfile v4Profile = v4Nic.getVnicProfile();
    if (v4Profile == null) {
        return;
    }
    // Retrieve the complete representation of the profile, as we need it to compute the "network" and
    // "port_mirroring" attributes used in V3:
    BackendApiResource systemService = BackendApiResource.getInstance();
    VnicProfilesResource profilesService = systemService.getVnicProfilesResource();
    VnicProfileResource profileService = profilesService.getProfileResource(v4Profile.getId());
    v4Profile = profileService.get();
    // Populate the "network" and "port_mirroring" attributes of the V3 object:
    Network v4Network = v4Profile.getNetwork();
    V3Network v3Network = new V3Network();
    v3Network.setId(v4Network.getId());
    v4Network.setHref(v4Network.getHref());
    v3Nic.setNetwork(v3Network);
    if (v4Profile.isSetPortMirroring() && v4Profile.isPortMirroring()) {
        V3PortMirroring v3PortMirroring = new V3PortMirroring();
        V3Networks v3PortMirroringNetworks = new V3Networks();
        V3Network v3PortMirroringNetwork = new V3Network();
        v3PortMirroringNetwork.setId(v4Network.getId());
        v3PortMirroringNetwork.setHref(v4Network.getHref());
        v3PortMirroringNetworks.getNetworks().add(v3PortMirroringNetwork);
        v3PortMirroring.setNetworks(v3PortMirroringNetworks);
        v3Nic.setPortMirroring(v3PortMirroring);
    }
}
Also used : BackendApiResource(org.ovirt.engine.api.restapi.resource.BackendApiResource) VnicProfilesResource(org.ovirt.engine.api.resource.VnicProfilesResource) V3Networks(org.ovirt.engine.api.v3.types.V3Networks) V3Network(org.ovirt.engine.api.v3.types.V3Network) V3Network(org.ovirt.engine.api.v3.types.V3Network) Network(org.ovirt.engine.api.model.Network) VnicProfile(org.ovirt.engine.api.model.VnicProfile) V3PortMirroring(org.ovirt.engine.api.v3.types.V3PortMirroring) VnicProfileResource(org.ovirt.engine.api.resource.VnicProfileResource)

Example 9 with Network

use of org.ovirt.engine.api.model.Network in project ovirt-engine by oVirt.

the class V3NICHelper method setVnicProfile.

/**
 * Finds the VNIC profile that correspond to the given V3 NIC and assigns it to the given V4 NIC.
 *
 * @param vmId the identifier of the virtual machine that the NIC is going to be added to
 * @param v3Nic the V3 NIC where the information will be extracted from
 * @param v4Nic the V4 NIC that will be populated
 */
public static void setVnicProfile(String vmId, V3NIC v3Nic, Nic v4Nic) {
    // Do nothing if the profile is already set:
    if (v4Nic.isSetVnicProfile()) {
        return;
    }
    // In version 4 of the API the "network" and "port_mirroring" properties of the NIC have been completely
    // removed, and instead of using them it is required to specify a VNIC profile. This means that if the user
    // isn't explicitly indicating the VNIC profile we need to find one that is compatible with the given network
    // and port mirroring configuration. The only VNIC profiles to consider are the ones corresponding to the
    // networks of the cluster where the VM resides, so we need to retrieve the VM, then the cluster, and then the
    // identifiers of the networks:
    SystemResource systemService = BackendApiResource.getInstance();
    VmsResource vmsService = systemService.getVmsResource();
    VmResource vmService = vmsService.getVmResource(vmId);
    Vm vm = vmService.get();
    ClustersResource clustersService = systemService.getClustersResource();
    ClusterResource clusterService = clustersService.getClusterResource(vm.getCluster().getId());
    ClusterNetworksResource networksService = clusterService.getNetworksResource();
    Set<String> validNetworkIds = networksService.list().getNetworks().stream().map(Network::getId).collect(toSet());
    // Find a VNIC profile that is in the set of valid networks and that is compatible with the NIC:
    VnicProfilesResource profilesService = systemService.getVnicProfilesResource();
    profilesService.list().getVnicProfiles().stream().filter(profile -> validNetworkIds.contains(profile.getNetwork().getId())).filter(profile -> isProfileCompatible(profile, v3Nic)).sorted(comparing(VnicProfile::getName)).map(VnicProfile::getId).findFirst().ifPresent(id -> {
        VnicProfile v4Profile = new VnicProfile();
        v4Profile.setId(id);
        v4Nic.setVnicProfile(v4Profile);
    });
}
Also used : VmResource(org.ovirt.engine.api.resource.VmResource) VnicProfilesResource(org.ovirt.engine.api.resource.VnicProfilesResource) VnicProfileResource(org.ovirt.engine.api.resource.VnicProfileResource) BackendApiResource(org.ovirt.engine.api.restapi.resource.BackendApiResource) SystemResource(org.ovirt.engine.api.resource.SystemResource) V3NIC(org.ovirt.engine.api.v3.types.V3NIC) V3PortMirroring(org.ovirt.engine.api.v3.types.V3PortMirroring) Vm(org.ovirt.engine.api.model.Vm) Set(java.util.Set) ClusterResource(org.ovirt.engine.api.resource.ClusterResource) NetworkResource(org.ovirt.engine.api.resource.NetworkResource) V3Network(org.ovirt.engine.api.v3.types.V3Network) VnicProfile(org.ovirt.engine.api.model.VnicProfile) Objects(java.util.Objects) V3Networks(org.ovirt.engine.api.v3.types.V3Networks) Nic(org.ovirt.engine.api.model.Nic) ClusterNetworksResource(org.ovirt.engine.api.resource.ClusterNetworksResource) Network(org.ovirt.engine.api.model.Network) VnicProfilesResource(org.ovirt.engine.api.resource.VnicProfilesResource) Comparator.comparing(java.util.Comparator.comparing) NetworksResource(org.ovirt.engine.api.resource.NetworksResource) VmResource(org.ovirt.engine.api.resource.VmResource) Collectors.toSet(java.util.stream.Collectors.toSet) VmsResource(org.ovirt.engine.api.resource.VmsResource) ClustersResource(org.ovirt.engine.api.resource.ClustersResource) VmsResource(org.ovirt.engine.api.resource.VmsResource) Vm(org.ovirt.engine.api.model.Vm) VnicProfile(org.ovirt.engine.api.model.VnicProfile) SystemResource(org.ovirt.engine.api.resource.SystemResource) ClusterNetworksResource(org.ovirt.engine.api.resource.ClusterNetworksResource) ClustersResource(org.ovirt.engine.api.resource.ClustersResource) ClusterResource(org.ovirt.engine.api.resource.ClusterResource)

Example 10 with Network

use of org.ovirt.engine.api.model.Network in project ovirt-engine by oVirt.

the class V3NetworkInAdapter method adapt.

@Override
public Network adapt(V3Network from) {
    Network to = new Network();
    if (from.isSetLinks()) {
        to.getLinks().addAll(adaptIn(from.getLinks()));
    }
    if (from.isSetActions()) {
        to.setActions(adaptIn(from.getActions()));
    }
    if (from.isSetCluster()) {
        to.setCluster(adaptIn(from.getCluster()));
    }
    if (from.isSetComment()) {
        to.setComment(from.getComment());
    }
    if (from.isSetDataCenter()) {
        to.setDataCenter(adaptIn(from.getDataCenter()));
    }
    if (from.isSetDescription()) {
        to.setDescription(from.getDescription());
    }
    if (from.isSetDisplay()) {
        to.setDisplay(from.isDisplay());
    }
    if (from.isSetId()) {
        to.setId(from.getId());
    }
    if (from.isSetHref()) {
        to.setHref(from.getHref());
    }
    if (from.isSetIp()) {
        to.setIp(adaptIn(from.getIp()));
    }
    if (from.isSetLabels()) {
        to.setNetworkLabels(new NetworkLabels());
        to.getNetworkLabels().getNetworkLabels().addAll(adaptIn(from.getLabels().getLabels()));
    }
    if (from.isSetMtu()) {
        to.setMtu(from.getMtu());
    }
    if (from.isSetName()) {
        to.setName(from.getName());
    }
    if (from.isSetProfileRequired()) {
        to.setProfileRequired(from.isProfileRequired());
    }
    if (from.isSetQos()) {
        to.setQos(adaptIn(from.getQos()));
    }
    if (from.isSetRequired()) {
        to.setRequired(from.isRequired());
    }
    if (from.isSetStatus() && from.getStatus().isSetState()) {
        to.setStatus(NetworkStatus.fromValue(from.getStatus().getState()));
    }
    if (from.isSetStp()) {
        to.setStp(from.isStp());
    }
    if (from.isSetUsages()) {
        Network.UsagesList toUsages = to.getUsages();
        if (toUsages == null) {
            toUsages = new Network.UsagesList();
            to.setUsages(toUsages);
        }
        List<NetworkUsage> toList = toUsages.getUsages();
        from.getUsages().getUsages().forEach(usage -> toList.add(NetworkUsage.fromValue(usage)));
    }
    if (from.isSetVlan()) {
        to.setVlan(adaptIn(from.getVlan()));
    }
    return to;
}
Also used : NetworkLabels(org.ovirt.engine.api.model.NetworkLabels) Network(org.ovirt.engine.api.model.Network) V3Network(org.ovirt.engine.api.v3.types.V3Network) NetworkUsage(org.ovirt.engine.api.model.NetworkUsage)

Aggregations

Network (org.ovirt.engine.api.model.Network)45 Test (org.junit.Test)16 WebApplicationException (javax.ws.rs.WebApplicationException)9 Response (javax.ws.rs.core.Response)6 DataCenter (org.ovirt.engine.api.model.DataCenter)6 VnicProfile (org.ovirt.engine.api.model.VnicProfile)5 V3Network (org.ovirt.engine.api.v3.types.V3Network)4 Guid (org.ovirt.engine.core.compat.Guid)4 Networks (org.ovirt.engine.api.model.Networks)3 V3Networks (org.ovirt.engine.api.v3.types.V3Networks)3 V3PortMirroring (org.ovirt.engine.api.v3.types.V3PortMirroring)3 NetworkAttachment (org.ovirt.engine.core.common.businessentities.network.NetworkAttachment)3 HostNic (org.ovirt.engine.api.model.HostNic)2 NetworkLabels (org.ovirt.engine.api.model.NetworkLabels)2 Nic (org.ovirt.engine.api.model.Nic)2 ClusterNetworksResource (org.ovirt.engine.api.resource.ClusterNetworksResource)2 NetworkResource (org.ovirt.engine.api.resource.NetworkResource)2 NetworksResource (org.ovirt.engine.api.resource.NetworksResource)2 SystemResource (org.ovirt.engine.api.resource.SystemResource)2 VnicProfileResource (org.ovirt.engine.api.resource.VnicProfileResource)2