package org.ovirt.engine.core.bll.aaa; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import javax.inject.Inject; import org.ovirt.engine.api.extensions.ExtMap; import org.ovirt.engine.core.aaa.DirectoryGroup; import org.ovirt.engine.core.aaa.SsoOAuthServiceUtils; import org.ovirt.engine.core.bll.QueriesCommandBase; import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters; public class GetDirectoryGroupByIdQuery<P extends DirectoryIdQueryParameters> extends QueriesCommandBase<P> { @Inject private DirectoryUtils directoryUtils; public GetDirectoryGroupByIdQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { Map<String, Object> response = findDirectoryGroupById(); if (!response.containsKey("result")) { getQueryReturnValue().setSucceeded(false); } else { Collection<DirectoryGroup> groups = directoryUtils.mapGroupRecordsToDirectoryGroups( getParameters().getDomain(), (Collection<ExtMap>) response.get("result")); if (!groups.isEmpty()) { getQueryReturnValue().setReturnValue(new ArrayList<>(groups).get(0)); } } } private Map<String, Object> findDirectoryGroupById() { return SsoOAuthServiceUtils.findDirectoryGroupById( getSessionDataContainer().getSsoAccessToken(getParameters().getSessionId()), getParameters().getDomain(), getParameters().getNamespace(), getParameters().getId(), false, false); } }