Returns all job ID's if queried without ID. 07/38007/3
authorTaseer <taseer94@gmail.com>
Mon, 24 Jul 2017 17:34:57 +0000 (22:34 +0500)
committerTaseer <taseer94@gmail.com>
Mon, 24 Jul 2017 19:20:24 +0000 (00:20 +0500)
JIRA: STORPERF-184

Change-Id: I631b4adbd830420a3b502e4f2a86a66824c87fcd
Signed-off-by: Taseer Ahmed <taseer94@gmail.com>
docker/storperf-master/rest_server.py
docker/storperf-master/storperf/db/job_db.py
docker/storperf-master/storperf/storperf_master.py

index ef8975c..3df2856 100644 (file)
@@ -194,14 +194,17 @@ class Job(Resource):
 
         workload_id = request.args.get('id')
 
-        if metrics_type == "metrics":
-            return jsonify(storperf.fetch_results(workload_id))
+        if workload_id:
+            if metrics_type == "metrics":
+                return jsonify(storperf.fetch_results(workload_id))
 
-        if metrics_type == "metadata":
-            return jsonify(storperf.fetch_metadata(workload_id))
+            if metrics_type == "metadata":
+                return jsonify(storperf.fetch_metadata(workload_id))
 
-        if metrics_type == "status":
-            return jsonify(storperf.fetch_job_status(workload_id))
+            if metrics_type == "status":
+                return jsonify(storperf.fetch_job_status(workload_id))
+        else:
+            return jsonify({"job_ids": storperf.fetch_all_jobs()})
 
     @swagger.operation(
         parameters=[
index 3308fa8..eb35cac 100644 (file)
@@ -233,6 +233,19 @@ class JobDB(object):
             db.commit()
             db.close()
 
+    def fetch_jobs(self):
+        jobs = []
+        db = sqlite3.connect(JobDB.db_name)
+        cursor = db.cursor()
+        cursor.execute("select distinct job_id from jobs")
+        while (True):
+            row = cursor.fetchone()
+            if row is None:
+                break
+            jobs.append(row[0])
+        db.close()
+        return jobs
+
     def fetch_workload_params(self, job_id):
         """
         """
index 054d2a7..b30d266 100644 (file)
@@ -346,6 +346,9 @@ class StorPerfMaster(object):
     def fetch_job_status(self, job_id):
         return self._test_executor.execution_status(job_id)
 
+    def fetch_all_jobs(self):
+        return self.job_db.fetch_jobs()
+
     def _setup_slave(self, slave):
         logger = logging.getLogger(__name__ + ":" + slave)