package org.ovirt.engine.core.common.action; import javax.validation.Valid; import org.ovirt.engine.core.common.businessentities.Cluster; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; import org.ovirt.engine.core.common.businessentities.network.NetworkStatus; import org.ovirt.engine.core.compat.Guid; public class AttachNetworkToClusterParameter extends NetworkClusterParameters { private static final long serialVersionUID = -2874549285727269806L; @Valid private Network _network; public AttachNetworkToClusterParameter(Cluster cluster, Network network) { this(cluster.getId(), network); } public AttachNetworkToClusterParameter(Guid clusterId, Network net) { super(createNetworkCluster(clusterId, net)); _network = net; } private static NetworkCluster createNetworkCluster(Guid clusterId, Network net) { NetworkCluster networkCluster = net.getCluster(); if (networkCluster == null) { return createNetworkClusterWithDefaultValues(clusterId, net); } return new NetworkCluster(clusterId, net.getId(), NetworkStatus.NON_OPERATIONAL, networkCluster.isDisplay(), networkCluster.isRequired(), networkCluster.isMigration(), networkCluster.isManagement(), networkCluster.isGluster(), networkCluster.isDefaultRoute() ); } // Cluster attachment data can sometimes be missing, so use defaults in that case. private static NetworkCluster createNetworkClusterWithDefaultValues(Guid clusterId, Network net) { return new NetworkCluster(clusterId, net.getId(), NetworkStatus.NON_OPERATIONAL, false, true, false, false, false, false ); } public Network getNetwork() { return _network; } AttachNetworkToClusterParameter() { } }