diff options
author | Emma Foley <emma.l.foley@intel.com> | 2018-12-18 18:26:23 +0000 |
---|---|---|
committer | Emma Foley <emma.l.foley@intel.com> | 2019-02-11 11:53:27 +0000 |
commit | 4ac123951f5571d44ec01b680941b95203653c64 (patch) | |
tree | c489ccc1bcaab40a3da1a894dc645bca174b7156 /api/utils | |
parent | 0738c2544e3220a3e0fd80a77ab1f2800f90533e (diff) |
Add ability to get data from different DBs in influx
In order to get data from Barometer, the influx helper need
to be updated to recognise different DBs. This patch adds
an optional arg to specify which database to use.
By default, the configured dispatcher for Yardstick is
used.
Limitation: The new change hard codes barometer DB name to
be used, and assumes that it is in the same instance of
Influx as the Yardstick dispatcher.
This can be extended later to make it configurable,
however, a new config option would have to be introduced.
JIRA: YARDSTICK-1593
Change-Id: Idee9c3491d6bf7b549e014edd9ff031312cf0ec2
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
Diffstat (limited to 'api/utils')
-rw-r--r-- | api/utils/influx.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/api/utils/influx.py b/api/utils/influx.py index f391ad972..8f3604745 100644 --- a/api/utils/influx.py +++ b/api/utils/influx.py @@ -1,5 +1,6 @@ ############################################################################## # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others. +# Copyright (c) 2019 Intel Corporation # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -22,25 +23,27 @@ from yardstick import dispatcher logger = logging.getLogger(__name__) - -def get_data_db_client(): +def get_data_db_client(db=None): parser = ConfigParser.ConfigParser() try: parser.read(consts.CONF_FILE) - return _get_influxdb_client(parser) + return _get_influxdb_client(parser, db) except ConfigParser.NoOptionError: logger.error('Can not find the key') raise - -def _get_influxdb_client(parser): +def _get_influxdb_client(parser, db=None): if dispatcher.INFLUXDB not in parser.get('DEFAULT', 'dispatcher'): raise exceptions.InfluxDBConfigurationMissing() ip = _get_ip(parser.get('dispatcher_influxdb', 'target')) user = parser.get('dispatcher_influxdb', 'username') password = parser.get('dispatcher_influxdb', 'password') - db_name = parser.get('dispatcher_influxdb', 'db_name') + if db is None: + db_name = parser.get('dispatcher_influxdb', 'db_name') + else: + db_name = db + return influxdb_client.InfluxDBClient(ip, consts.INFLUXDB_PORT, user, password, db_name) @@ -49,9 +52,9 @@ def _get_ip(url): return urlsplit(url).hostname -def query(query_sql): +def query(query_sql, db=None): try: - client = get_data_db_client() + client = get_data_db_client(db) logger.debug('Start to query: %s', query_sql) return list(client.query(query_sql).get_points()) except RuntimeError: |