WARM_UP=`$WORKSPACE/ci/start_job.sh | awk '/job_id/ {print $2}' | sed 's/"//g'`
WARM_UP_STATUS=`curl -s -X GET "http://127.0.0.1:5000/api/v1.0/jobs?id=$WARM_UP&type=status" \
- | awk '/Status/ {print $2}' | sed 's/"//g'`
+ | awk '/Status/ {print $2}' | cut -d\" -f2`
while [ "$WARM_UP_STATUS" != "Completed" ]
do
sleep 60
+ curl -s -X GET "http://127.0.0.1:5000/api/v1.0/jobs?id=$WARM_UP&type=status"
WARM_UP_STATUS=`curl -s -X GET "http://127.0.0.1:5000/api/v1.0/jobs?id=$WARM_UP&type=status" \
- | awk '/Status/ {print $2}' | sed 's/"//g'`
+ | awk '/Status/ {print $2}' | cut -d\" -f2`
done
JOB=`$WORKSPACE/ci/start_job.sh \
| awk '/job_id/ {print $2}' | sed 's/"//g'`
JOB_STATUS=`curl -s -X GET "http://127.0.0.1:5000/api/v1.0/jobs?id=$JOB&type=status" \
- | awk '/Status/ {print $2}' | sed 's/"//g'`
+ | awk '/Status/ {print $2}' | cut -d\" -f2`
while [ "$JOB_STATUS" != "Completed" ]
do
sleep 60
+ curl -s -X GET "http://127.0.0.1:5000/api/v1.0/jobs?id=$JOB&type=status"
JOB_STATUS=`curl -s -X GET "http://127.0.0.1:5000/api/v1.0/jobs?id=$JOB&type=status" \
- | awk '/Status/ {print $2}' | sed 's/"//g'`
+ | awk '/Status/ {print $2}' | cut -d\" -f2`
done
echo "Deleting stack for cleanup"
self.start_time = None
self.end_time = None
self.current_workload = None
+ self.workload_status = {}
self._queue_depths = [1, 4, 8]
self._block_sizes = [512, 4096, 16384]
self.event_listeners = set()
return terminated_hosts
def execution_status(self, job_id):
- if self.job_db.job_id != job_id:
- return "Completed"
- if (self._terminated is False):
- return "Running"
+ result = {}
+ status = "Completed"
- return "Completed"
+ if self.job_db.job_id == job_id and self._terminated is False:
+ status = "Running"
+
+ result['Status'] = status
+ result['Workloads'] = self.workload_status
+
+ return result
def execute_workloads(self):
self._terminated = False
self.start_time = time.time()
+ self.workload_status = {}
+ # Prepare stats list
+ for workload_module in self.workload_modules:
+ workload_name = getattr(workload_module, "__name__")
+ blocksizes = self._block_sizes
+ iodepths = self._queue_depths
+ for blocksize in blocksizes:
+ for iodepth in iodepths:
+ name = '%s.%s.queue-depth.%s.block-size.%s' % \
+ (self.job_db.job_id, workload_name, iodepth, blocksize)
+ self.workload_status[name] = "Pending"
+
for workload_module in self.workload_modules:
workload_name = getattr(workload_module, "__name__")
self.logger.info("Starting workload %s" % (workload_name))
blocksize))
self.logger.info("Starting run %s" % self.current_workload)
+ self.workload_status[self.current_workload] = "Running"
scheduler = sched.scheduler(time.time, time.sleep)
if self.deadline is not None \
self.logger.info("Completed run %s" %
self.current_workload)
+ self.workload_status[self.current_workload] = "Completed"
self._workload_executors = []
self.current_workload = None