From 8d97778672f843cd79ac9862b5fe8c13ef31091f Mon Sep 17 00:00:00 2001 From: Mark Beierl Date: Mon, 16 Dec 2019 16:37:36 -0500 Subject: Update to Python3 Updates to make StorPerf Python3 compatible, including pulling in SNAPS-OO as python3. Change-Id: Ie4e7af684bd5a1b8db086893848b1889da6308ba JIRA: STORPERF-268 Signed-off-by: Mark Beierl --- cli.py | 186 ----------------------------------------------------------------- 1 file changed, 186 deletions(-) delete mode 100644 cli.py (limited to 'cli.py') diff --git a/cli.py b/cli.py deleted file mode 100644 index fda05c2..0000000 --- a/cli.py +++ /dev/null @@ -1,186 +0,0 @@ -############################################################################## -# Copyright (c) 2015 EMC and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -""" -""" - -from storperf.storperf_master import StorPerfMaster -from threading import Thread -import cPickle -import getopt -import json -import logging -import logging.config -import logging.handlers -import requests -import socket -import struct -import sys - - -class Usage(Exception): - pass - - -def event(event_string): - logging.getLogger(__name__).info(event_string) - - -class LogRecordStreamHandler(object): - - def __init__(self): - self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - self.socket.bind(( - 'localhost', logging.handlers.DEFAULT_UDP_LOGGING_PORT)) - self.level = logging.INFO - - def read_logs(self): - try: - while True: - datagram = self.socket.recv(8192) - chunk = datagram[0:4] - struct.unpack(">L", chunk)[0] - chunk = datagram[4:] - obj = cPickle.loads(chunk) - record = logging.makeLogRecord(obj) - if (record.levelno >= self.level): - logger = logging.getLogger(record.name) - logger.handle(record) - - except Exception as e: - print "ERROR: " + str(e) - finally: - self.socket.close() - - -def main(argv=None): - verbose = False - debug = False - report = None - erase = False - terminate = False - options = {} - - storperf = StorPerfMaster() - - if argv is None: - argv = sys.argv - try: - try: - opts, args = getopt.getopt(argv[1:], "t:w:r:f:escvdTh", - ["target=", - "workload=", - "report=", - "configure=", - "erase", - "nossd", - "nowarm", - "verbose", - "debug", - "terminate", - "help", - ]) - except getopt.error, msg: - raise Usage(msg) - - configuration = None - options['workload'] = None - - for o, a in opts: - if o in ("-h", "--help"): - print __doc__ - return 0 - elif o in ("-t", "--target"): - options['filename'] = a - elif o in ("-v", "--verbose"): - verbose = True - elif o in ("-d", "--debug"): - debug = True - elif o in ("-s", "--nossd"): - options['nossd'] = a - elif o in ("-c", "--nowarm"): - options['nowarm'] = False - elif o in ("-w", "--workload"): - options['workload'] = a - elif o in ("-r", "--report"): - report = a - elif o in ("-e", "--erase"): - erase = True - elif o in ("-T", "--terminate"): - terminate = True - elif o in ("-f", "--configure"): - configuration = dict(x.split('=') for x in a.split(',')) - - if (debug) or (verbose): - udpserver = LogRecordStreamHandler() - - if (debug): - udpserver.level = logging.DEBUG - - logging.basicConfig(format="%(asctime)s - %(name)s - " + - "%(levelname)s - %(message)s") - - t = Thread(target=udpserver.read_logs, args=()) - t.setDaemon(True) - t.start() - - if (erase): - response = requests.delete( - 'http://127.0.0.1:5000/api/v1.0/configurations') - if (response.status_code == 400): - content = json.loads(response.content) - raise Usage(content['message']) - return 0 - - if (terminate): - response = requests.delete( - 'http://127.0.0.1:5000/api/v1.0/jobs') - if (response.status_code == 400): - content = json.loads(response.content) - raise Usage(content['message']) - return 0 - - if (configuration is not None): - response = requests.post( - 'http://127.0.0.1:5000/api/v1.0/configurations', json=configuration) - if (response.status_code == 400): - content = json.loads(response.content) - raise Usage(content['message']) - - if (report is not None): - print "Fetching report for %s..." % (report,) - response = requests.get( - 'http://127.0.0.1:5000/api/v1.0/jobs?id=%s' % (report,)) - if (response.status_code == 400): - content = json.loads(response.content) - raise Usage(content['message']) - content = json.loads(response.content) - print content - else: - print "Calling start..." - response = requests.post( - 'http://127.0.0.1:5000/api/v1.0/jobs', json=options) - if (response.status_code == 400): - content = json.loads(response.content) - raise Usage(content['message']) - - content = json.loads(response.content) - print "Started job id: " + content['job_id'] - - except Usage as e: - print >> sys.stderr, str(e) - print >> sys.stderr, "For help use --help" - return 2 - - except Exception as e: - print >> sys.stderr, str(e) - return 2 - - -if __name__ == "__main__": - sys.exit(main()) -- cgit 1.2.3-korg