private void populateNetworkForService( Service service, String launchConfigName, Map<String, Object> composeServiceData) { Object networkMode = composeServiceData.get(ServiceDiscoveryConfigItem.NETWORKMODE.getDockerName()); if (networkMode != null) { if (networkMode.equals(DockerNetworkConstants.NETWORK_MODE_CONTAINER)) { Map<String, Object> serviceData = ServiceDiscoveryUtil.getLaunchConfigDataAsMap(service, launchConfigName); // network mode can be passed by container, or by service name, so check both // networkFromContainerId wins Integer targetContainerId = DataAccessor.fieldInteger(service, DockerInstanceConstants.DOCKER_CONTAINER); if (targetContainerId != null) { Instance instance = objectManager.loadResource(Instance.class, targetContainerId.longValue()); String instanceName = ServiceDiscoveryUtil.getInstanceName(instance); composeServiceData.put( ServiceDiscoveryConfigItem.NETWORKMODE.getDockerName(), DockerNetworkConstants.NETWORK_MODE_CONTAINER + ":" + instanceName); } else { Object networkLaunchConfig = serviceData.get(ServiceDiscoveryConstants.FIELD_NETWORK_LAUNCH_CONFIG); if (networkLaunchConfig != null) { composeServiceData.put( ServiceDiscoveryConfigItem.NETWORKMODE.getDockerName(), DockerNetworkConstants.NETWORK_MODE_CONTAINER + ":" + networkLaunchConfig); } } } else if (networkMode.equals(DockerNetworkConstants.NETWORK_MODE_MANAGED)) { composeServiceData.remove(ServiceDiscoveryConfigItem.NETWORKMODE.getDockerName()); } } }
public DefaultServiceDeploymentPlanner( List<Service> services, List<DeploymentUnit> units, DeploymentServiceContext context) { super(services, units, context); for (Service service : services) { int scale = DataAccessor.fieldInteger(service, ServiceDiscoveryConstants.FIELD_SCALE); if (scale > this.requestedScale) { this.requestedScale = scale; } } }
protected int getScale(Service service) { Integer i = DataAccessor.fieldInteger(service, ServiceDiscoveryConstants.FIELD_SCALE); return i == null ? 0 : i; }