summaryrefslogtreecommitdiff
path: root/module/acme-planner/src/main/java/io/trygvis/acme/planning/machine/CloudBalancingEasyScoreCalculator.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2021-02-03 16:35:48 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2021-02-03 16:35:48 +0100
commitbafe762ac01d16904c18404283027e426e19bc73 (patch)
treec22688ad186f5ce635f525704c5035f91b983b68 /module/acme-planner/src/main/java/io/trygvis/acme/planning/machine/CloudBalancingEasyScoreCalculator.java
parent91abd0b04320a9c9d932df195aca38c1cacfcc5a (diff)
downloadrules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.tar.gz
rules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.tar.bz2
rules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.tar.xz
rules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.zip
Code reorganization.
Moving main code to src, keeping modules in modules/
Diffstat (limited to 'module/acme-planner/src/main/java/io/trygvis/acme/planning/machine/CloudBalancingEasyScoreCalculator.java')
-rw-r--r--module/acme-planner/src/main/java/io/trygvis/acme/planning/machine/CloudBalancingEasyScoreCalculator.java45
1 files changed, 0 insertions, 45 deletions
diff --git a/module/acme-planner/src/main/java/io/trygvis/acme/planning/machine/CloudBalancingEasyScoreCalculator.java b/module/acme-planner/src/main/java/io/trygvis/acme/planning/machine/CloudBalancingEasyScoreCalculator.java
deleted file mode 100644
index 6a14372..0000000
--- a/module/acme-planner/src/main/java/io/trygvis/acme/planning/machine/CloudBalancingEasyScoreCalculator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package io.trygvis.acme.planning.machine;
-
-import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore;
-import org.optaplanner.core.api.score.calculator.EasyScoreCalculator;
-
-public class CloudBalancingEasyScoreCalculator implements EasyScoreCalculator<CloudBalance, HardSoftScore> {
-
- @Override
- public HardSoftScore calculateScore(CloudBalance cloudBalance) {
- int hardScore = 0;
- int softScore = 0;
- for (CloudComputer computer : cloudBalance.getComputerList()) {
- int cpu = 0;
- int memory = 0;
- boolean used = false;
-
- // Calculate usage
- for (CloudProcess process : cloudBalance.getProcessList()) {
- if (computer.equals(process.computer)) {
- cpu += process.requiredCpu;
- memory += process.requiredMemory;
- used = true;
- }
- }
-
- var instance = computer.instance;
-
- // Hard constraints
- int cpuPowerAvailable = instance.cpu - cpu;
- if (cpuPowerAvailable < 0) {
- hardScore += cpuPowerAvailable;
- }
- int memoryAvailable = instance.memory - memory;
- if (memoryAvailable < 0) {
- hardScore += memoryAvailable;
- }
-
- // Soft constraints
- if (used) {
- softScore -= instance.cost;
- }
- }
- return HardSoftScore.of(hardScore, softScore);
- }
-}