def test_launch_container_executor_info_task_info_container_info_overlap(self, _, __): launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" launch.task_info.container.type = 1 # DOCKER launch.task_info.container.docker.image = "custom/image" launch.task_info.container.docker.network = 2 launch.executor_info.command.value = 'bin/foo-bar' launch.executor_info.container.type = 1 # DOCKER launch.executor_info.container.docker.image = "custom/executor" self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "host", "-u", "test", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "custom/executor", "sh", "-c", "bin/foo-bar >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])
def test_launch_container_task_info_container_info_bad_ports(self, _, __): launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" launch.task_info.container.type = 1 # DOCKER launch.task_info.container.docker.image = "custom/image" launch.task_info.container.docker.network = 2 port = launch.task_info.container.docker.port_mappings.add() port.host_port = 1234 port.container_port = 4567 with self.assertRaises(Exception): self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "bridge", "-u", "test", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "custom/image", "sh", "-c", "/bin/mesos-executor >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])
def test_launch_container_task_info_resources(self, _, __): launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" cpu_resource = launch.task_info.resources.add() cpu_resource.name = "cpus" cpu_resource.type = 0 cpu_resource.scalar.value = 1 mem_resource = launch.task_info.resources.add() mem_resource.name = "mem" mem_resource.type = 0 mem_resource.scalar.value = 1024 port_resource = launch.task_info.resources.add() port_resource.name = "ports" port_resource.type = 1 port = port_resource.ranges.range.add() port.begin = 2234 port.end = 2234 port = port_resource.ranges.range.add() port.begin = 4400 port.end = 4401 self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "host", "-u", "test", "-c", "1024", "-m", "1024m", "-p", ":4400", "-p", ":4401", "-p", ":2234", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "default/container", "sh", "-c", "/bin/mesos-executor >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])
def test_launch_container_task_info_container_info_port_map(self, _, __): launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" port_resource = launch.task_info.resources.add() port_resource.name = "ports" port_resource.type = 1 port = port_resource.ranges.range.add() port.begin = 1234 port.end = 1235 launch.task_info.container.type = 1 # DOCKER launch.task_info.container.docker.image = "custom/image" launch.task_info.container.docker.network = 2 port = launch.task_info.container.docker.port_mappings.add() port.host_port = 1234 port.container_port = 9001 port = launch.task_info.container.docker.port_mappings.add() port.host_port = 1235 port.container_port = 9002 port.protocol = "udp" self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "bridge", "-u", "test", "-p", ":1234", "-p", ":1235", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "-p", "1234:9001", "-p", "1235:9002/udp", "custom/image", "sh", "-c", "/bin/mesos-executor >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])
def test_launch_container_task_info_default(self, _, __): launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "host", "-u", "test", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "default/container", "sh", "-c", "/bin/mesos-executor >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])
def test_launch_container_task_info_docker_registry(self, _, __): launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" launch.task_info.container.type = 1 # DOCKER launch.task_info.container.docker.image = "docker://my-registry.net/custom/image" self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "host", "-u", "test", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "my-registry.net/custom/image", "sh", "-c", "/bin/mesos-executor >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])
def test_launch_container_executor_info(self, _, __): launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" launch.executor_info.command.value = 'bin/foo-bar' launch.executor_info.command.arguments.append('baz') self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "host", "-u", "test", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "default/container", "sh", "-c", "bin/foo-bar >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])
def test_launch_container_executor_info_no_shell(self, _, __): self.skipTest("The `shell` option is not fully implemented") launch = Launch() launch.container_id.value = "container-foo-bar" launch.directory = "/tmp" launch.user = "******" launch.executor_info.command.value = 'bin/foo-bar' launch.executor_info.command.shell = False launch.executor_info.command.arguments.append('baz') self.assertEqual(build_docker_args(launch), [ "-d", "--name", "container-foo-bar", "--net", "host", "-u", "test", "-e", "MESOS_DIRECTORY=/mesos-sandbox", "-v", "/tmp:/mesos-sandbox", "-w", "/mesos-sandbox", "default/container", "sh", "-c", "bin/foo-bar baz >> /mesos-sandbox/docker_stdout 2>> /mesos-sandbox/docker_stderr" ])