summaryrefslogtreecommitdiff
path: root/osprofiler/drivers/sqlalchemy_driver.py
diff options
context:
space:
mode:
Diffstat (limited to 'osprofiler/drivers/sqlalchemy_driver.py')
-rw-r--r--osprofiler/drivers/sqlalchemy_driver.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/osprofiler/drivers/sqlalchemy_driver.py b/osprofiler/drivers/sqlalchemy_driver.py
index a8cefcf..daab1d0 100644
--- a/osprofiler/drivers/sqlalchemy_driver.py
+++ b/osprofiler/drivers/sqlalchemy_driver.py
@@ -102,6 +102,23 @@ class SQLAlchemyDriver(base.Driver):
LOG.exception("Can not store osprofiler tracepoint {} "
"(base_id {})".format(trace_id, base_id))
+ def list_traces(self, fields=None):
+ try:
+ from sqlalchemy.sql import select
+ except ImportError:
+ raise exc.CommandError(
+ "To use this command, you should install 'SQLAlchemy'")
+ stmt = select([self._data_table])
+ seen_ids = set()
+ result = []
+ traces = self._conn.execute(stmt).fetchall()
+ for trace in traces:
+ if trace["base_id"] not in seen_ids:
+ seen_ids.add(trace["base_id"])
+ result.append({key: value for key, value in trace.items()
+ if key in fields})
+ return result
+
def get_report(self, base_id):
try:
from sqlalchemy.sql import select