package org.ovirt.engine.api.restapi.resource;
import org.ovirt.engine.api.model.Cluster;
import org.ovirt.engine.api.model.Network;
import org.ovirt.engine.api.restapi.utils.GuidUtils;
import org.ovirt.engine.core.common.queries.IdAndNameQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
import org.ovirt.engine.core.compat.Guid;
public class ManagementNetworkFinder {
private final BackendResource backendResource;
public ManagementNetworkFinder(BackendResource backendResource) {
this.backendResource = backendResource;
}
Guid getManagementNetworkId(Cluster cluster, Guid dataCenterId) {
Guid managementNetworkId = null;
if (cluster.isSetManagementNetwork()) {
backendResource.validateParameters(cluster.getManagementNetwork(), "id|name");
final Network rawManagementNetwork = cluster.getManagementNetwork();
if (rawManagementNetwork.isSetId()) {
managementNetworkId = GuidUtils.asGuid(rawManagementNetwork.getId());
} else {
final org.ovirt.engine.core.common.businessentities.network.Network managementNetwork =
backendResource.getEntity(org.ovirt.engine.core.common.businessentities.network.Network.class,
VdcQueryType.GetNetworkByNameAndDataCenter,
new IdAndNameQueryParameters(dataCenterId, rawManagementNetwork.getName()),
String.format("Network: %s", rawManagementNetwork.getName()));
managementNetworkId = managementNetwork.getId();
}
}
return managementNetworkId;
}
}