From 8049e0c9efdebf34975dd299ac36c1758160b135 Mon Sep 17 00:00:00 2001 From: "Maxence G. de Montauzan" Date: Fri, 21 Apr 2017 19:15:23 +0200 Subject: [PATCH] Args for send_data.py take file parameters instead string --- send_data.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/send_data.py b/send_data.py index 7ba8b6e..1b9d183 100644 --- a/send_data.py +++ b/send_data.py @@ -7,15 +7,17 @@ import argparse import requests -def send_data(file_name, quiet=False): +def send_data(file, quiet=False): """ - Send a file to ELS + Send a data bulk file to ELS. + + 'file' should be (readable) file object. """ if not quiet: - print("Sending '{}' data file...".format(file_name)) + print("Sending '{}' data file...".format(file.name)) res = requests.post(url=ELASTICSEARCH_URL + '_bulk', - data=open(file_name, 'rb'), + data=file, headers={'Content-Type': 'application/x-ndjson'}) if res.status_code != 200: print("An error occured") @@ -23,7 +25,7 @@ def send_data(file_name, quiet=False): print(res.text) else: if not quiet: - print("File '{} sended to Elasticsearch!".format(file_name)) + print("File '{} sended to Elasticsearch!".format(file.name)) def delete_index(index_name, quiet=False): @@ -55,21 +57,22 @@ parser = argparse.ArgumentParser( ) parser.add_argument('-s', '--song', action='store_false', help='Disable send song data') -parser.add_argument('-sf', '--song-file', default='es-music-data.json', #TODO type=argparse.FileType('r'), +parser.add_argument('-sf', '--song-file', default='es-music-data.json', type=argparse.FileType('r'), help='Song file data to send (default: es-music-data.json). Need to enable send song data.') + # FIXME If song is disable and default file not exist ==> Fail parser.add_argument('-al', '--album', action='store_true', help='Enable send album data') -parser.add_argument('-alf', '--album-file', default='es-albums-data.json', #TODO type=argparse.FileType('r'), +parser.add_argument('-alf', '--album-file', default='es-albums-data.json', type=argparse.FileType('r'), help='Album file data to send (default: es-albums-data.json). Need to enable send album data.') parser.add_argument('-ar', '--artist', action='store_true', help='Enable send music data') -parser.add_argument('-arf', '--artist-file', default='es-artist-data.json', #TODO type=argparse.FileType('r'), +parser.add_argument('-arf', '--artist-file', default='es-artist-data.json', type=argparse.FileType('r'), help='Album file data to send (default: es-artist-data.json). Need to enable send artist data.') parser.add_argument('-A', '--ALL', action='store_true', help='Send all') parser.add_argument('-D', '--DELETE', action='store_true', help='Delete old index') -parser.add_argument('-els', '--elasticsearch_url', default=ELASTICSEARCH_URL, +parser.add_argument('-els', '--elasticsearch_url', default=ELASTICSEARCH_URL, nargs='?', help="Elasticsearch URL to send data (default: {})".format(ELASTICSEARCH_URL)) parser.add_argument('-i', '--index_name', default=INDEX_NAME, help="Index name in Elasticsearch for data (default: {})".format(INDEX_NAME)) @@ -91,16 +94,16 @@ if __name__ == '__main__': if args.song or args.ALL: song_file = args.song_file if not args.quiet: - print("Take file '{}' to send song data".format(song_file)) + print("Take file '{}' to send song data".format(song_file.name)) send_data(song_file, args.quiet) if args.artist or args.ALL: artist_file = args.artist_file if not args.quiet: - print("Take file '{}' to send song data".format(artist_file)) + print("Take file '{}' to send song data".format(artist_file.name)) send_data(artist_file, args.quiet) if args.album or args.ALL: album_file = args.album_file if not args.quiet: - print("Take file '{}' to send song data".format(album_file)) + print("Take file '{}' to send song data".format(album_file.name)) send_data(album_file, args.quiet)