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)
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)
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)
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)
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)