You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by se...@apache.org on 2017/04/03 22:12:35 UTC

aurora git commit: Remove use of deprecated fields in tests

Repository: aurora
Updated Branches:
  refs/heads/master 076d9177b -> 72046170d


Remove use of deprecated fields in tests

Removed the usage of numCpus, ramMb and diskMb from tests and replaced them with
the Resource set when necessary. Also modified the thrift backfill so that it won't
backfill those resource fields anymore.

Related Issue: Aurora-1707

Reviewed at https://reviews.apache.org/r/57881/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/72046170
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/72046170
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/72046170

Branch: refs/heads/master
Commit: 72046170ddfa046bc0c842fbeb9ecf797e569717
Parents: 076d917
Author: Nicol�s Donatucci <nd...@medallia.com>
Authored: Tue Apr 4 00:00:14 2017 +0200
Committer: Stephan Erb <se...@apache.org>
Committed: Tue Apr 4 00:00:14 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/aurora/benchmark/Tasks.java |   6 +-
 .../configuration/ConfigurationManager.java     |   4 -
 .../scheduler/storage/log/ThriftBackfill.java   |  22 ----
 src/main/python/apache/aurora/config/thrift.py  |  17 ++-
 .../configuration/ConfigurationManagerTest.java |   4 -
 .../events/NotifyingSchedulingFilterTest.java   |  10 +-
 .../filter/SchedulingFilterImplTest.java        |   3 -
 .../scheduler/metadata/NearestFitTest.java      |   5 +-
 .../preemptor/PreemptionVictimFilterTest.java   |  27 ++++-
 .../scheduler/quota/QuotaManagerImplTest.java   |   4 -
 .../scheduler/resources/ResourceTestUtil.java   |   3 +-
 .../scheduler/stats/ResourceCounterTest.java    |  10 +-
 .../storage/db/DbJobUpdateStoreTest.java        |  11 +-
 .../storage/db/RowGarbageCollectorTest.java     |   7 +-
 .../scheduler/storage/log/LogStorageTest.java   |   6 +-
 .../storage/log/SnapshotStoreImplIT.java        |  13 +--
 .../storage/log/ThriftBackfillTest.java         | 106 ++++---------------
 .../thrift/ReadOnlySchedulerImplTest.java       |  19 +++-
 .../thrift/SchedulerThriftInterfaceTest.java    |  78 +++++---------
 .../scheduler/updater/InstanceUpdaterTest.java  |   8 +-
 .../python/apache/aurora/config/test_base.py    |  25 +++--
 .../python/apache/aurora/config/test_thrift.py  |   7 +-
 22 files changed, 150 insertions(+), 245 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/jmh/java/org/apache/aurora/benchmark/Tasks.java
----------------------------------------------------------------------
diff --git a/src/jmh/java/org/apache/aurora/benchmark/Tasks.java b/src/jmh/java/org/apache/aurora/benchmark/Tasks.java
index 3aabc5e..60c62bb 100644
--- a/src/jmh/java/org/apache/aurora/benchmark/Tasks.java
+++ b/src/jmh/java/org/apache/aurora/benchmark/Tasks.java
@@ -144,15 +144,11 @@ final class Tasks {
         builder.getAssignedTask().setAssignedPorts(ImmutableMap.of());
         builder.getAssignedTask().getTask()
             .setConstraints(constraints.build())
-            .setNumCpus(cpu)
-            .setRamMb(ram.as(Data.MB))
-            .setDiskMb(disk.as(Data.MB))
             .setProduction(isProduction)
             .setResources(ImmutableSet.of(
                 numCpus(cpu),
                 ramMb(ram.as(Data.MB)),
-                diskMb(disk.as(Data.MB))))
-            .setRequestedPorts(ImmutableSet.of());
+                diskMb(disk.as(Data.MB))));
         tasks.add(IScheduledTask.build(builder));
       }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 ad6b3ef..754fde0 100644
