ottertune/server/website/script/upload/upload.py

46 lines
1.4 KiB
Python

#
# OtterTune - upload.py
#
# Copyright (c) 2017-18, Carnegie Mellon University Database Group
#
import argparse
import logging
import os
import requests
# Logging
LOG = logging.getLogger(__name__)
LOG.addHandler(logging.StreamHandler())
LOG.setLevel(logging.INFO)
def upload(datadir, upload_code, url):
params = {
'summary': open(os.path.join(datadir, 'summary.json'), 'rb'),
'knobs': open(os.path.join(datadir, 'knobs.json'), 'rb'),
'metrics_before': open(os.path.join(datadir, 'metrics_before.json'), 'rb'),
'metrics_after': open(os.path.join(datadir, 'metrics_after.json'), 'rb'),
}
response = requests.post(url,
files=params,
data={'upload_code': upload_code})
LOG.info(response.content)
def main():
parser = argparse.ArgumentParser(description="Upload generated data to the website")
parser.add_argument('datadir', type=str, nargs=1,
help='Directory containing the generated data')
parser.add_argument('upload_code', type=str, nargs=1,
help='The website\'s upload code')
parser.add_argument('url', type=str, default='http://0.0.0.0:8000/new_result/',
nargs='?', help='The upload url: server_ip/new_result/')
args = parser.parse_args()
upload(args.datadir[0], args.upload_code[0], args.url)
if __name__ == "__main__":
main()