Ejemplo n.º 1
0
def paasta_local_run(args):
    if args.pull:
        build = False
    elif args.build:
        build = True
    else:
        build = local_makefile_present()

    service = figure_out_service_name(args, soa_dir=args.yelpsoa_config_root)
    base_docker_url = get_docker_host()
    docker_client = Client(base_url=base_docker_url)

    if build:
        default_tag = 'paasta-local-run-%s-%s' % (service, get_username())
        tag = os.environ.get('DOCKER_TAG', default_tag)
        os.environ['DOCKER_TAG'] = tag
        pull_image = False
        paasta_cook_image(None, service=service, soa_dir=args.yelpsoa_config_root)
    else:
        pull_image = True
        tag = None

    try:
        configure_and_run_docker_container(
            docker_client=docker_client,
            docker_hash=tag,
            service=service,
            args=args,
            pull_image=pull_image,
        )
    except errors.APIError as e:
        sys.stderr.write('Can\'t run Docker container. Error: %s\n' % str(e))
        sys.exit(1)
Ejemplo n.º 2
0
def test_run_makefile_fail(
    mock_run,
    mock_makefile_responds_to,
    mock_validate_service_name,
):
    mock_run.return_value = (0, 'Output')
    mock_makefile_responds_to.return_value = False
    mock_validate_service_name.return_value = True

    args = mock.MagicMock()
    args.service = 'fake_service'

    with raises(SystemExit) as excinfo:
        paasta_cook_image(args)

    assert excinfo.value.code == 1
Ejemplo n.º 3
0
def test_run_keyboard_interrupt(
    mock_run,
    mock_makefile_responds_to,
    mock_validate_service_name,
):
    mock_run.return_value = (0, 'Output')
    mock_makefile_responds_to.return_value = True
    mock_validate_service_name.return_value = True
    mock_run.side_effect = FakeKeyboardInterrupt

    args = mock.MagicMock()
    args.service = 'fake_service'

    with raises(SystemExit) as excinfo:
        paasta_cook_image(args)

    assert excinfo.value.code == 2
Ejemplo n.º 4
0
def paasta_local_run(args):
    validate_environment()

    service = figure_out_service_name(args, soa_dir=args.yelpsoa_config_root)

    base_docker_url = get_docker_host()

    docker_client = Client(base_url=base_docker_url)

    default_tag = 'paasta-local-run-%s-%s' % (service, get_username())
    tag = os.environ.get('DOCKER_TAG', default_tag)
    os.environ['DOCKER_TAG'] = tag

    paasta_cook_image(None, service=service, soa_dir=args.yelpsoa_config_root)

    try:
        configure_and_run_docker_container(docker_client, tag, service, args)
    except errors.APIError as e:
        sys.stderr.write('Can\'t run Docker container. Error: %s\n' % str(e))
        sys.exit(1)
Ejemplo n.º 5
0
def paasta_local_run(args):
    validate_environment()

    service = figure_out_service_name(args, soa_dir=args.yelpsoa_config_root)

    base_docker_url = get_docker_host()

    docker_client = Client(base_url=base_docker_url)

    default_tag = 'paasta-local-run-%s-%s' % (service, get_username())
    tag = os.environ.get('DOCKER_TAG', default_tag)
    os.environ['DOCKER_TAG'] = tag

    paasta_cook_image(None, service=service, soa_dir=args.yelpsoa_config_root)

    try:
        configure_and_run_docker_container(docker_client, tag, service, args)
    except errors.APIError as e:
        sys.stderr.write('Can\'t run Docker container. Error: %s\n' % str(e))
        sys.exit(1)
Ejemplo n.º 6
0
def test_run_success(
    mock_run,
    mock_makefile_responds_to,
    mock_validate_service_name,
):
    mock_run.return_value = (0, 'Output')
    mock_makefile_responds_to.return_value = True
    mock_validate_service_name.return_value = True

    args = mock.MagicMock()
    args.service = 'fake_service'
    assert paasta_cook_image(args) is None