// calculate if an App fits to a pm // TODO: gst: use WEKA to calc fit factor!! private int calculateFit(App app2, VirtualMachine vm) { int output = 0; if (Action.isOnlyLearning() == false && CreateAppInsertIntoVm.evaluation != null) { // is free space available in the VM if (app2.getCpu() + vm.getCurrentCpuUsage() < vm.getCurrentCpuAllocation() && app2.getMemory() + vm.getCurrentMemoryUsage() < vm.getCurrentMemoryAllocation() && app2.getStorage() + vm.getCurrentStorageUsage() < vm.getCurrentCpuAllocation()) { Instance instance = createInstance(Instance.missingValue(), vm); instance.setDataset(CreateAppInsertIntoVm.getKnowledgeBase()); try { output = (int) (evaluation.evaluateModelOnce(classifier, instance) * 100); } catch (Exception e) { e.printStackTrace(); } } } else { if (app2.getCpu() + vm.getCurrentCpuUsage() < vm.getCurrentCpuAllocation() && app2.getMemory() + vm.getCurrentMemoryUsage() < vm.getCurrentMemoryAllocation() && app2.getStorage() + vm.getCurrentStorageUsage() < vm.getCurrentCpuAllocation()) { output = randomData.nextInt(1, 100); } } return output; }
public void terminate() { try { Action.saveKnowledge( Configuration.getInstance().getKBCreateAppInsertIntoVm(), CreateAppInsertIntoVm.getKnowledgeBase()); } catch (IOException e) { e.printStackTrace(); } }