use of com.bakdata.conquery.models.identifiable.ids.specific.ManagedExecutionId in project conquery by bakdata.
the class ExecuteForm method react.
@Override
public void react(Worker worker) throws Exception {
log.info("Started Form {}", formId);
// Execution might have been cancelled before so we uncancel it here.
final QueryExecutor queryExecutor = worker.getQueryExecutor();
queryExecutor.unsetQueryCancelled(formId);
// Execute all plans.
for (Entry<ManagedExecutionId, Query> entry : queries.entrySet()) {
final Query query = entry.getValue();
ShardResult result = createResult(worker, entry.getKey());
// Before we start the query, we create it once to test if it will succeed before creating it multiple times for evaluation per core.
try {
query.createQueryPlan(new QueryPlanContext(worker));
} catch (Exception e) {
ConqueryError err = asConqueryError(e);
log.warn("Failed to create query plans for {}.", formId, err);
queryExecutor.sendFailureToManagerNode(result, err);
return;
}
final QueryExecutionContext subQueryContext = new QueryExecutionContext(formId, queryExecutor, worker.getStorage(), worker.getBucketManager());
if (!queryExecutor.execute(query, subQueryContext, result)) {
return;
}
}
}
use of com.bakdata.conquery.models.identifiable.ids.specific.ManagedExecutionId in project conquery by bakdata.
the class ExecuteQuery method react.
@Override
public void react(Worker worker) throws Exception {
final ManagedExecutionId executionId = id;
log.info("Started {} {}", query.getClass().getSimpleName(), executionId);
// Execution might have been cancelled before so we uncancel it here.
final QueryExecutor queryExecutor = worker.getQueryExecutor();
queryExecutor.unsetQueryCancelled(executionId);
final ShardResult result = createShardResult(worker);
// Before we start the query, we create it once to test if it will succeed before creating it multiple times for evaluation per core.
try {
query.createQueryPlan(new QueryPlanContext(worker));
} catch (Exception e) {
ConqueryError err = asConqueryError(e);
log.warn("Failed to create query plans for {}.", executionId, err);
queryExecutor.sendFailureToManagerNode(result, err);
return;
}
final QueryExecutionContext executionContext = new QueryExecutionContext(executionId, queryExecutor, worker.getStorage(), worker.getBucketManager());
queryExecutor.execute(query, executionContext, result);
}
use of com.bakdata.conquery.models.identifiable.ids.specific.ManagedExecutionId in project conquery by bakdata.
the class SerializationTests method user.
/*
* Only way to add permission without a storage.
*/
@Test
public void user() throws IOException, JSONException {
User user = new User("user", "user", STORAGE);
user.addPermission(DatasetPermission.onInstance(Ability.READ, new DatasetId("test")));
user.addPermission(ExecutionPermission.onInstance(Ability.READ, new ManagedExecutionId(new DatasetId("dataset"), UUID.randomUUID())));
Role role = new Role("company", "company", STORAGE);
user.addRole(role);
CentralRegistry registry = new CentralRegistry();
registry.register(role);
SerializationTestUtil.forType(User.class).registry(registry).injectables(STORAGE).test(user);
}
use of com.bakdata.conquery.models.identifiable.ids.specific.ManagedExecutionId in project conquery by bakdata.
the class InstancePermissionImplificationTest method permissionTypesFail.
@Test
public void permissionTypesFail() {
Permission dPerm = DatasetPermission.onInstance(Ability.READ.asSet(), new DatasetId(DATASET1));
Permission qPerm = ExecutionPermission.onInstance(Ability.READ.asSet(), new ManagedExecutionId(new DatasetId(DATASET1), UUID.randomUUID()));
Permission sPerm = SuperPermission.onDomain();
Permission aPerm = AdminPermission.onDomain();
assertThat(dPerm.implies(qPerm)).isFalse();
assertThat(dPerm.implies(sPerm)).isFalse();
assertThat(aPerm.implies(sPerm)).isFalse();
}
use of com.bakdata.conquery.models.identifiable.ids.specific.ManagedExecutionId in project conquery by bakdata.
the class SerializationTests method group.
@Test
public void group() throws IOException, JSONException {
Group group = new Group("group", "group", STORAGE);
group.addPermission(DatasetPermission.onInstance(Ability.READ, new DatasetId("test")));
group.addPermission(ExecutionPermission.onInstance(Ability.READ, new ManagedExecutionId(new DatasetId("dataset"), UUID.randomUUID())));
group.addRole(new Role("company", "company", STORAGE));
Role role = new Role("company", "company", STORAGE);
group.addRole(role);
User user = new User("userName", "userLabel", STORAGE);
group.addMember(user);
CentralRegistry registry = new CentralRegistry();
registry.register(role);
registry.register(user);
SerializationTestUtil.forType(Group.class).injectables(STORAGE).registry(registry).test(group);
}
Aggregations