)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"c550ee86fda5b2f41b0efa86fe1ad0e576093043","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Modifed the code to be compatible with either the old or new result"},{"line_number":14,"context_line":"set."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In InfluxDB version 1.0.0 the config file shanged. See"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"https://github.com/influxdata/influxdb/blob/master/CHANGELOG.md#v100-2016-09-08"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"7a77a97e_d78c3edc","line":16,"range":{"start_line":16,"start_character":42,"end_line":16,"end_character":43},"updated":"2016-11-18 09:27:15.000000000","message":"c","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"429258f3d2c996506b0db92c24fb8f02caed2afc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Modifed the code to be compatible with either the old or new result"},{"line_number":14,"context_line":"set."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In InfluxDB version 1.0.0 the config file shanged. See"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"https://github.com/influxdata/influxdb/blob/master/CHANGELOG.md#v100-2016-09-08"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"7a77a97e_dd012606","line":16,"range":{"start_line":16,"start_character":42,"end_line":16,"end_character":43},"in_reply_to":"7a77a97e_d78c3edc","updated":"2016-11-24 17:39:33.000000000","message":"Done","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"}],"devstack/files/influxdb/influxdb-1.0.0.conf":[{"author":{"_account_id":20033,"name":"Artur Basiak","email":"artur.basiak@ts.fujitsu.com","username":"abasiak"},"change_message_id":"8fcbebec39228ce58b5974474185f2f20d246a29","unresolved":false,"context_lines":[{"line_number":27,"context_line":"[meta]"},{"line_number":28,"context_line":"  dir \u003d \"/var/lib/influxdb/meta\""},{"line_number":29,"context_line":"  hostname \u003d \"localhost\""},{"line_number":30,"context_line":"  bind-address \u003d \":8089\""},{"line_number":31,"context_line":"  retention-autocreate \u003d true"},{"line_number":32,"context_line":"  election-timeout \u003d \"1s\""},{"line_number":33,"context_line":"  heartbeat-timeout \u003d \"1s\""}],"source_content_type":"text/plain","patch_set":25,"id":"5a74a57a_4a270c12","line":30,"range":{"start_line":30,"start_character":19,"end_line":30,"end_character":23},"updated":"2016-11-24 14:47:17.000000000","message":"I think port number for binding meta data should be 8088 which is default port. When you try to restore backup of influxdb database and influx is working on different port it will thrown an error. \nPort 8088 is hard coded for restore command:\nhttps://github.com/influxdata/influxdb/blob/0.11/cmd/influxd/restore/restore.go#L125\nand,\nhttps://github.com/influxdata/influxdb/blob/v0.11.0/services/meta/config.go#L82","commit_id":"2741716c6fe253649f7223eaa8f48e56a81e25d4"}],"devstack/files/schema/influxdb_setup.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"c550ee86fda5b2f41b0efa86fe1ad0e576093043","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"},{"line_number":89,"context_line":"            else:"},{"line_number":90,"context_line":"                return []"},{"line_number":91,"context_line":"        except:"},{"line_number":92,"context_line":"            uri \u003d \"{}\".format(uri)"},{"line_number":93,"context_line":"            req \u003d urllib2.urlopen(uri, encoded_params)"},{"line_number":94,"context_line":"            json_value \u003d json.loads(req.read())"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a77a97e_e27a56bc","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":15},"updated":"2016-11-18 09:27:15.000000000","message":"Should all errors be caught here? In case of time-out we will make here unnecessary request to possibly not existing endpoint.","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"429258f3d2c996506b0db92c24fb8f02caed2afc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"},{"line_number":89,"context_line":"            else:"},{"line_number":90,"context_line":"                return []"},{"line_number":91,"context_line":"        except:"},{"line_number":92,"context_line":"            uri \u003d \"{}\".format(uri)"},{"line_number":93,"context_line":"            req \u003d urllib2.urlopen(uri, encoded_params)"},{"line_number":94,"context_line":"            json_value \u003d json.loads(req.read())"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a77a97e_3d4bfa2c","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":15},"in_reply_to":"7a77a97e_e27a56bc","updated":"2016-11-24 17:39:33.000000000","message":"Done","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"c550ee86fda5b2f41b0efa86fe1ad0e576093043","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        encoded_params \u003d urlparse.urlencode(query_params)"},{"line_number":80,"context_line":"        json_value \u003d None"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            uri \u003d \"{}\u0026{}\".format(uri, encoded_params)"},{"line_number":84,"context_line":"            req \u003d urllib2.urlopen(uri)"},{"line_number":85,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":86,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"},{"line_number":87,"context_line":"               \u0027values\u0027 in json_value[\u0027results\u0027][0][\u0027series\u0027][0]):"},{"line_number":88,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"},{"line_number":89,"context_line":"            else:"},{"line_number":90,"context_line":"                return []"},{"line_number":91,"context_line":"        except:"},{"line_number":92,"context_line":"            uri \u003d \"{}\".format(uri)"},{"line_number":93,"context_line":"            req \u003d urllib2.urlopen(uri, encoded_params)"},{"line_number":94,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":95,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"},{"line_number":96,"context_line":"               \u0027values\u0027 in json_value[\u0027results\u0027][0][\u0027series\u0027][0]):"},{"line_number":97,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"},{"line_number":98,"context_line":"            else:"},{"line_number":99,"context_line":"                return []"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    except KeyError:"},{"line_number":102,"context_line":"        print \"Query returned a non-successful result: {0}\".format(json_value[\u0027results\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a77a97e_22db6e1c","line":99,"range":{"start_line":82,"start_character":0,"end_line":99,"end_character":25},"updated":"2016-11-18 09:27:15.000000000","message":"I think POST should be tried first if it\u0027s in newer version otherwise the more client will update InfluxDB the more unnecessary requests will happen.","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"429258f3d2c996506b0db92c24fb8f02caed2afc","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        encoded_params \u003d urlparse.urlencode(query_params)"},{"line_number":80,"context_line":"        json_value \u003d None"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            uri \u003d \"{}\u0026{}\".format(uri, encoded_params)"},{"line_number":84,"context_line":"            req \u003d urllib2.urlopen(uri)"},{"line_number":85,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":86,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"},{"line_number":87,"context_line":"               \u0027values\u0027 in json_value[\u0027results\u0027][0][\u0027series\u0027][0]):"},{"line_number":88,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"},{"line_number":89,"context_line":"            else:"},{"line_number":90,"context_line":"                return []"},{"line_number":91,"context_line":"        except:"},{"line_number":92,"context_line":"            uri \u003d \"{}\".format(uri)"},{"line_number":93,"context_line":"            req \u003d urllib2.urlopen(uri, encoded_params)"},{"line_number":94,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":95,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"},{"line_number":96,"context_line":"               \u0027values\u0027 in json_value[\u0027results\u0027][0][\u0027series\u0027][0]):"},{"line_number":97,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"},{"line_number":98,"context_line":"            else:"},{"line_number":99,"context_line":"                return []"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    except KeyError:"},{"line_number":102,"context_line":"        print \"Query returned a non-successful result: {0}\".format(json_value[\u0027results\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a77a97e_9d2fae87","line":99,"range":{"start_line":82,"start_character":0,"end_line":99,"end_character":25},"in_reply_to":"7a77a97e_22db6e1c","updated":"2016-11-24 17:39:33.000000000","message":"Done","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"e423339d1d8918b02f5bef7ad662d5e178ed5a39","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":7,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":32,"id":"5a74a57a_702a1fe9","line":4,"range":{"start_line":4,"start_character":16,"end_line":4,"end_character":20},"updated":"2016-11-30 22:53:07.000000000","message":"copyright","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"a1ade13b31f1d1e05f1c4b70f7d6c748b15acacc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":7,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":32,"id":"3a71b18c_eb9475e9","line":4,"range":{"start_line":4,"start_character":16,"end_line":4,"end_character":20},"in_reply_to":"5a74a57a_702a1fe9","updated":"2016-12-08 16:40:04.000000000","message":"Done","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"e423339d1d8918b02f5bef7ad662d5e178ed5a39","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        json_value \u003d None"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            uri \u003d \"{}\".format(uri)"},{"line_number":84,"context_line":"            req \u003d urllib2.urlopen(uri, encoded_params)"},{"line_number":85,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":86,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a74a57a_d0e59da8","line":83,"range":{"start_line":83,"start_character":17,"end_line":83,"end_character":18},"updated":"2016-11-30 22:53:07.000000000","message":"do you actually need to do a format here looks like it is a no-op to me","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"a1ade13b31f1d1e05f1c4b70f7d6c748b15acacc","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        json_value \u003d None"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            uri \u003d \"{}\".format(uri)"},{"line_number":84,"context_line":"            req \u003d urllib2.urlopen(uri, encoded_params)"},{"line_number":85,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":86,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"}],"source_content_type":"text/x-python","patch_set":32,"id":"3a71b18c_2b9f4d04","line":83,"range":{"start_line":83,"start_character":17,"end_line":83,"end_character":18},"in_reply_to":"5a74a57a_d0e59da8","updated":"2016-12-08 16:40:04.000000000","message":"Done","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"e423339d1d8918b02f5bef7ad662d5e178ed5a39","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        except urllib2.HTTPError:"},{"line_number":93,"context_line":"            uri \u003d \"{}\u0026{}\".format(uri, encoded_params)"},{"line_number":94,"context_line":"            req \u003d urllib2.urlopen(uri)"},{"line_number":95,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":96,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"},{"line_number":97,"context_line":"               \u0027values\u0027 in json_value[\u0027results\u0027][0][\u0027series\u0027][0]):"},{"line_number":98,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a74a57a_d0aafd18","line":95,"range":{"start_line":95,"start_character":12,"end_line":95,"end_character":22},"updated":"2016-11-30 22:53:07.000000000","message":"from json_value down it looks like this is the same code that is above move to common method?","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"a1ade13b31f1d1e05f1c4b70f7d6c748b15acacc","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        except urllib2.HTTPError:"},{"line_number":93,"context_line":"            uri \u003d \"{}\u0026{}\".format(uri, encoded_params)"},{"line_number":94,"context_line":"            req \u003d urllib2.urlopen(uri)"},{"line_number":95,"context_line":"            json_value \u003d json.loads(req.read())"},{"line_number":96,"context_line":"            if (len(json_value[\u0027results\u0027][0]) \u003e 0 and"},{"line_number":97,"context_line":"               \u0027values\u0027 in json_value[\u0027results\u0027][0][\u0027series\u0027][0]):"},{"line_number":98,"context_line":"                return json_value[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]"}],"source_content_type":"text/x-python","patch_set":32,"id":"3a71b18c_6b8945ca","line":95,"range":{"start_line":95,"start_character":12,"end_line":95,"end_character":22},"in_reply_to":"5a74a57a_d0aafd18","updated":"2016-12-08 16:40:04.000000000","message":"Done","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"}],"devstack/plugin.sh":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"9748e88727aaad1cb31b1f6d685726773eb7da47","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Compares two program version strings."},{"line_number":81,"context_line":"# Returns \"lt\" if $1 is less than $2, \"eq\" if equal, and \"gt\" if greater than"},{"line_number":82,"context_line":"function compare_versions {"},{"line_number":83,"context_line":"    if [[ $1 \u003d\u003d $2 ]]"},{"line_number":84,"context_line":"    then"},{"line_number":85,"context_line":"        echo eq"}],"source_content_type":"text/x-sh","patch_set":18,"id":"7a77a97e_a2aa1e83","line":82,"updated":"2016-11-18 08:28:35.000000000","message":"I started putting functions like this in the bottom of the file, do you think you could do the same ?","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"429258f3d2c996506b0db92c24fb8f02caed2afc","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Compares two program version strings."},{"line_number":81,"context_line":"# Returns \"lt\" if $1 is less than $2, \"eq\" if equal, and \"gt\" if greater than"},{"line_number":82,"context_line":"function compare_versions {"},{"line_number":83,"context_line":"    if [[ $1 \u003d\u003d $2 ]]"},{"line_number":84,"context_line":"    then"},{"line_number":85,"context_line":"        echo eq"}],"source_content_type":"text/x-sh","patch_set":18,"id":"7a77a97e_dd84c65e","line":82,"in_reply_to":"7a77a97e_9de747ab","updated":"2016-11-24 17:39:33.000000000","message":"Not sure why you suggest removing leading v\u0027s. The versions should not have a v as the prefix. Is there a \"v\" that is being added as the prefix to a program version string? Keep in mind, we are only talking about a small utility function that is being used to just select the correct version of InfluxDB that should be deployed in DevStack.","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"c550ee86fda5b2f41b0efa86fe1ad0e576093043","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Compares two program version strings."},{"line_number":81,"context_line":"# Returns \"lt\" if $1 is less than $2, \"eq\" if equal, and \"gt\" if greater than"},{"line_number":82,"context_line":"function compare_versions {"},{"line_number":83,"context_line":"    if [[ $1 \u003d\u003d $2 ]]"},{"line_number":84,"context_line":"    then"},{"line_number":85,"context_line":"        echo eq"}],"source_content_type":"text/x-sh","patch_set":18,"id":"7a77a97e_9de747ab","line":82,"in_reply_to":"7a77a97e_a2aa1e83","updated":"2016-11-18 09:27:15.000000000","message":"Add removing leading `v` from input versions.","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"429258f3d2c996506b0db92c24fb8f02caed2afc","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"# Compares two program version strings."},{"line_number":81,"context_line":"# Returns \"lt\" if $1 is less than $2, \"eq\" if equal, and \"gt\" if greater than"},{"line_number":82,"context_line":"function compare_versions {"},{"line_number":83,"context_line":"    if [[ $1 \u003d\u003d $2 ]]"},{"line_number":84,"context_line":"    then"},{"line_number":85,"context_line":"        echo eq"}],"source_content_type":"text/x-sh","patch_set":18,"id":"7a77a97e_3d413a3a","line":82,"in_reply_to":"7a77a97e_a2aa1e83","updated":"2016-11-24 17:39:33.000000000","message":"Done","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"09631ec53a791a7c42097946068569372cb17272","unresolved":false,"context_lines":[{"line_number":1845,"context_line":""},{"line_number":1846,"context_line":"# Compares two program version strings."},{"line_number":1847,"context_line":"# Returns \"lt\" if $1 is less than $2, \"eq\" if equal, and \"gt\" if greater than"},{"line_number":1848,"context_line":"function compare_versions {"},{"line_number":1849,"context_line":"    if [[ $1 \u003d\u003d $2 ]]"},{"line_number":1850,"context_line":"    then"},{"line_number":1851,"context_line":"        echo eq"}],"source_content_type":"text/x-sh","patch_set":22,"id":"5a74a57a_a831d6ee","line":1848,"updated":"2016-11-23 08:04:18.000000000","message":"I still would like to see removing leading `v` from input versions in this function.","commit_id":"d76e5b9e2ba3518e098e5e1b97b08f0774bc3f72"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"e2a79b1c5b7093078476c9f2ac55d9ed8c09afa8","unresolved":false,"context_lines":[{"line_number":1845,"context_line":""},{"line_number":1846,"context_line":"# Compares two program version strings."},{"line_number":1847,"context_line":"# Returns \"lt\" if $1 is less than $2, \"eq\" if equal, and \"gt\" if greater than"},{"line_number":1848,"context_line":"function compare_versions {"},{"line_number":1849,"context_line":"    if [[ $1 \u003d\u003d $2 ]]"},{"line_number":1850,"context_line":"    then"},{"line_number":1851,"context_line":"        echo eq"}],"source_content_type":"text/x-sh","patch_set":22,"id":"5a74a57a_d9925757","line":1848,"in_reply_to":"5a74a57a_a831d6ee","updated":"2016-11-23 14:01:56.000000000","message":"I think the leading \"v\" is not valid input and therefore, shouldn\u0027t be allowed. I\u0027m not of any place in the code where a leading \"v\" is supplied. If you look at the settings file, there are no loading \"v\u0027s\". So, instead of stripping off what is essentially invalid input, I\u0027ve added a function to validate that the program version string is of the correct form. That is, something like \"1.0.0\".\n\nIf there is a place where a leading \"v\" is used or should be allowed, let me know, but I\u0027m not going to change it because you want to see it added. If it is valid input somewhere and used somewhere, that would be a justified reason.\n\nKeep in mind that this function is just being used to configure the proper config file for InfluxDB versions right now. We\u0027re not talking about something that needs to handle all current and future potential cases.","commit_id":"d76e5b9e2ba3518e098e5e1b97b08f0774bc3f72"}],"devstack/settings":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e9f48d897a2b620bd8bdf658948cbdca025b51a2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"# Dependent Software Versions"},{"line_number":85,"context_line":"#"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"if [[ \"${MONASCA_API_IMPLEMENTATION_LANG,,}\" \u003d\u003d \u0027java\u0027 ]]; then"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    INFLUXDB_VERSION\u003d${INFLUXDB_VERSION:-0.9.5}"},{"line_number":90,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":13,"id":"7a77a97e_301303ba","line":87,"updated":"2016-11-16 22:28:33.000000000","message":"I think that sort of check should go the plugin.sh and be executed on top the file before first function. Here you could just specify the version for the python and later alter the gate setup to override it for the java.","commit_id":"e7a81b2778f4016f26cde56748515252e0fb3f61"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"87e64073fe3618d2e73eb2fb8fc23972cf285f02","unresolved":false,"context_lines":[{"line_number":84,"context_line":"# Dependent Software Versions"},{"line_number":85,"context_line":"#"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"if [[ \"${MONASCA_API_IMPLEMENTATION_LANG,,}\" \u003d\u003d \u0027java\u0027 ]]; then"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    INFLUXDB_VERSION\u003d${INFLUXDB_VERSION:-0.9.5}"},{"line_number":90,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":13,"id":"7a77a97e_1c2700b7","line":87,"in_reply_to":"7a77a97e_301303ba","updated":"2016-11-17 00:09:22.000000000","message":"Ohh yeah, that\u0027s a good point. I\u0027ll make the change.","commit_id":"e7a81b2778f4016f26cde56748515252e0fb3f61"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"c550ee86fda5b2f41b0efa86fe1ad0e576093043","unresolved":false,"context_lines":[{"line_number":92,"context_line":"# also set the INFLUXDB_VERSION when switching between the two."},{"line_number":93,"context_line":"INFLUXDB_JAVA_VERSION\u003d${INFLUXDB_JAVA_VERSION:-0.9.5}"},{"line_number":94,"context_line":"INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-1.1.0}"},{"line_number":95,"context_line":"# INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-1.0.2}"},{"line_number":96,"context_line":"# INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-0.11.1-1}"},{"line_number":97,"context_line":"# INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-0.9.5}"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# To set the same version of InfluxDB for both languages use the"},{"line_number":100,"context_line":"# following variable."}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7a77a97e_5d1bef80","line":97,"range":{"start_line":95,"start_character":0,"end_line":97,"end_character":59},"updated":"2016-11-18 09:27:15.000000000","message":"Do we need it here?","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"429258f3d2c996506b0db92c24fb8f02caed2afc","unresolved":false,"context_lines":[{"line_number":92,"context_line":"# also set the INFLUXDB_VERSION when switching between the two."},{"line_number":93,"context_line":"INFLUXDB_JAVA_VERSION\u003d${INFLUXDB_JAVA_VERSION:-0.9.5}"},{"line_number":94,"context_line":"INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-1.1.0}"},{"line_number":95,"context_line":"# INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-1.0.2}"},{"line_number":96,"context_line":"# INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-0.11.1-1}"},{"line_number":97,"context_line":"# INFLUXDB_PYTHON_VERSION\u003d${INFLUXDB_PYTHON_VERSION:-0.9.5}"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# To set the same version of InfluxDB for both languages use the"},{"line_number":100,"context_line":"# following variable."}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7a77a97e_7d901296","line":97,"range":{"start_line":95,"start_character":0,"end_line":97,"end_character":59},"in_reply_to":"7a77a97e_5d1bef80","updated":"2016-11-24 17:39:33.000000000","message":"Done","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"}],"monasca_api/common/repositories/influxdb/metrics_repository.py":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e9f48d897a2b620bd8bdf658948cbdca025b51a2","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        # In InfluxDB v0.11.0 the SHOW SERIES output changed."},{"line_number":254,"context_line":"        # See, https://github.com/influxdata/influxdb/blob/master/CHANGELOG.md#v0110-2016-03-22"},{"line_number":255,"context_line":"        if self._influxdb_version \u003c version.StrictVersion(\u00270.11.0\u0027):"},{"line_number":256,"context_line":"            if \u0027series\u0027 in series_names.raw:"},{"line_number":257,"context_line":"                for series in series_names.raw[\u0027series\u0027]:"},{"line_number":258,"context_line":"                    for tag_values in series[u\u0027values\u0027]:"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7a77a97e_70d2dbd3","line":256,"updated":"2016-11-16 22:28:33.000000000","message":"Maybe instead of checking this every time, let\u0027s create two functions in this class or in the module (private) and pick just one depending on the version.","commit_id":"e7a81b2778f4016f26cde56748515252e0fb3f61"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5e420b6068dcecac7113dd9b22e517a9154c2e93","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        # In InfluxDB v0.11.0 the SHOW SERIES output changed."},{"line_number":254,"context_line":"        # See, https://github.com/influxdata/influxdb/blob/master/CHANGELOG.md#v0110-2016-03-22"},{"line_number":255,"context_line":"        if self._influxdb_version \u003c version.StrictVersion(\u00270.11.0\u0027):"},{"line_number":256,"context_line":"            if \u0027series\u0027 in series_names.raw:"},{"line_number":257,"context_line":"                for series in series_names.raw[\u0027series\u0027]:"},{"line_number":258,"context_line":"                    for tag_values in series[u\u0027values\u0027]:"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7a77a97e_5bdb374f","line":256,"in_reply_to":"7a77a97e_01031710","updated":"2016-11-17 05:01:38.000000000","message":"Yeah, pretty much.\n\nPersonally I always go for early check and saving function ptr if that is possible (at least this JS pattern works in Python ;-) ). Here, influx version while application is already running won\u0027t change so we can easily do this. Another approach would be subclassing this one and writing new portion of code specifically for newer influx. However that would require admin knowledge and some extra documentation IMHO.","commit_id":"e7a81b2778f4016f26cde56748515252e0fb3f61"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"87e64073fe3618d2e73eb2fb8fc23972cf285f02","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        # In InfluxDB v0.11.0 the SHOW SERIES output changed."},{"line_number":254,"context_line":"        # See, https://github.com/influxdata/influxdb/blob/master/CHANGELOG.md#v0110-2016-03-22"},{"line_number":255,"context_line":"        if self._influxdb_version \u003c version.StrictVersion(\u00270.11.0\u0027):"},{"line_number":256,"context_line":"            if \u0027series\u0027 in series_names.raw:"},{"line_number":257,"context_line":"                for series in series_names.raw[\u0027series\u0027]:"},{"line_number":258,"context_line":"                    for tag_values in series[u\u0027values\u0027]:"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7a77a97e_01031710","line":256,"in_reply_to":"7a77a97e_70d2dbd3","updated":"2016-11-17 00:09:22.000000000","message":"There were several designs that I considered to address this. I\u0027m pretty sure I thought of doing something similar to this one, but I\u0027m not quite sure which one. In general, anytime I see an if check on something like this i start thinking of several approaches.\n\nI could have private function pointers, for example called _build_serie_dimenion_values, that get initialized when the object gets initialized to either _build_serie_dimenion_values_old and _build_serie_dimenion_values_new. That avoids the if check, but I\u0027m not sure it really improves the code in this particular case.\n\nWas that what you were interested in seeign done.","commit_id":"e7a81b2778f4016f26cde56748515252e0fb3f61"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e9f48d897a2b620bd8bdf658948cbdca025b51a2","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # In InfluxDB v0.11.0 the SHOW SERIES output changed."},{"line_number":314,"context_line":"        # See, https://github.com/influxdata/influxdb/blob/master/CHANGELOG.md#v0110-2016-03-22"},{"line_number":315,"context_line":"        if self._influxdb_version \u003c version.StrictVersion(\u00270.11.0\u0027):"},{"line_number":316,"context_line":"            if \u0027series\u0027 in series_names.raw:"},{"line_number":317,"context_line":"                for series in series_names.raw[\u0027series\u0027]:"},{"line_number":318,"context_line":"                    for name in series[u\u0027columns\u0027]:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a77a97e_b0dc73e5","line":315,"updated":"2016-11-16 22:28:33.000000000","message":"same here","commit_id":"e7a81b2778f4016f26cde56748515252e0fb3f61"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e9f48d897a2b620bd8bdf658948cbdca025b51a2","unresolved":false,"context_lines":[{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        # In InfluxDB v0.11.0 the SHOW SERIES output changed."},{"line_number":370,"context_line":"        # See, https://github.com/influxdata/influxdb/blob/master/CHANGELOG.md#v0110-2016-03-22"},{"line_number":371,"context_line":"        if self._influxdb_version \u003c version.StrictVersion(\u00270.11.0\u0027):"},{"line_number":372,"context_line":"            for series in series_names.raw[\u0027series\u0027]:"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"                for tag_values in series[u\u0027values\u0027]:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a77a97e_90ecd790","line":371,"updated":"2016-11-16 22:28:33.000000000","message":"and here","commit_id":"e7a81b2778f4016f26cde56748515252e0fb3f61"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"b8f94db88523fd5f647de43554beed5709ce6260","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            return"},{"line_number":69,"context_line":"        for series in result.raw[\u0027series\u0027]:"},{"line_number":70,"context_line":"            if \u0027columns\u0027 not in series:"},{"line_number":71,"context_line":"                continue"},{"line_number":72,"context_line":"            columns \u003d series[\u0027columns\u0027]"},{"line_number":73,"context_line":"            if u\u0027Version\u0027 not in series[\u0027columns\u0027]:"},{"line_number":74,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a77a97e_0792e04b","line":71,"range":{"start_line":71,"start_character":16,"end_line":71,"end_character":24},"updated":"2016-11-18 23:17:47.000000000","message":"I think it would be worthwhile to log a message whenever skipping a series.","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"429258f3d2c996506b0db92c24fb8f02caed2afc","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            return"},{"line_number":69,"context_line":"        for series in result.raw[\u0027series\u0027]:"},{"line_number":70,"context_line":"            if \u0027columns\u0027 not in series:"},{"line_number":71,"context_line":"                continue"},{"line_number":72,"context_line":"            columns \u003d series[\u0027columns\u0027]"},{"line_number":73,"context_line":"            if u\u0027Version\u0027 not in series[\u0027columns\u0027]:"},{"line_number":74,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a74a57a_2723e206","line":71,"range":{"start_line":71,"start_character":16,"end_line":71,"end_character":24},"in_reply_to":"7a77a97e_0792e04b","updated":"2016-11-24 17:39:33.000000000","message":"I would happily log at this point and other spots in this code if I knew what the result set was supposed to be. It isn\u0027t like I didn\u0027t think about doing that.\n\nHowever, I don\u0027t know if \"columns\" should always be provided or not. Look at the documentation that InfluxDB provides at, https://docs.influxdata.com/influxdb/v1.1/troubleshooting/statistics/#show-stats. Not much there. If they documented the schema explicitly, I could start to write code that handles what are expected cases, warning cases and error cases, rather than proceeding with guessing/assuming.\n\nSo, right now the code in this location does several checks for columns, keys and values, as well as checks to see if it has the appropriate number of tokens after splitting. In all cases, the code just continues on. This isn\u0027t what I wanted to do. \n\nThere are really a couple of choices:\n\n1. Remove the checks, for example, in this case remove the check for whether columns exists along with the continue. At least in that case an exception will occur which can be debugged. That might improve the performance too, but at the same time, I\u0027m not sure what is in the result set, and what is valid. If I let an exception occur when the code trys to resolve columns, could it possibly be ignoring valid input that follows? I\u0027m assuming, yes. It seems unlikely, but I don\u0027t like coding to what seems likely/unlikely in this case.\n\n2. Keep the check, add a log statement and then do what? Continue silently or raise an exception. Since I don\u0027t know, I\u0027m not sure what to do. And, I don\u0027t even know what log statement should be logged. Should it be a warning, error, debug, or info.\n\nIf you come across a schema for InfluxDB that I can code too, then I can start to think about an appropriate strategy.\n\nWhat I\u0027ve chosen as my strategy in this case is that since it is JSON, and I don\u0027t have a documented schema, to continue on silently, ignoring results that don\u0027t have the key that I\u0027m looking for, rather than logging or letting an exception occur. \n\nWhat is the downside? Well, if InfluxDB happens to throw some results that don\u0027t match the explicit structure I\u0027m looking for they will be ignored. I think that is unlikely, and if InfluxDB starts to do that, wouldn\u0027t that be considered the appropriate choice?","commit_id":"dbe83e9836b934cc70142f893603bb72f2ce5eaa"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"e423339d1d8918b02f5bef7ad662d5e178ed5a39","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            if influxdb_version \u003c version.StrictVersion(\u00270.11.0\u0027):"},{"line_number":56,"context_line":"                self._init_serie_builders_v0_9_5()"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                self._init_serie_builders_v0_11_0()"},{"line_number":59,"context_line":"        except Exception as ex:"},{"line_number":60,"context_line":"            LOG.exception(ex)"},{"line_number":61,"context_line":"            # Initialize the serie builders for v0_9_5. Not sure when SHOW DIAGNOSTICS added"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a74a57a_8b13f45b","line":58,"range":{"start_line":58,"start_character":21,"end_line":58,"end_character":49},"updated":"2016-11-30 22:53:07.000000000","message":"this is for any version greater then 0_11 correct? I wonder if we should include that in the method name if so.","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"a1ade13b31f1d1e05f1c4b70f7d6c748b15acacc","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            if influxdb_version \u003c version.StrictVersion(\u00270.11.0\u0027):"},{"line_number":56,"context_line":"                self._init_serie_builders_v0_9_5()"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                self._init_serie_builders_v0_11_0()"},{"line_number":59,"context_line":"        except Exception as ex:"},{"line_number":60,"context_line":"            LOG.exception(ex)"},{"line_number":61,"context_line":"            # Initialize the serie builders for v0_9_5. Not sure when SHOW DIAGNOSTICS added"}],"source_content_type":"text/x-python","patch_set":32,"id":"3a71b18c_0bbff160","line":58,"range":{"start_line":58,"start_character":21,"end_line":58,"end_character":49},"in_reply_to":"5a74a57a_8b13f45b","updated":"2016-12-08 16:40:04.000000000","message":"Done","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"e423339d1d8918b02f5bef7ad662d5e178ed5a39","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        \u0027\u0027\u0027"},{"line_number":79,"context_line":"        LOG.info(\u0027Initialize InfluxDB serie builders \u003e\u003d  v0.11.0\u0027)"},{"line_number":80,"context_line":"        self._build_serie_dimension_names \u003d self._build_serie_dimension_names_v0_11_0"},{"line_number":81,"context_line":"        self._build_serie_dimension_values \u003d self._build_serie_dimension_values_v0_11_0"},{"line_number":82,"context_line":"        self._build_serie_metric_list \u003d self._build_serie_metric_list_v0_11_0"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_influxdb_version(self):"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a74a57a_4b20fc9b","line":81,"range":{"start_line":81,"start_character":50,"end_line":81,"end_character":87},"updated":"2016-11-30 22:53:07.000000000","message":"same for this methods sounds like it is just for v_0_11 only","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"a1ade13b31f1d1e05f1c4b70f7d6c748b15acacc","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        \u0027\u0027\u0027"},{"line_number":79,"context_line":"        LOG.info(\u0027Initialize InfluxDB serie builders \u003e\u003d  v0.11.0\u0027)"},{"line_number":80,"context_line":"        self._build_serie_dimension_names \u003d self._build_serie_dimension_names_v0_11_0"},{"line_number":81,"context_line":"        self._build_serie_dimension_values \u003d self._build_serie_dimension_values_v0_11_0"},{"line_number":82,"context_line":"        self._build_serie_metric_list \u003d self._build_serie_metric_list_v0_11_0"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_influxdb_version(self):"}],"source_content_type":"text/x-python","patch_set":32,"id":"3a71b18c_4bb9e978","line":81,"range":{"start_line":81,"start_character":50,"end_line":81,"end_character":87},"in_reply_to":"5a74a57a_4b20fc9b","updated":"2016-12-08 16:40:04.000000000","message":"Done","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"e423339d1d8918b02f5bef7ad662d5e178ed5a39","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            raise"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        if \u0027series\u0027 not in result.raw:"},{"line_number":97,"context_line":"            LOG.warning(\u0027series not in result.raw\u0027)"},{"line_number":98,"context_line":"            raise Exception(\u0027Series not in SHOW DIAGNOSTICS result set\u0027)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for series in result.raw[\u0027series\u0027]:"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a74a57a_503b4deb","line":97,"range":{"start_line":97,"start_character":16,"end_line":97,"end_character":23},"updated":"2016-11-30 22:53:07.000000000","message":"why log warning here by raise exception right after should this be log.exception","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"a1ade13b31f1d1e05f1c4b70f7d6c748b15acacc","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            raise"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        if \u0027series\u0027 not in result.raw:"},{"line_number":97,"context_line":"            LOG.warning(\u0027series not in result.raw\u0027)"},{"line_number":98,"context_line":"            raise Exception(\u0027Series not in SHOW DIAGNOSTICS result set\u0027)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for series in result.raw[\u0027series\u0027]:"}],"source_content_type":"text/x-python","patch_set":32,"id":"3a71b18c_6bb0658c","line":97,"range":{"start_line":97,"start_character":16,"end_line":97,"end_character":23},"in_reply_to":"5a74a57a_503b4deb","updated":"2016-12-08 16:40:04.000000000","message":"Done","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"869742df6d2d0512fb2d2f1da6636449af29674d","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                continue"},{"line_number":484,"context_line":"            for value in series[u\u0027values\u0027]:"},{"line_number":485,"context_line":"                split_value \u003d value[key_index].split(\u0027,\u0027)"},{"line_number":486,"context_line":"                if len(split_value) \u003c 2:"},{"line_number":487,"context_line":"                    continue"},{"line_number":488,"context_line":"                serie_name \u003d split_value[0]"},{"line_number":489,"context_line":"                dimensions \u003d {}"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a71b18c_e34499b8","line":486,"range":{"start_line":486,"start_character":16,"end_line":486,"end_character":40},"updated":"2016-12-08 17:41:57.000000000","message":"This will ignore metrics which do not have dimensions, is that the desired behavior?","commit_id":"88cbf6b44be1e0beee10d83ca6219e75e7040916"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"bfb63b618243a5ab3dd68f117da95c602a593dd8","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                continue"},{"line_number":484,"context_line":"            for value in series[u\u0027values\u0027]:"},{"line_number":485,"context_line":"                split_value \u003d value[key_index].split(\u0027,\u0027)"},{"line_number":486,"context_line":"                if len(split_value) \u003c 2:"},{"line_number":487,"context_line":"                    continue"},{"line_number":488,"context_line":"                serie_name \u003d split_value[0]"},{"line_number":489,"context_line":"                dimensions \u003d {}"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a71b18c_e4148da0","line":486,"range":{"start_line":486,"start_character":16,"end_line":486,"end_character":40},"in_reply_to":"3a71b18c_e34499b8","updated":"2016-12-09 05:41:36.000000000","message":"Hi Ryan, I think you found a bug. Dimensions are optional, although I pity the soul who provides metrics without dimensions. I\u0027ll address this bug in another patch set, as well as create a Tempest test to try and catch this.","commit_id":"88cbf6b44be1e0beee10d83ca6219e75e7040916"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"e9142d66be9915cffc9be9c235f6adcacbcd4c79","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                continue"},{"line_number":484,"context_line":"            for value in series[u\u0027values\u0027]:"},{"line_number":485,"context_line":"                split_value \u003d value[key_index].split(\u0027,\u0027)"},{"line_number":486,"context_line":"                if len(split_value) \u003c 2:"},{"line_number":487,"context_line":"                    continue"},{"line_number":488,"context_line":"                serie_name \u003d split_value[0]"},{"line_number":489,"context_line":"                dimensions \u003d {}"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a71b18c_1960ddce","line":486,"range":{"start_line":486,"start_character":16,"end_line":486,"end_character":40},"in_reply_to":"3a71b18c_e4148da0","updated":"2016-12-10 13:12:33.000000000","message":"Hi Ryan, We are OK. There are always a few private values, _region and _tenant_id, supplied. So, in theory the split_value should always be \u003e\u003d 2.\n\nI tested manually, and there are tempest tests that test this condition that are passing, so it looks like this is ready to go again.","commit_id":"88cbf6b44be1e0beee10d83ca6219e75e7040916"}],"monasca_tempest_tests/tests/api/test_metrics.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"e423339d1d8918b02f5bef7ad662d5e178ed5a39","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2015-2016 Hewlett Packard Enterprise Development Company LP"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a74a57a_9330a5a0","line":1,"range":{"start_line":1,"start_character":65,"end_line":1,"end_character":72},"updated":"2016-11-30 22:53:07.000000000","message":"take out of copyright","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"a1ade13b31f1d1e05f1c4b70f7d6c748b15acacc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2015-2016 Hewlett Packard Enterprise Development Company LP"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":32,"id":"3a71b18c_cba5f947","line":1,"range":{"start_line":1,"start_character":65,"end_line":1,"end_character":72},"in_reply_to":"5a74a57a_9330a5a0","updated":"2016-12-08 16:40:04.000000000","message":"Done","commit_id":"aacdd6f9a584eec369f4217011561f25695dfa1e"}]}
