)]}'
{".eggs/README.txt":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"7eee03578d115b571525cd664e1ebb2ce740bf35","unresolved":false,"context_lines":[{"line_number":1,"context_line":"This directory contains eggs that were downloaded by setuptools to build, test, and run plug-ins."},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"This directory caches those eggs to prevent repeated downloads."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"However, it is safe to delete this directory."},{"line_number":6,"context_line":""}],"source_content_type":"text/plain","patch_set":4,"id":"ba2be162_52849d09","line":6,"range":{"start_line":1,"start_character":0,"end_line":6,"end_character":0},"updated":"2017-03-06 09:45:28.000000000","message":"Please remove this file","commit_id":"d1e471836b40ea6125643b2200e247c875fb2aa7"}],"watcher/decision_engine/strategy/strategies/basic_consolidation.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ecdf336890b937dc64d2730454f6eb406187f5b9","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                default\u003d\"ceilometer\","},{"line_number":152,"context_line":"                choices\u003d[\"ceilometer\", \"monasca\", \"gnocchi\"]),"},{"line_number":153,"context_line":"            cfg.IntOpt("},{"line_number":154,"context_line":"                \u0027granuality\u0027,"},{"line_number":155,"context_line":"                default\u003d300,"},{"line_number":156,"context_line":"                help\u003d\u0027The time between two measures in an aggregated \u0027"},{"line_number":157,"context_line":"                     \u0027timeseries of a metric.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_378be6c4","line":154,"range":{"start_line":154,"start_character":17,"end_line":154,"end_character":27},"updated":"2017-03-03 08:21:20.000000000","message":"s/granuality/granularity","commit_id":"b9a0b303d0af6abbc79c4fce71f8ed75bb6d4131"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"763a2c7d2aaef152e85d00d1398be2c849276208","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                    \"description\": \"The time between two measures in an \""},{"line_number":148,"context_line":"                                   \"aggregated timeseries of a metric.\","},{"line_number":149,"context_line":"                    \"type\": \"number\","},{"line_number":150,"context_line":"                    \"default\": 0"},{"line_number":151,"context_line":"                },"},{"line_number":152,"context_line":"            },"},{"line_number":153,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_2ca5b2b4","line":150,"range":{"start_line":150,"start_character":20,"end_line":150,"end_character":32},"updated":"2017-03-08 08:00:43.000000000","message":"Are you sure the default value is 0? What does it mean when granularity is 0?","commit_id":"2119384c927551055a99a8a239620559d58e906e"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"4ee0e7ed5770dc85f8ee2558f71a31338d7fa77e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"from watcher._i18n import _, _LE, _LI, _LW"},{"line_number":44,"context_line":"from watcher.common import exception"},{"line_number":45,"context_line":"from watcher.datasource import ceilometer as ceil"},{"line_number":46,"context_line":"from watcher.datasource import gnocchi as gnocchi"},{"line_number":47,"context_line":"from watcher.datasource import monasca as mon"},{"line_number":48,"context_line":"from watcher.decision_engine.model import element"},{"line_number":49,"context_line":"from watcher.decision_engine.strategy.strategies import base"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_df66e4eb","line":46,"range":{"start_line":46,"start_character":42,"end_line":46,"end_character":49},"updated":"2017-03-13 01:21:31.000000000","message":"Nit: Can you rename this to \u0027gnoc\u0027 or something like that? There is a gnocchi property defined below and this is making it a little unreadable.","commit_id":"30f17bef476b65e99480864c634117e71c9a9bf5"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"29b09ef0420e07cfbf0097363101290e778329d3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"from watcher._i18n import _, _LE, _LI, _LW"},{"line_number":44,"context_line":"from watcher.common import exception"},{"line_number":45,"context_line":"from watcher.datasource import ceilometer as ceil"},{"line_number":46,"context_line":"from watcher.datasource import gnocchi as gnocchi"},{"line_number":47,"context_line":"from watcher.datasource import monasca as mon"},{"line_number":48,"context_line":"from watcher.decision_engine.model import element"},{"line_number":49,"context_line":"from watcher.decision_engine.strategy.strategies import base"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_8afc27b9","line":46,"range":{"start_line":46,"start_character":42,"end_line":46,"end_character":49},"in_reply_to":"9a30ddce_df66e4eb","updated":"2017-03-13 08:26:50.000000000","message":"+1, it would definitely remove some confusion here and there","commit_id":"30f17bef476b65e99480864c634117e71c9a9bf5"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"4ee0e7ed5770dc85f8ee2558f71a31338d7fa77e","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    def get_node_cpu_usage(self, node):"},{"line_number":280,"context_line":"        metric_name \u003d self.METRIC_NAMES["},{"line_number":281,"context_line":"            self.config.datasource][\u0027host_cpu_usage\u0027]"},{"line_number":282,"context_line":"        if self.config.datasource \u003d\u003d \"ceilometer\":"},{"line_number":283,"context_line":"            resource_id \u003d \"%s_%s\" % (node.uuid, node.hostname)"},{"line_number":284,"context_line":"            return self.ceilometer.statistic_aggregation("},{"line_number":285,"context_line":"                resource_id\u003dresource_id,"},{"line_number":286,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":287,"context_line":"                period\u003dself.period,"},{"line_number":288,"context_line":"                aggregate\u003d\u0027avg\u0027,"},{"line_number":289,"context_line":"            )"},{"line_number":290,"context_line":"        elif self.config.datasource \u003d\u003d \"gnocchi\":"},{"line_number":291,"context_line":"            resource_id \u003d \"%s_%s\" % (node.uuid, node.hostname)"},{"line_number":292,"context_line":"            stop_time \u003d datetime.datetime.utcnow()"},{"line_number":293,"context_line":"            start_time \u003d stop_time - datetime.timedelta("},{"line_number":294,"context_line":"                seconds\u003dint(self.period))"},{"line_number":295,"context_line":"            return self.gnocchi.statistic_aggregation("},{"line_number":296,"context_line":"                resource_id\u003dresource_id,"},{"line_number":297,"context_line":"                metric\u003dmetric_name,"},{"line_number":298,"context_line":"                granularity\u003dself.granularity,"},{"line_number":299,"context_line":"                start_time\u003dstart_time,"},{"line_number":300,"context_line":"                stop_time\u003dstop_time,"},{"line_number":301,"context_line":"                aggregation\u003d\u0027mean\u0027"},{"line_number":302,"context_line":"            )"},{"line_number":303,"context_line":"        elif self.config.datasource \u003d\u003d \"monasca\":"},{"line_number":304,"context_line":"            statistics \u003d self.monasca.statistic_aggregation("},{"line_number":305,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":306,"context_line":"                dimensions\u003ddict(hostname\u003dnode.uuid),"},{"line_number":307,"context_line":"                period\u003dself.period,"},{"line_number":308,"context_line":"                aggregate\u003d\u0027avg\u0027"},{"line_number":309,"context_line":"            )"},{"line_number":310,"context_line":"            cpu_usage \u003d None"},{"line_number":311,"context_line":"            for stat in statistics:"},{"line_number":312,"context_line":"                avg_col_idx \u003d stat[\u0027columns\u0027].index(\u0027avg\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_5fd6744f","line":309,"range":{"start_line":282,"start_character":0,"end_line":309,"end_character":13},"updated":"2017-03-13 01:21:31.000000000","message":"IMHO, there should be a common function written in a separate file (like datasource/common.py) that should should check config.datasource and should have appropriate \u003cdatasource\u003e.statistic_aggregation functions defined there, so that you can just call that one function here instead of this. There is too much redundancy here and the same has to be repeated for every strategy. If we have questions on this, we can discuss during weekly meeting on Wednesday.","commit_id":"30f17bef476b65e99480864c634117e71c9a9bf5"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"7d7f9805c3a11927e00bfc8c2f3e7dcb4cac09ad","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    def get_node_cpu_usage(self, node):"},{"line_number":280,"context_line":"        metric_name \u003d self.METRIC_NAMES["},{"line_number":281,"context_line":"            self.config.datasource][\u0027host_cpu_usage\u0027]"},{"line_number":282,"context_line":"        if self.config.datasource \u003d\u003d \"ceilometer\":"},{"line_number":283,"context_line":"            resource_id \u003d \"%s_%s\" % (node.uuid, node.hostname)"},{"line_number":284,"context_line":"            return self.ceilometer.statistic_aggregation("},{"line_number":285,"context_line":"                resource_id\u003dresource_id,"},{"line_number":286,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":287,"context_line":"                period\u003dself.period,"},{"line_number":288,"context_line":"                aggregate\u003d\u0027avg\u0027,"},{"line_number":289,"context_line":"            )"},{"line_number":290,"context_line":"        elif self.config.datasource \u003d\u003d \"gnocchi\":"},{"line_number":291,"context_line":"            resource_id \u003d \"%s_%s\" % (node.uuid, node.hostname)"},{"line_number":292,"context_line":"            stop_time \u003d datetime.datetime.utcnow()"},{"line_number":293,"context_line":"            start_time \u003d stop_time - datetime.timedelta("},{"line_number":294,"context_line":"                seconds\u003dint(self.period))"},{"line_number":295,"context_line":"            return self.gnocchi.statistic_aggregation("},{"line_number":296,"context_line":"                resource_id\u003dresource_id,"},{"line_number":297,"context_line":"                metric\u003dmetric_name,"},{"line_number":298,"context_line":"                granularity\u003dself.granularity,"},{"line_number":299,"context_line":"                start_time\u003dstart_time,"},{"line_number":300,"context_line":"                stop_time\u003dstop_time,"},{"line_number":301,"context_line":"                aggregation\u003d\u0027mean\u0027"},{"line_number":302,"context_line":"            )"},{"line_number":303,"context_line":"        elif self.config.datasource \u003d\u003d \"monasca\":"},{"line_number":304,"context_line":"            statistics \u003d self.monasca.statistic_aggregation("},{"line_number":305,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":306,"context_line":"                dimensions\u003ddict(hostname\u003dnode.uuid),"},{"line_number":307,"context_line":"                period\u003dself.period,"},{"line_number":308,"context_line":"                aggregate\u003d\u0027avg\u0027"},{"line_number":309,"context_line":"            )"},{"line_number":310,"context_line":"            cpu_usage \u003d None"},{"line_number":311,"context_line":"            for stat in statistics:"},{"line_number":312,"context_line":"                avg_col_idx \u003d stat[\u0027columns\u0027].index(\u0027avg\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_2528b799","line":309,"range":{"start_line":282,"start_character":0,"end_line":309,"end_character":13},"in_reply_to":"9a30ddce_2a325ba7","updated":"2017-03-13 17:32:04.000000000","message":"@Vincent: Yeah I agree. I didn\u0027t realize a blueprint was already there for this. I spoke to Santhosh last night and he said he\u0027ll take up the watcher-multi-datasouce bp after his current changes are merged.","commit_id":"30f17bef476b65e99480864c634117e71c9a9bf5"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"29b09ef0420e07cfbf0097363101290e778329d3","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    def get_node_cpu_usage(self, node):"},{"line_number":280,"context_line":"        metric_name \u003d self.METRIC_NAMES["},{"line_number":281,"context_line":"            self.config.datasource][\u0027host_cpu_usage\u0027]"},{"line_number":282,"context_line":"        if self.config.datasource \u003d\u003d \"ceilometer\":"},{"line_number":283,"context_line":"            resource_id \u003d \"%s_%s\" % (node.uuid, node.hostname)"},{"line_number":284,"context_line":"            return self.ceilometer.statistic_aggregation("},{"line_number":285,"context_line":"                resource_id\u003dresource_id,"},{"line_number":286,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":287,"context_line":"                period\u003dself.period,"},{"line_number":288,"context_line":"                aggregate\u003d\u0027avg\u0027,"},{"line_number":289,"context_line":"            )"},{"line_number":290,"context_line":"        elif self.config.datasource \u003d\u003d \"gnocchi\":"},{"line_number":291,"context_line":"            resource_id \u003d \"%s_%s\" % (node.uuid, node.hostname)"},{"line_number":292,"context_line":"            stop_time \u003d datetime.datetime.utcnow()"},{"line_number":293,"context_line":"            start_time \u003d stop_time - datetime.timedelta("},{"line_number":294,"context_line":"                seconds\u003dint(self.period))"},{"line_number":295,"context_line":"            return self.gnocchi.statistic_aggregation("},{"line_number":296,"context_line":"                resource_id\u003dresource_id,"},{"line_number":297,"context_line":"                metric\u003dmetric_name,"},{"line_number":298,"context_line":"                granularity\u003dself.granularity,"},{"line_number":299,"context_line":"                start_time\u003dstart_time,"},{"line_number":300,"context_line":"                stop_time\u003dstop_time,"},{"line_number":301,"context_line":"                aggregation\u003d\u0027mean\u0027"},{"line_number":302,"context_line":"            )"},{"line_number":303,"context_line":"        elif self.config.datasource \u003d\u003d \"monasca\":"},{"line_number":304,"context_line":"            statistics \u003d self.monasca.statistic_aggregation("},{"line_number":305,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":306,"context_line":"                dimensions\u003ddict(hostname\u003dnode.uuid),"},{"line_number":307,"context_line":"                period\u003dself.period,"},{"line_number":308,"context_line":"                aggregate\u003d\u0027avg\u0027"},{"line_number":309,"context_line":"            )"},{"line_number":310,"context_line":"            cpu_usage \u003d None"},{"line_number":311,"context_line":"            for stat in statistics:"},{"line_number":312,"context_line":"                avg_col_idx \u003d stat[\u0027columns\u0027].index(\u0027avg\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_2a325ba7","line":309,"range":{"start_line":282,"start_character":0,"end_line":309,"end_character":13},"in_reply_to":"9a30ddce_5fd6744f","updated":"2017-03-13 08:26:50.000000000","message":"I agree and I share the pain. But at the same time, I\u0027d say it\u0027s not the purpose of this changeset. What you describe is definitely related to BP watcher-multi-datasource which is meant to be rewritten (see https://etherpad.openstack.org/p/pike-watcher-ptg line 293) if I\u0027m not mistaken. So I would suggest putting it forward along with a spec so we can solve this redundancy issue and have everyone agree on it.\n\nOpting for a temporary solution would IMO equate to putting the problem under the rug and this may come back to bite us later on: at this point we would have so much code to refactor that it will be even harder to fix.","commit_id":"30f17bef476b65e99480864c634117e71c9a9bf5"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"4ee0e7ed5770dc85f8ee2558f71a31338d7fa77e","unresolved":false,"context_lines":[{"line_number":322,"context_line":"    def get_instance_cpu_usage(self, instance):"},{"line_number":323,"context_line":"        metric_name \u003d self.METRIC_NAMES["},{"line_number":324,"context_line":"            self.config.datasource][\u0027instance_cpu_usage\u0027]"},{"line_number":325,"context_line":"        if self.config.datasource \u003d\u003d \"ceilometer\":"},{"line_number":326,"context_line":"            return self.ceilometer.statistic_aggregation("},{"line_number":327,"context_line":"                resource_id\u003dinstance.uuid,"},{"line_number":328,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":329,"context_line":"                period\u003dself.period,"},{"line_number":330,"context_line":"                aggregate\u003d\u0027avg\u0027"},{"line_number":331,"context_line":"            )"},{"line_number":332,"context_line":"        elif self.config.datasource \u003d\u003d \"gnocchi\":"},{"line_number":333,"context_line":"            stop_time \u003d datetime.datetime.utcnow()"},{"line_number":334,"context_line":"            start_time \u003d stop_time - datetime.timedelta("},{"line_number":335,"context_line":"                seconds\u003dint(self.period))"},{"line_number":336,"context_line":"            return self.gnocchi.statistic_aggregation("},{"line_number":337,"context_line":"                resource_id\u003dinstance.uuid,"},{"line_number":338,"context_line":"                metric\u003dmetric_name,"},{"line_number":339,"context_line":"                granularity\u003dself.granularity,"},{"line_number":340,"context_line":"                start_time\u003dstart_time,"},{"line_number":341,"context_line":"                stop_time\u003dstop_time,"},{"line_number":342,"context_line":"                aggregation\u003d\u0027mean\u0027,"},{"line_number":343,"context_line":"            )"},{"line_number":344,"context_line":"        elif self.config.datasource \u003d\u003d \"monasca\":"},{"line_number":345,"context_line":"            statistics \u003d self.monasca.statistic_aggregation("},{"line_number":346,"context_line":"                meter_name\u003dmetric_name,"},{"line_number":347,"context_line":"                dimensions\u003ddict(resource_id\u003dinstance.uuid),"},{"line_number":348,"context_line":"                period\u003dself.period,"},{"line_number":349,"context_line":"                aggregate\u003d\u0027avg\u0027"},{"line_number":350,"context_line":"            )"},{"line_number":351,"context_line":"            cpu_usage \u003d None"},{"line_number":352,"context_line":"            for stat in statistics:"},{"line_number":353,"context_line":"                avg_col_idx \u003d stat[\u0027columns\u0027].index(\u0027avg\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_bfc77094","line":350,"range":{"start_line":325,"start_character":8,"end_line":350,"end_character":13},"updated":"2017-03-13 01:21:31.000000000","message":"My above comment applies to this part too.","commit_id":"30f17bef476b65e99480864c634117e71c9a9bf5"}],"watcher/tests/decision_engine/model/gnocchi_metrics.py":[{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"c5a22f7074df2e361063cc22f108dd034dc9bd8e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        mock[\u0027Node_4\u0027] \u003d 4 * oslo_utils.units.Ki"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        if uuid not in mock.keys():"},{"line_number":70,"context_line":"            # mock[uuid] \u003d random.randint(1, 4)"},{"line_number":71,"context_line":"            mock[uuid] \u003d 8"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        return float(mock[str(uuid)])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_13a70050","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":47},"updated":"2017-03-02 14:23:07.000000000","message":"uncomment/remove","commit_id":"5fe8fa6e8d3b8aced504cfca5c779041fb3d3d89"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"c5a22f7074df2e361063cc22f108dd034dc9bd8e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        :param uuid:00"},{"line_number":111,"context_line":"        :return:"},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        # query influxdb stream"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        # compute in stream"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # Normalize"},{"line_number":118,"context_line":"        mock \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_53f25870","line":115,"range":{"start_line":113,"start_character":8,"end_line":115,"end_character":27},"updated":"2017-03-02 14:23:07.000000000","message":"Add the code to implement or remove comments","commit_id":"5fe8fa6e8d3b8aced504cfca5c779041fb3d3d89"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"c5a22f7074df2e361063cc22f108dd034dc9bd8e","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        mock[\u0027Node_4\u0027] \u003d 2"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        if uuid not in mock.keys():"},{"line_number":142,"context_line":"            # mock[uuid] \u003d random.randint(1, 4)"},{"line_number":143,"context_line":"            mock[uuid] \u003d 8"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        return float(mock[str(uuid)])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_d3fe4837","line":142,"range":{"start_line":142,"start_character":0,"end_line":142,"end_character":47},"updated":"2017-03-02 14:23:07.000000000","message":"uncomment or remove","commit_id":"5fe8fa6e8d3b8aced504cfca5c779041fb3d3d89"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"c5a22f7074df2e361063cc22f108dd034dc9bd8e","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :param uuid:00"},{"line_number":152,"context_line":"        :return:"},{"line_number":153,"context_line":"        \"\"\""},{"line_number":154,"context_line":"        # query influxdb stream"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # compute in stream"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        # Normalize"},{"line_number":159,"context_line":"        mock \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_73a03c44","line":156,"range":{"start_line":154,"start_character":8,"end_line":156,"end_character":27},"updated":"2017-03-02 14:23:07.000000000","message":"implement or remove","commit_id":"5fe8fa6e8d3b8aced504cfca5c779041fb3d3d89"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"c5a22f7074df2e361063cc22f108dd034dc9bd8e","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # node 4"},{"line_number":174,"context_line":"        mock[\u0027INSTANCE_7\u0027] \u003d 4"},{"line_number":175,"context_line":"        if uuid not in mock.keys():"},{"line_number":176,"context_line":"            # mock[uuid] \u003d random.randint(1, 4)"},{"line_number":177,"context_line":"            mock[uuid] \u003d 8"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        return mock[str(uuid)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_3396c4f0","line":176,"range":{"start_line":176,"start_character":0,"end_line":176,"end_character":47},"updated":"2017-03-02 14:23:07.000000000","message":"uncomment or remove","commit_id":"5fe8fa6e8d3b8aced504cfca5c779041fb3d3d89"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"c5a22f7074df2e361063cc22f108dd034dc9bd8e","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # node 4"},{"line_number":198,"context_line":"        mock[\u0027INSTANCE_7\u0027] \u003d 4"},{"line_number":199,"context_line":"        if uuid not in mock.keys():"},{"line_number":200,"context_line":"            # mock[uuid] \u003d random.randint(1, 4)"},{"line_number":201,"context_line":"            mock[uuid] \u003d 10"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        return mock[str(uuid)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_f3942ce3","line":200,"range":{"start_line":200,"start_character":0,"end_line":200,"end_character":47},"updated":"2017-03-02 14:23:07.000000000","message":"uncomment/remove","commit_id":"5fe8fa6e8d3b8aced504cfca5c779041fb3d3d89"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"c5a22f7074df2e361063cc22f108dd034dc9bd8e","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        mock[\u0027INSTANCE_7\u0027] \u003d 4"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        if uuid not in mock.keys():"},{"line_number":225,"context_line":"            # mock[uuid] \u003d random.randint(1, 4)"},{"line_number":226,"context_line":"            mock[uuid] \u003d 4"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        return mock[str(uuid)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_33bde468","line":225,"range":{"start_line":225,"start_character":0,"end_line":225,"end_character":47},"updated":"2017-03-02 14:23:07.000000000","message":"uncomment/remove","commit_id":"5fe8fa6e8d3b8aced504cfca5c779041fb3d3d89"}]}
