Example #1
0
def test_network_events_handle_message_LinkCreate_bad_device2():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'LinkCreate',
        dict(msg_type='LinkCreate',
             id=1,
             sender=1,
             name="",
             from_device_id=1,
             to_device_id=2,
             from_interface_id=1,
             to_interface_id=1)
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock,\
            mock.patch.object(Device, 'objects') as device_objects_mock,\
            mock.patch.object(Link, 'objects'),\
            mock.patch.object(Interface, 'objects') as interface_objects_mock,\
            mock.patch.object(Topology, 'objects') as topology_objects_mock:
        values_list_mock = mock.MagicMock()
        values_list_mock.values_list.return_value = [(1, 1), (9, 2)]
        interface_objects_mock.get.return_value = mock.MagicMock()
        interface_objects_mock.get.return_value.pk = 7
        device_objects_mock.filter.return_value = values_list_mock
        topology_objects_mock.filter.return_value = mock.MagicMock()
        networking_events_dispatcher.handle(message)
        device_objects_mock.filter.assert_called_once_with(cid__in=[1, 2],
                                                           topology_id=1)
        values_list_mock.values_list.assert_called_once_with('cid', 'pk')
        log_mock.assert_called_once_with('Device not found')
Example #2
0
def test_network_events_handle_message_LinkDestroy_bad_device_map2():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'LinkDestroy',
        dict(msg_type='LinkDestroy',
             id=1,
             sender=1,
             name="",
             from_device_id=1,
             to_device_id=2,
             from_interface_id=1,
             to_interface_id=1)
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock,\
            mock.patch.object(Device.objects, 'filter') as device_filter_mock,\
            mock.patch.object(Link.objects, 'filter'),\
            mock.patch.object(Interface.objects, 'get') as interface_get_mock:
        values_mock = mock.MagicMock()
        interface_get_mock.return_value = mock.MagicMock()
        interface_get_mock.return_value.pk = 7
        device_filter_mock.return_value = values_mock
        values_mock.values_list.return_value = [(1, 1), (9, 2)]
        networking_events_dispatcher.handle(message)
        log_mock.assert_called_once_with('Device not found')
Example #3
0
def test_network_events_handle_message_incomplete_message4():
    logger = logging.getLogger('awx.network_ui.consumers')
    with mock.patch.object(logger, 'warning') as log_mock:
        networking_events_dispatcher.handle({'topology': 1, 'client': 1})
        log_mock.assert_called_once_with('Unsupported message %s: no data', {
            'client': 1,
            'topology': 1
        })
Example #4
0
def test_network_events_handle_message_LinkUnSelected():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'LinkUnSelected',
        dict(msg_type='LinkUnSelected', sender=1, id=1)
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock:
        networking_events_dispatcher.handle(message)
        log_mock.assert_not_called()
Example #5
0
def test_network_events_handle_message_incomplete_message8():
    logger = logging.getLogger('awx.network_ui.consumers')
    with mock.patch.object(logger, 'warning') as log_mock:
        message = ['Unsupported', {'sender': 1}]
        networking_events_dispatcher.handle({
            'topology': 1,
            'client': 1,
            'text': json.dumps(message)
        })
        log_mock.assert_called_once_with('Unsupported message %s: no handler',
                                         u'Unsupported')
Example #6
0
def test_network_events_handle_message_MultipleMessage_unsupported_message():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'MultipleMessage',
        dict(msg_type='MultipleMessage',
             sender=1,
             messages=[dict(msg_type="Unsupported")])
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock:
        networking_events_dispatcher.handle(message)
        log_mock.assert_called_once_with('Unsupported message %s',
                                         u'Unsupported')
Example #7
0
def test_network_events_handle_message_incomplete_message5():
    logger = logging.getLogger('awx.network_ui.consumers')
    with mock.patch.object(logger, 'warning') as log_mock:
        message = ['DeviceCreate']
        networking_events_dispatcher.handle({
            'topology': 1,
            'client': 1,
            'text': json.dumps(message)
        })
        log_mock.assert_called_once_with(
            'Unsupported message %s: no message type', {
                'text': '["DeviceCreate"]',
                'client': 1,
                'topology': 1
            })
Example #8
0
def test_network_events_handle_message_DeviceLabelEdit():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'DeviceLabelEdit',
        dict(msg_type='DeviceLabelEdit',
             sender=1,
             id=1,
             name='test_changed',
             previous_name='test_created')
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock,\
            mock.patch.object(Device.objects, 'filter') as device_objects_filter_mock:
        networking_events_dispatcher.handle(message)
        device_objects_filter_mock.assert_called_once_with(cid=1,
                                                           topology_id=1)
        log_mock.assert_not_called()
