private Map<String, String> getSanitizedApplicationProperties(String deploymentId, AppDeploymentRequest request) { Map<String, String> applicationProperties = new HashMap<>(request.getDefinition().getProperties()); // Remove server.port as CF assigns a port for us, and we don't want to override that Optional.ofNullable(applicationProperties.remove("server.port")) .ifPresent(port -> logger.warn("Ignoring 'server.port={}' for app {}, as Cloud Foundry will assign a local dynamic port. Route to the app will use port 80.", port, deploymentId)); return applicationProperties; }
protected int configureExternalPort(final AppDeploymentRequest request) { int externalPort = 8080; Map<String, String> parameters = request.getDefinition().getProperties(); if (parameters.containsKey(SERVER_PORT_KEY)) { externalPort = Integer.valueOf(parameters.get(SERVER_PORT_KEY)); } return externalPort; }
protected String createDeploymentId(AppDeploymentRequest request) { String groupId = request.getDeploymentProperties().get(AppDeployer.GROUP_PROPERTY_KEY); String deploymentId; if (groupId == null) { deploymentId = String.format("%s", request.getDefinition().getName()); } else { deploymentId = String.format("%s-%s", groupId, request.getDefinition().getName()); } // Kubernetes does not allow . in the name and does not allow uppercase in the name return deploymentId.replace('.', '-').toLowerCase(); }
@Override public String launch(AppDeploymentRequest request) { String launchId = wrapped.launch(request); deployedApps.add(request.getDefinition().getName()); launchedTasks.add(launchId); return launchId; }
private String deploymentId(AppDeploymentRequest request) { String prefix = Optional.ofNullable(request.getDeploymentProperties().get(GROUP_PROPERTY_KEY)) .map(group -> String.format("%s-", group)) .orElse(""); String appName = String.format("%s%s", prefix, request.getDefinition().getName()); return this.applicationNameGenerator.generateAppName(appName); }
@Override public String launch(AppDeploymentRequest request) { String launchId = wrapped.launch(request); deployedApps.add(request.getDefinition().getName()); launchedTasks.add(launchId); return launchId; }
@Override protected Map<String, String> getProperties(AppDeploymentRequest request) { Map<String, String> properties = super.getProperties(request); boolean useDynamicPort = !properties.containsKey(SERVER_PORT_KEY); int port = useDynamicPort ? SocketUtils.findAvailableTcpPort(DEFAULT_SERVER_PORT) : Integer.parseInt( request.getDefinition().getProperties().get(SERVER_PORT_KEY)); if (useDynamicPort) { properties.put(SERVER_PORT_KEY, String.valueOf(port)); } return properties; }
private String deduceAppId(AppDeploymentRequest request) { String groupId = request.getDeploymentProperties().get(GROUP_PROPERTY_KEY); String name = request.getDefinition().getName(); if (groupId != null) { return "/" + groupId + "/" + name; } else { return "/" + name; } }
private boolean isDynamicPort(AppDeploymentRequest request) { boolean isServerPortKeyonArgs = isServerPortKeyPresentOnArgs(request) != null; return !request.getDefinition().getProperties().containsKey(SERVER_PORT_KEY) && !isServerPortKeyonArgs; }
private void validateAppVersionIsRegistered(String registeredAppName, AppDeploymentRequest appDeploymentRequest, String appVersion) { String appTypeString = appDeploymentRequest.getDefinition().getProperties() .get(DataFlowPropertyKeys.STREAM_APP_TYPE); ApplicationType applicationType = ApplicationType.valueOf(appTypeString); if (!this.appRegistryService.appExist(registeredAppName, applicationType, appVersion)) { throw new IllegalStateException(String.format("The %s:%s:%s app is not registered!", registeredAppName, appTypeString, appVersion)); } }
private void validateAppVersionIsRegistered(String registeredAppName, AppDeploymentRequest appDeploymentRequest, String appVersion) { String appTypeString = appDeploymentRequest.getDefinition().getProperties() .get(DataFlowPropertyKeys.STREAM_APP_TYPE); ApplicationType applicationType = ApplicationType.valueOf(appTypeString); if (!this.appRegistryService.appExist(registeredAppName, applicationType, appVersion)) { throw new IllegalStateException(String.format("The %s:%s:%s app is not registered!", registeredAppName, appTypeString, appVersion)); } }
protected String createDeploymentId(AppDeploymentRequest request) { String name = request.getDefinition().getName(); Hashids hashids = new Hashids(name, 0, "abcdefghijklmnopqrstuvwxyz1234567890"); String hashid = hashids.encode(System.currentTimeMillis()); String deploymentId = name + "-" + hashid; // Kubernetes does not allow . in the name and does not allow uppercase in the name return deploymentId.replace('.', '-').toLowerCase(); }
protected String createDeploymentId(AppDeploymentRequest request) { String name = request.getDefinition().getName(); Hashids hashids = new Hashids(name); String hashid = hashids.encode(System.currentTimeMillis()); return name + "-" + hashid; }
public void validateAppVersionIsRegistered(StreamDefinition streamDefinition, AppDeploymentRequest appDeploymentRequest, String appVersion) { String registeredAppName = getRegisteredName(streamDefinition, appDeploymentRequest.getDefinition().getName()); this.validateAppVersionIsRegistered(registeredAppName, appDeploymentRequest, appVersion); }
public void validateAppVersionIsRegistered(StreamDefinition streamDefinition, AppDeploymentRequest appDeploymentRequest, String appVersion) { String registeredAppName = getRegisteredName(streamDefinition, appDeploymentRequest.getDefinition().getName()); this.validateAppVersionIsRegistered(registeredAppName, appDeploymentRequest, appVersion); }
private Mono<String> launchTask(SummaryApplicationResponse application, AppDeploymentRequest request) { return requestCreateTask(application.getId(), getCommand(application, request), memory(request), request.getDefinition().getName()) .map(CreateTaskResponse::getId); }
private Mono<AbstractApplicationSummary> getOptionalApplication(AppDeploymentRequest request) { String name = request.getDefinition().getName(); return requestListApplications() .filter(application -> name.equals(application.getName())) .singleOrEmpty() .cast(AbstractApplicationSummary.class); }
private void validateAllAppsRegistered(StreamDeploymentRequest streamDeploymentRequest) { if (streamDeploymentRequest.getAppDeploymentRequests() == null || streamDeploymentRequest.getAppDeploymentRequests().isEmpty()) { // nothing to validate. return; } // throw as at this point we should have definition StreamDefinition streamDefinition = this.streamDefinitionRepository .findById(streamDeploymentRequest.getStreamName()) .orElseThrow(() -> new NoSuchStreamDefinitionException(streamDeploymentRequest.getStreamName())); for (AppDeploymentRequest adr : streamDeploymentRequest.getAppDeploymentRequests()) { String version = this.appRegistryService.getResourceVersion(adr.getResource()); validateAppVersionIsRegistered(getRegisteredName(streamDefinition, adr.getDefinition().getName()), adr, version); } }
private Mono<AbstractApplicationSummary> deployApplication(AppDeploymentRequest request) { String name = request.getDefinition().getName(); return pushApplication(name, request) .then(requestStopApplication(name)) .then(requestGetApplication(name)) .cast(AbstractApplicationSummary.class); }
private void validateAllAppsRegistered(StreamDeploymentRequest streamDeploymentRequest) { StreamDefinition streamDefinition = this.streamDefinitionRepository.findOne(streamDeploymentRequest.getStreamName()); for (AppDeploymentRequest adr : streamDeploymentRequest.getAppDeploymentRequests()) { String version = this.appRegistryService.getResourceVersion(adr.getResource()); validateAppVersionIsRegistered(getRegisteredName(streamDefinition, adr.getDefinition().getName()), adr, version); } }