def start_docker_instance(proxy_bind_addr, bundle_http_port, proxy_ports, all_feature_ports): log = logging.getLogger(__name__) log.info(h1('Starting HAProxy')) docker_image = terminal.docker_images(HAPROXY_DOCKER_IMAGE) if not docker_image: log.info('Pulling docker image {}'.format(HAPROXY_DOCKER_IMAGE)) terminal.docker_pull(HAPROXY_DOCKER_IMAGE) all_proxy_ports = [bundle_http_port] all_proxy_ports.extend(DEFAULT_PROXY_PORTS) all_proxy_ports.extend(all_feature_ports) all_proxy_ports.extend(proxy_ports) all_proxy_ports = sorted(set(all_proxy_ports)) port_args = [] for port in all_proxy_ports: port_args.append('-p') port_args.append('{}:{}:{}'.format(proxy_bind_addr.exploded, port, port)) docker_args = ['-d', '--name', DEFAULT_SANDBOX_PROXY_CONTAINER_NAME] + port_args + \ ['-v', '{}:/usr/local/etc/haproxy:ro'.format(HAPROXY_CFG_DIR)] log.info('Exposing the following ports {}'.format(all_proxy_ports)) terminal.docker_run(docker_args, HAPROXY_DOCKER_IMAGE, positional_args=[])
def run_conductr_cmd(instance, container_name, cond0_ip, envs, image, log_level, ports, feature_names, conductr_roles): general_args = ['-d', '--name', container_name] env_args = resolve_docker_run_envs(envs, log_level, cond0_ip, feature_names, conductr_roles) port_args = resolve_docker_run_port_args(ports | CONDUCTR_PORTS, instance) optional_args = general_args + env_args + port_args positional_args = resolve_docker_run_positional_args(cond0_ip) terminal.docker_run(optional_args, image, positional_args)
def run_conductr_cmd(instance, nr_of_instances, container_name, cond0_ip, envs, image, log_level, ports, bundle_http_port, conductr_features, conductr_roles, conductr_args): general_args = ['-d', '--name', container_name] env_args = resolve_docker_run_envs(instance, nr_of_instances, envs, log_level, cond0_ip, conductr_features, conductr_roles, conductr_args) all_conductr_ports = CONDUCTR_PORTS | {bundle_http_port} port_args = resolve_docker_run_port_args(ports | all_conductr_ports, instance) optional_args = general_args + env_args + port_args additional_optional_args = resolve_conductr_docker_run_opts() positional_args = resolve_docker_run_positional_args(cond0_ip) terminal.docker_run(optional_args + additional_optional_args, image, positional_args)
def run_conductr_cmd(instance, container_name, cond0_ip, envs, image, log_level, ports, bundle_http_port, feature_names, conductr_roles): general_args = ['-d', '--name', container_name] env_args = resolve_docker_run_envs(envs, log_level, cond0_ip, feature_names, conductr_roles) all_conductr_ports = CONDUCTR_PORTS | {bundle_http_port} port_args = resolve_docker_run_port_args(ports | all_conductr_ports, instance) optional_args = general_args + env_args + port_args positional_args = resolve_docker_run_positional_args(cond0_ip) terminal.docker_run(optional_args, image, positional_args)
def test_docker_run(self): optional_args = ['-p', '9001:9001', '-e', 'AKKA_LOGLEVEL=info'] image = 'image:version' positional_args = ['--discover-host-ip'] stdout = MagicMock() subprocess_call_mock = MagicMock() with patch('subprocess.call', subprocess_call_mock), \ patch('sys.stdout', stdout): terminal.docker_run(optional_args, image, positional_args) self.assertEqual('', self.output(stdout)) subprocess_call_mock.assert_called_with(['docker', 'run'] + optional_args + [image] + positional_args)