Ejemplo n.º 1
0
def test_build_maintenance_schedule_payload_no_schedule(
    mock_get_machine_ids,
    mock_get_maintenance_schedule,
):
    mock_get_maintenance_schedule.return_value.json.return_value = {}
    machine_ids = [{'hostname': 'machine2', 'ip': '10.0.0.2'}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ['fake-hostname']
    start = '1443830400000000000'
    duration = '3600000000000'
    actual = build_maintenance_schedule_payload(hostnames, start, duration, drain=True)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        'windows': [
            {
                'machine_ids': machine_ids,
                'unavailability': {
                    'start': {
                        'nanoseconds': int(start),
                    },
                    'duration': {
                        'nanoseconds': int(duration),
                    },
                },
            },
        ],
    }
    assert actual == expected
Ejemplo n.º 2
0
def test_build_maintenance_schedule_payload_no_schedule_undrain(
    mock_get_machine_ids,
    mock_get_maintenance_schedule,
):
    mock_get_maintenance_schedule.return_value.json.return_value = {
        'get_maintenance_schedule': {
            'schedule': {}
        },
    }
    machine_ids = [{'hostname': 'machine2', 'ip': '10.0.0.2'}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ['fake-hostname']
    start = '1443830400000000000'
    duration = '3600000000000'
    actual = build_maintenance_schedule_payload(hostnames,
                                                start,
                                                duration,
                                                drain=False)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        'type': 'UPDATE_MAINTENANCE_SCHEDULE',
        'update_maintenance_schedule': {
            'schedule': {
                'windows': [],
            }
        },
    }
    assert actual == expected
Ejemplo n.º 3
0
def test_build_maintenance_schedule_payload_no_schedule(
    mock_get_machine_ids,
    mock_get_maintenance_schedule,
):
    mock_get_maintenance_schedule.return_value.json.return_value = {}
    machine_ids = [{'hostname': 'machine2', 'ip': '10.0.0.2'}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ['fake-hostname']
    start = '1443830400000000000'
    duration = '3600000000000'
    actual = build_maintenance_schedule_payload(hostnames,
                                                start,
                                                duration,
                                                drain=True)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        'windows': [
            {
                'machine_ids': machine_ids,
                'unavailability': {
                    'start': {
                        'nanoseconds': int(start),
                    },
                    'duration': {
                        'nanoseconds': int(duration),
                    },
                },
            },
        ],
    }
    assert actual == expected
Ejemplo n.º 4
0
def test_build_maintenance_schedule_payload_no_schedule_undrain(
        mock_get_machine_ids, mock_get_maintenance_schedule):
    mock_get_maintenance_schedule.return_value.json.return_value = {
        "get_maintenance_schedule": {
            "schedule": {}
        }
    }
    machine_ids = [{"hostname": "machine2", "ip": "10.0.0.2"}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ["fake-hostname"]
    start = "1443830400000000000"
    duration = "3600000000000"
    actual = build_maintenance_schedule_payload(hostnames,
                                                start,
                                                duration,
                                                drain=False)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        "type": "UPDATE_MAINTENANCE_SCHEDULE",
        "update_maintenance_schedule": {
            "schedule": {
                "windows": []
            }
        },
    }
    assert actual == expected
