)]}'
{"monasca/common/repositories/constants.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"PAGE_LIMIT \u003d 10000"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_de275061","line":1,"updated":"2015-05-30 02:11:50.000000000","message":"Shouldn\u0027t these constants be declared in the API, not in the repository. Seems like this is an application constraint, and the repository should just do what it is told.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"PAGE_LIMIT \u003d 10000"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_0871200c","line":1,"in_reply_to":"7a016987_de275061","updated":"2015-05-31 15:53:08.000000000","message":"Not clear to me what you mean here.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"3ba31e64fdf38e20c821528c9a6cb5b39f9313a6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"PAGE_LIMIT \u003d 10000"}],"source_content_type":"text/x-python","patch_set":10,"id":"5afe65bd_a43f97d5","line":1,"updated":"2015-06-01 20:28:47.000000000","message":"The point in my earlier comment was that this really seems like more of an application/API layer constant, that something that should live in the repository.","commit_id":"0e65c9345fa305b18461345a2ba55fb28961f1a9"}],"monasca/common/repositories/fake/metrics_repository.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def __init__(self):"},{"line_number":24,"context_line":"        return"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def list_metrics(self, tenant_id, name, dimensions):"},{"line_number":27,"context_line":"        return {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_feefac1a","line":26,"updated":"2015-05-30 02:11:50.000000000","message":"Should this have a offset and limit parameter added?\n\nI know, I know, if this were Java the compiler would have told you that:-)","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def __init__(self):"},{"line_number":24,"context_line":"        return"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def list_metrics(self, tenant_id, name, dimensions):"},{"line_number":27,"context_line":"        return {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_a858cc8a","line":26,"in_reply_to":"7a016987_feefac1a","updated":"2015-05-31 15:53:08.000000000","message":"Done","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/common/repositories/influxdb/metrics_repository.py":[{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"d106d2329ad3fa4f1a12319d582831b6917e73a3","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        try:"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"            if not merge_metrics_flag:"},{"line_number":209,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":210,"context_line":"                                                 dimensions)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"                if len(metrics_list) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_11cd19b7","line":209,"updated":"2015-05-28 15:34:28.000000000","message":"list_metrics expects offset and limit parameters (fails with http 500)","commit_id":"75d0f4e2e01188457303536cb717b959a71940fa"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"b7d0dcbc151450574b2d370ca564898aa4f8364e","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        try:"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"            if not merge_metrics_flag:"},{"line_number":209,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":210,"context_line":"                                                 dimensions)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"                if len(metrics_list) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_efa70dba","line":209,"in_reply_to":"7a016987_11cd19b7","updated":"2015-05-29 13:47:39.000000000","message":"Done","commit_id":"75d0f4e2e01188457303536cb717b959a71940fa"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"d106d2329ad3fa4f1a12319d582831b6917e73a3","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            if not merge_metrics_flag:"},{"line_number":273,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":274,"context_line":"                                                 dimensions)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                if len(metrics_list) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_7137adb0","line":273,"updated":"2015-05-28 15:34:28.000000000","message":"Same as above","commit_id":"75d0f4e2e01188457303536cb717b959a71940fa"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"b7d0dcbc151450574b2d370ca564898aa4f8364e","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            if not merge_metrics_flag:"},{"line_number":273,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":274,"context_line":"                                                 dimensions)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                if len(metrics_list) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_cfac51a1","line":273,"in_reply_to":"7a016987_7137adb0","updated":"2015-05-29 13:47:39.000000000","message":"Done","commit_id":"75d0f4e2e01188457303536cb717b959a71940fa"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                + \" \u0027merge_metrics\u003dTrue\u0027 as a query\""},{"line_number":36,"context_line":"                                + \" parameter to combine all metrics\""},{"line_number":37,"context_line":"                                + \" matching search criteria into a single\""},{"line_number":38,"context_line":"                                + \" series.\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self):"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_1ed96857","line":38,"updated":"2015-05-30 02:11:50.000000000","message":"Would this be better declared above/outside of this class and/or even made static.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                + \" \u0027merge_metrics\u003dTrue\u0027 as a query\""},{"line_number":36,"context_line":"                                + \" parameter to combine all metrics\""},{"line_number":37,"context_line":"                                + \" matching search criteria into a single\""},{"line_number":38,"context_line":"                                + \" series.\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self):"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_e8c92427","line":38,"in_reply_to":"7a016987_1ed96857","updated":"2015-05-31 15:53:08.000000000","message":"This is how \u0027static\u0027 variables are declared in Python.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"b7cebcf605b271278c91a4ef75f2aa77b6f2740d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                self.conf.influxdb.database_name)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        except Exception as ex:"},{"line_number":51,"context_line":"            LOG.exception()"},{"line_number":52,"context_line":"            raise exceptions.RepositoryException(ex)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _build_show_series_query(self, dimensions, name, tenant_id, region):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_18197522","line":51,"updated":"2015-05-31 04:09:58.000000000","message":"This should take ex as an argument","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                self.conf.influxdb.database_name)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        except Exception as ex:"},{"line_number":51,"context_line":"            LOG.exception()"},{"line_number":52,"context_line":"            raise exceptions.RepositoryException(ex)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _build_show_series_query(self, dimensions, name, tenant_id, region):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_48d958f2","line":51,"in_reply_to":"7a016987_18197522","updated":"2015-05-31 15:53:08.000000000","message":"Done","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"b7cebcf605b271278c91a4ef75f2aa77b6f2740d","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        offset_clause \u003d self._build_offset_clause(offset, limit)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        query \u003d \u0027select value, value_meta \u0027 + from_clause + offset_clause"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return query"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_b87ee1e1","line":73,"updated":"2015-05-31 04:09:58.000000000","message":"This needs to be select * because value_meta doesn\u0027t always exist or at least it doesn\u0027t when I was using the Java persister","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        offset_clause \u003d self._build_offset_clause(offset, limit)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        query \u003d \u0027select value, value_meta \u0027 + from_clause + offset_clause"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return query"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_08dfe0d6","line":73,"in_reply_to":"7a016987_b87ee1e1","updated":"2015-05-31 15:53:08.000000000","message":"It always exists with the python persister.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        query \u003d \u0027select \u0027 + statistic_string + \u0027 \u0027 + from_clause"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        if period is None:"},{"line_number":97,"context_line":"            period \u003d str(300)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        query +\u003d \" group by time(\" + period + \"s)\""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_2fe3d4da","line":97,"updated":"2015-05-30 02:11:50.000000000","message":"It might make more sense to assign the period up in the API layer, rather than implementing this constraint here.\n\nIt might also make sense to have a method get_period in the API layer that just returns the default of 300.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        query \u003d \u0027select \u0027 + statistic_string + \u0027 \u0027 + from_clause"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        if period is None:"},{"line_number":97,"context_line":"            period \u003d str(300)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        query +\u003d \" group by time(\" + period + \"s)\""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_c8f30872","line":97,"in_reply_to":"7a016987_2fe3d4da","updated":"2015-05-31 15:53:08.000000000","message":"That\u0027d be great. We can +2 this and then submit a Jira for an enhancement.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"b7cebcf605b271278c91a4ef75f2aa77b6f2740d","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                  region)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"            if offset:"},{"line_number":156,"context_line":"                query +\u003d \u0027 offset {}\u0027.format(int(offset) + 1)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            query +\u003d \" limit {}\".format(limit + 1)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_18f17595","line":156,"updated":"2015-05-31 04:09:58.000000000","message":"If you put the offset after the limit, then influx is happy","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                  region)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"            if offset:"},{"line_number":156,"context_line":"                query +\u003d \u0027 offset {}\u0027.format(int(offset) + 1)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            query +\u003d \" limit {}\".format(limit + 1)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_88e99081","line":156,"in_reply_to":"7a016987_18f17595","updated":"2015-05-31 15:53:08.000000000","message":"Yes. That\u0027s what I did in the Java API. I had to fiddle with the order to get it to work. The Influxdb docs say that limit is supposed to go at the end, but that is not how it works.\n\nDone.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            if offset:"},{"line_number":156,"context_line":"                query +\u003d \u0027 offset {}\u0027.format(int(offset) + 1)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            query +\u003d \" limit {}\".format(limit + 1)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"            result \u003d self.influxdb_client.query(query)"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_deacf0a0","line":158,"updated":"2015-05-30 02:11:50.000000000","message":"I\u0027m seeing some duplicate code when evaluating the offset and appending it to the query. \n\nMaybe a method for evaluating the limit_clause() would clean-up a little.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            if offset:"},{"line_number":156,"context_line":"                query +\u003d \u0027 offset {}\u0027.format(int(offset) + 1)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            query +\u003d \" limit {}\".format(limit + 1)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"            result \u003d self.influxdb_client.query(query)"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_48003834","line":158,"in_reply_to":"7a016987_deacf0a0","updated":"2015-05-31 15:53:08.000000000","message":"That\u0027d be great. We can +2 this and then submit a Jira for an enhancement.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":213,"context_line":"                                                 dimensions, None, 2)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":216,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"            query \u003d self._build_select_measurement_query(dimensions, name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_deb190e1","line":215,"updated":"2015-05-30 02:11:50.000000000","message":"Do you want to log an error here?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":213,"context_line":"                                                 dimensions, None, 2)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":216,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"            query \u003d self._build_select_measurement_query(dimensions, name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_c89ae813","line":215,"in_reply_to":"7a016987_deb190e1","updated":"2015-05-31 15:53:08.000000000","message":"No. This is not an error condition.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                                                 dimensions, None, 2)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":216,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"            query \u003d self._build_select_measurement_query(dimensions, name,"},{"line_number":219,"context_line":"                                                         tenant_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_fe7e8c19","line":216,"updated":"2015-05-30 02:11:50.000000000","message":"Should this raise a exceptions.Repository?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                                                 dimensions, None, 2)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":216,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"            query \u003d self._build_select_measurement_query(dimensions, name,"},{"line_number":219,"context_line":"                                                         tenant_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_a86b2cf0","line":216,"in_reply_to":"7a016987_fe7e8c19","updated":"2015-05-31 15:53:08.000000000","message":"Done","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"b7cebcf605b271278c91a4ef75f2aa77b6f2740d","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                points \u003d []"},{"line_number":238,"context_line":"                for point in result.raw[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]:"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"                    points.append([point[0], point[1], point[2]])"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"                measurement \u003d {u\u0027name\u0027: (result.raw[\u0027results\u0027][0]"},{"line_number":243,"context_line":"                                         [\u0027series\u0027][0][\u0027name\u0027]),"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_f819f9d1","line":240,"updated":"2015-05-31 04:09:58.000000000","message":"This needs to be something like:\n\n                    if len(point) \u003e 2:\n                       points.append([point[0], point[1], json.loads(point[2])])\n                    else:\n                       points.append([point[0], point[1], {}])","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                points \u003d []"},{"line_number":238,"context_line":"                for point in result.raw[\u0027results\u0027][0][\u0027series\u0027][0][\u0027values\u0027]:"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"                    points.append([point[0], point[1], point[2]])"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"                measurement \u003d {u\u0027name\u0027: (result.raw[\u0027results\u0027][0]"},{"line_number":243,"context_line":"                                         [\u0027series\u0027][0][\u0027name\u0027]),"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_e84c849f","line":240,"in_reply_to":"7a016987_f819f9d1","updated":"2015-05-31 15:53:08.000000000","message":"There are always, time, value, value_meta. So, the code is correct.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":269,"context_line":"                                                 dimensions, None, 2)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":272,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            query \u003d self._build_statistics_query(dimensions, name, tenant_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_9ec8b856","line":271,"updated":"2015-05-30 02:11:50.000000000","message":"Do you want to log an error here?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                metrics_list \u003d self.list_metrics(tenant_id, region, name,"},{"line_number":269,"context_line":"                                                 dimensions, None, 2)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":272,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            query \u003d self._build_statistics_query(dimensions, name, tenant_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_a8420c66","line":271,"in_reply_to":"7a016987_9ec8b856","updated":"2015-05-31 15:53:08.000000000","message":"No. This is not an error condition.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                                                 dimensions, None, 2)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":272,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            query \u003d self._build_statistics_query(dimensions, name, tenant_id,"},{"line_number":275,"context_line":"                                                 region,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_4fbdf066","line":272,"updated":"2015-05-30 02:11:50.000000000","message":"Would it be better to use create and use a specific exceptions.RepositoryException?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                                                 dimensions, None, 2)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"                if len(metrics_list) \u003e 1:"},{"line_number":272,"context_line":"                    raise Exception(self.MULTIPLE_METRICS_MESSAGE)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            query \u003d self._build_statistics_query(dimensions, name, tenant_id,"},{"line_number":275,"context_line":"                                                 region,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_485cb84a","line":272,"in_reply_to":"7a016987_4fbdf066","updated":"2015-05-31 15:53:08.000000000","message":"Changed to exceptions.RepositoryException. Adding a new type of exception would not add any value.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                 u\u0027columns\u0027: columns,"},{"line_number":305,"context_line":"                                 u\u0027measurements\u0027: point}"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"                    json_statistics_list.append(statistic)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"            return json_statistics_list"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_9ea1d896","line":307,"updated":"2015-05-30 02:11:50.000000000","message":"This statistics parsing block looks very similar to the measurements parsing block up above. Is there a way to avoid the duplicate code?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                 u\u0027columns\u0027: columns,"},{"line_number":305,"context_line":"                                 u\u0027measurements\u0027: point}"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"                    json_statistics_list.append(statistic)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"            return json_statistics_list"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_08524035","line":307,"in_reply_to":"7a016987_9ea1d896","updated":"2015-05-31 15:53:08.000000000","message":"It is not worth it.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"8051e75c9ecfbb2876b4d2e9fc3e81e8d1cccbad","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                    statistic \u003d {u\u0027name\u0027: name,"},{"line_number":305,"context_line":"                                 u\u0027dimensions\u0027: dimensions,"},{"line_number":306,"context_line":"                                 u\u0027columns\u0027: columns,"},{"line_number":307,"context_line":"                                 u\u0027statistics\u0027: point}"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"                    json_statistics_list.append(statistic)"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5afe65bd_f44c2678","line":307,"updated":"2015-06-01 17:23:35.000000000","message":"statistics should be an array of points","commit_id":"ca7ac307487b5d82cd53eb8b975a3c0104742364"}],"monasca/common/repositories/metrics_repository.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class MetricsRepository(object):"},{"line_number":22,"context_line":"    @abc.abstractmethod"},{"line_number":23,"context_line":"    def list_metrics(self, tenant_id, region, name, dimensions, offset, limit):"},{"line_number":24,"context_line":"        pass"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @abc.abstractmethod"},{"line_number":27,"context_line":"    def measurement_list(self, tenant_id, region, name, dimensions,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_1e0ba8d7","line":24,"updated":"2015-05-30 02:11:50.000000000","message":"Should this be pass, return or raise NotImplementedError?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/common/repositories/mysql/alarms_repository.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"e3395ed31ed57d7d9e05e3a8a366ecfde2812bc0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                       alarms_repository.AlarmsRepository):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    base_query \u003d \"\"\""},{"line_number":28,"context_line":"          select distinct a.id as alarm_id, a.state,"},{"line_number":29,"context_line":"          ad.id as alarm_definition_id, ad.name as alarm_definition_name,"},{"line_number":30,"context_line":"          ad.severity,"},{"line_number":31,"context_line":"          md.name as metric_name, mdg.dimensions as metric_dimensions"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_083ece8a","line":28,"updated":"2015-05-29 23:32:38.000000000","message":"Need to add the new lifecycle fields or the CLI fails","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                       alarms_repository.AlarmsRepository):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    base_query \u003d \"\"\""},{"line_number":28,"context_line":"          select distinct a.id as alarm_id, a.state,"},{"line_number":29,"context_line":"          ad.id as alarm_definition_id, ad.name as alarm_definition_name,"},{"line_number":30,"context_line":"          ad.severity,"},{"line_number":31,"context_line":"          md.name as metric_name, mdg.dimensions as metric_dimensions"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_482398bd","line":28,"in_reply_to":"7a016987_083ece8a","updated":"2015-05-31 15:53:08.000000000","message":"OK. I\u0027ll look into that on Monday.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"073c0833bd9c168e45c7b1da8c6d1cac4a029db5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                       alarms_repository.AlarmsRepository):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    base_query \u003d \"\"\""},{"line_number":28,"context_line":"          select distinct a.id as alarm_id, a.state,"},{"line_number":29,"context_line":"          ad.id as alarm_definition_id, ad.name as alarm_definition_name,"},{"line_number":30,"context_line":"          ad.severity,"},{"line_number":31,"context_line":"          md.name as metric_name, mdg.dimensions as metric_dimensions"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_78a610c2","line":28,"in_reply_to":"7a016987_083ece8a","updated":"2015-06-01 14:56:01.000000000","message":"Ryan\u0027s https://review.openstack.org/#/c/187216/ takes care of that.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/common/repositories/mysql/events_repository.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                where generated \u003e (select generated"},{"line_number":77,"context_line":"                                   from event"},{"line_number":78,"context_line":"                                   where message_id \u003d %s)\"\"\""},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            offset_clause \u003d \"\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        parameters.append(int(limit))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_3ede6411","line":79,"updated":"2015-05-30 02:11:50.000000000","message":"This file can be removed as events are in monasca-events-api","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                where generated \u003e (select generated"},{"line_number":77,"context_line":"                                   from event"},{"line_number":78,"context_line":"                                   where message_id \u003d %s)\"\"\""},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            offset_clause \u003d \"\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        parameters.append(int(limit))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_0829209b","line":79,"in_reply_to":"7a016987_3ede6411","updated":"2015-05-31 15:53:08.000000000","message":"Can we do that after we +2 this as a different change?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/common/repositories/mysql/model.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"db \u003d peewee.MySQLDatabase(cfg.CONF.mysql.database_name,"},{"line_number":24,"context_line":"                          host\u003dcfg.CONF.mysql.hostname,"},{"line_number":25,"context_line":"                          user\u003dcfg.CONF.mysql.username,"},{"line_number":26,"context_line":"                          passwd\u003dcfg.CONF.mysql.password)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class Model(peewee.Model):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_4364a720","line":26,"updated":"2015-05-30 02:11:50.000000000","message":"I thought we got the pee out???","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"5983d7ee93d81ffbf057f7c166de9e4d49ce508d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"db \u003d peewee.MySQLDatabase(cfg.CONF.mysql.database_name,"},{"line_number":24,"context_line":"                          host\u003dcfg.CONF.mysql.hostname,"},{"line_number":25,"context_line":"                          user\u003dcfg.CONF.mysql.username,"},{"line_number":26,"context_line":"                          passwd\u003dcfg.CONF.mysql.password)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class Model(peewee.Model):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_4810ff4e","line":26,"in_reply_to":"7a016987_4364a720","updated":"2015-06-01 15:55:16.000000000","message":"TransformsRepository is still using it. Not sure if we need it.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/common/repositories/mysql/streams_repository.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    def delete_stream_definition(self, tenant_id, stream_definition_id):"},{"line_number":102,"context_line":"        \"\"\"Delete the stream definition."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        :param tenant_id:"},{"line_number":105,"context_line":"        :param stream_definition_id:"},{"line_number":106,"context_line":"        :returns True: -- if stream definition exists and was deleted."},{"line_number":107,"context_line":"        :returns False: -- if the stream definition does not exists."}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_637b23bf","line":104,"updated":"2015-05-30 02:11:50.000000000","message":"All this code can be removed. The Streams repo is part of the monasca-events-api.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    def delete_stream_definition(self, tenant_id, stream_definition_id):"},{"line_number":102,"context_line":"        \"\"\"Delete the stream definition."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        :param tenant_id:"},{"line_number":105,"context_line":"        :param stream_definition_id:"},{"line_number":106,"context_line":"        :returns True: -- if stream definition exists and was deleted."},{"line_number":107,"context_line":"        :returns False: -- if the stream definition does not exists."}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_e81a447c","line":104,"in_reply_to":"7a016987_637b23bf","updated":"2015-05-31 15:53:08.000000000","message":"Let\u0027s do that as a different change.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/common/repositories/notifications_repository.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @abc.abstractmethod"},{"line_number":24,"context_line":"    def create_notification(self, id, tenant_id, name, notification_type,"},{"line_number":25,"context_line":"                            address):"},{"line_number":26,"context_line":"        return"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @abc.abstractmethod"},{"line_number":29,"context_line":"    def list_notifications(self, tenant_id, offset, limit):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_c35f773f","line":26,"updated":"2015-05-30 02:11:50.000000000","message":"In the metrics_repository.py we use \"pass\", but here we use \"return\".  Should we be using return or pass? Is there a recommended way with six? Or, possibly raise NotImplemented().","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @abc.abstractmethod"},{"line_number":24,"context_line":"    def create_notification(self, id, tenant_id, name, notification_type,"},{"line_number":25,"context_line":"                            address):"},{"line_number":26,"context_line":"        return"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @abc.abstractmethod"},{"line_number":29,"context_line":"    def list_notifications(self, tenant_id, offset, limit):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_2805fc12","line":26,"in_reply_to":"7a016987_c35f773f","updated":"2015-05-31 15:53:08.000000000","message":"I think I\u0027ve seen examples of both return and pass. i chose pass because it was in some tutorial or example i saw. it doesn\u0027t matter except for consistency. The code works as is and we can come up with a convention later.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"37ac917a01b5c84e4d8ebb3fd078d86d2171fae7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @abc.abstractmethod"},{"line_number":24,"context_line":"    def create_notification(self, id, tenant_id, name, notification_type,"},{"line_number":25,"context_line":"                            address):"},{"line_number":26,"context_line":"        return"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @abc.abstractmethod"},{"line_number":29,"context_line":"    def list_notifications(self, tenant_id, offset, limit):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_07bd9401","line":26,"in_reply_to":"7a016987_c35f773f","updated":"2015-05-30 15:41:33.000000000","message":"The abstractmethod decorator should raise TypeError when a child class is constructed and decorated functions aren\u0027t reimplemented.  It doesn\u0027t seem to matter whether we use pass or return.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/v2/reference/alarms.py":[{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"d106d2329ad3fa4f1a12319d582831b6917e73a3","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        else:"},{"line_number":199,"context_line":"            new_query_parms \u003d {}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        alarm_rows \u003d self._alarms_repo.get_alarms(tenant_id, new_query_parms,"},{"line_number":202,"context_line":"                                                  None)"},{"line_number":203,"context_line":"        alarm_id_list \u003d [alarm_row[\u0027alarm_id\u0027] for alarm_row in alarm_rows]"},{"line_number":204,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_2cf31a0c","line":201,"updated":"2015-05-28 15:34:28.000000000","message":"get_alarms expects another parameter","commit_id":"75d0f4e2e01188457303536cb717b959a71940fa"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"b7d0dcbc151450574b2d370ca564898aa4f8364e","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        else:"},{"line_number":199,"context_line":"            new_query_parms \u003d {}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        alarm_rows \u003d self._alarms_repo.get_alarms(tenant_id, new_query_parms,"},{"line_number":202,"context_line":"                                                  None)"},{"line_number":203,"context_line":"        alarm_id_list \u003d [alarm_row[\u0027alarm_id\u0027] for alarm_row in alarm_rows]"},{"line_number":204,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_6fc55d5a","line":201,"in_reply_to":"7a016987_2cf31a0c","updated":"2015-05-29 13:47:39.000000000","message":"Done","commit_id":"75d0f4e2e01188457303536cb717b959a71940fa"}],"monasca/v2/reference/events.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def do_get_event(self, req, res, id):"},{"line_number":156,"context_line":"        helpers.validate_authorization(req, self._default_authorized_roles)"},{"line_number":157,"context_line":"        tenant_id \u003d helpers.get_tenant_id(req)"},{"line_number":158,"context_line":"        result \u003d self._list_event(tenant_id, id, req.uri)"},{"line_number":159,"context_line":"        res.body \u003d helpers.dumpit_utf8(result)"},{"line_number":160,"context_line":"        res.status \u003d falcon.HTTP_200"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_3eeae40f","line":158,"updated":"2015-05-30 02:11:50.000000000","message":"This file can be removed as this is now in monasca-events-api.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def do_get_event(self, req, res, id):"},{"line_number":156,"context_line":"        helpers.validate_authorization(req, self._default_authorized_roles)"},{"line_number":157,"context_line":"        tenant_id \u003d helpers.get_tenant_id(req)"},{"line_number":158,"context_line":"        result \u003d self._list_event(tenant_id, id, req.uri)"},{"line_number":159,"context_line":"        res.body \u003d helpers.dumpit_utf8(result)"},{"line_number":160,"context_line":"        res.status \u003d falcon.HTTP_200"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_08000001","line":158,"in_reply_to":"7a016987_3eeae40f","updated":"2015-05-31 15:53:08.000000000","message":"Let\u0027s do that in a different change set.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/v2/reference/metrics.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        helpers.validate_query_name(name)"},{"line_number":159,"context_line":"        dimensions \u003d helpers.get_query_dimensions(req)"},{"line_number":160,"context_line":"        helpers.validate_query_dimensions(dimensions)"},{"line_number":161,"context_line":"        offset \u003d helpers.get_query_param(req, \u0027offset\u0027)"},{"line_number":162,"context_line":"        limit \u003d helpers.get_limit(req)"},{"line_number":163,"context_line":"        result \u003d self._list_metrics(tenant_id, name, dimensions,"},{"line_number":164,"context_line":"                                    req.uri, offset, limit)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_7e485c5c","line":161,"updated":"2015-05-30 02:11:50.000000000","message":"Do you want to add a helpers.get_offset, since you have a very nice helpers.get_limit?","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        helpers.validate_query_name(name)"},{"line_number":159,"context_line":"        dimensions \u003d helpers.get_query_dimensions(req)"},{"line_number":160,"context_line":"        helpers.validate_query_dimensions(dimensions)"},{"line_number":161,"context_line":"        offset \u003d helpers.get_query_param(req, \u0027offset\u0027)"},{"line_number":162,"context_line":"        limit \u003d helpers.get_limit(req)"},{"line_number":163,"context_line":"        result \u003d self._list_metrics(tenant_id, name, dimensions,"},{"line_number":164,"context_line":"                                    req.uri, offset, limit)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_9b079c17","line":161,"in_reply_to":"7a016987_7e485c5c","updated":"2015-05-31 15:53:08.000000000","message":"No. get_query_param is more general. I only did get_limit because it has specific processing in it to calculate the limit.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                                                     False)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if merge_metrics_flag is not False:"},{"line_number":213,"context_line":"            merge_metrics_flag \u003d helpers.str_2_bool(merge_metrics_flag)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        result \u003d self._metric_statistics(tenant_id, name, dimensions,"},{"line_number":216,"context_line":"                                         start_timestamp, end_timestamp,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_beb01444","line":213,"updated":"2015-05-30 02:11:50.000000000","message":"It probably would be cleaner to add a helpers.get_merge_metrics_flag that does all this in one line so it is consistent with other gets, is a one-liner, and doesn\u0027t duplicate the same code as above\n\nActually, it might be better to have this a a private method in this class, rather than the helper class, as this is just about metrics.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"05b730abe4c8e312455401ff93f1a707cabc1c15","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                                                     False)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if merge_metrics_flag is not False:"},{"line_number":213,"context_line":"            merge_metrics_flag \u003d helpers.str_2_bool(merge_metrics_flag)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        result \u003d self._metric_statistics(tenant_id, name, dimensions,"},{"line_number":216,"context_line":"                                         start_timestamp, end_timestamp,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_f9789ffa","line":213,"in_reply_to":"7a016987_beb01444","updated":"2015-06-01 17:13:17.000000000","message":"Done","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                                                     False)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        if merge_metrics_flag is not False:"},{"line_number":213,"context_line":"            merge_metrics_flag \u003d helpers.str_2_bool(merge_metrics_flag)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        result \u003d self._metric_statistics(tenant_id, name, dimensions,"},{"line_number":216,"context_line":"                                         start_timestamp, end_timestamp,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_5b16c44c","line":213,"in_reply_to":"7a016987_beb01444","updated":"2015-05-31 15:53:08.000000000","message":"We\u0027re getting into the realm of bikeshedding here. I\u0027d rather focus on getting the functionality to work properly.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"monasca/v2/reference/stream_definitions.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        result \u003d self._stream_definition_show(tenant_id, id)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        helpers.add_links_to_resource(result, re.sub(\u0027/\u0027 + id, \u0027\u0027, req.uri))"},{"line_number":102,"context_line":"        res.body \u003d helpers.dumpit_utf8(result)"},{"line_number":103,"context_line":"        res.status \u003d falcon.HTTP_200"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_fe056c0f","line":101,"updated":"2015-05-30 02:11:50.000000000","message":"This file can be removed, as it is in monasca-events-api. There are probably others that can be removed too.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        result \u003d self._stream_definition_show(tenant_id, id)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        helpers.add_links_to_resource(result, re.sub(\u0027/\u0027 + id, \u0027\u0027, req.uri))"},{"line_number":102,"context_line":"        res.body \u003d helpers.dumpit_utf8(result)"},{"line_number":103,"context_line":"        res.status \u003d falcon.HTTP_200"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_3b11c852","line":101,"in_reply_to":"7a016987_fe056c0f","updated":"2015-05-31 15:53:08.000000000","message":"Let\u0027s do that in a different change set because it is unrelated to the Influxdb 9 and pagination changes.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}],"requirements.txt":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"85053ab5c7dae1a2f1101672fd21f7e2e132451e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"six\u003e\u003d1.7.0"},{"line_number":34,"context_line":"stevedore\u003e\u003d0.14"},{"line_number":35,"context_line":"ujson\u003e\u003d1.33"},{"line_number":36,"context_line":"peewee\u003e\u003d2.4.7"},{"line_number":37,"context_line":"pyparsing\u003e\u003d2.0.3"},{"line_number":38,"context_line":"voluptuous\u003e\u003d0.8.7"},{"line_number":39,"context_line":"MySQL-python\u003e\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":4,"id":"7a016987_6300c302","line":36,"updated":"2015-05-30 02:11:50.000000000","message":"We need to get the pee out!","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"six\u003e\u003d1.7.0"},{"line_number":34,"context_line":"stevedore\u003e\u003d0.14"},{"line_number":35,"context_line":"ujson\u003e\u003d1.33"},{"line_number":36,"context_line":"peewee\u003e\u003d2.4.7"},{"line_number":37,"context_line":"pyparsing\u003e\u003d2.0.3"},{"line_number":38,"context_line":"voluptuous\u003e\u003d0.8.7"},{"line_number":39,"context_line":"MySQL-python\u003e\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":4,"id":"7a016987_db287488","line":36,"in_reply_to":"7a016987_6300c302","updated":"2015-05-31 15:53:08.000000000","message":"Done","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"5983d7ee93d81ffbf057f7c166de9e4d49ce508d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"six\u003e\u003d1.7.0"},{"line_number":34,"context_line":"stevedore\u003e\u003d0.14"},{"line_number":35,"context_line":"ujson\u003e\u003d1.33"},{"line_number":36,"context_line":"peewee\u003e\u003d2.4.7"},{"line_number":37,"context_line":"pyparsing\u003e\u003d2.0.3"},{"line_number":38,"context_line":"voluptuous\u003e\u003d0.8.7"},{"line_number":39,"context_line":"MySQL-python\u003e\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":4,"id":"5afe65bd_88a957e2","line":36,"in_reply_to":"7a016987_db287488","updated":"2015-06-01 15:55:16.000000000","message":"Added it back because of the Transform stuff still using it.","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"da749c2632d5851d1167057e6cc0840428f779f6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"voluptuous\u003e\u003d0.8.7"},{"line_number":39,"context_line":"MySQL-python\u003e\u003d1.2.3"},{"line_number":40,"context_line":"influxdb\u003e\u003d1.0.0"},{"line_number":41,"context_line":"eventlet"}],"source_content_type":"text/plain","patch_set":4,"id":"7a016987_e75b9820","line":41,"updated":"2015-05-30 15:25:13.000000000","message":"Need to add kafka-python","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"c0c1f4134165f882a6951e412493b1879b5969c5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"voluptuous\u003e\u003d0.8.7"},{"line_number":39,"context_line":"MySQL-python\u003e\u003d1.2.3"},{"line_number":40,"context_line":"influxdb\u003e\u003d1.0.0"},{"line_number":41,"context_line":"eventlet"}],"source_content_type":"text/plain","patch_set":4,"id":"7a016987_fb169047","line":41,"in_reply_to":"7a016987_e75b9820","updated":"2015-05-31 15:53:08.000000000","message":"Done","commit_id":"e1e42ef6b3670b6130ea4181fb0d5273c96c2729"}]}
