package org.ovirt.engine.core.itests; import java.util.ArrayList; import junit.framework.Assert; import org.junit.Test; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.PermissionsOperationsParametes; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.businessentities.permissions; import org.ovirt.engine.core.common.businessentities.roles; import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.bll.MultiLevelAdministrationHandler; import org.ovirt.engine.core.bll.PredefinedRoles; /** * Test class for Queries * */ public class QueriesTest extends AbstractBackendTest { /** * Add permissions for the current user as a preparation for the next test. * */ @Test public void addPermissions() { // add CLUSTER_ADMIN on SYSTEM to current new user runAsSuperAdmin(); permissions perms = new permissions(getUser().getUserId(), Guid.NewGuid(), PredefinedRoles.CLUSTER_ADMIN.getId()); perms.setObjectId(MultiLevelAdministrationHandler.SYSTEM_OBJECT_ID); perms.setObjectType(VdcObjectType.System); PermissionsOperationsParametes parameters = new PermissionsOperationsParametes(perms); VdcReturnValueBase runAction = backend.RunAction(VdcActionType.AddPermission, parameters); Assert.assertTrue(runAction.getSucceeded()); } /** * Retrieve permissions tree for the current user on a cluster. * * result - success if the permissions list has at least one permission */ @Test public void getPermissionsByEntityId() { // use basic setup to fetch permission on VM through cluster runAsSuperAdmin(); Guid clusterId = getBasicSetup().getCluster().getID(); GetPermissionsForObjectParameters parameters = new GetPermissionsForObjectParameters(clusterId); parameters.setDirectOnly(false); parameters.setObjectId(clusterId); parameters.setVdcObjectType(VdcObjectType.VdsGroups); VdcQueryReturnValue runQuery = backend.RunQuery(VdcQueryType.GetPermissionsForObject, parameters); ArrayList<permissions> perms = (ArrayList<permissions>) runQuery.getReturnValue(); Assert.assertTrue(!perms.isEmpty()); } @Test public void getRolesForDelegation() { VdcQueryReturnValue runQuery = backend.RunQuery(VdcQueryType.GetRolesForDelegationByUser, sessionize(new VdcQueryParametersBase())); ArrayList<roles> roles = (ArrayList<org.ovirt.engine.core.common.businessentities.roles>) runQuery.getReturnValue(); Assert.assertNotNull(roles); } @Test public void getCustomPermissions() { VdcQueryReturnValue runQuery = backend.RunQuery(VdcQueryType.GetVmCustomProperties, sessionize(new VdcQueryParametersBase())); String properties = (String) runQuery.getReturnValue(); Assert.assertTrue(properties.contains("sap_agent")); } }