| 33 | |
| 34 | public class TestFramework { |
| 35 | static class TestScheduler implements Scheduler { |
| 36 | public TestScheduler(boolean implicitAcknowledgements, |
| 37 | ExecutorInfo executor, |
| 38 | FrameworkInfo framework, |
| 39 | int totalTasks) { |
| 40 | this.implicitAcknowledgements = implicitAcknowledgements; |
| 41 | this.executor = executor; |
| 42 | this.framework = framework; |
| 43 | this.totalTasks = totalTasks; |
| 44 | } |
| 45 | |
| 46 | @Override |
| 47 | public void registered(SchedulerDriver driver, |
| 48 | FrameworkID frameworkId, |
| 49 | MasterInfo masterInfo) { |
| 50 | System.out.println("Registered! ID = " + frameworkId.getValue()); |
| 51 | |
| 52 | // Clear suppressed roles. |
| 53 | FrameworkInfo.Builder builder = framework.toBuilder(); |
| 54 | builder.setId(frameworkId); |
| 55 | driver.updateFramework( |
| 56 | builder.build(), |
| 57 | new ArrayList<String>(), |
| 58 | OfferConstraints.getDefaultInstance()); |
| 59 | } |
| 60 | |
| 61 | @Override |
| 62 | public void reregistered(SchedulerDriver driver, MasterInfo masterInfo) {} |
| 63 | |
| 64 | @Override |
| 65 | public void disconnected(SchedulerDriver driver) {} |
| 66 | |
| 67 | @Override |
| 68 | public void resourceOffers(SchedulerDriver driver, |
| 69 | List<Offer> offers) { |
| 70 | double CPUS_PER_TASK = 1; |
| 71 | double MEM_PER_TASK = 128; |
| 72 | |
| 73 | for (Offer offer : offers) { |
| 74 | Offer.Operation.Launch.Builder launch = Offer.Operation.Launch.newBuilder(); |
| 75 | double offerCpus = 0; |
| 76 | double offerMem = 0; |
| 77 | for (Resource resource : offer.getResourcesList()) { |
| 78 | if (resource.getName().equals("cpus")) { |
| 79 | offerCpus += resource.getScalar().getValue(); |
| 80 | } else if (resource.getName().equals("mem")) { |
| 81 | offerMem += resource.getScalar().getValue(); |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | System.out.println( |
| 86 | "Received offer " + offer.getId().getValue() + " with cpus: " + offerCpus + |
| 87 | " and mem: " + offerMem); |
| 88 | |
| 89 | double remainingCpus = offerCpus; |
| 90 | double remainingMem = offerMem; |
| 91 | while (launchedTasks < totalTasks && |
| 92 | remainingCpus >= CPUS_PER_TASK && |
nothing calls this directly
no outgoing calls
no test coverage detected