package org.ovirt.engine.core.bll.network.host; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.bll.QueriesCommandBase; import org.ovirt.engine.core.bll.context.EngineContext; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.queries.InterfaceAndIdQueryParameters; import org.ovirt.engine.core.common.utils.NetworkCommonUtils; import org.ovirt.engine.core.dao.network.InterfaceDao; import org.ovirt.engine.core.utils.NetworkUtils; /** * This query get interface and return all it's interface vlans, i.e input: eth2 * return: eth2.4 eth2.5 */ public class GetAllChildVlanInterfacesQuery<P extends InterfaceAndIdQueryParameters> extends QueriesCommandBase<P> { @Inject private InterfaceDao interfaceDao; public GetAllChildVlanInterfacesQuery(P parameters) { super(parameters); } public GetAllChildVlanInterfacesQuery(P parameters, EngineContext engineContext) { super(parameters, engineContext); } @Override protected void executeQueryCommand() { ArrayList<VdsNetworkInterface> retVal = new ArrayList<>(); if (!NetworkCommonUtils.isVlan(getParameters().getInterface())) { List<VdsNetworkInterface> vdsInterfaces = interfaceDao.getAllInterfacesForVds(getParameters().getId()); for (int i = 0; i < vdsInterfaces.size(); i++) { if (NetworkCommonUtils.isVlan(vdsInterfaces.get(i))) { if (NetworkUtils.interfaceBasedOn(vdsInterfaces.get(i), getParameters().getInterface().getName())) { retVal.add(vdsInterfaces.get(i)); } } } } getQueryReturnValue().setReturnValue(retVal); } }