--- a/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
@@ -231,10 +231,6 @@ public class ConfigurationManager {
   public ITaskConfig validateAndPopulate(ITaskConfig config) throws TaskDescriptionException {
     TaskConfig builder = config.newBuilder();
 
-    if (!builder.isSetRequestedPorts()) {
-      builder.setRequestedPorts(ImmutableSet.of());
-    }
-
     if (config.isSetTier() && !UserProvidedStrings.isGoodIdentifier(config.getTier())) {
       throw new TaskDescriptionException("Tier contains illegal characters: " + config.getTier());
     }

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 3567cf0..92b64bb 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,7 +43,6 @@ import static java.util.Objects.requireNonNull;
 
 import static org.apache.aurora.scheduler.resources.ResourceType.CPUS;
 import static org.apache.aurora.scheduler.resources.ResourceType.DISK_MB;
-import static org.apache.aurora.scheduler.resources.ResourceType.PORTS;
 import static org.apache.aurora.scheduler.resources.ResourceType.RAM_MB;
 
 /**
@@ -73,27 +72,6 @@ public final class ThriftBackfill {
    * @return Backfilled TaskConfig.
    */
   public TaskConfig backfillTask(TaskConfig config) {
-    if (!config.isSetResources() || config.getResources().isEmpty()) {
-      config.addToResources(Resource.numCpus(config.getNumCpus()));
-      config.addToResources(Resource.ramMb(config.getRamMb()));
-      config.addToResources(Resource.diskMb(config.getDiskMb()));
-      if (config.isSetRequestedPorts()) {
-        for (String port : config.getRequestedPorts()) {
-          config.addToResources(Resource.namedPort(port));
-        }
-      }
-    } else {
-      config.setNumCpus(getResource(config.getResources(), CPUS).getNumCpus());
-      config.setRamMb(getResource(config.getResources(), RAM_MB).getRamMb());
-      config.setDiskMb(getResource(config.getResources(), DISK_MB).getDiskMb());
-      Set<String> ports = config.getResources().stream()
-          .filter(e -> ResourceType.fromResource(IResource.build(e)).equals(PORTS))
-          .map(Resource::getNamedPort)
-          .collect(GuavaUtils.toImmutableSet());
-      if (!ports.isEmpty()) {
-        config.setRequestedPorts(ports);
-      }
-    }
     backfillTier(config);
     return config;
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 601e1fc..bedf8cd 100644
--- a/src/main/python/apache/aurora/config/thrift.py
+++ b/src/main/python/apache/aurora/config/thrift.py
@@ -281,24 +281,23 @@ def convert(job, metadata=frozenset(), ports=frozenset()):
       fully_interpolated(task_raw.resources().ram()),
       fully_interpolated(task_raw.resources().disk())))
 
-  task.numCpus = fully_interpolated(task_raw.resources().cpu())
-  task.ramMb = fully_interpolated(task_raw.resources().ram()) / MB
-  task.diskMb = fully_interpolated(task_raw.resources().disk()) / MB
-  if task.numCpus <= 0 or task.ramMb <= 0 or task.diskMb <= 0:
+  numCpus = fully_interpolated(task_raw.resources().cpu())
+  ramMb = fully_interpolated(task_raw.resources().ram()) / MB
+  diskMb = fully_interpolated(task_raw.resources().disk()) / MB
+  if numCpus <= 0 or ramMb <= 0 or diskMb <= 0:
     raise InvalidConfig('Task has invalid resources.  cpu/ramMb/diskMb must all be positive: '
-        'cpu:%r ramMb:%r diskMb:%r' % (task.numCpus, task.ramMb, task.diskMb))
+        'cpu:%r ramMb:%r diskMb:%r' % (numCpus, ramMb, diskMb))
   numGpus = fully_interpolated(task_raw.resources().gpu())
 
   task.resources = frozenset(
-      [Resource(numCpus=task.numCpus),
-       Resource(ramMb=task.ramMb),
-       Resource(diskMb=task.diskMb)]
+      [Resource(numCpus=numCpus),
+       Resource(ramMb=ramMb),
+       Resource(diskMb=diskMb)]
       + [Resource(namedPort=p) for p in ports]
       + ([Resource(numGpus=numGpus)] if numGpus else []))
 
   task.job = key
   task.owner = owner
