Beispiel #1
0
def paasta_pause_service_autoscaler(args):
    """With a given cluster and duration, pauses the paasta service autoscaler
       in that cluster for duration minutes"""
    if args.duration > MAX_PAUSE_DURATION:
        if not args.force:
            paasta_print('Specified duration: {d} longer than max: {m}'.format(
                d=args.duration,
                m=MAX_PAUSE_DURATION,
            ))
            paasta_print('If you are really sure, run again with --force')
            return 3

    if args.info:
        return_code = get_service_autoscale_pause_time(args.cluster)
    elif args.resume:
        return_code = delete_service_autoscale_pause_time(args.cluster)
        _log_audit(
            action='resume-service-autoscaler',
            cluster=args.cluster,
        )
    else:
        minutes = args.duration
        return_code = update_service_autoscale_pause_time(
            args.cluster, minutes)
        _log_audit(
            action='pause-service-autoscaler',
            action_details={'duration': minutes},
            cluster=args.cluster,
        )

    return return_code
def test_update_service_autoscale_pause_time(mock_client):
    mock_client.get_paasta_api_client.return_value = None
    return_code = update_service_autoscale_pause_time('cluster1', '2')
    assert return_code == 1
    mock_client.get_paasta_api_client.assert_called_with(cluster='cluster1', http_res=True)

    mock_api = mock.Mock()
    mock_client.get_paasta_api_client.return_value = mock_api
    mock_http_result = mock.Mock(status_code=500)
    mock_result = mock.Mock(return_value=(None, mock_http_result))
    update_mock = mock.Mock(return_value=mock.Mock(result=mock_result))
    mock_api.service_autoscaler.update_service_autoscaler_pause = update_mock
    return_code = update_service_autoscale_pause_time('cluster1', '3')
    update_mock.assert_called_once_with(json_body={'minutes': '3'})
    assert return_code == 2

    mock_http_result = mock.Mock(status_code=200)
    mock_result = mock.Mock(return_value=(None, mock_http_result))
    mock_api.service_autoscaler.update_service_autoscaler_pause.return_value = mock.Mock(result=mock_result)
    return_code = update_service_autoscale_pause_time('cluster1', '2')
    assert return_code == 0