@Override public MonitorInstance saveMonitorInstance( Long idMonitor, String apiEndpoint, Long ipAddressId, Long vmId, Long componentId) { MonitorInstance result = new MonitorInstance( monitorModelService.getById(idMonitor), apiEndpoint, (ipAddressId == null ? null : ipAddressModelService.getById(ipAddressId)), (vmId == null ? null : virtualMachineModelService.getById(vmId)), (componentId == null ? null : componentModelService.getById(componentId))); monitorInstanceModelService.save(result); return result; }
@Override public List<MonitorInstance> getMonitorInstances(Long monitorId) { List<MonitorInstance> result = new ArrayList<>(); for (MonitorInstance mi : monitorInstanceModelService.getAll()) { if (mi.getMonitor().getId().equals(monitorId)) { result.add(mi); } } return result; }
@Override public String getPublicAddressOfVM(VirtualMachine vm) { List<IpAddress> addresses = ipAddressModelService.getAll(); for (IpAddress ip : addresses) { /*TODO Not only return ONE, but EACH address */ if (ip.getVirtualMachine().equals(vm) && ip.getIpType().equals(IpType.PUBLIC)) { return ip.getIp(); } } return null; }
@Override public List<Instance> getInstances(Long vm) { List<Instance> instances; List<Instance> result = new ArrayList<Instance>(); instances = instanceModelService.getAll(); for (Instance instance : instances) { boolean suitable = true; // Filter for application id if (vm > 0 && !instance.getVirtualMachine().getId().equals(vm)) { suitable = false; } if (suitable) { result.add(instance); } } return result; }
@Override public List<VirtualMachine> getVirtualMachines( Long applicationId, Long componentId, Long instanceId, Long cloudId) { List<VirtualMachine> vms; List<VirtualMachine> result = new ArrayList<VirtualMachine>(); vms = virtualMachineModelService.getAll(); for (VirtualMachine vm : vms) { boolean suitable = true; List<Instance> instances = null; List<ApplicationComponent> appComps = null; // Filter for application id if (applicationId != null) { instances = this.getInstances(vm.getId()); appComps = new ArrayList<>(); for (Instance instance : instances) { if (instance.getVirtualMachine().getId().equals(vm.getId())) { LOGGER.info("Instance " + instance.getId() + " belongs to VM " + vm.getId()); appComps.add( getApplicationComponentForInstance(instance.getApplicationComponent().getId())); } } boolean oneInstanceFit = false; for (ApplicationComponent ac : appComps) { if (ac.getApplication().getId() == applicationId) { oneInstanceFit = true; } } suitable = oneInstanceFit; } // Filter for component id if (suitable && componentId != null) { if (instances == null) { instances = this.getInstances(vm.getId()); appComps = new ArrayList<ApplicationComponent>(); for (Instance instance : instances) { appComps.add( getApplicationComponentForInstance(instance.getApplicationComponent().getId())); } } boolean oneInstanceFit = false; for (ApplicationComponent ac : appComps) { if (ac.getComponent().getId() == componentId) { oneInstanceFit = true; } } suitable = oneInstanceFit; } // Filter for instance id if (suitable && instanceId != null) { if (instances == null) { instances = this.getInstances(vm.getId()); } boolean oneInstanceFit = false; for (Instance instance : instances) { if (instance.getId() == instanceId) { oneInstanceFit = true; } } suitable = oneInstanceFit; } // Filter for cloud id if (suitable && cloudId != null) { if (vm.cloud().getId() != cloudId) { suitable = false; } } // Add to result if (suitable) { result.add(vm); } } return result; }
@Override public void removeMonitorInstance(MonitorInstance monitorInstance) { monitorInstanceModelService.delete(monitorInstance); }
@Override public List<Monitor> getMonitors() { return monitorModelService.getAll(); }
@Override public Monitor getMonitor(Long id) { return monitorModelService.getById(id); }
@Override public ComposedMonitor getComposedMonitor(Long monitorId) { return composedMonitorModelService.getById(monitorId); }
@Override public RawMonitor getRawMonitor(Long monitorId) { return rawMonitorModelService.getById(monitorId); }
@Override public MonitorInstance getMonitorInstance(Long monitorInstanceId) { return monitorInstanceModelService.getById(monitorInstanceId); }
@Override public String getIpAddress(Long idIpAddress) { return ipAddressModelService.getById(idIpAddress).getIp(); }
@Override public List<Component> getComponents( Long applicationId, Long componentId, Long instanceId, Long cloudId) { List<Component> result = new ArrayList<Component>(); List<Component> components = componentModelService.getAll(); List<Instance> instances = null; List<VirtualMachine> vms = null; List<ApplicationComponent> appComps = applicationComponentModelService.getAll(); for (Component component : components) { boolean suitable = false; if (applicationId != null) { for (ApplicationComponent ac : appComps) { if (ac.getComponent().getId().equals(componentId) && ac.getApplication().getId().equals(applicationId)) { suitable = true; } } } if (componentId != null) { if (componentId.equals(component.getId())) { suitable = suitable && true; } } if (instanceId != null) { if (instances == null) instances = instanceModelService.getAll(); boolean oneFits = false; for (Instance instance : instances) { if (isInstanceOf(instance, appComps, component)) { oneFits = true; } } if (oneFits) { suitable = suitable && true; } else { suitable = false; } } if (cloudId != null) { if (instances == null) instances = instanceModelService.getAll(); if (vms == null) vms = virtualMachineModelService.getAll(); boolean oneFits = false; for (Instance instance : instances) { if (isInstanceOf(instance, vms, cloudId)) { if (isInstanceOf(instance, appComps, component)) { oneFits = true; } } } if (oneFits) { suitable = suitable && true; } else { suitable = false; } } if (suitable) { result.add(component); } } return result; }
@Override public ApplicationComponent getApplicationComponentForInstance(Long appCompId) { return applicationComponentModelService.getById(appCompId); }