)]}'
{"etc/api-config.conf":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"d220791bd192f9dc6f2d951a727900f06e2126fa","unresolved":false,"context_lines":[{"line_number":42,"context_line":"# Switches depending on backend database in use. Influxdb or Cassandra."},{"line_number":43,"context_line":"metrics_driver \u003d monasca_api.common.repositories.influxdb.metrics_repository:MetricsRepository"},{"line_number":44,"context_line":"#metrics_driver \u003d monasca_api.common.repositories.cassandra"},{"line_number":45,"context_line":".metrics_repository:MetricsRepository"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# The driver to use for the alarm definitions repository"},{"line_number":48,"context_line":"alarm_definitions_driver \u003d monasca_api.common.repositories.mysql.alarm_definitions_repository:AlarmDefinitionsRepository"}],"source_content_type":"text/plain","patch_set":16,"id":"1aa78d24_d92a3ee7","line":45,"updated":"2016-07-02 20:53:45.000000000","message":"I think line 45 should be connected with 44.","commit_id":"062699332ed339c2d7f84f0cd7f1668a001ea189"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"7457cca8b8b360f969b942fc3f5984879525fe43","unresolved":false,"context_lines":[{"line_number":42,"context_line":"# Switches depending on backend database in use. Influxdb or Cassandra."},{"line_number":43,"context_line":"metrics_driver \u003d monasca_api.common.repositories.influxdb.metrics_repository:MetricsRepository"},{"line_number":44,"context_line":"#metrics_driver \u003d monasca_api.common.repositories.cassandra"},{"line_number":45,"context_line":".metrics_repository:MetricsRepository"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# The driver to use for the alarm definitions repository"},{"line_number":48,"context_line":"alarm_definitions_driver \u003d monasca_api.common.repositories.mysql.alarm_definitions_repository:AlarmDefinitionsRepository"}],"source_content_type":"text/plain","patch_set":16,"id":"1aa78d24_e73139ee","line":45,"in_reply_to":"1aa78d24_d92a3ee7","updated":"2016-07-04 11:30:08.000000000","message":"Done","commit_id":"062699332ed339c2d7f84f0cd7f1668a001ea189"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"35f044c15ab45cdf8ffda4d9da0d12316dc985c2","unresolved":false,"context_lines":[{"line_number":106,"context_line":"[cassandra]"},{"line_number":107,"context_line":"# Only needed if Cassandra database is used for backend."},{"line_number":108,"context_line":"# Comma separated list of Cassandra node IP addresses. No spaces."},{"line_number":109,"context_line":"cluster_ip_addresses: 10.10.10.3"},{"line_number":110,"context_line":"keyspace: monasca"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"# Below is configuration for database."}],"source_content_type":"text/plain","patch_set":18,"id":"dada55a8_52a9588f","line":109,"range":{"start_line":109,"start_character":0,"end_line":109,"end_character":20},"updated":"2016-07-20 22:32:37.000000000","message":"My assumption is that we should change the IP address to 192.168.10.6, as this is mainly used for our DevStack deploy.","commit_id":"f48702616711151bcadbc05e3d69485ea9722858"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"65841ae07f948426cad6b489f269030d394b90f4","unresolved":false,"context_lines":[{"line_number":106,"context_line":"[cassandra]"},{"line_number":107,"context_line":"# Only needed if Cassandra database is used for backend."},{"line_number":108,"context_line":"# Comma separated list of Cassandra node IP addresses. No spaces."},{"line_number":109,"context_line":"cluster_ip_addresses: 10.10.10.3"},{"line_number":110,"context_line":"keyspace: monasca"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"# Below is configuration for database."}],"source_content_type":"text/plain","patch_set":18,"id":"dada55a8_23240f0b","line":109,"range":{"start_line":109,"start_character":0,"end_line":109,"end_character":20},"in_reply_to":"dada55a8_52a9588f","updated":"2016-07-22 04:57:18.000000000","message":"Done","commit_id":"f48702616711151bcadbc05e3d69485ea9722858"}],"monasca_api/common/repositories/cassandra/metrics_repository.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"024741a6c44d34ccc3ac72aaf8a6796994e1d0e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"# Copyright 2015 Hewlett-Packard"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a5de9d1_90b303e9","line":2,"updated":"2016-01-29 23:02:49.000000000","message":"can you correct this copyright\n\n\n# (C) Copyright 2015,2016 Hewlett Packard Enterprise Development Company LP","commit_id":"938b695c978350529e3c52691215b6f18a36f4c5"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"8936df1177acf6b232939cbbd8fc830131f8cad2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"# Copyright 2015 Hewlett-Packard"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a5de9d1_da37594b","line":2,"in_reply_to":"7a5de9d1_90b303e9","updated":"2016-01-29 23:09:16.000000000","message":"Done","commit_id":"938b695c978350529e3c52691215b6f18a36f4c5"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"024741a6c44d34ccc3ac72aaf8a6796994e1d0e3","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def build_dimensions_clause(self, dimensions, parms):"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        dimension_clause \u003d \u0027\u0027"},{"line_number":126,"context_line":"        if dimensions:"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            for name, value in dimensions.iteritems():"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a5de9d1_baf05dfe","line":125,"updated":"2016-01-29 23:02:49.000000000","message":"dimensions_clause makes more sense to me","commit_id":"938b695c978350529e3c52691215b6f18a36f4c5"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"024741a6c44d34ccc3ac72aaf8a6796994e1d0e3","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        if dimensions:"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            for name, value in dimensions.iteritems():"},{"line_number":129,"context_line":"                dimension_clause \u003d (dimension_clause + \u0027and metric_set \u0027"},{"line_number":130,"context_line":"                                                       \u0027contains %s \u0027)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"                parms.append(urllib.quote_plus(name).encode(\u0027utf8\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a5de9d1_9086a3d9","line":129,"updated":"2016-01-29 23:02:49.000000000","message":"+\u003d","commit_id":"938b695c978350529e3c52691215b6f18a36f4c5"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"8936df1177acf6b232939cbbd8fc830131f8cad2","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        if dimensions:"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            for name, value in dimensions.iteritems():"},{"line_number":129,"context_line":"                dimension_clause \u003d (dimension_clause + \u0027and metric_set \u0027"},{"line_number":130,"context_line":"                                                       \u0027contains %s \u0027)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"                parms.append(urllib.quote_plus(name).encode(\u0027utf8\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a5de9d1_3a478dbd","line":129,"in_reply_to":"7a5de9d1_9086a3d9","updated":"2016-01-29 23:09:16.000000000","message":"Done","commit_id":"938b695c978350529e3c52691215b6f18a36f4c5"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"891343fee70567c1905e2221b4ecf84e5e9c29f1","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        if dimensions:"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            for name, value in dimensions.iteritems():"},{"line_number":129,"context_line":"                dimension_clause \u003d \u0027 and metric_set contains %s \u0027"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"                parms.append(urllib.quote_plus(name).encode(\u0027utf8\u0027)"},{"line_number":132,"context_line":"                             + \u0027\u003d\u0027.encode(\u0027utf8\u0027) +"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_daeaf973","line":129,"range":{"start_line":129,"start_character":35,"end_line":129,"end_character":36},"updated":"2016-01-29 23:12:11.000000000","message":"forgot the +","commit_id":"d6db4efc6372f5819f7f56725301b8b378bbdc5a"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"12df8be5ad7ae50fa9d479a3fe2d2deb3baa57c4","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        if dimensions:"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            for name, value in dimensions.iteritems():"},{"line_number":129,"context_line":"                dimension_clause \u003d \u0027 and metric_set contains %s \u0027"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"                parms.append(urllib.quote_plus(name).encode(\u0027utf8\u0027)"},{"line_number":132,"context_line":"                             + \u0027\u003d\u0027.encode(\u0027utf8\u0027) +"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_7d797fc7","line":129,"range":{"start_line":129,"start_character":35,"end_line":129,"end_character":36},"in_reply_to":"7a5de9d1_daeaf973","updated":"2016-01-30 00:12:56.000000000","message":"Done","commit_id":"d6db4efc6372f5819f7f56725301b8b378bbdc5a"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e36211c64d61188149ef00560158445f01586315","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"import binascii"},{"line_number":16,"context_line":"from datetime import datetime"},{"line_number":17,"context_line":"from datetime import timedelta"},{"line_number":18,"context_line":"import hashlib"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_8c40d935","line":15,"updated":"2016-08-01 05:15:38.000000000","message":"just a nit, but I think that it looks better if you have one empty line between license header and imports.","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"3fd610f2ad06389df8a85a7b814bcc5beba5a961","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"import binascii"},{"line_number":16,"context_line":"from datetime import datetime"},{"line_number":17,"context_line":"from datetime import timedelta"},{"line_number":18,"context_line":"import hashlib"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_8f01eb3a","line":15,"in_reply_to":"bacf61ea_8c40d935","updated":"2016-08-01 06:43:42.000000000","message":"Done","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e36211c64d61188149ef00560158445f01586315","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            self._cassandra_cluster \u003d Cluster("},{"line_number":43,"context_line":"                self.conf.cassandra.cluster_ip_addresses.split(\u0027,\u0027))"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"            self.cassandra_session \u003d self._cassandra_cluster.connect("},{"line_number":46,"context_line":"                self.conf.cassandra.keyspace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        except Exception as ex:"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_ac6afdb0","line":45,"updated":"2016-08-01 05:15:38.000000000","message":"I am not sure how that works, but wouldn\u0027t it be better to open session where you need it ? For that TTL of any data call ?","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"3fd610f2ad06389df8a85a7b814bcc5beba5a961","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            self._cassandra_cluster \u003d Cluster("},{"line_number":43,"context_line":"                self.conf.cassandra.cluster_ip_addresses.split(\u0027,\u0027))"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"            self.cassandra_session \u003d self._cassandra_cluster.connect("},{"line_number":46,"context_line":"                self.conf.cassandra.keyspace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        except Exception as ex:"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_af278fc8","line":45,"in_reply_to":"bacf61ea_ac6afdb0","updated":"2016-08-01 06:43:42.000000000","message":"MetricsRepository instance has session.\nWhen api query cassandra, api uses this session.\nI think it would be slow that api gets session each time when api query cassandra.","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"150310c95edc84c8fddc2c42af7ab5796c8e5712","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            self._cassandra_cluster \u003d Cluster("},{"line_number":43,"context_line":"                self.conf.cassandra.cluster_ip_addresses.split(\u0027,\u0027))"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"            self.cassandra_session \u003d self._cassandra_cluster.connect("},{"line_number":46,"context_line":"                self.conf.cassandra.keyspace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        except Exception as ex:"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_9e1f305a","line":45,"in_reply_to":"bacf61ea_af278fc8","updated":"2016-08-01 20:31:37.000000000","message":"Not sure we want to open it where we need it every time, one reason being the performance reasons Shinya has mentioned. In general, I try and always create objects in their fully constructed state so I don\u0027t like to see code that defers this sort of initialization. On the other hand, I recently had this come up in the notification engine. In the case of the mysql connector, the session object is not created in the initializer, but deferred until it is used. If an exception occurs when using it, a new session is tried. This was done this way because the load balancer might close the connection after some period of inactivity and the mysql session object doesn\u0027t re-establish a connection in this case. If you have a session object that reestablishes the connection, then it would be fine with me to create it in the initializer as is done here.","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e36211c64d61188149ef00560158445f01586315","unresolved":false,"context_lines":[{"line_number":416,"context_line":""},{"line_number":417,"context_line":"            first_row \u003d rows[0]"},{"line_number":418,"context_line":"            count \u003d 0"},{"line_number":419,"context_line":"            sum \u003d 0"},{"line_number":420,"context_line":"            start_period \u003d first_row.time_stamp"},{"line_number":421,"context_line":"            max \u003d first_row.value"},{"line_number":422,"context_line":"            min \u003d first_row.value"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_6c24855f","line":419,"updated":"2016-08-01 05:15:38.000000000","message":"sum, max and min are reserved keywords in python.","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"3fd610f2ad06389df8a85a7b814bcc5beba5a961","unresolved":false,"context_lines":[{"line_number":416,"context_line":""},{"line_number":417,"context_line":"            first_row \u003d rows[0]"},{"line_number":418,"context_line":"            count \u003d 0"},{"line_number":419,"context_line":"            sum \u003d 0"},{"line_number":420,"context_line":"            start_period \u003d first_row.time_stamp"},{"line_number":421,"context_line":"            max \u003d first_row.value"},{"line_number":422,"context_line":"            min \u003d first_row.value"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_8fe60b13","line":419,"in_reply_to":"bacf61ea_6c24855f","updated":"2016-08-01 06:43:42.000000000","message":"I don\u0027t think so. There are not in \nhttps://docs.python.org/3/reference/lexical_analysis.html?highlight\u003dreserved#keywords .\nPython 2.7 is neither.\nAre there any other reserved words?","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"150310c95edc84c8fddc2c42af7ab5796c8e5712","unresolved":false,"context_lines":[{"line_number":416,"context_line":""},{"line_number":417,"context_line":"            first_row \u003d rows[0]"},{"line_number":418,"context_line":"            count \u003d 0"},{"line_number":419,"context_line":"            sum \u003d 0"},{"line_number":420,"context_line":"            start_period \u003d first_row.time_stamp"},{"line_number":421,"context_line":"            max \u003d first_row.value"},{"line_number":422,"context_line":"            min \u003d first_row.value"}],"source_content_type":"text/x-python","patch_set":22,"id":"bacf61ea_9e7bb07a","line":419,"in_reply_to":"bacf61ea_8fe60b13","updated":"2016-08-01 20:31:37.000000000","message":"They aren\u0027t reserved words, but they are built-in functions. See, https://docs.python.org/2/library/functions.html. Is there a difference between a reserved word and built-in function that would allow us to continue to use these words.\n\nIt is probably best to use different variables names as there is collision.","commit_id":"08de223e92d54be433b121e8326b3a16c8e43b94"},{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"749508daef0f85ba02b88ea2c52aee419cf1fe2d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class MetricsRepository(metrics_repository.MetricsRepository):"},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_2e032c78","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":23},"updated":"2016-08-03 03:50:32.000000000","message":"I know you didn\u0027t start this pattern but having MetricsRepository inherit from MetricsRepository just feels weird.  Is there a better name we could give to the super class?","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"d0dded30114271894e31c9037ae7de49c87c768c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class MetricsRepository(metrics_repository.MetricsRepository):"},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_81d94986","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":23},"in_reply_to":"bacf61ea_2e032c78","updated":"2016-08-03 04:10:37.000000000","message":"How about AbstractMetricsRepository for super class?","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"5f58ab0b54cdd079806656f23047d4b3708a3cb8","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class MetricsRepository(metrics_repository.MetricsRepository):"},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_2290384e","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":23},"in_reply_to":"bacf61ea_7d04aac5","updated":"2016-08-03 16:47:49.000000000","message":"Done","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"5d0e9d6f2546d32bdea8e9eb39e3371fb9d2d06e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class MetricsRepository(metrics_repository.MetricsRepository):"},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_7d04aac5","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":23},"in_reply_to":"bacf61ea_81d94986","updated":"2016-08-03 12:42:55.000000000","message":"Sounds good to me.","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"5d0e9d6f2546d32bdea8e9eb39e3371fb9d2d06e","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        metric_hash_list \u003d [bytearray(metric[\u0027metric_hash\u0027]) for metric in"},{"line_number":273,"context_line":"                            metric_list]"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        place_holders \u003d [\"%s\" for x in range(len(metric_hash_list))]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        in_clause \u003d \u0027 and metric_hash in ({}) \u0027.format(\",\".join(place_holders))"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_8003f575","line":275,"range":{"start_line":275,"start_character":24,"end_line":275,"end_character":68},"updated":"2016-08-03 12:42:55.000000000","message":"I would go for\n [\"%s\"] * len(metric_hash_list)","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"5f58ab0b54cdd079806656f23047d4b3708a3cb8","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        metric_hash_list \u003d [bytearray(metric[\u0027metric_hash\u0027]) for metric in"},{"line_number":273,"context_line":"                            metric_list]"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        place_holders \u003d [\"%s\" for x in range(len(metric_hash_list))]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        in_clause \u003d \u0027 and metric_hash in ({}) \u0027.format(\",\".join(place_holders))"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_629a3070","line":275,"range":{"start_line":275,"start_character":24,"end_line":275,"end_character":68},"in_reply_to":"bacf61ea_8003f575","updated":"2016-08-03 16:47:49.000000000","message":"Done","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"5d0e9d6f2546d32bdea8e9eb39e3371fb9d2d06e","unresolved":false,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"            parms \u003d [tenant_id.encode(\u0027utf8\u0027)]"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"            place_holders \u003d [\"%s\" for x in range(len(alarm_id_list))]"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"            in_clause \u003d \u0027 and alarm_id in ({}) \u0027.format("},{"line_number":575,"context_line":"                \",\".join(place_holders))"}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_d3077ec7","line":572,"range":{"start_line":572,"start_character":28,"end_line":572,"end_character":69},"updated":"2016-08-03 12:42:55.000000000","message":"see above","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"5f58ab0b54cdd079806656f23047d4b3708a3cb8","unresolved":false,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"            parms \u003d [tenant_id.encode(\u0027utf8\u0027)]"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"            place_holders \u003d [\"%s\" for x in range(len(alarm_id_list))]"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"            in_clause \u003d \u0027 and alarm_id in ({}) \u0027.format("},{"line_number":575,"context_line":"                \",\".join(place_holders))"}],"source_content_type":"text/x-python","patch_set":25,"id":"bacf61ea_02825400","line":572,"range":{"start_line":572,"start_character":28,"end_line":572,"end_character":69},"in_reply_to":"bacf61ea_d3077ec7","updated":"2016-08-03 16:47:49.000000000","message":"Done","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"}],"monasca_api/common/repositories/metrics_repository.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"65af82cea2a5287911f2ee975298fe365ad7e412","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Hewlett-Packard"},{"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":8,"id":"7a5de9d1_bdc7f796","line":1,"range":{"start_line":1,"start_character":24,"end_line":1,"end_character":25},"updated":"2016-01-29 23:29:53.000000000","message":"fix copyright","commit_id":"1bc09fdbf3a4f1bcb43cccab7bb2baf0ce642f4f"}],"monasca_api/v2/reference/__init__.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"65af82cea2a5287911f2ee975298fe365ad7e412","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 IBM Corp."},{"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"},{"line_number":5,"context_line":"# a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_7dc65f9b","line":3,"range":{"start_line":3,"start_character":17,"end_line":3,"end_character":20},"updated":"2016-01-29 23:29:53.000000000","message":"add hp copyright","commit_id":"1bc09fdbf3a4f1bcb43cccab7bb2baf0ce642f4f"}],"requirements.txt":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"35f044c15ab45cdf8ffda4d9da0d12316dc985c2","unresolved":false,"context_lines":[{"line_number":14,"context_line":"pyparsing"},{"line_number":15,"context_line":"voluptuous"},{"line_number":16,"context_line":"#influxdb"},{"line_number":17,"context_line":"cassandra-driver\u003e\u003d2.1.4 # Apache-2.0"},{"line_number":18,"context_line":"eventlet"},{"line_number":19,"context_line":"kafka-python\u003e\u003d0.9.5,\u003c1.0.0"},{"line_number":20,"context_line":"simplejson"}],"source_content_type":"text/plain","patch_set":18,"id":"dada55a8_9228f0e3","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"updated":"2016-07-20 22:32:37.000000000","message":"Similar to my comment on the persister, this import should be removed or commented out. Will need to pip install separately.","commit_id":"f48702616711151bcadbc05e3d69485ea9722858"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"65841ae07f948426cad6b489f269030d394b90f4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"pyparsing"},{"line_number":15,"context_line":"voluptuous"},{"line_number":16,"context_line":"#influxdb"},{"line_number":17,"context_line":"cassandra-driver\u003e\u003d2.1.4 # Apache-2.0"},{"line_number":18,"context_line":"eventlet"},{"line_number":19,"context_line":"kafka-python\u003e\u003d0.9.5,\u003c1.0.0"},{"line_number":20,"context_line":"simplejson"}],"source_content_type":"text/plain","patch_set":18,"id":"dada55a8_432943e5","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"in_reply_to":"dada55a8_9228f0e3","updated":"2016-07-22 04:57:18.000000000","message":"Done","commit_id":"f48702616711151bcadbc05e3d69485ea9722858"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"5d0e9d6f2546d32bdea8e9eb39e3371fb9d2d06e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"pyparsing"},{"line_number":15,"context_line":"voluptuous"},{"line_number":16,"context_line":"#influxdb"},{"line_number":17,"context_line":"#cassandra-driver\u003d\u003d3.5.0 # Apache-2.0"},{"line_number":18,"context_line":"eventlet"},{"line_number":19,"context_line":"kafka-python\u003e\u003d0.9.5,\u003c1.0.0"},{"line_number":20,"context_line":"simplejson"}],"source_content_type":"text/plain","patch_set":25,"id":"bacf61ea_33e7fae5","line":17,"range":{"start_line":17,"start_character":1,"end_line":17,"end_character":24},"updated":"2016-08-03 12:42:55.000000000","message":"global-requirements use cassandra-driver\u003e\u003d2.1.4,!\u003d3.6.0 Can we take the same, or is there a reason to stick with 3.5?","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"},{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"5f58ab0b54cdd079806656f23047d4b3708a3cb8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"pyparsing"},{"line_number":15,"context_line":"voluptuous"},{"line_number":16,"context_line":"#influxdb"},{"line_number":17,"context_line":"#cassandra-driver\u003d\u003d3.5.0 # Apache-2.0"},{"line_number":18,"context_line":"eventlet"},{"line_number":19,"context_line":"kafka-python\u003e\u003d0.9.5,\u003c1.0.0"},{"line_number":20,"context_line":"simplejson"}],"source_content_type":"text/plain","patch_set":25,"id":"bacf61ea_a2338812","line":17,"range":{"start_line":17,"start_character":1,"end_line":17,"end_character":24},"in_reply_to":"bacf61ea_33e7fae5","updated":"2016-08-03 16:47:49.000000000","message":"3.6.0 has problem which is not able to compile in xenial env, then I had changed \u003e\u003d2.1.4 to \u003d\u003d3.5.0.\nAnd I didn\u0027t know global-requirements are updated recently.\nThere is no reason to stick with 3.5.0. So I have fixed same as global-requirements that you mentioned. Thanks.","commit_id":"d7256d0bae784252699e1b1d5d19044a815e29e3"}]}
