use of org.ovirt.engine.api.v3.types.V3Networks 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);
}
}
use of org.ovirt.engine.api.v3.types.V3Networks in project ovirt-engine by oVirt.
the class V3NetworksInAdapter method adapt.
@Override
public Networks adapt(V3Networks from) {
Networks to = new Networks();
if (from.isSetActions()) {
to.setActions(adaptIn(from.getActions()));
}
if (from.isSetActive()) {
to.setActive(from.getActive());
}
if (from.isSetSize()) {
to.setSize(from.getSize());
}
if (from.isSetTotal()) {
to.setTotal(from.getTotal());
}
to.getNetworks().addAll(adaptIn(from.getNetworks()));
return to;
}
use of org.ovirt.engine.api.v3.types.V3Networks in project ovirt-engine by oVirt.
the class V3IscsiBondOutAdapter method adapt.
@Override
public V3IscsiBond adapt(IscsiBond from) {
V3IscsiBond to = new V3IscsiBond();
if (from.isSetLinks()) {
to.getLinks().addAll(adaptOut(from.getLinks()));
}
if (from.isSetActions()) {
to.setActions(adaptOut(from.getActions()));
}
if (from.isSetComment()) {
to.setComment(from.getComment());
}
if (from.isSetDataCenter()) {
to.setDataCenter(adaptOut(from.getDataCenter()));
}
if (from.isSetDescription()) {
to.setDescription(from.getDescription());
}
if (from.isSetId()) {
to.setId(from.getId());
}
if (from.isSetHref()) {
to.setHref(from.getHref());
}
if (from.isSetName()) {
to.setName(from.getName());
}
if (from.isSetNetworks()) {
to.setNetworks(new V3Networks());
to.getNetworks().getNetworks().addAll(adaptOut(from.getNetworks().getNetworks()));
}
if (from.isSetStorageConnections()) {
to.setStorageConnections(new V3StorageConnections());
to.getStorageConnections().getStorageConnections().addAll(adaptOut(from.getStorageConnections().getStorageConnections()));
}
return to;
}
use of org.ovirt.engine.api.v3.types.V3Networks in project ovirt-engine by oVirt.
the class V3NICHelper method isProfileCompatible.
/**
* Checks if the given VNIC profile is compatible with the given NIC.
*
* @param profile the VNIC profile to check
* @param nic the NIC to check
* @return {@code true} iff the profile is compatible with the network and port mirroring configuration of the NIC
*/
private static boolean isProfileCompatible(VnicProfile profile, V3NIC nic) {
// Retrieve the representation of the network corresponding to the profile, as we are going to need it in
// order to check the name:
SystemResource systemService = BackendApiResource.getInstance();
NetworksResource networksService = systemService.getNetworksResource();
NetworkResource networkService = networksService.getNetworkResource(profile.getNetwork().getId());
Network profileNetwork = networkService.get();
// If the NIC configuration explicitly specifies a network then the profile has to correspond to that same
// network:
V3Network nicNetwork = nic.getNetwork();
if (nicNetwork != null) {
if (nicNetwork.isSetId()) {
if (!Objects.equals(profileNetwork.getId(), nicNetwork.getId())) {
return false;
}
}
if (nicNetwork.isSetName()) {
if (!Objects.equals(profileNetwork.getName(), nicNetwork.getName())) {
return false;
}
}
}
// If the NIC configuration explicitly specifies a port mirroring configuration then the profile must have
// port mirroring enabled, and all the networks included in the port mirroring configuration must be the same
// network used by the profile:
V3PortMirroring nicPortMirroring = nic.getPortMirroring();
if (nicPortMirroring != null) {
if (!profile.isSetPortMirroring() || !profile.isPortMirroring()) {
return false;
}
V3Networks nicPortMirroringNetworks = nicPortMirroring.getNetworks();
if (nicPortMirroringNetworks != null) {
for (V3Network nicPortMirroringNetwork : nicPortMirroringNetworks.getNetworks()) {
if (nicPortMirroringNetwork.isSetId()) {
if (!Objects.equals(profileNetwork.getId(), nicPortMirroringNetwork.getId())) {
return false;
}
}
if (nicPortMirroringNetwork.isSetName()) {
if (!Objects.equals(profileNetwork.getName(), nicPortMirroringNetwork.getName())) {
return false;
}
}
}
}
}
// All checks passed, so the profile is compatible:
return true;
}
use of org.ovirt.engine.api.v3.types.V3Networks in project ovirt-engine by oVirt.
the class V3NetworksOutAdapter method adapt.
@Override
public V3Networks adapt(Networks from) {
V3Networks to = new V3Networks();
if (from.isSetActions()) {
to.setActions(adaptOut(from.getActions()));
}
if (from.isSetActive()) {
to.setActive(from.getActive());
}
if (from.isSetSize()) {
to.setSize(from.getSize());
}
if (from.isSetTotal()) {
to.setTotal(from.getTotal());
}
to.getNetworks().addAll(adaptOut(from.getNetworks()));
return to;
}
Aggregations