# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-import os
-import json
+from __future__ import absolute_import
+
import logging
-import requests
+import os
import time
+import requests
+import six
from oslo_config import cfg
+from oslo_serialization import jsonutils
+from third_party.influxdb.influxdb_line_protocol import make_lines
from yardstick.dispatcher.base import Base as DispatchBase
-from yardstick.dispatcher.influxdb_line_protocol import make_lines
LOG = logging.getLogger(__name__)
"pod_name": os.environ.get('NODE_NAME', 'unknown'),
"installer": os.environ.get('INSTALLER_TYPE', 'unknown'),
"deploy_scenario": os.environ.get('DEPLOY_SCENARIO', 'unknown'),
- "version": os.environ.get('YARDSTICK_VERSION', 'unknown')
+ "version": os.path.basename(os.environ.get('YARDSTICK_BRANCH',
+ 'unknown'))
+
}
def _dict_key_flatten(self, data):
if type(v) == dict or type(v) == list]:
return data
- for k, v in data.iteritems():
+ for k, v in six.iteritems(data):
if type(v) == dict:
- for n_k, n_v in v.iteritems():
+ for n_k, n_v in six.iteritems(v):
next_data["%s.%s" % (k, n_k)] = n_v
elif type(v) == list:
for index, item in enumerate(v):
return make_lines(msg).encode('utf-8')
def record_result_data(self, data):
- LOG.debug('Test result : %s' % json.dumps(data))
+ LOG.debug('Test result : %s', jsonutils.dump_as_bytes(data))
self.raw_result.append(data)
if self.target == '':
# if the target was not set, do not do anything
return 0
if self.tc == "":
- LOG.error('Test result : %s' % json.dumps(data))
+ LOG.error('Test result : %s', jsonutils.dump_as_bytes(data))
LOG.error('The case_name cannot be found, no data will be posted.')
return -1
try:
line = self._data_to_line_protocol(data)
- LOG.debug('Test result line format : %s' % line)
+ LOG.debug('Test result line format : %s', line)
res = requests.post(self.influxdb_url,
data=line,
auth=(self.username, self.password),
if res.status_code != 204:
LOG.error('Test result posting finished with status code'
' %d.' % res.status_code)
+ LOG.error(res.text)
+
except Exception as err:
LOG.exception('Failed to record result data: %s',
err)
return 0
def flush_result_data(self):
- LOG.debug('Test result all : %s' % json.dumps(self.raw_result))
+ LOG.debug('Test result all : %s',
+ jsonutils.dump_as_bytes(self.raw_result))
return 0