Repository: aurora Updated Branches: refs/heads/master ab1c9b2ec -> ae8a9f726
Moving ResourceAggregates into scheduler package. Bugs closed: AURORA-1415 Reviewed at https://reviews.apache.org/r/37455/ Project: http://git-wip-us.apache.org/repos/asf/aurora/repo Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/ae8a9f72 Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/ae8a9f72 Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/ae8a9f72 Branch: refs/heads/master Commit: ae8a9f726bf69043029d532a50343580cdf9332d Parents: ab1c9b2 Author: Maxim Khutornenko <[email protected]> Authored: Fri Aug 14 13:15:13 2015 -0700 Committer: Maxim Khutornenko <[email protected]> Committed: Fri Aug 14 13:15:13 2015 -0700 ---------------------------------------------------------------------- .../aurora/scheduler/ResourceAggregates.java | 77 ++++++++++++++++++++ .../scheduler/base/ResourceAggregates.java | 77 -------------------- .../aurora/scheduler/quota/QuotaManager.java | 4 +- .../apache/aurora/scheduler/sla/SlaGroup.java | 10 +-- .../aurora/scheduler/stats/SlotSizeCounter.java | 2 +- .../scheduler/quota/QuotaManagerImplTest.java | 2 +- .../scheduler/stats/SlotSizeCounterTest.java | 2 +- .../storage/log/SnapshotStoreImplTest.java | 2 +- 8 files changed, 88 insertions(+), 88 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/src/main/java/org/apache/aurora/scheduler/ResourceAggregates.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/ResourceAggregates.java b/src/main/java/org/apache/aurora/scheduler/ResourceAggregates.java new file mode 100644 index 0000000..df796fc --- /dev/null +++ b/src/main/java/org/apache/aurora/scheduler/ResourceAggregates.java @@ -0,0 +1,77 @@ +/** + * 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; + +import com.google.common.collect.Ordering; + +import org.apache.aurora.gen.ResourceAggregate; +import org.apache.aurora.scheduler.storage.entities.IResourceAggregate; + +/** + * Convenience class for normalizing resource measures between tasks and offers. + */ +public final class ResourceAggregates { + + public static final IResourceAggregate EMPTY = + IResourceAggregate.build(new ResourceAggregate(0, 0, 0)); + + public static final IResourceAggregate SMALL = + IResourceAggregate.build(new ResourceAggregate(1.0, 1024, 4096)); + + public static final IResourceAggregate MEDIUM = + IResourceAggregate.build(new ResourceAggregate(4.0, 8192, 16384)); + + public static final IResourceAggregate LARGE = + IResourceAggregate.build(new ResourceAggregate(8.0, 16384, 32768)); + + public static final IResourceAggregate XLARGE = + IResourceAggregate.build(new ResourceAggregate(16.0, 32768, 65536)); + + private ResourceAggregates() { + // Utility class. + } + + /** + * Returns a quota with all resource vectors zeroed. + * + * @return A resource aggregate with all resource vectors zeroed. + */ + public static IResourceAggregate none() { + return EMPTY; + } + + /** + * a * m. + */ + public static IResourceAggregate scale(IResourceAggregate a, int m) { + return IResourceAggregate.build(new ResourceAggregate() + .setNumCpus(a.getNumCpus() * m) + .setRamMb(a.getRamMb() * m) + .setDiskMb(a.getDiskMb() * m)); + } + + /** + * a / b. + * <p> + * This calculates how many times {@code b} "fits into" {@code a}. Behavior is undefined when + * {@code b} contains resources with a value of zero. + */ + public static int divide(IResourceAggregate a, IResourceAggregate b) { + return Ordering.natural().min( + a.getNumCpus() / b.getNumCpus(), + (double) a.getRamMb() / b.getRamMb(), + (double) a.getDiskMb() / b.getDiskMb() + ).intValue(); + } +} http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/src/main/java/org/apache/aurora/scheduler/base/ResourceAggregates.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/base/ResourceAggregates.java b/src/main/java/org/apache/aurora/scheduler/base/ResourceAggregates.java deleted file mode 100644 index 5ae27f9..0000000 --- a/src/main/java/org/apache/aurora/scheduler/base/ResourceAggregates.java +++ /dev/null @@ -1,77 +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.base; - -import com.google.common.collect.Ordering; - -import org.apache.aurora.gen.ResourceAggregate; -import org.apache.aurora.scheduler.storage.entities.IResourceAggregate; - -/** - * Convenience class for normalizing resource measures between tasks and offers. - */ -public final class ResourceAggregates { - - public static final IResourceAggregate EMPTY = - IResourceAggregate.build(new ResourceAggregate(0, 0, 0)); - - public static final IResourceAggregate SMALL = - IResourceAggregate.build(new ResourceAggregate(1.0, 1024, 4096)); - - public static final IResourceAggregate MEDIUM = - IResourceAggregate.build(new ResourceAggregate(4.0, 8192, 16384)); - - public static final IResourceAggregate LARGE = - IResourceAggregate.build(new ResourceAggregate(8.0, 16384, 32768)); - - public static final IResourceAggregate XLARGE = - IResourceAggregate.build(new ResourceAggregate(16.0, 32768, 65536)); - - private ResourceAggregates() { - // Utility class. - } - - /** - * Returns a quota with all resource vectors zeroed. - * - * @return A resource aggregate with all resource vectors zeroed. - */ - public static IResourceAggregate none() { - return EMPTY; - } - - /** - * a * m. - */ - public static IResourceAggregate scale(IResourceAggregate a, int m) { - return IResourceAggregate.build(new ResourceAggregate() - .setNumCpus(a.getNumCpus() * m) - .setRamMb(a.getRamMb() * m) - .setDiskMb(a.getDiskMb() * m)); - } - - /** - * a / b. - * <p> - * This calculates how many times {@code b} "fits into" {@code a}. Behavior is undefined when - * {@code b} contains resources with a value of zero. - */ - public static int divide(IResourceAggregate a, IResourceAggregate b) { - return Ordering.natural().min( - a.getNumCpus() / b.getNumCpus(), - (double) a.getRamMb() / b.getRamMb(), - (double) a.getDiskMb() / b.getDiskMb() - ).intValue(); - } -} http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java b/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java index 7f5e45b..8787aea 100644 --- a/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java +++ b/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java @@ -32,9 +32,9 @@ import com.google.common.collect.RangeSet; import org.apache.aurora.gen.JobUpdateQuery; import org.apache.aurora.gen.ResourceAggregate; +import org.apache.aurora.scheduler.ResourceAggregates; import org.apache.aurora.scheduler.base.JobKeys; import org.apache.aurora.scheduler.base.Query; -import org.apache.aurora.scheduler.base.ResourceAggregates; import org.apache.aurora.scheduler.base.Tasks; import org.apache.aurora.scheduler.storage.JobUpdateStore; import org.apache.aurora.scheduler.storage.Storage.MutableStoreProvider; @@ -55,7 +55,7 @@ import org.apache.aurora.scheduler.updater.Updates; import static java.util.Objects.requireNonNull; -import static org.apache.aurora.scheduler.base.ResourceAggregates.EMPTY; +import static org.apache.aurora.scheduler.ResourceAggregates.EMPTY; import static org.apache.aurora.scheduler.quota.QuotaCheckResult.Result.SUFFICIENT_QUOTA; import static org.apache.aurora.scheduler.updater.Updates.getInstanceIds; http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/src/main/java/org/apache/aurora/scheduler/sla/SlaGroup.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/sla/SlaGroup.java b/src/main/java/org/apache/aurora/scheduler/sla/SlaGroup.java index d9a3c48..2122c2c 100644 --- a/src/main/java/org/apache/aurora/scheduler/sla/SlaGroup.java +++ b/src/main/java/org/apache/aurora/scheduler/sla/SlaGroup.java @@ -30,11 +30,11 @@ import org.apache.aurora.scheduler.base.Tasks; import org.apache.aurora.scheduler.storage.entities.IJobKey; import org.apache.aurora.scheduler.storage.entities.IScheduledTask; -import static org.apache.aurora.scheduler.base.ResourceAggregates.EMPTY; -import static org.apache.aurora.scheduler.base.ResourceAggregates.LARGE; -import static org.apache.aurora.scheduler.base.ResourceAggregates.MEDIUM; -import static org.apache.aurora.scheduler.base.ResourceAggregates.SMALL; -import static org.apache.aurora.scheduler.base.ResourceAggregates.XLARGE; +import static org.apache.aurora.scheduler.ResourceAggregates.EMPTY; +import static org.apache.aurora.scheduler.ResourceAggregates.LARGE; +import static org.apache.aurora.scheduler.ResourceAggregates.MEDIUM; +import static org.apache.aurora.scheduler.ResourceAggregates.SMALL; +import static org.apache.aurora.scheduler.ResourceAggregates.XLARGE; /** * Defines a logical grouping criteria to be applied over a set of tasks. http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/src/main/java/org/apache/aurora/scheduler/stats/SlotSizeCounter.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/stats/SlotSizeCounter.java b/src/main/java/org/apache/aurora/scheduler/stats/SlotSizeCounter.java index 5de34b2..39c055d 100644 --- a/src/main/java/org/apache/aurora/scheduler/stats/SlotSizeCounter.java +++ b/src/main/java/org/apache/aurora/scheduler/stats/SlotSizeCounter.java @@ -23,7 +23,7 @@ import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableMap; -import org.apache.aurora.scheduler.base.ResourceAggregates; +import org.apache.aurora.scheduler.ResourceAggregates; import org.apache.aurora.scheduler.storage.entities.IResourceAggregate; import static java.util.Objects.requireNonNull; http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/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 2d90536..1e352fb 100644 --- a/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java +++ b/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java @@ -34,9 +34,9 @@ import org.apache.aurora.gen.ResourceAggregate; import org.apache.aurora.gen.ScheduleStatus; import org.apache.aurora.gen.ScheduledTask; import org.apache.aurora.gen.TaskConfig; +import org.apache.aurora.scheduler.ResourceAggregates; import org.apache.aurora.scheduler.base.JobKeys; import org.apache.aurora.scheduler.base.Query; -import org.apache.aurora.scheduler.base.ResourceAggregates; import org.apache.aurora.scheduler.quota.QuotaManager.QuotaException; import org.apache.aurora.scheduler.quota.QuotaManager.QuotaManagerImpl; import org.apache.aurora.scheduler.storage.JobUpdateStore; http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/src/test/java/org/apache/aurora/scheduler/stats/SlotSizeCounterTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/aurora/scheduler/stats/SlotSizeCounterTest.java b/src/test/java/org/apache/aurora/scheduler/stats/SlotSizeCounterTest.java index 41f14f9..b6623d5 100644 --- a/src/test/java/org/apache/aurora/scheduler/stats/SlotSizeCounterTest.java +++ b/src/test/java/org/apache/aurora/scheduler/stats/SlotSizeCounterTest.java @@ -22,7 +22,7 @@ import com.twitter.common.stats.StatsProvider; import com.twitter.common.testing.easymock.EasyMockTest; import org.apache.aurora.gen.ResourceAggregate; -import org.apache.aurora.scheduler.base.ResourceAggregates; +import org.apache.aurora.scheduler.ResourceAggregates; import org.apache.aurora.scheduler.stats.SlotSizeCounter.MachineResource; import org.apache.aurora.scheduler.stats.SlotSizeCounter.MachineResourceProvider; import org.apache.aurora.scheduler.storage.entities.IResourceAggregate; http://git-wip-us.apache.org/repos/asf/aurora/blob/ae8a9f72/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 20b2ff8..52b3673 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 @@ -43,9 +43,9 @@ import org.apache.aurora.gen.storage.SchedulerMetadata; import org.apache.aurora.gen.storage.Snapshot; import org.apache.aurora.gen.storage.StoredCronJob; import org.apache.aurora.gen.storage.StoredJobUpdateDetails; +import org.apache.aurora.scheduler.ResourceAggregates; import org.apache.aurora.scheduler.base.JobKeys; import org.apache.aurora.scheduler.base.Query; -import org.apache.aurora.scheduler.base.ResourceAggregates; import org.apache.aurora.scheduler.storage.SnapshotStore; import org.apache.aurora.scheduler.storage.entities.IHostAttributes; import org.apache.aurora.scheduler.storage.entities.IJobConfiguration;