Ejemplo n.º 5
0
def test_build_maintenance_schedule_payload_schedule_undrain(
    mock_get_machine_ids,
    mock_get_maintenance_schedule,
):
    mock_get_maintenance_schedule.return_value.json.return_value = {
        "windows": [
            {
                "machine_ids": [
                    {"hostname": "machine1", "ip": "10.0.0.1"},
                    {"hostname": "machine2", "ip": "10.0.0.2"}
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443830400000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            },
            {
                "machine_ids": [
                    {"hostname": "machine3", "ip": "10.0.0.3"}
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443834000000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            }
        ]
    }
    machine_ids = [{'hostname': 'machine2', 'ip': '10.0.0.2'}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ['machine2']
    start = '1443830400000000000'
    duration = '3600000000000'
    actual = build_maintenance_schedule_payload(hostnames, start, duration, drain=False)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        "windows": [
            {
                "machine_ids": [
                    {"hostname": "machine1", "ip": "10.0.0.1"},
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443830400000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            },
            {
                "machine_ids": [
                    {"hostname": "machine3", "ip": "10.0.0.3"}
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443834000000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            },
        ]
    }
    assert actual == expected
Ejemplo n.º 6
0
def test_build_maintenance_schedule_payload_schedule_undrain(
    mock_get_machine_ids,
    mock_get_maintenance_schedule,
):
    mock_get_maintenance_schedule.return_value.json.return_value = {
        "windows": [
            {
                "machine_ids": [
                    {"hostname": "machine1", "ip": "10.0.0.1"},
                    {"hostname": "machine2", "ip": "10.0.0.2"}
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443830400000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            },
            {
                "machine_ids": [
                    {"hostname": "machine3", "ip": "10.0.0.3"}
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443834000000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            }
        ]
    }
    machine_ids = [{'hostname': 'machine2', 'ip': '10.0.0.2'}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ['machine2']
    start = '1443830400000000000'
    duration = '3600000000000'
    actual = build_maintenance_schedule_payload(hostnames, start, duration, drain=False)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        "windows": [
            {
                "machine_ids": [
                    {"hostname": "machine1", "ip": "10.0.0.1"},
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443830400000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            },
            {
                "machine_ids": [
                    {"hostname": "machine3", "ip": "10.0.0.3"}
                ],
                "unavailability": {
                    "start": {"nanoseconds": 1443834000000000000},
                    "duration": {"nanoseconds": 3600000000000}
                }
            },
        ]
    }
    assert actual == expected
Ejemplo n.º 7
0
def test_build_maintenance_schedule_payload_no_schedule_undrain(
    mock_get_machine_ids,
    mock_get_maintenance_schedule,
):
    mock_get_maintenance_schedule.return_value.json.return_value = {}
    machine_ids = [{'hostname': 'machine2', 'ip': '10.0.0.2'}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ['fake-hostname']
    start = '1443830400000000000'
    duration = '3600000000000'
    actual = build_maintenance_schedule_payload(hostnames, start, duration, drain=False)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        'windows': [],
    }
    assert actual == expected
Ejemplo n.º 8
0
def test_build_maintenance_schedule_payload_schedule(
    mock_get_machine_ids,
    mock_get_maintenance_schedule,
):
    mock_get_maintenance_schedule.return_value.json.return_value = {
        "type": "GET_MAINTENANCE_SCHEDULE",
        "get_maintenance_schedule": {
            "schedule": {
                "windows": [
                    {
                        "machine_ids": [
                            {
                                "hostname": "machine1",
                                "ip": "10.0.0.1"
                            },
                            {
                                "hostname": "machine2",
                                "ip": "10.0.0.2"
                            },
                        ],
                        "unavailability": {
                            "start": {
                                "nanoseconds": 1443830400000000000
                            },
                            "duration": {
                                "nanoseconds": 3600000000000
                            },
                        },
                    },
                    {
                        "machine_ids": [
                            {
                                "hostname": "machine3",
                                "ip": "10.0.0.3"
                            },
                        ],
                        "unavailability": {
                            "start": {
                                "nanoseconds": 1443834000000000000
                            },
                            "duration": {
                                "nanoseconds": 3600000000000
                            },
                        },
                    },
                ]
            }
        },
    }
    machine_ids = [{'hostname': 'machine2', 'ip': '10.0.0.2'}]
    mock_get_machine_ids.return_value = machine_ids
    hostnames = ['machine2']
    start = '1443830400000000000'
    duration = '3600000000000'
    actual = build_maintenance_schedule_payload(hostnames,
                                                start,
                                                duration,
                                                drain=True)
    assert mock_get_maintenance_schedule.call_count == 1
    assert mock_get_machine_ids.call_count == 1
    assert mock_get_machine_ids.call_args == mock.call(hostnames)
    expected = {
        "type": "UPDATE_MAINTENANCE_SCHEDULE",
        "update_maintenance_schedule": {
            "schedule": {
                "windows": [
                    {
                        "machine_ids": [
                            {
                                "hostname": "machine1",
                                "ip": "10.0.0.1"
                            },
                        ],
                        "unavailability": {
                            "start": {
                                "nanoseconds": 1443830400000000000
                            },
                            "duration": {
                                "nanoseconds": 3600000000000
                            },
                        },
                    },
                    {
                        "machine_ids": [
                            {
                                "hostname": "machine3",
                                "ip": "10.0.0.3"
                            },
                        ],
                        "unavailability": {
                            "start": {
                                "nanoseconds": 1443834000000000000
                            },
                            "duration": {
                                "nanoseconds": 3600000000000
                            },
                        },
                    },
                    {
                        "machine_ids": machine_ids,
                        "unavailability": {
                            "start": {
                                "nanoseconds": int(start)
                            },
                            "duration": {
                                "nanoseconds": int(duration)
                            },
                        },
                    },
                ]
            }
        },
    }
    assert actual == expected