You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ma...@apache.org on 2016/02/10 01:14:59 UTC
[2/2] aurora git commit: Reapply deprecated thrift removal patches.
Reapply deprecated thrift removal patches.
Bugs closed: AURORA-1603, AURORA-1604
Reviewed at https://reviews.apache.org/r/43375/
Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/ec0f38a7
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/ec0f38a7
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/ec0f38a7
Branch: refs/heads/master
Commit: ec0f38a7528f8adb8f0769112a1043b98598c03f
Parents: dd79934
Author: Maxim Khutornenko <ma...@apache.org>
Authored: Tue Feb 9 16:14:40 2016 -0800
Committer: Maxim Khutornenko <ma...@apache.org>
Committed: Tue Feb 9 16:14:40 2016 -0800
----------------------------------------------------------------------
NEWS | 8 ++
.../thrift/org/apache/aurora/gen/api.thrift | 9 --
.../org/apache/aurora/scheduler/base/Query.java | 9 +-
.../aurora/scheduler/base/TaskTestUtil.java | 4 +-
.../configuration/ConfigurationManager.java | 66 ++-----------
.../storage/db/views/DbTaskConfig.java | 4 -
.../scheduler/storage/log/LogStorage.java | 9 +-
.../storage/log/SnapshotStoreImpl.java | 7 +-
.../scheduler/storage/log/ThriftBackfill.java | 71 --------------
.../thrift/SchedulerThriftInterface.java | 11 +--
src/main/python/apache/aurora/admin/admin.py | 6 +-
src/main/python/apache/aurora/client/api/sla.py | 6 +-
.../python/apache/aurora/client/cli/jobs.py | 6 +-
.../python/apache/aurora/client/cli/task.py | 2 +-
src/main/python/apache/aurora/config/thrift.py | 4 +-
.../apache/aurora/executor/common/announcer.py | 5 +-
.../apache/aurora/executor/common/sandbox.py | 2 +-
.../scheduler/storage/db/CronJobMapper.xml | 1 -
.../scheduler/storage/db/TaskConfigMapper.xml | 3 -
.../aurora/scheduler/storage/db/TaskMapper.xml | 3 -
.../scheduler/assets/js/controllers.js | 2 +-
.../resources/scheduler/assets/js/services.js | 24 +----
.../configuration/ConfigurationManagerTest.java | 42 +++------
.../aurora/scheduler/cron/quartz/CronIT.java | 4 +-
.../scheduler/cron/quartz/QuartzTestUtil.java | 2 +-
.../preemptor/PreemptionVictimFilterTest.java | 7 +-
.../storage/AbstractCronJobStoreTest.java | 2 +-
.../scheduler/storage/log/LogManagerTest.java | 8 +-
.../scheduler/storage/log/LogStorageTest.java | 47 ++--------
.../storage/log/SnapshotStoreImplTest.java | 61 +++---------
.../storage/log/ThriftBackfillTest.java | 99 --------------------
.../aurora/scheduler/thrift/Fixtures.java | 8 +-
.../thrift/ReadOnlySchedulerImplTest.java | 64 +++++--------
.../thrift/SchedulerThriftInterfaceTest.java | 88 ++++-------------
.../aurora/scheduler/updater/JobDiffTest.java | 5 +-
.../python/apache/aurora/admin/test_admin.py | 6 +-
.../python/apache/aurora/client/api/test_api.py | 3 -
.../python/apache/aurora/client/api/test_sla.py | 6 +-
.../apache/aurora/client/cli/test_status.py | 15 ---
.../python/apache/aurora/client/cli/util.py | 4 -
.../python/apache/aurora/config/test_thrift.py | 5 +-
.../aurora/executor/common/test_announcer.py | 4 -
.../common/test_resource_manager_integration.py | 9 +-
.../aurora/executor/test_thermos_executor.py | 6 +-
44 files changed, 143 insertions(+), 614 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/NEWS
----------------------------------------------------------------------
diff --git a/NEWS b/NEWS
index bc3dcfb..669df32 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,14 @@ New/updated:
- Upgraded Mesos to 0.26.0
+Deprecations and removals:
+
+- Removed deprecated (now redundant) fields:
+ - `Identity.role`
+ - `TaskConfig.environment`
+ - `TaskConfig.jobName`
+ - `TaskQuery.owner`
+
0.12.0
------
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/api/src/main/thrift/org/apache/aurora/gen/api.thrift
----------------------------------------------------------------------
diff --git a/api/src/main/thrift/org/apache/aurora/gen/api.thrift b/api/src/main/thrift/org/apache/aurora/gen/api.thrift
index c870bcf..d4b8904 100644
--- a/api/src/main/thrift/org/apache/aurora/gen/api.thrift
+++ b/api/src/main/thrift/org/apache/aurora/gen/api.thrift
@@ -38,7 +38,6 @@ const string AURORA_EXECUTOR_NAME = 'AuroraExecutor'
// TODO(maxim): Remove in 0.7.0. (AURORA-749)
struct Identity {
- 1: string role
2: string user
}
@@ -218,12 +217,6 @@ struct TaskConfig {
// TODO(maxim): Remove in 0.7.0. (AURORA-749)
/** contains the role component of JobKey */
17: Identity owner
- // TODO(maxim): Remove in 0.7.0. (AURORA-749)
- /** contains the environment component of JobKey */
- 26: string environment
- // TODO(maxim): Remove in 0.7.0. (AURORA-749)
- /** contains the name component of JobKey */
- 3: string jobName
7: bool isService
8: double numCpus
9: i64 ramMb
@@ -510,8 +503,6 @@ struct GetJobsResult {
* (terms are AND'ed together).
*/
struct TaskQuery {
- // TODO(maxim): Remove in 0.7.0. (AURORA-749)
- 8: Identity owner
14: string role
9: string environment
2: string jobName
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/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 fbadfd3..ee01eaa 100644
--- a/src/main/java/org/apache/aurora/scheduler/base/Query.java
+++ b/src/main/java/org/apache/aurora/scheduler/base/Query.java
@@ -130,15 +130,8 @@ public final class Query {
this.query = new TaskQuery();
}
- Builder(final TaskQuery query) {
+ Builder(TaskQuery query) {
// It is expected that the caller calls deepCopy.
- // TODO(maxim): Safe to keep only Role here as TaskQuery is not returned back to the client.
- // Remove in 0.7.0. (AURORA-749)
- if (query.isSetOwner()) {
- query.setRole(query.getOwner().getRole());
- query.unsetOwner();
- }
-
this.query = query;
}
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java b/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
index 02ba1e3..4c64a1c 100644
--- a/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
+++ b/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
@@ -60,9 +60,7 @@ public final class TaskTestUtil {
public static ITaskConfig makeConfig(IJobKey job) {
return ITaskConfig.build(new TaskConfig()
.setJob(job.newBuilder())
- .setJobName(job.getName())
- .setEnvironment(job.getEnvironment())
- .setOwner(new Identity(job.getRole(), job.getRole() + "-user"))
+ .setOwner(new Identity().setUser(job.getRole() + "-user"))
.setIsService(true)
.setNumCpus(1.0)
.setRamMb(1024)
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java b/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
index e4dbf06..6300e5f 100644
--- a/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
@@ -37,7 +37,6 @@ import org.apache.aurora.scheduler.base.JobKeys;
import org.apache.aurora.scheduler.base.UserProvidedStrings;
import org.apache.aurora.scheduler.storage.entities.IConstraint;
import org.apache.aurora.scheduler.storage.entities.IContainer;
-import org.apache.aurora.scheduler.storage.entities.IIdentity;
import org.apache.aurora.scheduler.storage.entities.IJobConfiguration;
import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
import org.apache.aurora.scheduler.storage.entities.ITaskConstraint;
@@ -113,28 +112,6 @@ public class ConfigurationManager {
this.defaultDockerParameters = Objects.requireNonNull(defaultDockerParameters);
}
- private static void requireNonNull(Object value, String error) throws TaskDescriptionException {
- if (value == null) {
- throw new TaskDescriptionException(error);
- }
- }
-
- private static void assertOwnerValidity(IIdentity jobOwner) throws TaskDescriptionException {
- requireNonNull(jobOwner, "No job owner specified!");
- requireNonNull(jobOwner.getRole(), "No job role specified!");
- requireNonNull(jobOwner.getUser(), "No job user specified!");
-
- if (!UserProvidedStrings.isGoodIdentifier(jobOwner.getRole())) {
- throw new TaskDescriptionException(
- "Job role contains illegal characters: " + jobOwner.getRole());
- }
-
- if (!UserProvidedStrings.isGoodIdentifier(jobOwner.getUser())) {
- throw new TaskDescriptionException(
- "Job user contains illegal characters: " + jobOwner.getUser());
- }
- }
-
private static String getRole(IValueConstraint constraint) {
return Iterables.getOnlyElement(constraint.getValues()).split("/")[0];
}
@@ -180,12 +157,9 @@ public class ConfigurationManager {
throw new TaskDescriptionException("Job key " + job.getKey() + " is invalid.");
}
- if (job.isSetOwner()) {
- assertOwnerValidity(job.getOwner());
-
- if (!job.getKey().getRole().equals(job.getOwner().getRole())) {
- throw new TaskDescriptionException("Role in job key must match job owner.");
- }
+ if (job.isSetOwner() && !UserProvidedStrings.isGoodIdentifier(job.getOwner().getUser())) {
+ throw new TaskDescriptionException(
+ "Job user contains illegal characters: " + job.getOwner().getUser());
}
builder.setTaskConfig(
@@ -219,39 +193,13 @@ public class ConfigurationManager {
maybeFillLinks(builder);
- if (!UserProvidedStrings.isGoodIdentifier(config.getJobName())) {
- throw new TaskDescriptionException(
- "Job name contains illegal characters: " + config.getJobName());
- }
-
- if (!UserProvidedStrings.isGoodIdentifier(config.getEnvironment())) {
- throw new TaskDescriptionException(
- "Environment contains illegal characters: " + config.getEnvironment());
- }
-
if (config.isSetTier() && !UserProvidedStrings.isGoodIdentifier(config.getTier())) {
throw new TaskDescriptionException("Tier contains illegal characters: " + config.getTier());
}
- if (config.isSetJob()) {
- if (!JobKeys.isValid(config.getJob())) {
- // Job key is set but invalid
- throw new TaskDescriptionException("Job key " + config.getJob() + " is invalid.");
- }
-
- if (!config.getJob().getRole().equals(config.getOwner().getRole())) {
- // Both owner and job key are set but don't match
- throw new TaskDescriptionException("Role must match job owner.");
- }
- } else {
- // TODO(maxim): Make sure both key and owner are populated to support older clients.
- // Remove in 0.7.0. (AURORA-749).
- // Job key is not set -> populate from owner, environment and name
- assertOwnerValidity(config.getOwner());
- builder.setJob(JobKeys.from(
- config.getOwner().getRole(),
- config.getEnvironment(),
- config.getJobName()).newBuilder());
+ if (!JobKeys.isValid(config.getJob())) {
+ // Job key is set but invalid
+ throw new TaskDescriptionException("Job key " + config.getJob() + " is invalid.");
}
if (!builder.isSetExecutorConfig()) {
@@ -276,7 +224,7 @@ public class ConfigurationManager {
}
String dedicatedRole = getRole(valueConstraint);
- if (!config.getOwner().getRole().equals(dedicatedRole)) {
+ if (!config.getJob().getRole().equals(dedicatedRole)) {
throw new TaskDescriptionException(
"Only " + dedicatedRole + " may use hosts dedicated for that role.");
}
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbTaskConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbTaskConfig.java b/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbTaskConfig.java
index 16f2cb1..eb848ad 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbTaskConfig.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbTaskConfig.java
@@ -32,8 +32,6 @@ public final class DbTaskConfig {
private long rowId;
private JobKey job;
private Identity owner;
- private String environment;
- private String jobName;
private boolean isService;
private double numCpus;
private long ramMb;
@@ -61,8 +59,6 @@ public final class DbTaskConfig {
return new TaskConfig()
.setJob(job)
.setOwner(owner)
- .setEnvironment(environment)
- .setJobName(jobName)
.setIsService(isService)
.setNumCpus(numCpus)
.setRamMb(ramMb)
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
index de16f2e..243c8a0 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
@@ -62,13 +62,16 @@ import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
import org.apache.aurora.scheduler.storage.Storage.NonVolatileStorage;
import org.apache.aurora.scheduler.storage.TaskStore;
import org.apache.aurora.scheduler.storage.entities.IHostAttributes;
+import org.apache.aurora.scheduler.storage.entities.IJobConfiguration;
import org.apache.aurora.scheduler.storage.entities.IJobInstanceUpdateEvent;
import org.apache.aurora.scheduler.storage.entities.IJobKey;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdate;
import org.apache.aurora.scheduler.storage.entities.IJobUpdateEvent;
import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
import org.apache.aurora.scheduler.storage.entities.ILock;
import org.apache.aurora.scheduler.storage.entities.ILockKey;
import org.apache.aurora.scheduler.storage.entities.IResourceAggregate;
+import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -327,7 +330,7 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
.put(Op._Fields.SAVE_CRON_JOB, op -> {
SaveCronJob cronJob = op.getSaveCronJob();
writeBehindJobStore.saveAcceptedJob(
- ThriftBackfill.backFillJobConfiguration(cronJob.getJobConfig()));
+ IJobConfiguration.build(cronJob.getJobConfig()));
})
.put(
Op._Fields.REMOVE_JOB,
@@ -335,7 +338,7 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
.put(
Op._Fields.SAVE_TASKS,
op -> writeBehindTaskStore.saveTasks(
- ThriftBackfill.backFillScheduledTasks(op.getSaveTasks().getTasks())))
+ IScheduledTask.setFromBuilders(op.getSaveTasks().getTasks())))
.put(Op._Fields.REWRITE_TASK, op -> {
RewriteTask rewriteTask = op.getRewriteTask();
writeBehindTaskStore.unsafeModifyInPlace(
@@ -374,7 +377,7 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
.put(Op._Fields.SAVE_JOB_UPDATE, op -> {
JobUpdate update = op.getSaveJobUpdate().getJobUpdate();
writeBehindJobUpdateStore.saveJobUpdate(
- ThriftBackfill.backFillJobUpdate(update),
+ IJobUpdate.build(update),
Optional.fromNullable(op.getSaveJobUpdate().getLockToken()));
})
.put(Op._Fields.SAVE_JOB_UPDATE_EVENT, op -> {
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
index 08ea04e..db90150 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
@@ -45,6 +45,7 @@ import org.apache.aurora.scheduler.storage.Storage.Volatile;
import org.apache.aurora.scheduler.storage.entities.IHostAttributes;
import org.apache.aurora.scheduler.storage.entities.IJobConfiguration;
import org.apache.aurora.scheduler.storage.entities.IJobInstanceUpdateEvent;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdate;
import org.apache.aurora.scheduler.storage.entities.IJobUpdateEvent;
import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
import org.apache.aurora.scheduler.storage.entities.ILock;
@@ -121,7 +122,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
if (snapshot.isSetTasks()) {
store.getUnsafeTaskStore().saveTasks(
- ThriftBackfill.backFillScheduledTasks(snapshot.getTasks()));
+ IScheduledTask.setFromBuilders(snapshot.getTasks()));
}
}
},
@@ -143,7 +144,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
if (snapshot.isSetCronJobs()) {
for (StoredCronJob job : snapshot.getCronJobs()) {
store.getCronJobStore().saveAcceptedJob(
- ThriftBackfill.backFillJobConfiguration(job.getJobConfiguration()));
+ IJobConfiguration.build(job.getJobConfiguration()));
}
}
}
@@ -205,7 +206,7 @@ public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
for (StoredJobUpdateDetails storedDetails : snapshot.getJobUpdateDetails()) {
JobUpdateDetails details = storedDetails.getDetails();
updateStore.saveJobUpdate(
- ThriftBackfill.backFillJobUpdate(details.getUpdate()),
+ IJobUpdate.build(details.getUpdate()),
Optional.fromNullable(storedDetails.getLockToken()));
if (details.getUpdateEventsSize() > 0) {
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/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
deleted file mode 100644
index 6b19795..0000000
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/ThriftBackfill.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.aurora.scheduler.storage.log;
-
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.apache.aurora.gen.InstanceTaskConfig;
-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.storage.entities.IJobConfiguration;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdate;
-import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
-
-/**
- * Populates deprecated fields to ensure backwards compatibility between scheduler releases.
- * See AURORA-1603 for more details.
- */
-final class ThriftBackfill {
-
- private ThriftBackfill() {
- // Utility class.
- }
-
- static Set<IScheduledTask> backFillScheduledTasks(Set<ScheduledTask> tasks) {
- tasks.stream().forEach(t -> backFillTaskConfig(t.getAssignedTask().getTask()));
- return tasks.stream().map(t -> IScheduledTask.build(t)).collect(Collectors.toSet());
- }
-
- static IJobConfiguration backFillJobConfiguration(JobConfiguration jobConfiguration) {
- backFillTaskConfig(jobConfiguration.getTaskConfig());
- jobConfiguration.getOwner().setRole(jobConfiguration.getKey().getRole());
- return IJobConfiguration.build(jobConfiguration);
- }
-
- static IJobUpdate backFillJobUpdate(JobUpdate update) {
- JobUpdateInstructions instructions = update.getInstructions();
- if (instructions.isSetDesiredState()) {
- backFillTaskConfig(instructions.getDesiredState().getTask());
- }
-
- for (InstanceTaskConfig instanceConfig : instructions.getInitialState()) {
- backFillTaskConfig(instanceConfig.getTask());
- }
-
- return IJobUpdate.build(update);
- }
-
- private static TaskConfig backFillTaskConfig(TaskConfig task) {
- task.setJobName(task.getJob().getName()).setEnvironment(task.getJob().getEnvironment());
- if (task.isSetOwner()) {
- task.getOwner().setRole(task.getJob().getRole());
- }
-
- return task;
- }
-}
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/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 6767024..d217faf 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
@@ -23,7 +23,6 @@ import javax.inject.Inject;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ContiguousSet;
import com.google.common.collect.DiscreteDomain;
import com.google.common.collect.FluentIterable;
@@ -453,9 +452,6 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
}
query = implicitKillQuery(Query.arbitrary(mutableQuery));
- Preconditions.checkState(
- !mutableQuery.isSetOwner(),
- "The owner field in a query should have been unset by Query.Builder.");
}
return storage.write(storeProvider -> {
@@ -919,12 +915,6 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
public Response startJobUpdate(JobUpdateRequest mutableRequest, @Nullable String message) {
requireNonNull(mutableRequest);
- // TODO(maxim): Switch to key field instead when AURORA-749 is fixed.
- IJobKey job = JobKeys.assertValid(IJobKey.build(new JobKey()
- .setRole(mutableRequest.getTaskConfig().getOwner().getRole())
- .setEnvironment(mutableRequest.getTaskConfig().getEnvironment())
- .setName(mutableRequest.getTaskConfig().getJobName())));
-
if (!mutableRequest.getTaskConfig().isIsService()) {
return invalidRequest(NON_SERVICE_TASK);
}
@@ -965,6 +955,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
}
return storage.write(storeProvider -> {
+ IJobKey job = request.getTaskConfig().getJob();
if (getCronJob(storeProvider, job).isPresent()) {
return invalidRequest(NO_CRON);
}
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/python/apache/aurora/admin/admin.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/admin/admin.py b/src/main/python/apache/aurora/admin/admin.py
index 6ecb5cb..62a2302 100644
--- a/src/main/python/apache/aurora/admin/admin.py
+++ b/src/main/python/apache/aurora/admin/admin.py
@@ -85,7 +85,7 @@ def make_admin_client(cluster):
@app.command_option('--states', dest='states', default='RUNNING',
help='Only match tasks with given state(s).')
@app.command_option('-l', '--listformat', dest='listformat',
- default="%role%/%jobName%/%instanceId% %status%",
+ default="%role%/%name%/%instanceId% %status%",
help='Format string of job/task items to print out.')
# TODO(ksweeney): Allow query by environment here.
def query(args, options):
@@ -279,8 +279,8 @@ def scheduler_print_recovery_tasks(cluster):
for task in resp.result.queryRecoveryResult.tasks:
assigned = task.assignedTask
conf = assigned.task
- log.info('\t'.join((conf.job.role if conf.job else conf.owner.role,
- conf.job.name if conf.job else conf.jobName,
+ log.info('\t'.join((conf.job.role,
+ conf.job.name,
str(assigned.instanceId),
ScheduleStatus._VALUES_TO_NAMES[task.status],
assigned.taskId)))
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/python/apache/aurora/client/api/sla.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/api/sla.py b/src/main/python/apache/aurora/client/api/sla.py
index 5855685..e282ec9 100644
--- a/src/main/python/apache/aurora/client/api/sla.py
+++ b/src/main/python/apache/aurora/client/api/sla.py
@@ -35,9 +35,9 @@ def job_key_from_scheduled(task, cluster):
config = task.assignedTask.task
return AuroraJobKey(
cluster=cluster.name,
- role=config.job.role if config.job else config.owner.role,
- env=config.job.environment if config.job else config.environment,
- name=config.job.name if config.job else config.jobName
+ role=config.job.role,
+ env=config.job.environment,
+ name=config.job.name
)
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/python/apache/aurora/client/cli/jobs.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/cli/jobs.py b/src/main/python/apache/aurora/client/cli/jobs.py
index deba3a9..67ab4f0 100644
--- a/src/main/python/apache/aurora/client/cli/jobs.py
+++ b/src/main/python/apache/aurora/client/cli/jobs.py
@@ -650,9 +650,9 @@ class StatusCommand(Verb):
task_info = assigned_task.task
task_strings = []
task_strings.append("\tTask role: %s, env: %s, name: %s, instance: %s, status: %s on %s" %
- (task_info.job.role if task_info.job else task_info.owner.role,
- task_info.job.environment if task_info.job else task_info.environment,
- task_info.job.name if task_info.job else task_info.jobName,
+ (task_info.job.role,
+ task_info.job.environment,
+ task_info.job.name,
assigned_task.instanceId,
ScheduleStatus._VALUES_TO_NAMES[scheduled_task.status],
assigned_task.slaveHost))
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/python/apache/aurora/client/cli/task.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/cli/task.py b/src/main/python/apache/aurora/client/cli/task.py
index b722cd8..a8a4edc 100644
--- a/src/main/python/apache/aurora/client/cli/task.py
+++ b/src/main/python/apache/aurora/client/cli/task.py
@@ -124,7 +124,7 @@ class SshCommand(Verb):
ssh_command = ['ssh', '-t']
ssh_command += context.options.ssh_options if context.options.ssh_options else []
assigned = first_task.assignedTask
- role = assigned.task.job.role if assigned.task.job else assigned.task.owner.role
+ role = assigned.task.job.role
slave_host = assigned.slaveHost
for tunnel in context.options.tunnels:
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/python/apache/aurora/config/thrift.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/config/thrift.py b/src/main/python/apache/aurora/config/thrift.py
index b40a7fd..be0cd68 100644
--- a/src/main/python/apache/aurora/config/thrift.py
+++ b/src/main/python/apache/aurora/config/thrift.py
@@ -176,7 +176,7 @@ THERMOS_TASK_ID_REF = Ref.from_address('thermos.task_id')
def convert(job, metadata=frozenset(), ports=frozenset()):
"""Convert a Pystachio MesosJob to an Aurora Thrift JobConfiguration."""
- owner = Identity(role=fully_interpolated(job.role()), user=getpass.getuser())
+ owner = Identity(user=getpass.getuser())
key = JobKey(
role=assert_valid_field('role', fully_interpolated(job.role())),
environment=assert_valid_field('environment', fully_interpolated(job.environment())),
@@ -191,8 +191,6 @@ def convert(job, metadata=frozenset(), ports=frozenset()):
return default if item is Empty else fully_interpolated(item)
# job components
- task.jobName = fully_interpolated(job.name())
- task.environment = fully_interpolated(job.environment())
task.production = fully_interpolated(job.production(), bool)
task.isService = select_service_bit(job)
task.maxTaskFailures = fully_interpolated(job.max_task_failures())
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/python/apache/aurora/executor/common/announcer.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/executor/common/announcer.py b/src/main/python/apache/aurora/executor/common/announcer.py
index c89cf4c..34e36e0 100644
--- a/src/main/python/apache/aurora/executor/common/announcer.py
+++ b/src/main/python/apache/aurora/executor/common/announcer.py
@@ -121,10 +121,7 @@ class DefaultAnnouncerCheckerProvider(AnnouncerCheckerProvider):
def make_zk_path(self, assigned_task):
config = assigned_task.task
- role, environment, name = (
- config.job.role if config.job else config.owner.role,
- config.job.environment if config.job else config.environment,
- config.job.name if config.job else config.jobName)
+ role, environment, name = (config.job.role, config.job.environment, config.job.name)
return posixpath.join(self.__root, role, environment, name)
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/python/apache/aurora/executor/common/sandbox.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/executor/common/sandbox.py b/src/main/python/apache/aurora/executor/common/sandbox.py
index d4c366e..4780232 100644
--- a/src/main/python/apache/aurora/executor/common/sandbox.py
+++ b/src/main/python/apache/aurora/executor/common/sandbox.py
@@ -51,7 +51,7 @@ class SandboxInterface(Interface):
class SandboxProvider(Interface):
def _get_sandbox_user(self, assigned_task):
- return assigned_task.task.job.role if assigned_task.task.job else assigned_task.task.owner.role
+ return assigned_task.task.job.role
@abstractmethod
def from_assigned_task(self, assigned_task):
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/resources/org/apache/aurora/scheduler/storage/db/CronJobMapper.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/aurora/scheduler/storage/db/CronJobMapper.xml b/src/main/resources/org/apache/aurora/scheduler/storage/db/CronJobMapper.xml
index ee603f4..1434f45 100644
--- a/src/main/resources/org/apache/aurora/scheduler/storage/db/CronJobMapper.xml
+++ b/src/main/resources/org/apache/aurora/scheduler/storage/db/CronJobMapper.xml
@@ -65,7 +65,6 @@
type="org.apache.aurora.scheduler.storage.db.views.DbJobConfiguration">
<id column="c_id" />
- <result property="owner.role" column="j_role"/>
<result property="owner.user" column="creator_user"/>
<result
property="cronCollisionPolicy"
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.xml b/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.xml
index 4e8966d..b1394cf 100644
--- a/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.xml
+++ b/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.xml
@@ -128,9 +128,6 @@
<resultMap id="taskConfigMap" type="org.apache.aurora.scheduler.storage.db.views.DbTaskConfig">
<id column="id" property="rowId" />
- <result column="j_role" property="owner.role"/>
- <result column="j_environment" property="environment"/>
- <result column="j_name" property="jobName"/>
<result column="creator_user" property="owner.user"/>
<result column="executor_name" property="executorConfig.name"/>
<result column="executor_data" property="executorConfig.data"/>
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskMapper.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskMapper.xml b/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskMapper.xml
index b9615e1..ea469cc 100644
--- a/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskMapper.xml
+++ b/src/main/resources/org/apache/aurora/scheduler/storage/db/TaskMapper.xml
@@ -120,9 +120,6 @@
<if test="role != null">
j.role = #{role}
</if>
- <if test="owner != null and owner.role != null">
- AND j.role = #{owner.role}
- </if>
<if test="environment != null">
AND j.environment = #{environment}
</if>
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/resources/scheduler/assets/js/controllers.js
----------------------------------------------------------------------
diff --git a/src/main/resources/scheduler/assets/js/controllers.js b/src/main/resources/scheduler/assets/js/controllers.js
index dff6645..84417eb 100644
--- a/src/main/resources/scheduler/assets/js/controllers.js
+++ b/src/main/resources/scheduler/assets/js/controllers.js
@@ -133,7 +133,7 @@
return {
role: $scope.role, // required for roleEnvLink directive
environment: summary.job.key.environment,
- jobName: summary.job.taskConfig.jobName,
+ jobName: summary.job.key.name,
jobType: getJobType(summary.job),
isProduction: summary.job.taskConfig.production ? 'yes' : '',
pendingTasks: summary.stats.pendingTaskCount,
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/main/resources/scheduler/assets/js/services.js
----------------------------------------------------------------------
diff --git a/src/main/resources/scheduler/assets/js/services.js b/src/main/resources/scheduler/assets/js/services.js
index f9e8580..d9ce520 100644
--- a/src/main/resources/scheduler/assets/js/services.js
+++ b/src/main/resources/scheduler/assets/js/services.js
@@ -17,7 +17,6 @@
ACTIVE_STATES:false,
ACTIVE_JOB_UPDATE_STATES: false,
CronCollisionPolicy: false,
- Identity:false,
JobKey: false,
JobUpdateQuery:false,
JobUpdateAction:false,
@@ -29,10 +28,8 @@
'use strict';
function makeJobTaskQuery(role, environment, jobName, instance) {
- var id = new Identity();
- id.role = role;
var taskQuery = new TaskQuery();
- taskQuery.owner = id;
+ taskQuery.role = role;
taskQuery.environment = environment;
taskQuery.jobName = jobName;
@@ -88,23 +85,6 @@
});
},
- getTasks: function (role, environment, jobName) {
- var id = new Identity();
- id.role = role;
- var taskQuery = new TaskQuery();
- taskQuery.owner = id;
- taskQuery.environment = environment;
- taskQuery.jobName = jobName;
- return async(function (deferred) {
- auroraClient.getSchedulerClient().getTasksStatus(taskQuery, function (response) {
- var result = auroraClient.processResponse(response);
- result.tasks = response.result !== null ?
- response.result.scheduleStatusResult.tasks : [];
- deferred.resolve(result);
- });
- });
- },
-
getTasksWithoutConfigs: function (role, environment, jobName, instance) {
var query = makeJobTaskQuery(role, environment, jobName, instance);
@@ -511,7 +491,7 @@
var job = summary.job;
return job.cronSchedule !== null &&
job.key.environment === env &&
- job.taskConfig.jobName === jobName;
+ job.key.name === jobName;
})
.map(function (summary) {
var collisionPolicy =
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java b/src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java
index 317506e..d2789d0 100644
--- a/src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java
@@ -13,9 +13,9 @@
*/
package org.apache.aurora.scheduler.configuration;
-import java.util.Arrays;
import java.util.List;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSet;
@@ -23,7 +23,6 @@ import com.google.common.collect.ImmutableSet;
import org.apache.aurora.gen.Constraint;
import org.apache.aurora.gen.Container;
import org.apache.aurora.gen.CronCollisionPolicy;
-import org.apache.aurora.gen.DockerContainer;
import org.apache.aurora.gen.DockerParameter;
import org.apache.aurora.gen.ExecutorConfig;
import org.apache.aurora.gen.Identity;
@@ -33,6 +32,8 @@ import org.apache.aurora.gen.LimitConstraint;
import org.apache.aurora.gen.TaskConfig;
import org.apache.aurora.gen.TaskConstraint;
import org.apache.aurora.gen.ValueConstraint;
+import org.apache.aurora.scheduler.base.JobKeys;
+import org.apache.aurora.scheduler.base.TaskTestUtil;
import org.apache.aurora.scheduler.configuration.ConfigurationManager.TaskDescriptionException;
import org.apache.aurora.scheduler.storage.entities.IDockerParameter;
import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
@@ -69,9 +70,7 @@ public class ConfigurationManagerTest {
.setIsService(false)
.setTaskLinks(ImmutableMap.of())
.setExecutorConfig(new ExecutorConfig("aurora", "config"))
- .setEnvironment("devel")
.setRequestedPorts(ImmutableSet.of())
- .setJobName(null)
.setPriority(0)
.setOwner(null)
.setContactEmail("foo@twitter.com")
@@ -97,19 +96,9 @@ public class ConfigurationManagerTest {
.setName(DEDICATED_ATTRIBUTE)
.setConstraint(TaskConstraint.value(new ValueConstraint(
false, ImmutableSet.of("foo"))))))
- .setOwner(new Identity()
- .setRole("owner-role")
- .setUser("owner-user")));
- private static final TaskConfig CONFIG_WITH_CONTAINER = ITaskConfig.build(new TaskConfig()
- .setJobName("container-test")
- .setEnvironment("devel")
- .setExecutorConfig(new ExecutorConfig())
- .setOwner(new Identity("role", "user"))
- .setNumCpus(1)
- .setRamMb(1)
- .setDiskMb(1)
- .setContainer(Container.docker(new DockerContainer("testimage"))))
- .newBuilder();
+ .setOwner(new Identity().setUser("owner-user")));
+ private static final ITaskConfig CONFIG_WITH_CONTAINER =
+ TaskTestUtil.makeConfig(JobKeys.from("role", "env", "job"));
private ConfigurationManager configurationManager;
private ConfigurationManager dockerConfigurationManager;
@@ -135,7 +124,7 @@ public class ConfigurationManagerTest {
@Test
public void testBadContainerConfig() throws TaskDescriptionException {
- TaskConfig taskConfig = CONFIG_WITH_CONTAINER.deepCopy();
+ TaskConfig taskConfig = CONFIG_WITH_CONTAINER.newBuilder();
taskConfig.getContainer().getDocker().setImage(null);
expectTaskDescriptionException("A container must specify an image");
@@ -144,7 +133,7 @@ public class ConfigurationManagerTest {
@Test
public void testDisallowedDockerParameters() throws TaskDescriptionException {
- TaskConfig taskConfig = CONFIG_WITH_CONTAINER.deepCopy();
+ TaskConfig taskConfig = CONFIG_WITH_CONTAINER.newBuilder();
taskConfig.getContainer().getDocker().addToParameters(new DockerParameter("foo", "bar"));
ConfigurationManager noParamsManager = new ConfigurationManager(
@@ -157,8 +146,6 @@ public class ConfigurationManagerTest {
@Test
public void testInvalidTier() throws TaskDescriptionException {
ITaskConfig config = ITaskConfig.build(UNSANITIZED_JOB_CONFIGURATION.deepCopy().getTaskConfig()
- .setJobName("job")
- .setEnvironment("env")
.setTier("pr/d"));
expectTaskDescriptionException("Tier contains illegal characters");
@@ -167,18 +154,20 @@ public class ConfigurationManagerTest {
@Test
public void testDefaultDockerParameters() throws TaskDescriptionException {
- ITaskConfig result = dockerConfigurationManager.validateAndPopulate(
- ITaskConfig.build(CONFIG_WITH_CONTAINER.deepCopy()));
+ TaskConfig builder = CONFIG_WITH_CONTAINER.newBuilder();
+ builder.getContainer().getDocker().setParameters(ImmutableList.of());
+
+ ITaskConfig result = dockerConfigurationManager.validateAndPopulate(ITaskConfig.build(builder));
// The resulting task config should contain parameters supplied to the ConfigurationManager.
List<IDockerParameter> params = result.getContainer().getDocker().getParameters();
assertThat(
- params, is(Arrays.asList(IDockerParameter.build(new DockerParameter("foo", "bar")))));
+ params, is(ImmutableList.of(IDockerParameter.build(new DockerParameter("foo", "bar")))));
}
@Test
public void testPassthroughDockerParameters() throws TaskDescriptionException {
- TaskConfig taskConfig = CONFIG_WITH_CONTAINER.deepCopy();
+ TaskConfig taskConfig = CONFIG_WITH_CONTAINER.newBuilder();
DockerParameter userParameter = new DockerParameter("bar", "baz");
taskConfig.getContainer().getDocker().getParameters().clear();
taskConfig.getContainer().getDocker().addToParameters(userParameter);
@@ -188,8 +177,7 @@ public class ConfigurationManagerTest {
// The resulting task config should contain parameters supplied from user config.
List<IDockerParameter> params = result.getContainer().getDocker().getParameters();
- assertThat(
- params, is(Arrays.asList(IDockerParameter.build(userParameter))));
+ assertThat(params, is(ImmutableList.of(IDockerParameter.build(userParameter))));
}
private void expectTaskDescriptionException(String message) {
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronIT.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronIT.java b/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronIT.java
index 3ce78e3..469b53b 100644
--- a/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronIT.java
+++ b/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronIT.java
@@ -57,9 +57,7 @@ public class CronIT extends EasyMockTest {
public static final CrontabEntry CRONTAB_ENTRY = CrontabEntry.parse("* * * * *");
private static final IJobKey JOB_KEY = JobKeys.from("roll", "b", "c");
- private static final Identity IDENTITY = new Identity()
- .setRole(JOB_KEY.getRole())
- .setUser("user");
+ private static final Identity IDENTITY = new Identity().setUser("user");
private static final IJobConfiguration CRON_JOB = IJobConfiguration.build(
new JobConfiguration()
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/cron/quartz/QuartzTestUtil.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/cron/quartz/QuartzTestUtil.java b/src/test/java/org/apache/aurora/scheduler/cron/quartz/QuartzTestUtil.java
index ef9aae1..3c5ecd6 100644
--- a/src/test/java/org/apache/aurora/scheduler/cron/quartz/QuartzTestUtil.java
+++ b/src/test/java/org/apache/aurora/scheduler/cron/quartz/QuartzTestUtil.java
@@ -38,7 +38,7 @@ final class QuartzTestUtil {
new JobConfiguration()
.setCronSchedule("* * * * SUN")
.setInstanceCount(10)
- .setOwner(new Identity("role", "user"))
+ .setOwner(new Identity().setUser("user"))
.setKey(AURORA_JOB_KEY.newBuilder())
.setTaskConfig(TaskTestUtil.makeConfig(AURORA_JOB_KEY)
.newBuilder()
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
index ef20641..b6f5e46 100644
--- a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
@@ -13,7 +13,6 @@
*/
package org.apache.aurora.scheduler.preemptor;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -21,13 +20,13 @@ import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
import org.apache.aurora.common.quantity.Amount;
import org.apache.aurora.common.quantity.Data;
import org.apache.aurora.common.testing.easymock.EasyMockTest;
import org.apache.aurora.gen.AssignedTask;
import org.apache.aurora.gen.Attribute;
-import org.apache.aurora.gen.Constraint;
import org.apache.aurora.gen.HostAttributes;
import org.apache.aurora.gen.JobKey;
import org.apache.aurora.gen.ScheduleStatus;
@@ -550,9 +549,7 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
.setJob(new JobKey(role, env, job))
.setPriority(priority)
.setProduction(production)
- .setJobName(job)
- .setEnvironment(env)
- .setConstraints(new HashSet<Constraint>()));
+ .setConstraints(Sets.newHashSet()));
return new ScheduledTask().setAssignedTask(assignedTask);
}
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java
index 22a6b43..c316e49 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java
@@ -138,7 +138,7 @@ public abstract class AbstractCronJobStoreTest {
IJobConfiguration.build(
new JobConfiguration()
.setKey(job.newBuilder())
- .setOwner(new Identity(job.getRole(), "user"))
+ .setOwner(new Identity().setUser("user"))
.setCronSchedule("schedule")
.setCronCollisionPolicy(CronCollisionPolicy.CANCEL_NEW)
.setTaskConfig(config.newBuilder())
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/storage/log/LogManagerTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/log/LogManagerTest.java b/src/test/java/org/apache/aurora/scheduler/storage/log/LogManagerTest.java
index 0443bb3..0256c06 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/log/LogManagerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/log/LogManagerTest.java
@@ -39,9 +39,7 @@ import org.apache.aurora.common.testing.easymock.EasyMockTest;
import org.apache.aurora.gen.AssignedTask;
import org.apache.aurora.gen.Attribute;
import org.apache.aurora.gen.HostAttributes;
-import org.apache.aurora.gen.ScheduleStatus;
import org.apache.aurora.gen.ScheduledTask;
-import org.apache.aurora.gen.TaskConfig;
import org.apache.aurora.gen.storage.DeduplicatedSnapshot;
import org.apache.aurora.gen.storage.Frame;
import org.apache.aurora.gen.storage.FrameChunk;
@@ -56,6 +54,7 @@ import org.apache.aurora.gen.storage.Snapshot;
import org.apache.aurora.gen.storage.Transaction;
import org.apache.aurora.gen.storage.storageConstants;
import org.apache.aurora.scheduler.base.JobKeys;
+import org.apache.aurora.scheduler.base.TaskTestUtil;
import org.apache.aurora.scheduler.log.Log.Entry;
import org.apache.aurora.scheduler.log.Log.Position;
import org.apache.aurora.scheduler.log.Log.Stream;
@@ -514,10 +513,7 @@ public class LogManagerTest extends EasyMockTest {
.setTimestamp(1L)
.setHostAttributes(ImmutableSet.of(new HostAttributes("host",
ImmutableSet.of(new Attribute("hostname", ImmutableSet.of("abc"))))))
- .setTasks(ImmutableSet.of(
- new ScheduledTask().setStatus(ScheduleStatus.RUNNING)
- .setAssignedTask(new AssignedTask().setTaskId("task_id")
- .setTask(new TaskConfig().setJobName("job_name")))));
+ .setTasks(ImmutableSet.of(TaskTestUtil.makeTask("task_id", TaskTestUtil.JOB).newBuilder()));
}
private SaveTasks createSaveTasks(String... taskIds) {
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/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 7203233..7382eca 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
@@ -24,7 +24,6 @@ import com.google.common.base.Functions;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
@@ -38,7 +37,6 @@ import org.apache.aurora.common.testing.easymock.EasyMockTest;
import org.apache.aurora.gen.AssignedTask;
import org.apache.aurora.gen.Attribute;
import org.apache.aurora.gen.HostAttributes;
-import org.apache.aurora.gen.Identity;
import org.apache.aurora.gen.InstanceTaskConfig;
import org.apache.aurora.gen.JobConfiguration;
import org.apache.aurora.gen.JobInstanceUpdateEvent;
@@ -123,7 +121,6 @@ import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.notNull;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public class LogStorageTest extends EasyMockTest {
@@ -277,33 +274,17 @@ public class LogStorageTest extends EasyMockTest {
builder.add(createTransaction(Op.saveFrameworkId(new SaveFrameworkId("bob"))));
storageUtil.schedulerStore.saveFrameworkId("bob");
- TaskConfig task = new TaskConfig()
- .setJob(JOB_KEY.newBuilder())
- .setOwner(new Identity(null, "user"));
- TaskConfig backfilledTask = new TaskConfig(task)
- .setJobName(JOB_KEY.getName())
- .setEnvironment(JOB_KEY.getEnvironment());
- backfilledTask.getOwner().setRole(JOB_KEY.getRole());
-
- 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));
+ SaveCronJob cronJob = new SaveCronJob().setJobConfig(new JobConfiguration());
+ builder.add(createTransaction(Op.saveCronJob(cronJob)));
+ storageUtil.jobStore.saveAcceptedJob(IJobConfiguration.build(cronJob.getJobConfig()));
RemoveJob removeJob = new RemoveJob(JOB_KEY.newBuilder());
builder.add(createTransaction(Op.removeJob(removeJob)));
storageUtil.jobStore.removeJob(JOB_KEY);
- builder.add(createTransaction(Op.saveTasks(new SaveTasks(ImmutableSet.of(new ScheduledTask()
- .setAssignedTask(new AssignedTask().setTask(task)))))));
- storageUtil.taskStore.saveTasks(ImmutableSet.of(IScheduledTask.build(new ScheduledTask()
- .setAssignedTask(new AssignedTask().setTask(backfilledTask)))));
+ SaveTasks saveTasks = new SaveTasks(ImmutableSet.of(new ScheduledTask()));
+ builder.add(createTransaction(Op.saveTasks(saveTasks)));
+ storageUtil.taskStore.saveTasks(IScheduledTask.setFromBuilders(saveTasks.getTasks()));
RewriteTask rewriteTask = new RewriteTask("id1", new TaskConfig());
builder.add(createTransaction(Op.rewriteTask(rewriteTask)));
@@ -346,22 +327,12 @@ public class LogStorageTest extends EasyMockTest {
builder.add(createTransaction(Op.removeLock(removeLock)));
storageUtil.lockStore.removeLock(ILockKey.build(removeLock.getLockKey()));
- JobUpdate update = new JobUpdate()
- .setSummary(new JobUpdateSummary().setKey(UPDATE_ID.newBuilder()))
- .setInstructions(new JobUpdateInstructions()
- .setDesiredState(new InstanceTaskConfig().setTask(task))
- .setInitialState(ImmutableSet.of(new InstanceTaskConfig().setTask(task))));
- JobUpdate backfilledUpdate = new JobUpdate(update);
- backfilledUpdate.getInstructions()
- .setDesiredState(new InstanceTaskConfig().setTask(backfilledTask))
- .setInitialState(ImmutableSet.of(new InstanceTaskConfig().setTask(backfilledTask)));
+ JobUpdate update = new JobUpdate().setSummary(
+ new JobUpdateSummary().setKey(UPDATE_ID.newBuilder()));
SaveJobUpdate saveUpdate = new SaveJobUpdate(update, "token");
-
- assertNull(Iterables.getOnlyElement(
- saveUpdate.getJobUpdate().getInstructions().getInitialState()).getTask().getJobName());
builder.add(createTransaction(Op.saveJobUpdate(saveUpdate)));
storageUtil.jobUpdateStore.saveJobUpdate(
- IJobUpdate.build(backfilledUpdate),
+ IJobUpdate.build(saveUpdate.getJobUpdate()),
Optional.of(saveUpdate.getLockToken()));
SaveJobUpdateEvent saveUpdateEvent =
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/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 29a68bc..4407867 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
@@ -25,18 +25,14 @@ import com.google.common.collect.Maps;
import org.apache.aurora.common.testing.easymock.EasyMockTest;
import org.apache.aurora.common.util.testing.FakeBuildInfo;
import org.apache.aurora.common.util.testing.FakeClock;
-import org.apache.aurora.gen.AssignedTask;
import org.apache.aurora.gen.Attribute;
import org.apache.aurora.gen.HostAttributes;
-import org.apache.aurora.gen.Identity;
-import org.apache.aurora.gen.InstanceTaskConfig;
import org.apache.aurora.gen.JobConfiguration;
import org.apache.aurora.gen.JobInstanceUpdateEvent;
import org.apache.aurora.gen.JobKey;
import org.apache.aurora.gen.JobUpdate;
import org.apache.aurora.gen.JobUpdateDetails;
import org.apache.aurora.gen.JobUpdateEvent;
-import org.apache.aurora.gen.JobUpdateInstructions;
import org.apache.aurora.gen.JobUpdateKey;
import org.apache.aurora.gen.JobUpdateStatus;
import org.apache.aurora.gen.JobUpdateSummary;
@@ -44,7 +40,6 @@ import org.apache.aurora.gen.Lock;
import org.apache.aurora.gen.LockKey;
import org.apache.aurora.gen.ScheduleStatus;
import org.apache.aurora.gen.ScheduledTask;
-import org.apache.aurora.gen.TaskConfig;
import org.apache.aurora.gen.storage.QuotaConfiguration;
import org.apache.aurora.gen.storage.SchedulerMetadata;
import org.apache.aurora.gen.storage.Snapshot;
@@ -61,7 +56,6 @@ import org.apache.aurora.scheduler.storage.entities.IJobUpdateDetails;
import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
import org.apache.aurora.scheduler.storage.entities.ILock;
import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
-import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
import org.apache.aurora.scheduler.storage.testing.StorageTestUtil;
import org.junit.Before;
import org.junit.Test;
@@ -95,23 +89,8 @@ public class SnapshotStoreImplTest extends EasyMockTest {
@Test
public void testCreateAndRestoreNewSnapshot() {
- // Having immutable objects is important here to overcome m -> i -> m' problem with our wrappers
- // when some primitive fields are not set.
- ITaskConfig task = ITaskConfig.build(
- new TaskConfig().setJob(JOB_KEY).setOwner(new Identity(null, "user")));
- TaskConfig taskBuilder = new TaskConfig(task.newBuilder())
- .setJobName(JOB_KEY.getName())
- .setEnvironment(JOB_KEY.getEnvironment());
- taskBuilder.getOwner().setRole(JOB_KEY.getRole());
- ITaskConfig backfilledTask = ITaskConfig.build(taskBuilder);
-
- ImmutableSet<IScheduledTask> tasks = ImmutableSet.of(IScheduledTask.build(new ScheduledTask()
- .setAssignedTask(new AssignedTask().setTask(task.newBuilder()))
- .setStatus(ScheduleStatus.PENDING)));
- ImmutableSet<IScheduledTask> backFilledTasks = ImmutableSet.of(IScheduledTask.build(
- new ScheduledTask()
- .setAssignedTask(new AssignedTask().setTask(backfilledTask.newBuilder()))
- .setStatus(ScheduleStatus.PENDING)));
+ ImmutableSet<IScheduledTask> tasks = ImmutableSet.of(
+ IScheduledTask.build(new ScheduledTask().setStatus(ScheduleStatus.PENDING)));
Set<QuotaConfiguration> quotas =
ImmutableSet.of(
@@ -123,14 +102,8 @@ public class SnapshotStoreImplTest extends EasyMockTest {
// dropped.
IHostAttributes legacyAttribute = IHostAttributes.build(
new HostAttributes("host", ImmutableSet.of()));
- 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())
- .setOwner(new Identity(job.getJobConfiguration().getOwner()).setRole(JOB_KEY.getRole()))
- .setTaskConfig(backfilledTask.newBuilder()));
+ StoredCronJob job = new StoredCronJob(
+ new JobConfiguration().setKey(new JobKey("owner", "env", "name")));
String frameworkId = "framework_id";
ILock lock = ILock.build(new Lock()
.setKey(LockKey.job(JobKeys.from("testRole", "testEnv", "testJob").newBuilder()))
@@ -145,26 +118,14 @@ public class SnapshotStoreImplTest extends EasyMockTest {
IJobUpdateKey updateId1 = makeKey("updateId1");
IJobUpdateKey updateId2 = makeKey("updateId2");
IJobUpdateDetails updateDetails1 = IJobUpdateDetails.build(new JobUpdateDetails()
- .setUpdate(new JobUpdate()
- .setSummary(new JobUpdateSummary().setKey(updateId1.newBuilder()))
- .setInstructions(new JobUpdateInstructions()
- .setDesiredState(new InstanceTaskConfig().setTask(task.newBuilder()))
- .setInitialState(ImmutableSet.of(new InstanceTaskConfig().setTask(task.newBuilder()
- )))))
+ .setUpdate(new JobUpdate().setSummary(
+ new JobUpdateSummary().setKey(updateId1.newBuilder())))
.setUpdateEvents(ImmutableList.of(new JobUpdateEvent().setStatus(JobUpdateStatus.ERROR)))
.setInstanceEvents(ImmutableList.of(new JobInstanceUpdateEvent().setTimestampMs(123L))));
- // The saved object for update1 should be backfilled with TaskConfig fields.
- JobUpdateDetails backFilledDetails1 = new JobUpdateDetails(updateDetails1.newBuilder());
- backFilledDetails1.getUpdate().getInstructions().getDesiredState()
- .setTask(backfilledTask.newBuilder());
- Iterables.getOnlyElement(backFilledDetails1.getUpdate().getInstructions().getInitialState())
- .setTask(backfilledTask.newBuilder());
-
IJobUpdateDetails updateDetails2 = IJobUpdateDetails.build(new JobUpdateDetails()
- .setUpdate(new JobUpdate()
- .setSummary(new JobUpdateSummary().setKey(updateId2.newBuilder()))
- .setInstructions(new JobUpdateInstructions().setInitialState(ImmutableSet.of()))));
+ .setUpdate(new JobUpdate().setSummary(
+ new JobUpdateSummary().setKey(updateId2.newBuilder()))));
storageUtil.expectOperations();
expect(storageUtil.taskStore.fetchTasks(Query.unscoped())).andReturn(tasks);
@@ -183,14 +144,14 @@ public class SnapshotStoreImplTest extends EasyMockTest {
new StoredJobUpdateDetails(updateDetails2.newBuilder(), null)));
expectDataWipe();
- storageUtil.taskStore.saveTasks(backFilledTasks);
+ storageUtil.taskStore.saveTasks(tasks);
storageUtil.quotaStore.saveQuota("steve", ResourceAggregates.EMPTY);
expect(storageUtil.attributeStore.saveHostAttributes(attribute)).andReturn(true);
- storageUtil.jobStore.saveAcceptedJob(backFilledJob);
+ storageUtil.jobStore.saveAcceptedJob(IJobConfiguration.build(job.getJobConfiguration()));
storageUtil.schedulerStore.saveFrameworkId(frameworkId);
storageUtil.lockStore.saveLock(lock);
storageUtil.jobUpdateStore.saveJobUpdate(
- IJobUpdate.build(backFilledDetails1.getUpdate()), Optional.fromNullable(lockToken));
+ updateDetails1.getUpdate(), Optional.fromNullable(lockToken));
storageUtil.jobUpdateStore.saveJobUpdateEvent(
updateId1,
Iterables.getOnlyElement(updateDetails1.getUpdateEvents()));
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/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
deleted file mode 100644
index 467238d..0000000
--- a/src/test/java/org/apache/aurora/scheduler/storage/log/ThriftBackfillTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-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.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(JOB_KEY.newBuilder())
- .setOwner(new Identity(null, "user")));
-
- @Test
- public void testUpdateBackfill() {
- JobUpdate update = update();
- JobUpdate expected = update();
- populateTask(expected.getInstructions().getDesiredState().getTask());
- populateTask(Iterables.getOnlyElement(expected.getInstructions().getInitialState()).getTask());
- assertEquals(IJobUpdate.build(expected), ThriftBackfill.backFillJobUpdate(update));
- }
-
- @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);
- JobUpdate expected = update();
- expected.getInstructions().setDesiredState(null);
- populateTask(Iterables.getOnlyElement(expected.getInstructions().getInitialState()).getTask());
- assertEquals(IJobUpdate.build(expected), ThriftBackfill.backFillJobUpdate(update));
- }
-
- private static JobUpdate update() {
- return new JobUpdate().setInstructions(new JobUpdateInstructions()
- .setDesiredState(new InstanceTaskConfig().setTask(TASK.newBuilder()))
- .setInitialState(ImmutableSet.of(new InstanceTaskConfig().setTask(TASK.newBuilder()))));
- }
-
- private static TaskConfig populateTask(TaskConfig task) {
- task.setJobName("name").setEnvironment("env").getOwner().setRole("role");
- return task;
- }
-}
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java b/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
index e456056..be98f38 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
@@ -62,7 +62,7 @@ import static org.junit.Assert.assertEquals;
final class Fixtures {
static final String ROLE = "bar_role";
static final String USER = "foo_user";
- static final Identity ROLE_IDENTITY = new Identity(ROLE, USER);
+ static final Identity IDENTITY = new Identity().setUser(USER);
static final String JOB_NAME = "job_foo";
static final IJobKey JOB_KEY = JobKeys.from(ROLE, "devel", JOB_NAME);
static final ILockKey LOCK_KEY = ILockKey.build(LockKey.job(JOB_KEY.newBuilder()));
@@ -94,7 +94,7 @@ final class Fixtures {
static JobConfiguration makeJob(TaskConfig task, int shardCount) {
return new JobConfiguration()
- .setOwner(ROLE_IDENTITY)
+ .setOwner(IDENTITY)
.setInstanceCount(shardCount)
.setTaskConfig(task)
.setKey(JOB_KEY.newBuilder());
@@ -103,9 +103,7 @@ final class Fixtures {
static TaskConfig defaultTask(boolean production) {
return new TaskConfig()
.setJob(JOB_KEY.newBuilder())
- .setOwner(new Identity(ROLE, USER))
- .setEnvironment("devel")
- .setJobName(JOB_NAME)
+ .setOwner(IDENTITY)
.setContactEmail("testing@twitter.com")
.setExecutorConfig(new ExecutorConfig("aurora", "data"))
.setNumCpus(1)
http://git-wip-us.apache.org/repos/asf/aurora/blob/ec0f38a7/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
index 0428c77..3ba0342 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
@@ -98,11 +98,11 @@ import static org.apache.aurora.scheduler.base.Numbers.convertRanges;
import static org.apache.aurora.scheduler.base.Numbers.toRanges;
import static org.apache.aurora.scheduler.thrift.Fixtures.CRON_JOB;
import static org.apache.aurora.scheduler.thrift.Fixtures.CRON_SCHEDULE;
+import static org.apache.aurora.scheduler.thrift.Fixtures.IDENTITY;
import static org.apache.aurora.scheduler.thrift.Fixtures.JOB_KEY;
import static org.apache.aurora.scheduler.thrift.Fixtures.LOCK;
import static org.apache.aurora.scheduler.thrift.Fixtures.QUOTA;
import static org.apache.aurora.scheduler.thrift.Fixtures.ROLE;
-import static org.apache.aurora.scheduler.thrift.Fixtures.ROLE_IDENTITY;
import static org.apache.aurora.scheduler.thrift.Fixtures.UPDATE_KEY;
import static org.apache.aurora.scheduler.thrift.Fixtures.USER;
import static org.apache.aurora.scheduler.thrift.Fixtures.assertOkResponse;
@@ -148,27 +148,21 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
@Test
public void testGetJobSummary() throws Exception {
long nextCronRunMs = 100;
- TaskConfig ownedCronJobTask = nonProductionTask()
- .setJob(JOB_KEY.newBuilder())
- .setJobName(JOB_KEY.getName())
- .setOwner(ROLE_IDENTITY)
- .setEnvironment(JOB_KEY.getEnvironment());
+ TaskConfig ownedCronJobTask = nonProductionTask().setJob(JOB_KEY.newBuilder());
JobConfiguration ownedCronJob = makeJob()
.setCronSchedule(CRON_SCHEDULE)
.setTaskConfig(ownedCronJobTask);
IScheduledTask ownedCronJobScheduledTask = IScheduledTask.build(new ScheduledTask()
.setAssignedTask(new AssignedTask().setTask(ownedCronJobTask))
.setStatus(ScheduleStatus.ASSIGNED));
- Identity otherOwner = new Identity("other", "other");
+ Identity otherOwner = new Identity().setUser("other");
JobConfiguration unownedCronJob = makeJob()
.setOwner(otherOwner)
.setCronSchedule(CRON_SCHEDULE)
.setKey(JOB_KEY.newBuilder().setRole("other"))
.setTaskConfig(ownedCronJobTask.deepCopy().setOwner(otherOwner));
TaskConfig ownedImmediateTaskInfo = defaultTask(false)
- .setJob(JOB_KEY.newBuilder().setName("immediate"))
- .setJobName("immediate")
- .setOwner(ROLE_IDENTITY);
+ .setJob(JOB_KEY.newBuilder().setName("immediate"));
Set<JobConfiguration> ownedCronJobOnly = ImmutableSet.of(ownedCronJob);
Set<JobSummary> ownedCronJobSummaryOnly = ImmutableSet.of(
new JobSummary()
@@ -188,7 +182,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
.setStatus(ScheduleStatus.ASSIGNED));
JobConfiguration ownedImmediateJob = new JobConfiguration()
.setKey(JOB_KEY.newBuilder().setName("immediate"))
- .setOwner(ROLE_IDENTITY)
+ .setOwner(IDENTITY)
.setInstanceCount(1)
.setTaskConfig(ownedImmediateTaskInfo);
Builder query = Query.roleScoped(ROLE);
@@ -243,9 +237,8 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
String cronSchedule = "* * 31 2 *";
TaskConfig task = nonProductionTask()
- .setJobName(JOB_KEY.getName())
- .setOwner(ROLE_IDENTITY)
- .setEnvironment(JOB_KEY.getEnvironment());
+ .setJob(JOB_KEY.newBuilder())
+ .setOwner(IDENTITY);
JobConfiguration job = makeJob()
.setCronSchedule(cronSchedule)
.setTaskConfig(task);
@@ -393,15 +386,13 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
.setKey(jobKey2)
.setTaskConfig(nonProductionTask());
TaskConfig immediateTaskConfig = defaultTask(false)
- .setJob(JOB_KEY.newBuilder().setName("immediate"))
- .setJobName("immediate")
- .setOwner(ROLE_IDENTITY);
+ .setJob(JOB_KEY.newBuilder().setName("immediate"));
IScheduledTask immediateTask = IScheduledTask.build(new ScheduledTask()
.setAssignedTask(new AssignedTask().setTask(immediateTaskConfig))
.setStatus(ScheduleStatus.ASSIGNED));
JobConfiguration immediateJob = new JobConfiguration()
.setKey(JOB_KEY.newBuilder().setName("immediate"))
- .setOwner(ROLE_IDENTITY)
+ .setOwner(IDENTITY)
.setInstanceCount(1)
.setTaskConfig(immediateTaskConfig);
@@ -421,26 +412,21 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
@Test
public void testGetJobs() throws Exception {
- TaskConfig ownedCronJobTask = nonProductionTask()
- .setJobName(JOB_KEY.getName())
- .setOwner(ROLE_IDENTITY)
- .setEnvironment(JOB_KEY.getEnvironment());
+ TaskConfig ownedCronJobTask = nonProductionTask();
JobConfiguration ownedCronJob = makeJob()
.setCronSchedule(CRON_SCHEDULE)
.setTaskConfig(ownedCronJobTask);
IScheduledTask ownedCronJobScheduledTask = IScheduledTask.build(new ScheduledTask()
.setAssignedTask(new AssignedTask().setTask(ownedCronJobTask))
.setStatus(ScheduleStatus.ASSIGNED));
- Identity otherOwner = new Identity("other", "other");
+ Identity otherOwner = new Identity().setUser("other");
JobConfiguration unownedCronJob = makeJob()
.setOwner(otherOwner)
.setCronSchedule(CRON_SCHEDULE)
.setKey(JOB_KEY.newBuilder().setRole("other"))
.setTaskConfig(ownedCronJobTask.deepCopy().setOwner(otherOwner));
TaskConfig ownedImmediateTaskInfo = defaultTask(false)
- .setJob(JOB_KEY.newBuilder().setName("immediate"))
- .setJobName("immediate")
- .setOwner(ROLE_IDENTITY);
+ .setJob(JOB_KEY.newBuilder().setName("immediate"));
Set<JobConfiguration> ownedCronJobOnly = ImmutableSet.of(ownedCronJob);
Set<JobConfiguration> unownedCronJobOnly = ImmutableSet.of(unownedCronJob);
Set<JobConfiguration> bothCronJobs = ImmutableSet.of(ownedCronJob, unownedCronJob);
@@ -449,7 +435,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
.setStatus(ScheduleStatus.ASSIGNED));
JobConfiguration ownedImmediateJob = new JobConfiguration()
.setKey(JOB_KEY.newBuilder().setName("immediate"))
- .setOwner(ROLE_IDENTITY)
+ .setOwner(IDENTITY)
.setInstanceCount(1)
.setTaskConfig(ownedImmediateTaskInfo);
Query.Builder query = Query.roleScoped(ROLE).active();
@@ -649,8 +635,8 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
@Test
public void testGetRoleSummary() throws Exception {
- final String BAZ_ROLE = "baz_role";
- final Identity BAZ_ROLE_IDENTITY = new Identity(BAZ_ROLE, USER);
+ String bazRole = "baz_role";
+ Identity bazRoleIdentity = new Identity().setUser(USER);
JobConfiguration cronJobOne = makeJob()
.setCronSchedule("1 * * * *")
@@ -663,32 +649,28 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
JobConfiguration cronJobThree = makeJob()
.setCronSchedule("3 * * * *")
- .setKey(JOB_KEY.newBuilder().setRole(BAZ_ROLE))
+ .setKey(JOB_KEY.newBuilder().setRole(bazRole))
.setTaskConfig(nonProductionTask())
- .setOwner(BAZ_ROLE_IDENTITY);
+ .setOwner(bazRoleIdentity);
Set<JobConfiguration> crons = ImmutableSet.of(cronJobOne, cronJobTwo, cronJobThree);
TaskConfig immediateTaskConfig = defaultTask(false)
- .setJob(JOB_KEY.newBuilder().setName("immediate"))
- .setJobName("immediate")
- .setOwner(ROLE_IDENTITY);
+ .setJob(JOB_KEY.newBuilder().setName("immediate"));
IScheduledTask task1 = IScheduledTask.build(new ScheduledTask()
.setAssignedTask(new AssignedTask().setTask(immediateTaskConfig)));
IScheduledTask task2 = IScheduledTask.build(new ScheduledTask()
.setAssignedTask(new AssignedTask().setTask(immediateTaskConfig.setNumCpus(2))));
TaskConfig immediateTaskConfigTwo = defaultTask(false)
- .setJob(JOB_KEY.newBuilder().setRole(BAZ_ROLE_IDENTITY.getRole()).setName("immediateTwo"))
- .setJobName("immediateTwo")
- .setOwner(BAZ_ROLE_IDENTITY);
+ .setJob(JOB_KEY.newBuilder().setRole(bazRole).setName("immediateTwo"))
+ .setOwner(bazRoleIdentity);
IScheduledTask task3 = IScheduledTask.build(new ScheduledTask()
.setAssignedTask(new AssignedTask().setTask(immediateTaskConfigTwo)));
TaskConfig immediateTaskConfigThree = defaultTask(false)
- .setJob(JOB_KEY.newBuilder().setRole(BAZ_ROLE_IDENTITY.getRole()).setName("immediateThree"))
- .setJobName("immediateThree")
- .setOwner(BAZ_ROLE_IDENTITY);
+ .setJob(JOB_KEY.newBuilder().setRole(bazRole).setName("immediateThree"))
+ .setOwner(bazRoleIdentity);
IScheduledTask task4 = IScheduledTask.build(new ScheduledTask()
.setAssignedTask(new AssignedTask().setTask(immediateTaskConfigThree)));
@@ -702,7 +684,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
expectedResult.addToSummaries(
new RoleSummary().setRole(ROLE).setCronJobCount(2).setJobCount(1));
expectedResult.addToSummaries(
- new RoleSummary().setRole(BAZ_ROLE).setCronJobCount(1).setJobCount(2));
+ new RoleSummary().setRole(bazRole).setCronJobCount(1).setJobCount(2));
control.replay();