@author: jf9860
'''
+import json
+
class TestConfig(object):
'''
The profile defines a cycle of tests. Each entry is defined as
'''
profile = [
[0, ["health"]],
- [5, ["instantiate", "distribute"]],
- [300, ["distribute"]],
- [300, ["distribute"]],
- [300, ["distribute"]],
- [300, ["distribute"]],
- [300, ["distribute"]],
]
duration=10
cyclelength=60
- def __init__(self, duration=10, cyclelength=1800, json=None):
+ def __init__(self, duration=None, cyclelength=None, json=None):
'''
Constructor
'''
- self.duration = duration
- self.cyclelength = cyclelength
+ if (json != None):
+ self.parseConfig(json)
+ if (duration != None):
+ self.duration = duration
+ if (cyclelength != None):
+ self.cyclelength = cyclelength
running_time = 0
for p in self.profile:
secs = p[0]
running_time = running_time + secs
- if (running_time < cyclelength):
- last = cyclelength - running_time
+ if (running_time < self.cyclelength):
+ last = self.cyclelength - running_time
self.profile.append([last, []])
+ def parseConfig(self, fileName):
+ with open(fileName) as data_file:
+ config = json.load(data_file)
+ self.profile = config["profile"]
+ self.cyclelength = config["cyclelength"]
+ self.duration = config["duration"]
+
+
def to_string(self):
pstring = 'Cycle length is {} seconds'.format(self.cyclelength)
pstring = '{}\nDuration is {} seconds'.format(pstring, self.duration)
parser = OptionParser(version=program_version_string, epilog=program_longdesc, description=program_license)
parser.add_option("-d", "--duration", dest="duration", help="duration of soak test in seconds [default: %default]", type=int)
parser.add_option("-l", "--logfile", dest="logfile", help="Full path soak log file name")
- parser.set_defaults(duration="60", logfile="")
+ parser.add_option("-c", "--cyclelength", dest="cyclelength", help="Length of a single cycle through the config.\nMust be longer than a single iteration", type=int)
+ parser.add_option("-p", "--profile", dest="profile", help="Filename of json profile file")
+ parser.set_defaults(logfile="")
(opts, args) = parser.parse_args(argv)
if (opts.logfile != ""):