def _process_container_config(self, container_config): port_bindings = undelimit_mapping(container_config.get('port', [])) volume_bindings = undelimit_mapping(container_config.get('mount', [])) volume_bindings = { self._normalise_path(k): v for k, v in volume_bindings.items()} environment = undelimit_mapping(container_config.get('env', []), '=') return port_bindings, volume_bindings, environment
def test_undelimit_mapping(self): self.assertEqual( undelimit_mapping(['a:b', 'c:d']), {'a': 'b', 'c': 'd'}) self.assertEqual( undelimit_mapping(['a=b', 'c=d'], delimiter='='), {'a': 'b', 'c': 'd'})
def _make_container(self, name, container_config, existing_containers): image = self.images[container_config['image']] links = undelimit_mapping(container_config.get('dependencies', [])) dependencies = { existing_containers[name]: alias for name, alias in links.items()} port_bindings, volume_bindings, environment = ( self._process_container_config(container_config)) return Container( self.client, name, image, dependencies=dependencies, port_bindings=port_bindings, environment=environment, net=container_config.get('net'), privileged=container_config.get('privileged'), volume_bindings=volume_bindings)
def _get_container_config_dependencies(config_data): return undelimit_mapping(config_data.get('dependencies', []))