public static String getVip(Service service) { String vip = service.getVip(); // indicator that its pre-upgraded setup that had vip set for every service by default // vip will be set only // a) field_set_vip is set via API // b) for k8s services Map<String, Object> data = new HashMap<>(); data.putAll(DataUtils.getFields(service)); Object vipObj = data.get(ServiceConstants.FIELD_SET_VIP); boolean setVip = vipObj != null && Boolean.valueOf(vipObj.toString()); if (setVip || service.getKind().equalsIgnoreCase("kubernetesservice")) { return vip; } return null; }
@Override public void releaseVip(Service service) { String vip = service.getVip(); if (vip == null) { return; } List<Subnet> subnets = objectManager.find(Subnet.class, SUBNET.ACCOUNT_ID, service.getAccountId(), SUBNET.KIND, SubnetConstants.KIND_VIP_SUBNET); if (subnets.isEmpty()) { return; } Subnet subnet = subnets.get(0); poolManager.releaseResource(subnet, service); }
protected String allocateVip(Service service) { if (ServiceConstants.SERVICE_LIKE.contains(service.getKind())) { Subnet vipSubnet = getServiceVipSubnet(service); String requestedVip = service.getVip(); return allocateIpForService(service, vipSubnet, requestedVip); } return null; }
@Override public void setVIP(Service service) { if (!(DataAccessor.fieldBool(service, ServiceConstants.FIELD_SET_VIP) || service.getVip() != null)) { return; } String vip = allocateVip(service); if (vip != null) { service.setVip(vip); objectManager.persist(service); } }
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.Service from) { setId(from.getId()); setName(from.getName()); setAccountId(from.getAccountId()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setStackId(from.getStackId()); setVip(from.getVip()); setCreateIndex(from.getCreateIndex()); setSelectorLink(from.getSelectorLink()); setSelectorContainer(from.getSelectorContainer()); setExternalId(from.getExternalId()); setHealthState(from.getHealthState()); setSystem(from.getSystem()); setSkip(from.getSkip()); }