Repository: aurora Updated Branches: refs/heads/master 8faf49923 -> bc257bdd9
Backfilling JobConfiguration.Identity Bugs closed: AURORA-1610 Reviewed at https://reviews.apache.org/r/43262/ Project: http://git-wip-us.apache.org/repos/asf/aurora/repo Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/bc257bdd Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/bc257bdd Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/bc257bdd Branch: refs/heads/master Commit: bc257bdd95477275dd654396cbb72cef39d9338f Parents: 8faf499 Author: Maxim Khutornenko <[email protected]> Authored: Fri Feb 5 13:55:26 2016 -0800 Committer: Maxim Khutornenko <[email protected]> Committed: Fri Feb 5 13:55:26 2016 -0800 ---------------------------------------------------------------------- .../scheduler/storage/log/ThriftBackfill.java | 1 + .../scheduler/storage/log/LogStorageTest.java | 14 +++++--- .../storage/log/SnapshotStoreImplTest.java | 10 ++++-- .../storage/log/ThriftBackfillTest.java | 38 ++++++++++++++++++-- 4 files changed, 54 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aurora/blob/bc257bdd/src/main/java/org/apache/aurora/scheduler/storage/log/ThriftBackfill.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/ThriftBackfill.java b/src/main/java/org/apache/aurora/scheduler/storage/log/ThriftBackfill.java index 9c88f57..6b19795 100644 --- a/src/main/java/org/apache/aurora/scheduler/storage/log/ThriftBackfill.java +++ b/src/main/java/org/apache/aurora/scheduler/storage/log/ThriftBackfill.java @@ -43,6 +43,7 @@ final class ThriftBackfill { static IJobConfiguration backFillJobConfiguration(JobConfiguration jobConfiguration) { backFillTaskConfig(jobConfiguration.getTaskConfig()); + jobConfiguration.getOwner().setRole(jobConfiguration.getKey().getRole()); return IJobConfiguration.build(jobConfiguration); } http://git-wip-us.apache.org/repos/asf/aurora/blob/bc257bdd/src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java b/src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java index 13fcf9f..7203233 100644 --- a/src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java +++ b/src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java @@ -285,10 +285,16 @@ public class LogStorageTest extends EasyMockTest { .setEnvironment(JOB_KEY.getEnvironment()); backfilledTask.getOwner().setRole(JOB_KEY.getRole()); - builder.add(createTransaction(Op.saveCronJob(new SaveCronJob() - .setJobConfig(new JobConfiguration().setTaskConfig(task))))); - storageUtil.jobStore.saveAcceptedJob(IJobConfiguration.build(new JobConfiguration() - .setTaskConfig(backfilledTask))); + JobConfiguration jobConfig = new JobConfiguration() + .setKey(JOB_KEY.newBuilder()) + .setOwner(new Identity().setUser(task.getOwner().getUser())) + .setTaskConfig(task); + JobConfiguration backfilledJobConfig = new JobConfiguration(jobConfig) + .setOwner(new Identity(jobConfig.getOwner()).setRole(JOB_KEY.getRole())) + .setTaskConfig(backfilledTask); + + builder.add(createTransaction(Op.saveCronJob(new SaveCronJob().setJobConfig(jobConfig)))); + storageUtil.jobStore.saveAcceptedJob(IJobConfiguration.build(backfilledJobConfig)); RemoveJob removeJob = new RemoveJob(JOB_KEY.newBuilder()); builder.add(createTransaction(Op.removeJob(removeJob))); http://git-wip-us.apache.org/repos/asf/aurora/blob/bc257bdd/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplTest.java b/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplTest.java index 3b176db..29a68bc 100644 --- a/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplTest.java +++ b/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplTest.java @@ -123,10 +123,14 @@ public class SnapshotStoreImplTest extends EasyMockTest { // dropped. IHostAttributes legacyAttribute = IHostAttributes.build( new HostAttributes("host", ImmutableSet.of())); - StoredCronJob job = - new StoredCronJob(new JobConfiguration().setKey(JOB_KEY).setTaskConfig(task.newBuilder())); + StoredCronJob job = new StoredCronJob(new JobConfiguration() + .setOwner(new Identity().setUser("user")) + .setKey(JOB_KEY) + .setTaskConfig(task.newBuilder())); IJobConfiguration backFilledJob = IJobConfiguration.build( - new JobConfiguration(job.getJobConfiguration()).setTaskConfig(backfilledTask.newBuilder())); + new JobConfiguration(job.getJobConfiguration()) + .setOwner(new Identity(job.getJobConfiguration().getOwner()).setRole(JOB_KEY.getRole())) + .setTaskConfig(backfilledTask.newBuilder())); String frameworkId = "framework_id"; ILock lock = ILock.build(new Lock() .setKey(LockKey.job(JobKeys.from("testRole", "testEnv", "testJob").newBuilder())) http://git-wip-us.apache.org/repos/asf/aurora/blob/bc257bdd/src/test/java/org/apache/aurora/scheduler/storage/log/ThriftBackfillTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/aurora/scheduler/storage/log/ThriftBackfillTest.java b/src/test/java/org/apache/aurora/scheduler/storage/log/ThriftBackfillTest.java index 506d591..467238d 100644 --- a/src/test/java/org/apache/aurora/scheduler/storage/log/ThriftBackfillTest.java +++ b/src/test/java/org/apache/aurora/scheduler/storage/log/ThriftBackfillTest.java @@ -16,21 +16,28 @@ package org.apache.aurora.scheduler.storage.log; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import org.apache.aurora.gen.AssignedTask; import org.apache.aurora.gen.Identity; import org.apache.aurora.gen.InstanceTaskConfig; -import org.apache.aurora.gen.JobKey; +import org.apache.aurora.gen.JobConfiguration; import org.apache.aurora.gen.JobUpdate; import org.apache.aurora.gen.JobUpdateInstructions; +import org.apache.aurora.gen.ScheduledTask; import org.apache.aurora.gen.TaskConfig; +import org.apache.aurora.scheduler.base.JobKeys; +import org.apache.aurora.scheduler.storage.entities.IJobConfiguration; +import org.apache.aurora.scheduler.storage.entities.IJobKey; import org.apache.aurora.scheduler.storage.entities.IJobUpdate; +import org.apache.aurora.scheduler.storage.entities.IScheduledTask; import org.apache.aurora.scheduler.storage.entities.ITaskConfig; import org.junit.Test; import static org.junit.Assert.assertEquals; public class ThriftBackfillTest { + private static final IJobKey JOB_KEY = JobKeys.from("role", "env", "name"); private static final ITaskConfig TASK = ITaskConfig.build(new TaskConfig() - .setJob(new JobKey("role", "env", "name")) + .setJob(JOB_KEY.newBuilder()) .setOwner(new Identity(null, "user"))); @Test @@ -43,6 +50,33 @@ public class ThriftBackfillTest { } @Test + public void testTaskBackfill() { + ScheduledTask task = + new ScheduledTask().setAssignedTask(new AssignedTask().setTask(TASK.newBuilder())); + ScheduledTask expected = new ScheduledTask(task); + expected.getAssignedTask().setTask(populateTask(TASK.newBuilder())); + + assertEquals( + ImmutableSet.of(IScheduledTask.build(expected)), + ThriftBackfill.backFillScheduledTasks(ImmutableSet.of(task))); + } + + @Test + public void testJobConfigurationBackfill() { + JobConfiguration configuration = new JobConfiguration() + .setKey(JOB_KEY.newBuilder()) + .setTaskConfig(TASK.newBuilder()) + .setOwner(new Identity().setUser("user")); + JobConfiguration expected = new JobConfiguration(configuration); + expected.getOwner().setRole(JOB_KEY.getRole()); + expected.setTaskConfig(populateTask(TASK.newBuilder())); + + assertEquals( + IJobConfiguration.build(expected), + ThriftBackfill.backFillJobConfiguration(configuration)); + } + + @Test public void testUpdateBackfillNoDesiredState() { JobUpdate update = update(); update.getInstructions().setDesiredState(null);
