You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ke...@apache.org on 2014/10/15 20:05:05 UTC
git commit: Use JobKey when getting roles to authenticate against.
Repository: incubator-aurora
Updated Branches:
refs/heads/master 7d87801e1 -> 312d9def5
Use JobKey when getting roles to authenticate against.
Testing Done:
./gradlew clean test
Bugs closed: AURORA-837
Reviewed at https://reviews.apache.org/r/26716/
Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/312d9def
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/312d9def
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/312d9def
Branch: refs/heads/master
Commit: 312d9def5c9b993b685e6989fd3f0ad187a8cbac
Parents: 7d87801
Author: Zameer Manji <zm...@twopensource.com>
Authored: Wed Oct 15 10:55:28 2014 -0700
Committer: Kevin Sweeney <ke...@apache.org>
Committed: Wed Oct 15 10:55:28 2014 -0700
----------------------------------------------------------------------
.../org/apache/aurora/scheduler/base/Query.java | 4 +---
.../scheduler/thrift/SchedulerThriftInterface.java | 3 +++
.../scheduler/storage/mem/MemTaskStoreTest.java | 15 +++++++--------
.../thrift/SchedulerThriftInterfaceTest.java | 16 ++++++++++++++++
4 files changed, 27 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/312d9def/src/main/java/org/apache/aurora/scheduler/base/Query.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/base/Query.java b/src/main/java/org/apache/aurora/scheduler/base/Query.java
index eded7a5..d518acb 100644
--- a/src/main/java/org/apache/aurora/scheduler/base/Query.java
+++ b/src/main/java/org/apache/aurora/scheduler/base/Query.java
@@ -260,9 +260,7 @@ public final class Query {
return new Builder(
query.deepCopy()
- .setOwner(new Identity().setRole(jobKey.getRole()))
- .setEnvironment(jobKey.getEnvironment())
- .setJobName(jobKey.getName()));
+ .setJobKeys(ImmutableSet.of(jobKey.newBuilder())));
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/312d9def/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
index 137f97d..e792d23 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
@@ -720,6 +720,9 @@ class SchedulerThriftInterface implements AuroraAdmin.Iface {
// authenticated this way.
ImmutableSet.Builder<String> targetRoles = ImmutableSet.<String>builder()
.addAll(FluentIterable.from(tasks).transform(GET_ROLE));
+ Set<IJobKey> keys = JobKeys.from(taskQuery).or(ImmutableSet.<IJobKey>of());
+ targetRoles.addAll(FluentIterable.from(keys).transform(JobKeys.TO_ROLE));
+
if (taskQuery.get().isSetOwner()) {
targetRoles.add(taskQuery.get().getOwner().getRole());
}
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/312d9def/src/test/java/org/apache/aurora/scheduler/storage/mem/MemTaskStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/mem/MemTaskStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/mem/MemTaskStoreTest.java
index 3b61ff3..581f639 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/mem/MemTaskStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/mem/MemTaskStoreTest.java
@@ -136,20 +136,19 @@ public class MemTaskStoreTest {
JobKeys.from("role-c", "env-c", "job-c"))),
TASK_A, TASK_B, TASK_C);
- // Conflicting jobs will produce empty result as TaskQuery fields are ANDed.
- assertEquals(
- 0,
- store.fetchTasks(
- Query.jobScoped(JobKeys.from("role-a", "env-a", "job-a"))
- .byJobKeys(ImmutableSet.of(JobKeys.from("role-b", "env-b", "job-b")))).size());
+ // Conflicting jobs will produce the result from the last added JobKey
+ assertQueryResults(
+ Query.jobScoped(JobKeys.from("role-a", "env-a", "job-a"))
+ .byJobKeys(ImmutableSet.of(JobKeys.from("role-b", "env-b", "job-b"))),
+ TASK_B);
- // Matching jobs would return successfully.
+ // The .byJobKeys will override the previous scoping and OR all of the keys.
assertQueryResults(
Query.jobScoped(JobKeys.from("role-a", "env-a", "job-a"))
.byJobKeys(ImmutableSet.of(
JobKeys.from("role-b", "env-b", "job-b"),
JobKeys.from("role-a", "env-a", "job-a"))),
- TASK_A);
+ TASK_A, TASK_B);
// Combination of individual field and jobKeys is allowed.
assertQueryResults(
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/312d9def/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
index c3f0bbe..ebe879c 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
@@ -855,6 +855,22 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
}
@Test
+ public void testKillCronAuthenticatesQueryJobKeyRole() throws Exception {
+ expectAuth(ROOT, false);
+ IJobKey key = JobKeys.from("role", "env", "job");
+
+ Query.Builder query = Query.arbitrary(new TaskQuery().setJobKeys(
+ ImmutableSet.of(key.newBuilder())));
+
+ storageUtil.expectTaskFetch(query.active());
+ expectAuth(ImmutableSet.of("role"), true);
+ expect(cronJobManager.deleteJob(key)).andReturn(true);
+
+ control.replay();
+ assertOkResponse(thrift.killTasks(query.get(), DEFAULT_LOCK, SESSION));
+ }
+
+ @Test
public void testSetQuota() throws Exception {
ResourceAggregate resourceAggregate = new ResourceAggregate()
.setNumCpus(10)