-  task.requestedPorts = ports
   task.taskLinks = {}  # See AURORA-739
   task.constraints = constraints_to_thrift(not_empty_or(job.constraints(), {}))
   task.container = create_container_config(job.container())

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 d6904f8..50d7499 100644
--- a/src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java
@@ -87,15 +87,11 @@ public class ConfigurationManagerTest {
               .setIsService(false)
               .setTaskLinks(ImmutableMap.of())
               .setExecutorConfig(new ExecutorConfig(apiConstants.AURORA_EXECUTOR_NAME, "config"))
-              .setRequestedPorts(ImmutableSet.of())
               .setPriority(0)
               .setOwner(null)
               .setContactEmail("foo@twitter.com")
               .setProduction(false)
-              .setDiskMb(1)
               .setMetadata(null)
-              .setNumCpus(1.0)
-              .setRamMb(1)
               .setMaxTaskFailures(0)
               .setConstraints(
                   ImmutableSet.of(

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/events/NotifyingSchedulingFilterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/events/NotifyingSchedulingFilterTest.java b/src/test/java/org/apache/aurora/scheduler/events/NotifyingSchedulingFilterTest.java
index b759427..bf9c2b4 100644
--- a/src/test/java/org/apache/aurora/scheduler/events/NotifyingSchedulingFilterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/events/NotifyingSchedulingFilterTest.java
@@ -35,15 +35,19 @@ import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.apache.aurora.gen.Resource.diskMb;
+import static org.apache.aurora.gen.Resource.numCpus;
+import static org.apache.aurora.gen.Resource.ramMb;
 import static org.easymock.EasyMock.expect;
 import static org.junit.Assert.assertEquals;
 
 public class NotifyingSchedulingFilterTest extends EasyMockTest {
 
   private static final ITaskConfig TASK = ITaskConfig.build(new TaskConfig()
-      .setNumCpus(1)
-      .setRamMb(1024)
-      .setDiskMb(1024));
+      .setResources(ImmutableSet.of(
+          numCpus(1),
+          ramMb(1024),
+          diskMb(1024))));
   private static final TaskGroupKey GROUP_KEY = TaskGroupKey.from(TASK);
   private static final UnusedResource RESOURCE = new UnusedResource(
       ResourceManager.bagFromResources(TASK.getResources()),

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java b/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
index 5915e47..d2fe7a3 100644
--- a/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
@@ -675,9 +675,6 @@ public class SchedulingFilterImplTest extends EasyMockTest {
   private ITaskConfig makeTask(IJobKey job, int cpus, long ramMb, long diskMb) {
     return ITaskConfig.build(new TaskConfig()
         .setJob(job.newBuilder())
-        .setNumCpus(cpus)
-        .setRamMb(ramMb)
-        .setDiskMb(diskMb)
         .setResources(ImmutableSet.of(numCpus(cpus), ramMb(ramMb), diskMb(diskMb)))
         .setExecutorConfig(new ExecutorConfig(apiConstants.AURORA_EXECUTOR_NAME, "config")));
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/metadata/NearestFitTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/metadata/NearestFitTest.java b/src/test/java/org/apache/aurora/scheduler/metadata/NearestFitTest.java
index f14d971..e170d62 100644
--- a/src/test/java/org/apache/aurora/scheduler/metadata/NearestFitTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/metadata/NearestFitTest.java
@@ -44,6 +44,8 @@ import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.apache.aurora.gen.Resource.numCpus;
+
 import static org.junit.Assert.assertEquals;
 
 public class NearestFitTest {
@@ -60,7 +62,8 @@ public class NearestFitTest {
   private static final Veto SEVERITY_4_PORTS =
       Veto.insufficientResources("ports", RESOURCE_MAX_SCORE);
 
-  private static final ITaskConfig TASK = ITaskConfig.build(new TaskConfig().setNumCpus(1.0));
+  private static final ITaskConfig TASK = ITaskConfig.build(new TaskConfig()
+          .setResources(ImmutableSet.of(numCpus(1.0))));
   private static final TaskGroupKey GROUP_KEY = TaskGroupKey.from(TASK);
 
   private FakeTicker ticker;

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 d310f8d..c39b00d 100644
--- a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
@@ -63,6 +63,8 @@ import org.junit.Test;
 import static java.util.stream.Collectors.toSet;
 
 import static org.apache.aurora.gen.MaintenanceMode.NONE;
+import static org.apache.aurora.gen.Resource.numCpus;
+import static org.apache.aurora.gen.Resource.ramMb;
 import static org.apache.aurora.gen.ScheduleStatus.RUNNING;
 import static org.apache.aurora.scheduler.base.TaskTestUtil.DEV_TIER;
 import static org.apache.aurora.scheduler.base.TaskTestUtil.PREFERRED_TIER;
@@ -307,7 +309,10 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
     expectGetTier(a1, DEV_TIER).atLeastOnce();
 
     ScheduledTask b1 = makeTask(USER_B, JOB_B, TASK_ID_B + "_b1");
-    b1.getAssignedTask().getTask().setNumCpus(1).setRamMb(512);
+    b1.getAssignedTask().getTask()
+        .setResources(ImmutableSet.of(
+            numCpus(1),
+            ramMb(512)));
     setResource(b1, CPUS, 1.0);
     setResource(b1, RAM_MB, 512.0);
     expectGetTier(b1, DEV_TIER).anyTimes();
@@ -337,7 +342,10 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
   public void testProductionJobNeverPreemptsProductionJob() throws Exception {
     schedulingFilter = new SchedulingFilterImpl(UNAVAILABLITY_THRESHOLD, clock);
     ScheduledTask p1 = makeProductionTask(USER_A, JOB_A, TASK_ID_A + "_p1");
-    p1.getAssignedTask().getTask().setNumCpus(2).setRamMb(1024);
+    p1.getAssignedTask().getTask()
+        .setResources(ImmutableSet.of(
+            numCpus(2),
+            ramMb(1024)));
     expectGetTier(p1, PREFERRED_TIER);
 
     setUpHost();
@@ -345,7 +353,10 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
     assignToHost(p1);
 
     ScheduledTask p2 = makeProductionTask(USER_B, JOB_B, TASK_ID_B + "_p2");
-    p2.getAssignedTask().getTask().setNumCpus(1).setRamMb(512);
+    p2.getAssignedTask().getTask()
+        .setResources(ImmutableSet.of(
+            numCpus(1),
+            ramMb(512)));
     expectGetTier(p2, PREFERRED_TIER);
 
     control.replay();
@@ -360,12 +371,18 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
     setUpHost();
 
     ScheduledTask a1 = makeTask(USER_A, JOB_A, TASK_ID_A + "_a1");
-    a1.getAssignedTask().getTask().setNumCpus(1).setRamMb(512);
+    a1.getAssignedTask().getTask()
+        .setResources(ImmutableSet.of(
+            numCpus(1),
+            ramMb(512)));
     assignToHost(a1);
     expectGetTier(a1, DEV_TIER).times(2);
 
     ScheduledTask p1 = makeProductionTask(USER_B, JOB_B, TASK_ID_B + "_p1");
-    p1.getAssignedTask().getTask().setNumCpus(2).setRamMb(1024);
+    p1.getAssignedTask().getTask()
+        .setResources(ImmutableSet.of(
+            numCpus(2),
+            ramMb(1024)));
     expectGetTier(p1, PREFERRED_TIER);
 
     control.replay();

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java b/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
index 2e97a33..6be4a9c 100644
--- a/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
@@ -965,10 +965,6 @@ public class QuotaManagerImplTest extends EasyMockTest {
         .newBuilder();
     builder.getAssignedTask().setInstanceId(instanceId);
     builder.getAssignedTask().getTask()
-        .setNumCpus(cpus)
-        .setRamMb(ramMb)
-        .setDiskMb(diskMb)
-        .setRequestedPorts(ImmutableSet.of("a"))
         .setResources(ImmutableSet.of(numCpus(cpus), ramMb(ramMb), diskMb(diskMb), namedPort("a")))
         .setProduction(production);
     return IScheduledTask.build(builder);

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java b/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
index e04f611..676d305 100644
--- a/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
+++ b/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
@@ -63,8 +63,7 @@ public final class ResourceTestUtil {
   }
 
   public static ITaskConfig resetPorts(ITaskConfig config, Set<String> portNames) {
-    TaskConfig builder = config.newBuilder()
-        .setRequestedPorts(portNames);
+    TaskConfig builder = config.newBuilder();
     builder.getResources().removeIf(e -> fromResource(IResource.build(e)).equals(PORTS));
     portNames.forEach(e -> builder.addToResources(Resource.namedPort(e)));
     return ITaskConfig.build(builder);

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java b/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
index 19c1f8e..d73656d 100644
--- a/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
@@ -42,6 +42,9 @@ import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.apache.aurora.gen.Resource.diskMb;
+import static org.apache.aurora.gen.Resource.numCpus;
+import static org.apache.aurora.gen.Resource.ramMb;
 import static org.apache.aurora.gen.ScheduleStatus.ASSIGNED;
 import static org.apache.aurora.gen.ScheduleStatus.FAILED;
 import static org.apache.aurora.gen.ScheduleStatus.FINISHED;
@@ -165,9 +168,10 @@ public class ResourceCounterTest {
 
     ScheduledTask task = TaskTestUtil.makeTask(id, JobKeys.from(role, "test", job)).newBuilder();
     TaskConfig config = task.getAssignedTask().getTask()
-        .setNumCpus(numCpus)
-        .setRamMb(ramMb)
-        .setDiskMb(diskMb)
+        .setResources(ImmutableSet.of(
+                numCpus(numCpus),
+                ramMb(ramMb),
+                diskMb(diskMb)))
         .setProduction(production);
 
     if (dedicated.isPresent()) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
index 5332939..8fca54b 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
@@ -80,6 +80,9 @@ import static org.apache.aurora.gen.JobUpdateStatus.ROLLING_BACK;
 import static org.apache.aurora.gen.JobUpdateStatus.ROLLING_FORWARD;
 import static org.apache.aurora.gen.JobUpdateStatus.ROLL_BACK_PAUSED;
 import static org.apache.aurora.gen.JobUpdateStatus.ROLL_FORWARD_PAUSED;
+import static org.apache.aurora.gen.Resource.diskMb;
+import static org.apache.aurora.gen.Resource.numCpus;
+import static org.apache.aurora.gen.Resource.ramMb;
 import static org.apache.aurora.scheduler.storage.db.DbJobUpdateStore.jobUpdateActionStatName;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
@@ -173,9 +176,11 @@ public class DbJobUpdateStoreTest {
     IJobUpdateKey updateId = makeKey(JobKeys.from("role", "env", "name1"), "u1");
 
     JobUpdate builder = makeFullyPopulatedUpdate(updateId).newBuilder();
-    builder.getInstructions().getDesiredState().getTask().setNumCpus(Double.MAX_VALUE);
-    builder.getInstructions().getDesiredState().getTask().setRamMb(Long.MAX_VALUE);
-    builder.getInstructions().getDesiredState().getTask().setDiskMb(Long.MAX_VALUE);
+    builder.getInstructions().getDesiredState().getTask().setResources(
+            ImmutableSet.of(
+                    numCpus(Double.MAX_VALUE),
+                    ramMb(Long.MAX_VALUE),
+                    diskMb(Long.MAX_VALUE)));
 
     IJobUpdate update = IJobUpdate.build(builder);
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollectorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollectorTest.java b/src/test/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollectorTest.java
index 3e5296e..caaba9b 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollectorTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollectorTest.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.scheduler.storage.db;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
@@ -32,6 +33,9 @@ import org.apache.aurora.scheduler.testing.FakeStatsProvider;
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.apache.aurora.gen.Resource.diskMb;
+import static org.apache.aurora.gen.Resource.numCpus;
+import static org.apache.aurora.gen.Resource.ramMb;
 import static org.junit.Assert.assertEquals;
 
 public class RowGarbageCollectorTest {
@@ -40,7 +44,8 @@ public class RowGarbageCollectorTest {
   private static final IJobKey JOB_B = IJobKey.build(new JobKey("roleB", "envB", "jobB"));
   private static final IScheduledTask TASK_A2 = TaskTestUtil.makeTask("task_a2", JOB_A);
   private static final ITaskConfig CONFIG_A =
-      ITaskConfig.build(TASK_A2.getAssignedTask().getTask().newBuilder().setRamMb(124246));
+      ITaskConfig.build(TASK_A2.getAssignedTask().getTask().newBuilder()
+              .setResources(ImmutableSet.of(numCpus(1.0), ramMb(124246), diskMb(1024))));
   private static final ITaskConfig CONFIG_B = TaskTestUtil.makeConfig(JOB_B);
 
   private JobKeyMapper jobKeyMapper;

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 34c24aa..0eb54fd 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
@@ -397,9 +397,9 @@ public class LogStorageTest extends EasyMockTest {
   }
 
   private TaskConfig nonBackfilledConfig() {
-    TaskConfig config = makeConfig(JOB_KEY).newBuilder();
-    config.unsetResources();
-    return config;
+    // When more fields have to be backfilled
+    // modify this method.
+    return makeConfig(JOB_KEY).newBuilder();
   }
 
   abstract class AbstractStorageFixture {

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplIT.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplIT.java b/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplIT.java
index 44d594e..7f41430 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplIT.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImplIT.java
@@ -299,18 +299,7 @@ public class SnapshotStoreImplIT {
   }
 
   private Snapshot makeNonBackfilled() {
-    Snapshot snapshot = expected();
-    snapshot.getTasks().forEach(e -> e.getAssignedTask().getTask().unsetResources());
-    snapshot.getCronJobs()
-        .forEach(e -> e.getJobConfiguration().getTaskConfig().unsetResources());
-    snapshot.getJobUpdateDetails()
-        .forEach(e -> e.getDetails().getUpdate().getInstructions()
-            .getDesiredState().getTask().unsetResources());
-    snapshot.getJobUpdateDetails()
-        .forEach(e -> e.getDetails().getUpdate().getInstructions()
-            .getInitialState().forEach(i -> i.getTask().unsetResources()));
-
-    return snapshot;
+    return expected();
   }
 
   private void populateStore() {

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 544c6c2..59c2c5b 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
@@ -47,9 +47,10 @@ public class ThriftBackfillTest extends EasyMockTest {
   @Test
   public void testFieldsToSetNoPorts() {
     TaskConfig config = new TaskConfig()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64)
+        .setResources(ImmutableSet.of(
+            numCpus(1.0),
+            ramMb(32),
+            diskMb(64)))
         .setProduction(false)
         .setTier("tierName");
     TaskConfig expected = config.deepCopy()
@@ -65,76 +66,6 @@ public class ThriftBackfillTest extends EasyMockTest {
   }
 
   @Test
-  public void testFieldsToSetWithPorts() {
-    TaskConfig config = new TaskConfig()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64)
-        .setRequestedPorts(ImmutableSet.of("http"))
-        .setProduction(false)
-        .setTier("tierName");
-    TaskConfig expected = config.deepCopy()
-        .setResources(ImmutableSet.of(numCpus(1.0), ramMb(32), diskMb(64), namedPort("http")));
-
-    expect(tierManager.getTier(ITaskConfig.build(expected))).andReturn(TaskTestUtil.DEV_TIER);
-
-    control.replay();
-
-    assertEquals(
-        expected,
-        thriftBackfill.backfillTask(config));
-  }
-
-  @Test
-  public void testSetToFieldsNoPorts() {
-    TaskConfig config = new TaskConfig()
-        .setResources(ImmutableSet.of(numCpus(1.0), ramMb(32), diskMb(64)))
-        .setProduction(false)
-        .setTier("tierName");
-    TaskConfig expected = config.deepCopy()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64);
-
-    expect(tierManager.getTier(ITaskConfig.build(expected))).andReturn(TaskTestUtil.DEV_TIER);
-
-    control.replay();
-
-    assertEquals(
-        expected,
-        thriftBackfill.backfillTask(config));
-  }
-
-  @Test
-  public void testSetToFieldsWithPorts() {
-    TaskConfig config = new TaskConfig()
-        .setResources(ImmutableSet.of(numCpus(1.0), ramMb(32), diskMb(64), namedPort("http")))
-        .setProduction(false)
-        .setTier("tierName");
-    TaskConfig expected = config.deepCopy()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64)
-        .setRequestedPorts(ImmutableSet.of("http"));
-
-    expect(tierManager.getTier(ITaskConfig.build(expected))).andReturn(TaskTestUtil.DEV_TIER);
-
-    control.replay();
-
-    assertEquals(
-        expected,
-        thriftBackfill.backfillTask(config));
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testMissingResourceThrows() {
-    control.replay();
-
-    TaskConfig config = new TaskConfig().setResources(ImmutableSet.of(numCpus(1.0), ramMb(32)));
-    thriftBackfill.backfillTask(config);
-  }
-
-  @Test
   public void testResourceAggregateFieldsToSet() {
     control.replay();
 
@@ -194,9 +125,7 @@ public class ThriftBackfillTest extends EasyMockTest {
   @Test
   public void testBackfillTierProduction() {
     TaskConfig config = new TaskConfig()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64)
+        .setResources(ImmutableSet.of(numCpus(1.0), ramMb(32), diskMb(64)))
         .setProduction(true)
         .setTier("tierName");
     TaskConfig expected = config.deepCopy()
@@ -214,9 +143,7 @@ public class ThriftBackfillTest extends EasyMockTest {
   @Test
   public void testBackfillTierNotProduction() {
     TaskConfig config = new TaskConfig()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64)
+        .setResources(ImmutableSet.of(numCpus(1.0), ramMb(32), diskMb(64)))
         .setProduction(true)
         .setTier("tierName");
     TaskConfig configWithBackfilledResources = config.deepCopy()
@@ -238,9 +165,10 @@ public class ThriftBackfillTest extends EasyMockTest {
   @Test
   public void testBackfillTierSetsTierToPreemptible() {
     TaskConfig config = new TaskConfig()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64);
+            .setResources(ImmutableSet.of(
+                    numCpus(1.0),
+                    ramMb(32),
+                    diskMb(64)));
     TaskConfig configWithBackfilledResources = config.deepCopy()
         .setResources(ImmutableSet.of(numCpus(1.0), ramMb(32), diskMb(64)));
 
@@ -258,9 +186,10 @@ public class ThriftBackfillTest extends EasyMockTest {
   @Test
   public void testBackfillTierSetsTierToPreferred() {
     TaskConfig config = new TaskConfig()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64)
+        .setResources(ImmutableSet.of(
+            numCpus(1.0),
+            ramMb(32),
+            diskMb(64)))
         .setProduction(true);
     TaskConfig configWithBackfilledResources = config.deepCopy()
         .setResources(ImmutableSet.of(numCpus(1.0), ramMb(32), diskMb(64)));
@@ -279,9 +208,10 @@ public class ThriftBackfillTest extends EasyMockTest {
   @Test(expected = IllegalStateException.class)
   public void testBackfillTierBadTierConfiguration() {
     TaskConfig config = new TaskConfig()
-        .setNumCpus(1.0)
-        .setRamMb(32)
-        .setDiskMb(64);
+            .setResources(ImmutableSet.of(
+                    numCpus(1.0),
+                    ramMb(32),
+                    diskMb(64)));
 
     expect(tierManager.getTiers()).andReturn(ImmutableMap.of());
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 04f7829..39456cf 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
@@ -92,6 +92,9 @@ import org.apache.aurora.scheduler.storage.testing.StorageTestUtil;
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.apache.aurora.gen.Resource.diskMb;
+import static org.apache.aurora.gen.Resource.numCpus;
+import static org.apache.aurora.gen.Resource.ramMb;
 import static org.apache.aurora.gen.ResponseCode.INVALID_REQUEST;
 import static org.apache.aurora.scheduler.base.Numbers.convertRanges;
 import static org.apache.aurora.scheduler.base.Numbers.toRanges;
@@ -527,7 +530,8 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
     IJobKey key = JobKeys.from("test", "test", "test");
 
     TaskConfig firstGroupTask = defaultTask(true);
-    TaskConfig secondGroupTask = defaultTask(true).setNumCpus(2);
+    TaskConfig secondGroupTask = defaultTask(true)
+            .setResources(ImmutableSet.of(numCpus(2)));
 
     IScheduledTask first1 = IScheduledTask.build(new ScheduledTask()
         .setAssignedTask(new AssignedTask().setTask(firstGroupTask).setInstanceId(0)));
@@ -679,7 +683,11 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
     IScheduledTask task1 = IScheduledTask.build(new ScheduledTask()
         .setAssignedTask(new AssignedTask().setTask(immediateTaskConfig)));
     IScheduledTask task2 = IScheduledTask.build(new ScheduledTask()
-        .setAssignedTask(new AssignedTask().setTask(immediateTaskConfig.setNumCpus(2))));
+        .setAssignedTask(new AssignedTask().setTask(immediateTaskConfig
+            .setResources(ImmutableSet.of(
+                    numCpus(2),
+                    ramMb(1024),
+                    diskMb(1024))))));
 
     TaskConfig immediateTaskConfigTwo = defaultTask(false)
         .setJob(JOB_KEY.newBuilder().setRole(bazRole).setName("immediateTwo"))
@@ -856,8 +864,11 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
   @Test
   public void testGetJobUpdateDiffInvalidConfig() throws Exception {
     control.replay();
-    TaskConfig task = defaultTask(false).setNumCpus(-1);
-    task.unsetResources();
+    TaskConfig task = defaultTask(false)
+            .setResources(ImmutableSet.of(
+                    numCpus(-1),
+                    ramMb(1024),
+                    diskMb(1024)));
 
     JobUpdateRequest request =
         new JobUpdateRequest().setTaskConfig(task);

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/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 0ff6ce0..016859c 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
@@ -61,6 +61,7 @@ import org.apache.aurora.gen.PulseJobUpdateResult;
 import org.apache.aurora.gen.QueryRecoveryResult;
 import org.apache.aurora.gen.Range;
 import org.apache.aurora.gen.ReadOnlyScheduler;
+import org.apache.aurora.gen.Resource;
 import org.apache.aurora.gen.ResourceAggregate;
 import org.apache.aurora.gen.Response;
 import org.apache.aurora.gen.ResponseCode;
@@ -494,30 +495,20 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
     control.replay();
 
     TaskConfig task = productionTask();
-    task.setNumCpus(0);
-    task.setRamMb(0);
-    task.setDiskMb(0);
     task.unsetResources();
     assertResponse(INVALID_REQUEST, thrift.createJob(makeJob(task)));
     assertEquals(0L, statsProvider.getLongValue(CREATE_JOB));
   }
 
-  @Test(expected = IllegalArgumentException.class)
-  public void testCreateJobMissingResources() throws Exception {
-    control.replay();
-    TaskConfig task = productionTask();
-    task.unsetResources();
-    task.setResources(ImmutableSet.of(numCpus(1.0)));
-
-    thrift.createJob(makeJob(task));
-  }
-
   @Test
   public void testCreateJobBadCpu() throws Exception {
     control.replay();
 
-    TaskConfig task = productionTask().setNumCpus(0.0);
-    task.unsetResources();
+    TaskConfig task = productionTask()
+            .setResources(ImmutableSet.of(
+                    numCpus(0.0),
+                    ramMb(1024),
+                    diskMb(1024)));
     assertResponse(INVALID_REQUEST, thrift.createJob(makeJob(task)));
     assertEquals(0L, statsProvider.getLongValue(CREATE_JOB));
   }
@@ -526,8 +517,11 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
   public void testCreateJobBadRam() throws Exception {
     control.replay();
 
-    TaskConfig task = productionTask().setRamMb(-123);
-    task.unsetResources();
+    TaskConfig task = productionTask()
+            .setResources(ImmutableSet.of(
+                    numCpus(1),
+                    ramMb(-123),
+                    diskMb(1024)));
     assertResponse(INVALID_REQUEST, thrift.createJob(makeJob(task)));
     assertEquals(0L, statsProvider.getLongValue(CREATE_JOB));
   }
@@ -536,26 +530,13 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
   public void testCreateJobBadDisk() throws Exception {
     control.replay();
 
-    TaskConfig task = productionTask().setDiskMb(0);
-    task.unsetResources();
-    assertResponse(INVALID_REQUEST, thrift.createJob(makeJob(task)));
-  }
-
-  @Test
-  public void testCreateJobBadResources() throws Exception {
-    control.replay();
-
     TaskConfig task = productionTask()
             .setResources(ImmutableSet.of(
-            numCpus(-1),
-            ramMb(1024),
-            diskMb(1024)))
-            .setNumCpus(0)
-            .setRamMb(0)
-            .setDiskMb(0);
-
+                    numCpus(1),
+                    ramMb(1024),
+                    diskMb(0)));
+    task.unsetResources();
     assertResponse(INVALID_REQUEST, thrift.createJob(makeJob(task)));
-    assertEquals(0L, statsProvider.getLongValue(CREATE_JOB));
   }
 
   @Test
@@ -565,10 +546,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
             .setResources(ImmutableSet.of(
                     numCpus(1.0),
                     ramMb(1024),
-                    diskMb(1024)))
-            .setNumCpus(0)
-            .setRamMb(0)
-            .setDiskMb(0);
+                    diskMb(1024)));
 
     IJobConfiguration job = IJobConfiguration.build(makeJob(task));
     SanitizedConfiguration sanitized = fromUnsanitized(job);
@@ -591,17 +569,12 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
 
   @Test
   public void testCreateJobPopulateDefaults() throws Exception {
+    Set<Resource> resources = ImmutableSet.of(numCpus(1.0), ramMb(1024), diskMb(1024));
     TaskConfig task = new TaskConfig()
         .setContactEmail("testing@twitter.com")
         .setExecutorConfig(
             new ExecutorConfig(EXECUTOR_NAME, "config")) // Arbitrary opaque data.
-        .setNumCpus(1.0)
-        .setRamMb(1024)
-        .setDiskMb(1024)
-        .setResources(ImmutableSet.of(
-            numCpus(1.0),
-            ramMb(1024),
-            diskMb(1024)))
+        .setResources(resources)
         .setIsService(true)
         .setProduction(true)
         .setTier(TaskTestUtil.PROD_TIER_NAME)
@@ -613,20 +586,13 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
     JobConfiguration sanitized = job.deepCopy();
     sanitized.getTaskConfig()
         .setJob(JOB_KEY.newBuilder())
-        .setNumCpus(1.0)
         .setPriority(0)
-        .setRamMb(1024)
-        .setDiskMb(1024)
         .setIsService(true)
         .setProduction(true)
-        .setRequestedPorts(ImmutableSet.of())
         .setTaskLinks(ImmutableMap.of())
         .setConstraints(ImmutableSet.of())
         .setMaxTaskFailures(0)
-        .setResources(ImmutableSet.of(
-            numCpus(1.0),
-            ramMb(1024),
-            diskMb(1024)));
+        .setResources(resources);
 
     lockManager.assertNotLocked(LOCK_KEY);
     storageUtil.expectTaskFetch(Query.jobScoped(JOB_KEY).active());
@@ -1933,7 +1899,11 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
     expect(uuidGenerator.createNew()).andReturn(UU_ID);
 
     ScheduledTask taskBuilder = buildTaskForJobUpdate(0).newBuilder();
-    taskBuilder.getAssignedTask().getTask().setNumCpus(100);
+    taskBuilder.getAssignedTask().getTask()
+            .setResources(ImmutableSet.of(
+                    numCpus(100),
+                    ramMb(1024),
+                    diskMb(1024)));
     IScheduledTask newTask = IScheduledTask.build(taskBuilder);
 
     IScheduledTask oldTask1 = buildTaskForJobUpdate(1);

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java b/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
index c78c7fb..df1f839 100644
--- a/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
@@ -18,6 +18,7 @@ import java.util.Objects;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 
 import org.apache.aurora.common.quantity.Amount;
@@ -33,6 +34,7 @@ import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
 import org.junit.Test;
 
+import static org.apache.aurora.gen.Resource.numCpus;
 import static org.apache.aurora.gen.ScheduleStatus.ASSIGNED;
 import static org.apache.aurora.gen.ScheduleStatus.FAILED;
 import static org.apache.aurora.gen.ScheduleStatus.FINISHED;
@@ -51,8 +53,10 @@ import static org.junit.Assert.assertEquals;
 public class InstanceUpdaterTest {
   private static final Optional<ITaskConfig> NO_CONFIG = Optional.absent();
 
-  private static final ITaskConfig OLD = ITaskConfig.build(new TaskConfig().setNumCpus(1.0));
-  private static final ITaskConfig NEW = ITaskConfig.build(new TaskConfig().setNumCpus(2.0));
+  private static final ITaskConfig OLD = ITaskConfig.build(new TaskConfig()
+          .setResources(ImmutableSet.of(numCpus(1.0))));
+  private static final ITaskConfig NEW = ITaskConfig.build(new TaskConfig()
+          .setResources(ImmutableSet.of(numCpus(2.0))));
 
   private static final Amount<Long, Time> MIN_RUNNING_TIME = Amount.of(1L, Time.MINUTES);
   private static final Amount<Long, Time> A_LONG_TIME = Amount.of(1L, Time.DAYS);

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/python/apache/aurora/config/test_base.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/config/test_base.py b/src/test/python/apache/aurora/config/test_base.py
index b354f08..5ab5511 100644
--- a/src/test/python/apache/aurora/config/test_base.py
+++ b/src/test/python/apache/aurora/config/test_base.py
@@ -19,6 +19,8 @@ from twitter.common.contextutil import temporary_file
 from apache.aurora.config import AuroraConfig, PortResolver
 from apache.aurora.config.schema.base import Announcer, Empty, Job, Process, Resources, Task
 
+from gen.apache.aurora.api.ttypes import Resource
+
 resolve = PortResolver.resolve
 
 
@@ -193,14 +195,21 @@ def test_ports():
 def test_static_port_aliasing():
   announce = Announcer(primary_port='thrift',
                        portmap={'thrift': 8081, 'health': 8300, 'aurora': 'health'})
-  assert make_config(announce).ports() == set()
-  assert make_config(announce).job().taskConfig.requestedPorts == set()
-  assert make_config(announce, 'thrift').ports() == set()
-  assert make_config(announce, 'thrift').job().taskConfig.requestedPorts == set()
-  assert make_config(announce, 'thrift', 'health').ports() == set()
-  assert make_config(announce, 'thrift', 'health').job().taskConfig.requestedPorts == set()
-  assert make_config(announce, 'derp').ports() == set(['derp'])
-  assert make_config(announce, 'derp').job().taskConfig.requestedPorts == set(['derp'])
+  config = make_config(announce)
+  assert config.ports() == set()
+  for resource in list(config.job().taskConfig.resources):
+    assert resource.namedPort is None
+  config = make_config(announce, 'thrift')
+  assert config.ports() == set()
+  for resource in list(config.job().taskConfig.resources):
+    assert resource.namedPort is None
+  config = make_config(announce, 'thrift', 'health')
+  assert config.ports() == set()
+  for resource in list(config.job().taskConfig.resources):
+    assert resource.namedPort is None
+  config = make_config(announce, 'derp')
+  assert config.ports() == set(['derp'])
+  assert Resource(namedPort='derp') in list(config.job().taskConfig.resources)
 
 
 def test_pystachio_schema_regression():

http://git-wip-us.apache.org/repos/asf/aurora/blob/72046170/src/test/python/apache/aurora/config/test_thrift.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/config/test_thrift.py b/src/test/python/apache/aurora/config/test_thrift.py
index 2a6a5d0..7a1567a 100644
--- a/src/test/python/apache/aurora/config/test_thrift.py
+++ b/src/test/python/apache/aurora/config/test_thrift.py
@@ -66,10 +66,6 @@ def test_simple_config():
   assert job.cronSchedule is None
   assert tti.job == expected_key
   assert tti.isService is False
-  assert tti.numCpus == 0.1
-  assert tti.ramMb == 64
-  assert tti.diskMb == 64
-  assert tti.requestedPorts == frozenset(['health'])
   assert tti.production is False
   assert tti.priority == 0
   assert tti.maxTaskFailures == 1
@@ -176,7 +172,8 @@ def test_config_with_ports():
   )
   config = AuroraConfig(hwc)
   job = config.job()
-  assert job.taskConfig.requestedPorts == set(['http', 'admin'])
+  assert Resource(namedPort='http') in list(job.taskConfig.resources)
+  assert Resource(namedPort='admin') in list(job.taskConfig.resources)
 
 
 def test_config_with_bad_resources():