Esempio n. 1
0
    def test_should_add_delete_node_instructions_to_bulk_api_data(self):
        node = DeliveryNodeFactory()
        expected_meta_data = '{"delete": {"_index": \"%s\", "_type": \"%s\", "_id": %d}}\n' % (
            ES_SETTINGS.INDEX, ES_SETTINGS.NODE_TYPE, node.id)

        api_format = convert_to_bulk_api_format([], [node.id])

        self.assertEqual(api_format, expected_meta_data)
Esempio n. 2
0
    def test_should_add_delete_node_instructions_to_bulk_api_data(self):
        node = DeliveryNodeFactory()
        expected_meta_data = '{"delete": {"_index": \"%s\", "_type": \"%s\", "_id": %d}}\n' % (
            ES_SETTINGS.INDEX, ES_SETTINGS.NODE_TYPE, node.id
        )

        api_format = convert_to_bulk_api_format([], [node.id])

        self.assertEqual(api_format, expected_meta_data)
Esempio n. 3
0
    def test_should_convert_updated_nodes_to_bulk_api_format(self):
        node = DeliveryNodeFactory()
        expected_meta_data = '{"index": {"_index": \"%s\", "_type": \"%s\", "_id": %d}}\n' % (
            ES_SETTINGS.INDEX, ES_SETTINGS.NODE_TYPE, node.id
        )
        serialised = serialise_nodes([node])
        expected_node_string = json.dumps(serialised[0], default=_serialise_datetime) + '\n'

        api_format = convert_to_bulk_api_format(serialised, [])

        self.assertEqual(api_format, expected_meta_data + expected_node_string)
Esempio n. 4
0
    def test_should_convert_updated_nodes_to_bulk_api_format(self):
        node = DeliveryNodeFactory()
        expected_meta_data = '{"index": {"_index": \"%s\", "_type": \"%s\", "_id": %d}}\n' % (
            ES_SETTINGS.INDEX, ES_SETTINGS.NODE_TYPE, node.id)
        serialised = serialise_nodes([node])
        expected_node_string = json.dumps(serialised[0],
                                          default=_serialise_datetime) + '\n'

        api_format = convert_to_bulk_api_format(serialised, [])

        self.assertEqual(api_format, expected_meta_data + expected_node_string)
Esempio n. 5
0
def _push_to_elasticsearch(nodes_to_update, nodes_to_delete, sync):
    try:
        if not mappings_exist():
            setup_mappings()

        formatted_data = convert_to_bulk_api_format(nodes_to_update, nodes_to_delete)
        response = requests.post(settings.ELASTIC_SEARCH.BULK, data=formatted_data)
        if response.status_code == HTTP_200_OK:
            sync.status = SyncInfo.STATUS.SUCCESSFUL
            _clear_delete_records(nodes_to_update, nodes_to_delete)
        else:
            sync.status = SyncInfo.STATUS.FAILED
    except RuntimeError, error:
        sync.status = SyncInfo.STATUS.FAILED
        logger.error("Sync Failed: %s" % error.message)