/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.ServiceConsumeMap from) { setId(from.getId()); setName(from.getName()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setServiceId(from.getServiceId()); setConsumedServiceId(from.getConsumedServiceId()); setAccountId(from.getAccountId()); setConsumedService(from.getConsumedService()); }
@Override public ServiceConsumeMap findMapToRemove(long serviceId, long consumedServiceId) { List<ServiceConsumeMap> maps = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.SERVICE_ID, serviceId, SERVICE_CONSUME_MAP.CONSUMED_SERVICE_ID, consumedServiceId); for (ServiceConsumeMap map : maps) { if (map != null && (map.getRemoved() == null || map.getState().equals(CommonStatesConstants.REMOVING))) { return map; } } return null; }
private void removeOldServiceMaps(Service service, Map<String, ServiceLink> newServiceLinks) { List<? extends ServiceConsumeMap> existingMaps = consumeMapDao.findConsumedMapsToRemove(service.getId()); List<ServiceLink> linksToRemove = new ArrayList<>(); for (ServiceConsumeMap existingMap : existingMaps) { ServiceLink existingLink = new ServiceLink(existingMap.getConsumedServiceId(), existingMap.getName(), existingMap.getConsumedService()); if (!newServiceLinks.containsKey(existingLink.getUuid())) { linksToRemove.add(existingLink); } } for (ServiceLink linkToRemove : linksToRemove) { sdService.removeServiceLink(service, linkToRemove); } } }
@Override public void cloneConsumingServices(Service fromService, Service toService) { List<ServiceLink> linksToCreate = new ArrayList<>(); for (ServiceConsumeMap map : consumeMapDao.findConsumingServices(fromService.getId())) { ServiceLink link = new ServiceLink(toService.getId(), map.getName(), null); link.setConsumingServiceId(map.getServiceId()); linksToCreate.add(link); } consumeMapDao.createServiceLinks(linksToCreate); }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { InstanceLink link = (InstanceLink)state.getResource(); if (link.getServiceConsumeMapId() == null) { return null; } ServiceConsumeMap map = objectManager.loadResource(ServiceConsumeMap.class, link.getServiceConsumeMapId()); String serviceName = map.getName(); if (StringUtils.isBlank(serviceName)) { Service service = objectManager.loadResource(Service.class, map.getConsumedServiceId()); serviceName = service.getName(); } Instance instance = consumeMapDao.findOneInstanceForService(map.getConsumedServiceId()); List<String> names = consumeMapDao.findInstanceNamesForService(map.getConsumedServiceId()); return new HandlerResult(INSTANCE_LINK.LINK_NAME, serviceName, InstanceLinkConstants.FIELD_INSTANCE_NAMES, names, INSTANCE_LINK.TARGET_INSTANCE_ID, instance == null ? null : instance.getId()); }
sendChange(Stack.class, accountId, ((Service) obj).getStackId(), schedule, context); } else if (obj instanceof ServiceConsumeMap) { sendChange(Service.class, accountId, ((ServiceConsumeMap) obj).getServiceId(), schedule, context); sendChange(Service.class, null, ((ServiceConsumeMap) obj).getConsumedServiceId(), schedule, context); } else if (obj instanceof ServiceExposeMap) { sendChange(Service.class, accountId, ((ServiceExposeMap) obj).getServiceId(), schedule, context);
protected List<LoadBalancerTargetInput> getLoadBalancerTargetsV2(Service lbService) { if (!lbService.getKind().equalsIgnoreCase(ServiceConstants.KIND_LOAD_BALANCER_SERVICE)) { return new ArrayList<>(); } List<LoadBalancerTargetInput> targets = new ArrayList<>(); List<? extends ServiceConsumeMap> lbLinks = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.REMOVED, null, SERVICE_CONSUME_MAP.SERVICE_ID, lbService.getId()); for (ServiceConsumeMap lbLink : lbLinks) { if (lbLink.getState().equals(CommonStatesConstants.REMOVING)) { continue; } List<Service> consumedServices = new ArrayList<>(); Service svc = objectManager.loadResource(Service.class, lbLink.getConsumedServiceId()); consumedServices.add(svc); for (Service consumedService : consumedServices) { targets.add(new LoadBalancerTargetInput(consumedService, lbLink, jsonMapper)); } } return targets; }
if (INVALID_STATES.contains(link.getState())) { continue; if (link.getConsumedService() == null) { continue; String[] splitted = link.getConsumedService().split("/"); if (splitted.length < 3) { continue;
protected void findConsumingServicesImpl(long serviceId, List<Service> lbServices) { List<? extends ServiceConsumeMap> consumingServicesMaps = consumeMapDao .findConsumingServices(serviceId); for (ServiceConsumeMap consumingServiceMap : consumingServicesMaps) { Service consumingService = objectManager.loadResource(Service.class, consumingServiceMap.getServiceId()); if (consumingService.getKind().equalsIgnoreCase(ServiceConstants.KIND_LOAD_BALANCER_SERVICE)) { lbServices.add(consumingService); } else if (consumingService.getKind().equalsIgnoreCase(ServiceConstants.KIND_DNS_SERVICE)) { if (consumingService.getId().equals(serviceId)) { continue; } findConsumingServicesImpl(consumingService.getId(), lbServices); } } } }
Service consumedService = objectManager.loadResource(Service.class, map.getConsumedServiceId()); List<String> ports = DataAccessor.fieldStringList(map, LoadBalancerConstants.FIELD_LB_TARGET_PORTS); String consumedServiceName = consumedService.getName();
private ServiceConsumeMap findNonRemovedMap(long serviceId, String consumedServiceName, String linkName) { ServiceConsumeMap map = null; List<? extends ServiceConsumeMap> maps = new ArrayList<>(); if (linkName == null) { maps = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.SERVICE_ID, serviceId, SERVICE_CONSUME_MAP.CONSUMED_SERVICE, consumedServiceName, SERVICE_CONSUME_MAP.REMOVED, null); } else { maps = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.SERVICE_ID, serviceId, SERVICE_CONSUME_MAP.CONSUMED_SERVICE, consumedServiceName, SERVICE_CONSUME_MAP.NAME, linkName, SERVICE_CONSUME_MAP.REMOVED, null); } for (ServiceConsumeMap m : maps) { if (m.getState().equalsIgnoreCase(CommonStatesConstants.REMOVING)) { continue; } map = m; } return map; }
serviceConsumeMapIds.add(map.getId());
List<? extends ServiceConsumeMap> consumedServiceMaps = consumeMapDao.findConsumedServices(service.getId()); for (ServiceConsumeMap consumedServiceMap : consumedServiceMaps) { if (consumedServiceMap.getConsumedServiceId() != null) { Service consumedService = objectManager.findOne(Service.class, SERVICE.ID, consumedServiceMap.getConsumedServiceId()); + (!StringUtils.isEmpty(consumedServiceMap.getName()) ? consumedServiceMap.getName() : consumedService .getName()); if (servicesToExportIds.contains(consumedServiceMap.getConsumedServiceId())) { serviceLinksWithNames.add(linkName); } else if (!consumedService.getStackId().equals(service.getStackId())) { externalLinksServices.add(consumedServiceMap.getConsumedService() + ":" + consumedServiceMap.getName());
@Override public ServiceConsumeMap findMapToRemove(long serviceId, String consumedServiceName) { List<ServiceConsumeMap> maps = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.SERVICE_ID, serviceId, SERVICE_CONSUME_MAP.CONSUMED_SERVICE, consumedServiceName); for (ServiceConsumeMap map : maps) { if (map != null && (map.getRemoved() == null || map.getState().equals(CommonStatesConstants.REMOVING))) { return map; } } return null; }
protected Object getAccountObject(Object obj) { if (obj instanceof HostIpAddressMap) { return objectManager.loadResource(IpAddress.class, ((HostIpAddressMap) obj).getIpAddressId()); } else if (obj instanceof InstanceHostMap) { return objectManager.loadResource(Instance.class, ((InstanceHostMap) obj).getInstanceId()); } else if (obj instanceof ServiceConsumeMap) { return objectManager.loadResource(Service.class, ((ServiceConsumeMap) obj).getServiceId()); } else if (obj instanceof ServiceExposeMap) { return objectManager.loadResource(Service.class, ((ServiceExposeMap) obj).getServiceId()); } return obj; }
@SuppressWarnings("unchecked") private void updateServices(AccountLink accountLink) { List<? extends ServiceConsumeMap> consumeMaps = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.ACCOUNT_ID, accountLink.getAccountId(), SERVICE_CONSUME_MAP.REMOVED, null); List<? extends Service> services = objectManager.find(Service.class, SERVICE.ACCOUNT_ID, accountLink.getLinkedAccountId(), SERVICE.REMOVED, null); List<Long> serviceIds = (List<Long>) CollectionUtils.collect(services, TransformerUtils.invokerTransformer("getId")); for (ServiceConsumeMap consumeMap : consumeMaps) { if (serviceIds.contains(consumeMap.getConsumedServiceId())) { objectProcessManager.scheduleStandardProcessAsync(StandardProcess.REMOVE, consumeMap, null); } } }
@Override public ServiceConsumeMap findNonRemovedMap(long serviceId, long consumedServiceId, String linkName) { ServiceConsumeMap map = null; List<? extends ServiceConsumeMap> maps = new ArrayList<>(); if (linkName == null) { maps = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.SERVICE_ID, serviceId, SERVICE_CONSUME_MAP.CONSUMED_SERVICE_ID, consumedServiceId, SERVICE_CONSUME_MAP.REMOVED, null); } else { maps = objectManager.find(ServiceConsumeMap.class, SERVICE_CONSUME_MAP.SERVICE_ID, serviceId, SERVICE_CONSUME_MAP.CONSUMED_SERVICE_ID, consumedServiceId, SERVICE_CONSUME_MAP.NAME, linkName, SERVICE_CONSUME_MAP.REMOVED, null); } for (ServiceConsumeMap m : maps) { if (m.getState().equalsIgnoreCase(CommonStatesConstants.REMOVING)) { continue; } map = m; } return map; }
if (map.getState().equalsIgnoreCase(CommonStatesConstants.REQUESTED)) { objectProcessManager.scheduleProcessInstance(ServiceConstants.PROCESS_SERVICE_CONSUME_MAP_CREATE, map, null);