public static String getStackNamespace(Stack stack, Service service) { return new StringBuilder().append(stack.getName()).append(".") .append(getGlobalNamespace(service)).toString().toLowerCase(); } }
public static String generateServiceInstanceName(Stack env, Service service, String launchConfigName, int finalOrder) { String configName = launchConfigName == null || launchConfigName.equals(ServiceConstants.PRIMARY_LAUNCH_CONFIG_NAME) ? "" : launchConfigName + "-"; String name = String.format("%s-%s-%s%d", env.getName(), service.getName(), configName, finalOrder); return name; }
public static boolean isServiceGeneratedName(Stack env, Service service, String instanceName) { for (String divider : SERVICE_INSTANCE_NAME_DIVIDORS) { if (instanceName.startsWith(String.format("%s%s%s", env.getName(), divider, service.getName()))) { return true; } } return false; }
protected String generateService(Service service, Stack stack) throws Exception { @SuppressWarnings("unchecked") Map<String, Object> metadata = DataAccessor.fields(service).withKey(ServiceConstants.FIELD_METADATA) .withDefault(Collections.EMPTY_MAP).as(Map.class); String serviceName = service.getName(); List<? extends String> configuredSans = DataAccessor.fromMap(metadata).withKey("sans") .withDefault(Collections.emptyList()).asList(jsonMapper, String.class); List<String> sans = new ArrayList<>(configuredSans); sans.add(serviceName.toLowerCase()); sans.add(String.format("%s.%s", serviceName, stack.getName()).toLowerCase()); sans.add(String.format("%s.%s.%s", serviceName, stack.getName(), NetworkConstants.INTERNAL_DNS_SEARCH_DOMAIN) .toLowerCase()); CertSet certSet = keyProvider.generateCertificate(serviceName, sans.toArray(new String[sans.size()])); ByteArrayOutputStream baos = new ByteArrayOutputStream(); certSet.writeZip(baos); return Base64.encodeBase64String(baos.toByteArray()); }
protected Map<String, String> getLabels(DeploymentUnitInstance instance) { Map<String, String> labels = new HashMap<>(); String serviceName = instance.getService().getName(); if (!ServiceConstants.PRIMARY_LAUNCH_CONFIG_NAME.equals(instance.getLaunchConfigName())) { serviceName = serviceName + '/' + instance.getLaunchConfigName(); } String envName = stack.getName(); labels.put(ServiceConstants.LABEL_STACK_NAME, envName); labels.put(ServiceConstants.LABEL_STACK_SERVICE_NAME, envName + "/" + serviceName); // LEGACY: keeping backwards compatibility with 'project' labels.put(ServiceConstants.LABEL_PROJECT_NAME, envName); labels.put(ServiceConstants.LABEL_PROJECT_SERVICE_NAME, envName + "/" + serviceName); /* * Put label 'io.rancher.deployment.unit=this.uuid' on each one. This way * we can reference a set of containers later. */ labels.put(ServiceConstants.LABEL_SERVICE_DEPLOYMENT_UNIT, uuid); /* * Put label with launch config name */ labels.put(ServiceConstants.LABEL_SERVICE_LAUNCH_CONFIG, instance.getLaunchConfigName()); labels.putAll(this.unitLabels); return labels; }
@Override public Object create(String type, ApiRequest request, ResourceManager next) { Stack env = request.proxyRequestObject(Stack.class); validateStackName(type, request, env.getName()); return super.create(type, request, next); }
@Override public Object update(String type, String id, ApiRequest request, ResourceManager next) { Stack stack = objMgr.loadResource(Stack.class, id); validateInfraAccess(request, stack, "update"); Map<String, Object> data = CollectionUtils.toMap(request.getRequestObject()); Object newName = data.get("name"); if(newName != null) { String stackName = newName.toString(); if(!stackName.equalsIgnoreCase(stack.getName())) { validateStackName(type, request, stackName); } } return super.update(type, id, request, next); }
Stack env = objectManager.loadResource(Stack.class, consumedService.getStackId()); consumedServiceName = env.getName() + "/" + consumedServiceName;
Stack externalStack = objectManager.loadResource(Stack.class, consumedService.getStackId()); externalLinksServices.add(externalStack.getName() + "/" + linkName);
@Override public void cleanupResources(final Service service) { if (!DockerConstants.TYPE_COMPOSE_SERVICE.equals(service.getKind())) { return; } final Stack env = objectManager.loadResource(Stack.class, service.getStackId()); lockManager.lock(new DefaultMultiLockDefinition(new ComposeProjectLock(env.getAccountId(), env.getName()), new ComposeServiceLock(env.getAccountId(), service.getName())), new LockCallbackNoReturn() { @Override public void doWithLockNoResult() { checkAndDelete(service, env); } }); }
final String postfix = io.cattle.platform.util.resource.UUID.randomUUID().toString(); if (template.getPerContainer()) { String name = stack.getName() + "_" + volumeNamePostfix + "_" + this.unit.getServiceIndex() + "_" + uuid + "_"; final String name = stack.getName() + "_" + volumeNamePostfix + "_"; volume = context.lockMgr.lock(new StackVolumeLock(stack, name), new LockCallback<Volume>() { @Override
public MetadataPortRule(PortRule portRule, Service service, Stack stack, boolean defaultWeight) { this.source_port = portRule.getSourcePort(); if (portRule.getProtocol() != null) { this.protocol = portRule.getProtocol().name(); } this.path = portRule.getPath(); this.hostname = portRule.getHostname(); if (service != null) { if (stack != null) { this.service = formatServiceName(service.getName(), stack.getName()); } else { this.service = service.getName(); } } this.target_port = portRule.getTargetPort(); this.backend_name = portRule.getBackendName(); this.priority = portRule.getPriority(); this.selector = portRule.getSelector(); this.region = StringUtils.lowerCase(portRule.getRegion()); this.environment = StringUtils.lowerCase(portRule.getEnvironment()); this.weight = portRule.getWeight(); if (this.weight == null && defaultWeight) { this.weight = 1; } }
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.Stack 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()); setExternalId(from.getExternalId()); setHealthState(from.getHealthState()); setGroup(from.getGroup()); setSystem(from.getSystem()); }