Example #9
0
def test_network_events_handle_message_incomplete_message7():
    logger = logging.getLogger('awx.network_ui.consumers')
    with mock.patch.object(logger, 'warning') as log_mock:
        message = ['DeviceCreate', {}]
        networking_events_dispatcher.handle({
            'topology': 1,
            'client': 1,
            'text': json.dumps(message)
        })
        log_mock.assert_has_calls([
            mock.call('client_id mismatch expected: %s actual %s', 1, None),
            mock.call('Unsupported message %s: no message type', {
                'text': '["DeviceCreate", {}]',
                'client': 1,
                'topology': 1
            })
        ])
Example #10
0
def test_network_events_handle_message_LinkLabelEdit():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'LinkLabelEdit',
        dict(msg_type='LinkLabelEdit',
             sender=1,
             id=1,
             name='new name',
             previous_name='old name')
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock,\
            mock.patch.object(Link, 'objects') as link_objects_mock:
        networking_events_dispatcher.handle(message)
        link_objects_mock.filter.assert_called_once_with(
            cid=1, from_device__topology_id=1)
        link_objects_mock.filter.return_value.update.assert_called_once_with(
            name=u'new name')
        log_mock.assert_not_called()
Example #11
0
def test_network_events_handle_message_DeviceMove():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'DeviceMove',
        dict(msg_type='DeviceMove',
             sender=1,
             id=1,
             x=100,
             y=100,
             previous_x=0,
             previous_y=0)
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock,\
            mock.patch.object(Device, 'objects') as device_objects_mock:
        networking_events_dispatcher.handle(message)
        device_objects_mock.filter.assert_called_once_with(cid=1,
                                                           topology_id=1)
        device_objects_mock.filter.return_value.update.assert_called_once_with(
            x=100, y=100)
        log_mock.assert_not_called()
Example #12
0
def test_network_events_handle_message_DeviceCreate():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'DeviceCreate',
        dict(msg_type='DeviceCreate',
             sender=1,
             id=1,
             x=0,
             y=0,
             name="test_created",
             type='host',
             host_id=None)
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}

    with mock.patch.object(logger, 'warning') as log_mock,\
            mock.patch.object(Topology.objects, 'filter') as topology_objects_mock,\
            mock.patch.object(Device.objects, 'get_or_create') as device_objects_mock:
        device_mock = mock.MagicMock()
        filter_mock = mock.MagicMock()
        device_objects_mock.return_value = [device_mock, True]
        topology_objects_mock.return_value = filter_mock
        networking_events_dispatcher.handle(message)
        device_objects_mock.assert_called_once_with(cid=1,
                                                    defaults={
                                                        'name':
                                                        u'test_created',
                                                        'cid': 1,
                                                        'device_type': u'host',
                                                        'x': 0,
                                                        'y': 0,
                                                        'host_id': None
                                                    },
                                                    topology_id=1)
        device_mock.save.assert_called_once_with()
        topology_objects_mock.assert_called_once_with(device_id_seq__lt=1,
                                                      pk=1)
        filter_mock.update.assert_called_once_with(device_id_seq=1)
        log_mock.assert_not_called()
Example #13
0
def test_network_events_handle_message_InterfaceCreate():
    logger = logging.getLogger('awx.network_ui.consumers')
    message_data = [
        'InterfaceCreate',
        dict(msg_type='InterfaceCreate',
             sender=1,
             device_id=1,
             id=1,
             name='eth0')
    ]
    message = {'topology': 1, 'client': 1, 'text': json.dumps(message_data)}
    with mock.patch.object(logger, 'warning') as log_mock,\
            mock.patch.object(Device, 'objects') as device_objects_mock,\
            mock.patch.object(Interface, 'objects') as interface_objects_mock:
        device_objects_mock.get.return_value.pk = 99
        networking_events_dispatcher.handle(message)
        device_objects_mock.get.assert_called_once_with(cid=1, topology_id=1)
        device_objects_mock.filter.assert_called_once_with(
            cid=1, interface_id_seq__lt=1, topology_id=1)
        interface_objects_mock.get_or_create.assert_called_once_with(
            cid=1, defaults={'name': u'eth0'}, device_id=99)
        log_mock.assert_not_called()