)]}'
{"ceilometer/dispatcher/http.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26fa9360381505fa7497a1b3292e1204e36d3ece","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                try:"},{"line_number":96,"context_line":"                    # Every meter should be posted to the target"},{"line_number":97,"context_line":"                    meter_json \u003d json.dumps(meter)"},{"line_number":98,"context_line":"                    LOG.debug(_(\u0027Meter Message: %s \u0027), meter_json)"},{"line_number":99,"context_line":"                    res \u003d requests.post(self.target,"},{"line_number":100,"context_line":"                                        data\u003dmeter_json,"},{"line_number":101,"context_line":"                                        headers\u003dself.headers,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_3e47bfbc","line":98,"updated":"2016-03-21 20:32:33.000000000","message":"this is already logged right above so let\u0027s remove this.","commit_id":"dcb489ff214fb90f4afb62606d61b9beae311c7a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26fa9360381505fa7497a1b3292e1204e36d3ece","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                res \u003d None"},{"line_number":121,"context_line":"                try:"},{"line_number":122,"context_line":"                    event_json \u003d json.dumps(event)"},{"line_number":123,"context_line":"                    LOG.debug(_(\u0027Event Message: %s \u0027), event_json)"},{"line_number":124,"context_line":"                    res \u003d requests.post(self.event_target, data\u003devent_json,"},{"line_number":125,"context_line":"                                        headers\u003dself.headers,"},{"line_number":126,"context_line":"                                        timeout\u003dself.timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_3e2dffa7","line":123,"updated":"2016-03-21 20:32:33.000000000","message":"we don\u0027t need to translate debug messages so we can drop \u0027_(\u0027","commit_id":"dcb489ff214fb90f4afb62606d61b9beae311c7a"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"3812b9456010d502b446aa2a7458dba664aa17a8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                res \u003d None"},{"line_number":121,"context_line":"                try:"},{"line_number":122,"context_line":"                    event_json \u003d json.dumps(event)"},{"line_number":123,"context_line":"                    LOG.debug(_(\u0027Event Message: %s \u0027), event_json)"},{"line_number":124,"context_line":"                    res \u003d requests.post(self.event_target, data\u003devent_json,"},{"line_number":125,"context_line":"                                        headers\u003dself.headers,"},{"line_number":126,"context_line":"                                        timeout\u003dself.timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_11329e10","line":123,"in_reply_to":"fa0719c6_3e2dffa7","updated":"2016-03-22 07:00:55.000000000","message":"+1","commit_id":"dcb489ff214fb90f4afb62606d61b9beae311c7a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"748b0088ab296ca98db6da21f4fa2040580187c2","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            try:"},{"line_number":93,"context_line":"                # Every meter should be posted to the target"},{"line_number":94,"context_line":"                meter_json \u003d json.dumps(meter)"},{"line_number":95,"context_line":"                LOG.debug(\u0027Meter Message: %s \u0027, meter_json)"},{"line_number":96,"context_line":"                res \u003d requests.post(self.target,"},{"line_number":97,"context_line":"                                    data\u003dmeter_json,"},{"line_number":98,"context_line":"                                    headers\u003dself.headers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_2ad9ef57","line":95,"updated":"2016-07-11 18:51:24.000000000","message":"i still prefer this be left off as we\u0027re logging basically the same information right about.","commit_id":"e3be477063166ba57964b7f6985c743fe11dafa9"},{"author":{"_account_id":14768,"name":"Darren Hague","email":"d.hague@sap.com","username":"dhague"},"change_message_id":"e63dad070e985d6656b5222ba0822a4dcfd18288","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            try:"},{"line_number":93,"context_line":"                # Every meter should be posted to the target"},{"line_number":94,"context_line":"                meter_json \u003d json.dumps(meter)"},{"line_number":95,"context_line":"                LOG.debug(\u0027Meter Message: %s \u0027, meter_json)"},{"line_number":96,"context_line":"                res \u003d requests.post(self.target,"},{"line_number":97,"context_line":"                                    data\u003dmeter_json,"},{"line_number":98,"context_line":"                                    headers\u003dself.headers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_dc83ed02","line":95,"in_reply_to":"1aa78d24_2ad9ef57","updated":"2016-07-19 15:56:37.000000000","message":"Not sure I agree. For example, here is some actual log output:\n\nDEBUG ceilometer.dispatcher.http [-] metering data storage.objects.outgoing.bytes for 2ab82e30d7984631874def67813dffd8 @ 2016-07-19 15:43:47.357599: 70\n\nDEBUG ceilometer.dispatcher.http [-] Meter Message: {\"counter_name\": \"storage.objects.outgoing.bytes\", \"user_id\": \"72ec469780214348abe5ac51cd96157b\", \"message_signature\": \"2e416af46b93f0e6fb7d908d43068c3b56736c51abfa5edff5b9d549420efed9\", \"timestamp\": \"2016-07-19 15:43:47.357599\", \"resource_id\": \"2ab82e30d7984631874def67813dffd8\", \"message_id\": \"82c750fe-4dc7-11e6-946d-0242ac110008\", \"source\": \"openstack\", \"counter_unit\": \"B\", \"counter_volume\": 70, \"project_id\": \"2ab82e30d7984631874def67813dffd8\", \"resource_metadata\": {\"typeURI\": \"http://schemas.dmtf.org/cloud/audit/1.0/event\", \"eventTime\": \"2016-07-19T15:43:47.252369\", \"target\": {\"action\": \"put\", \"typeURI\": \"service/storage/object\", \"id\": \"2ab82e30d7984631874def67813dffd8\", \"metadata\": {\"path\": \"v1/AUTH_2ab82e30d7984631874def67813dffd8/glance\", \"version\": \"v1\", \"container\": \"glance\", \"object\": null}}, \"observer\": {\"id\": \"target\"}, \"eventType\": \"activity\", \"measurements\": [{\"metric\": {\"metricId\": \"c6c0eb91-95b4-5647-800d-427516eef03e\", \"name\": \"storage.objects.outgoing.bytes\", \"unit\": \"B\"}, \"result\": 70}], \"initiator\": {\"typeURI\": \"service/security/account/user\", \"project_id\": \"2ab82e30d7984631874def67813dffd8\", \"id\": \"72ec469780214348abe5ac51cd96157b\"}, \"host\": \"ceilometermiddleware\", \"action\": \"update\", \"outcome\": \"success\", \"id\": \"7c22e065-0047-5b12-82df-9151013c7ae1\", \"event_type\": \"objectstore.http.request\"}, \"counter_type\": \"delta\"}\n\nMaybe it\u0027s better to change line 85 to log.INFO so that line 95 gives all the extra detail when moving from INFO to DEBUG?","commit_id":"e3be477063166ba57964b7f6985c743fe11dafa9"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"748b0088ab296ca98db6da21f4fa2040580187c2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                                    data\u003dmeter_json,"},{"line_number":98,"context_line":"                                    headers\u003dself.headers,"},{"line_number":99,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":100,"context_line":"                if res is not None:"},{"line_number":101,"context_line":"                    LOG.debug(\u0027Meter message posting finished with status code\u0027"},{"line_number":102,"context_line":"                              \u0027 %d.\u0027, res.status_code)"},{"line_number":103,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_6a281734","line":100,"updated":"2016-07-11 18:51:24.000000000","message":"why do we check for None here and not for events?","commit_id":"e3be477063166ba57964b7f6985c743fe11dafa9"},{"author":{"_account_id":14768,"name":"Darren Hague","email":"d.hague@sap.com","username":"dhague"},"change_message_id":"e63dad070e985d6656b5222ba0822a4dcfd18288","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                                    data\u003dmeter_json,"},{"line_number":98,"context_line":"                                    headers\u003dself.headers,"},{"line_number":99,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":100,"context_line":"                if res is not None:"},{"line_number":101,"context_line":"                    LOG.debug(\u0027Meter message posting finished with status code\u0027"},{"line_number":102,"context_line":"                              \u0027 %d.\u0027, res.status_code)"},{"line_number":103,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_9cbdf56a","line":100,"in_reply_to":"1aa78d24_6a281734","updated":"2016-07-19 15:56:37.000000000","message":"The intention is to make sure that res has some properties, otherwise the res.status_code expression will cause the LOG.debug to fail. That said, it\u0027s only likely to happen if requests.post throws an exception, which we handle in the next line anyway. Looks like I\u0027m being over-cautious, so I\u0027ll remove line 100.","commit_id":"e3be477063166ba57964b7f6985c743fe11dafa9"},{"author":{"_account_id":16794,"name":"yaoyuan","username":"yaoyuan","inactive":true},"change_message_id":"7371f36d69994bba64dbfc6116b13ba02e652e76","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                meter_json \u003d json.dumps(meter)"},{"line_number":96,"context_line":"                LOG.trace(\u0027Meter Message: %s \u0027, meter_json)"},{"line_number":97,"context_line":"                res \u003d requests.post(self.target,"},{"line_number":98,"context_line":"                                    data\u003dmeter_json,"},{"line_number":99,"context_line":"                                    headers\u003dself.headers,"},{"line_number":100,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":101,"context_line":"                LOG.debug(\u0027Meter message posting finished with status code\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_36effab1","line":98,"range":{"start_line":98,"start_character":41,"end_line":98,"end_character":51},"updated":"2016-08-03 07:39:19.000000000","message":"meter_json only used once; \nThis change does not need to do","commit_id":"9a9e065b26c55ea6caab700ee8537d582ebb016a"},{"author":{"_account_id":16794,"name":"yaoyuan","username":"yaoyuan","inactive":true},"change_message_id":"dfbbe17e7662b9ab153fec4107c6bd98900f5742","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                meter_json \u003d json.dumps(meter)"},{"line_number":96,"context_line":"                LOG.trace(\u0027Meter Message: %s \u0027, meter_json)"},{"line_number":97,"context_line":"                res \u003d requests.post(self.target,"},{"line_number":98,"context_line":"                                    data\u003dmeter_json,"},{"line_number":99,"context_line":"                                    headers\u003dself.headers,"},{"line_number":100,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":101,"context_line":"                LOG.debug(\u0027Meter message posting finished with status code\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_b6712ae3","line":98,"range":{"start_line":98,"start_character":41,"end_line":98,"end_character":51},"in_reply_to":"bacf61ea_36effab1","updated":"2016-08-03 07:43:58.000000000","message":"sorry, i have make a mistaken, i ignore line96","commit_id":"9a9e065b26c55ea6caab700ee8537d582ebb016a"},{"author":{"_account_id":23037,"name":"Huachao Mao","email":"mao.huachao@99cloud.net","username":"huachaomao"},"change_message_id":"83e59c2d5e0a8917bb3537809dbb67fa163bc2ca","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            try:"},{"line_number":116,"context_line":"                event_json \u003d json.dumps(event)"},{"line_number":117,"context_line":"                LOG.trace(\u0027Event Message: %s \u0027, event_json)"},{"line_number":118,"context_line":"                res \u003d requests.post(self.event_target, data\u003devent_json,"},{"line_number":119,"context_line":"                                    headers\u003dself.headers,"},{"line_number":120,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":121,"context_line":"                LOG.debug(\u0027Event Message posting finished with status code \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_ccc5f83d","line":118,"range":{"start_line":118,"start_character":55,"end_line":118,"end_character":71},"updated":"2016-08-04 05:46:27.000000000","message":"minor: can we make the same style as other code that, one parameter one line?","commit_id":"9a9e065b26c55ea6caab700ee8537d582ebb016a"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"7e18cd983fbad45d7a0781c25b261cf78f94ba92","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":121,"context_line":"                LOG.debug(\u0027Event Message posting finished with status code \u0027"},{"line_number":122,"context_line":"                          \u0027%d.\u0027, res.status_code)"},{"line_number":123,"context_line":"                res.raise_for_status()"},{"line_number":124,"context_line":"            except Exception:"},{"line_number":125,"context_line":"                error_code \u003d res.status_code if res else \u0027unknown\u0027"},{"line_number":126,"context_line":"                LOG.exception(_LE(\u0027Status Code: %{code}s. Failed to\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_b9c8eb75","line":123,"range":{"start_line":123,"start_character":16,"end_line":123,"end_character":38},"updated":"2016-08-03 13:10:48.000000000","message":"I recognized the effort of making the two functions identical regarding the call and log sequence. Would that be reasonable to include this functional call in the above sequence as well for identical behaviour?","commit_id":"9a9e065b26c55ea6caab700ee8537d582ebb016a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"335344043a88a131f3ba3b23a87d5ea30074a640","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":121,"context_line":"                LOG.debug(\u0027Event Message posting finished with status code \u0027"},{"line_number":122,"context_line":"                          \u0027%d.\u0027, res.status_code)"},{"line_number":123,"context_line":"                res.raise_for_status()"},{"line_number":124,"context_line":"            except Exception:"},{"line_number":125,"context_line":"                error_code \u003d res.status_code if res else \u0027unknown\u0027"},{"line_number":126,"context_line":"                LOG.exception(_LE(\u0027Status Code: %{code}s. Failed to\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_9e114d55","line":123,"range":{"start_line":123,"start_character":16,"end_line":123,"end_character":38},"in_reply_to":"bacf61ea_8b4f86bd","updated":"2016-08-04 13:15:21.000000000","message":"yeah, you need this above as well. raise_for_status basically raises an exception when status isn\u0027t 2xx. the metering code above won\u0027t actually  hit exception unless something catastrophic happened on json.dumps() \n\ni guess now that in theory you can have an error for json.dumps, you should have one exception to catch requests.exceptions.HTTPError for bad posts. and another exception to catch whatever error json.dumps may throw.","commit_id":"9a9e065b26c55ea6caab700ee8537d582ebb016a"},{"author":{"_account_id":14768,"name":"Darren Hague","email":"d.hague@sap.com","username":"dhague"},"change_message_id":"69a3e3a87cefad06ead067530e80a04420472512","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                    timeout\u003dself.timeout)"},{"line_number":121,"context_line":"                LOG.debug(\u0027Event Message posting finished with status code \u0027"},{"line_number":122,"context_line":"                          \u0027%d.\u0027, res.status_code)"},{"line_number":123,"context_line":"                res.raise_for_status()"},{"line_number":124,"context_line":"            except Exception:"},{"line_number":125,"context_line":"                error_code \u003d res.status_code if res else \u0027unknown\u0027"},{"line_number":126,"context_line":"                LOG.exception(_LE(\u0027Status Code: %{code}s. Failed to\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_8b4f86bd","line":123,"range":{"start_line":123,"start_character":16,"end_line":123,"end_character":38},"in_reply_to":"bacf61ea_b9c8eb75","updated":"2016-08-03 15:35:44.000000000","message":"You\u0027d be better off asking Gordon Chung, who introduced this line in https://github.com/openstack/ceilometer/commit/c2d4167456736f5dd7003706ef63f7cb4450eeb5#diff-e743f815f4e4f3dbf3c9a886e35b9a90R131 :-)","commit_id":"9a9e065b26c55ea6caab700ee8537d582ebb016a"},{"author":{"_account_id":23037,"name":"Huachao Mao","email":"mao.huachao@99cloud.net","username":"huachaomao"},"change_message_id":"9e06818fd5113086a4e416007bc95b7c170c5831","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            try:"},{"line_number":94,"context_line":"                # Every meter should be posted to the target"},{"line_number":95,"context_line":"                meter_json \u003d json.dumps(meter)"},{"line_number":96,"context_line":"                LOG.trace(\u0027Meter Message: %s \u0027, meter_json)"},{"line_number":97,"context_line":"                res \u003d requests.post(self.target,"},{"line_number":98,"context_line":"                                    data\u003dmeter_json,"},{"line_number":99,"context_line":"                                    headers\u003dself.headers,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_a932125c","line":96,"range":{"start_line":96,"start_character":44,"end_line":96,"end_character":45},"updated":"2016-08-04 16:43:58.000000000","message":"Question: why do we have an extra trailing space?","commit_id":"a31fd686a1e2bfaab2e99033c6a8ce0c4ca461f7"},{"author":{"_account_id":23037,"name":"Huachao Mao","email":"mao.huachao@99cloud.net","username":"huachaomao"},"change_message_id":"9e06818fd5113086a4e416007bc95b7c170c5831","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                LOG.exception(_LE(\u0027Status Code: %{code}s. Failed to\u0027"},{"line_number":106,"context_line":"                                  \u0027dispatch meter: %{meter}s\u0027),"},{"line_number":107,"context_line":"                              {\u0027code\u0027: e.code, \u0027meter\u0027: meter})"},{"line_number":108,"context_line":"            except BaseException:"},{"line_number":109,"context_line":"                LOG.exception(_LE(\u0027Failed to dispatch meter: %{meter}s\u0027),"},{"line_number":110,"context_line":"                              {\u0027meter\u0027: meter})"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_490a768b","line":108,"range":{"start_line":108,"start_character":19,"end_line":108,"end_character":32},"updated":"2016-08-04 16:43:58.000000000","message":"How about catch the exception in a variable and then save it into exception message. So that we could find the error details in log","commit_id":"a31fd686a1e2bfaab2e99033c6a8ce0c4ca461f7"},{"author":{"_account_id":23037,"name":"Huachao Mao","email":"mao.huachao@99cloud.net","username":"huachaomao"},"change_message_id":"9e06818fd5113086a4e416007bc95b7c170c5831","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                LOG.exception(_LE(\u0027Status Code: %{code}s. Failed to\u0027"},{"line_number":106,"context_line":"                                  \u0027dispatch meter: %{meter}s\u0027),"},{"line_number":107,"context_line":"                              {\u0027code\u0027: e.code, \u0027meter\u0027: meter})"},{"line_number":108,"context_line":"            except BaseException:"},{"line_number":109,"context_line":"                LOG.exception(_LE(\u0027Failed to dispatch meter: %{meter}s\u0027),"},{"line_number":110,"context_line":"                              {\u0027meter\u0027: meter})"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_c43f6bb2","line":108,"range":{"start_line":108,"start_character":19,"end_line":108,"end_character":32},"updated":"2016-08-04 16:43:58.000000000","message":"I don\u0027t think we need to catch BaseException, Exception is enough, other exceptions directly derived from BaseException are  GeneratorExit, KeyboardInterrupt, SystemExit. I don\u0027t think we need to consider them.","commit_id":"a31fd686a1e2bfaab2e99033c6a8ce0c4ca461f7"},{"author":{"_account_id":14768,"name":"Darren Hague","email":"d.hague@sap.com","username":"dhague"},"change_message_id":"a90fed5443ea55a1104694896f99e262b36ebe9c","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                LOG.exception(_LE(\u0027Status Code: %{code}s. Failed to\u0027"},{"line_number":106,"context_line":"                                  \u0027dispatch meter: %{meter}s\u0027),"},{"line_number":107,"context_line":"                              {\u0027code\u0027: e.code, \u0027meter\u0027: meter})"},{"line_number":108,"context_line":"            except BaseException:"},{"line_number":109,"context_line":"                LOG.exception(_LE(\u0027Failed to dispatch meter: %{meter}s\u0027),"},{"line_number":110,"context_line":"                              {\u0027meter\u0027: meter})"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_c6175043","line":108,"range":{"start_line":108,"start_character":19,"end_line":108,"end_character":32},"in_reply_to":"bacf61ea_c43f6bb2","updated":"2016-08-05 09:00:42.000000000","message":"Actually, given we are catching HTTPError just above, I don\u0027t think we need to catch anything else. Any other exception should be bubbled upwards.","commit_id":"a31fd686a1e2bfaab2e99033c6a8ce0c4ca461f7"},{"author":{"_account_id":23037,"name":"Huachao Mao","email":"mao.huachao@99cloud.net","username":"huachaomao"},"change_message_id":"8a1e133f8d83a555adb88b5566bc11356119a95b","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def record_events(self, events):"},{"line_number":109,"context_line":"        if self.event_target \u003d\u003d \u0027\u0027:"},{"line_number":110,"context_line":"            # if the event target was not set, do not do anything"},{"line_number":111,"context_line":"            LOG.error(_LE(\u0027Dispatcher event target was not set, no meter will \u0027"},{"line_number":112,"context_line":"                          \u0027be posted. Set event_target in the ceilometer.conf \u0027"},{"line_number":113,"context_line":"                          \u0027file.\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_a9faefba","line":110,"range":{"start_line":110,"start_character":47,"end_line":110,"end_character":65},"updated":"2016-08-05 09:25:57.000000000","message":"minor: just say \u0027do nothing\u0027 is more readable?","commit_id":"ff35340b212b199d09881dd067c9688619309c3e"}],"ceilometer/tests/unit/dispatcher/test_http.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26fa9360381505fa7497a1b3292e1204e36d3ece","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.CONF.dispatcher_http.event_target \u003d \u0027fake\u0027"},{"line_number":82,"context_line":"        dispatcher \u003d http.HttpDispatcher(self.CONF)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        event \u003d event_models.Event(repr(uuid.uuid4()), \u0027test\u0027,"},{"line_number":85,"context_line":"                                   datetime.datetime(2012, 7, 2, 13, 53, 40),"},{"line_number":86,"context_line":"                                   [], {})"},{"line_number":87,"context_line":"        event \u003d utils.message_from_event(event,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_9974259d","line":84,"updated":"2016-03-21 20:32:33.000000000","message":"what\u0027s this change for? it seems to make it different from ther other dispatcher tests so if it\u0027s necessary, it should be consistent across all the tests.","commit_id":"dcb489ff214fb90f4afb62606d61b9beae311c7a"}]}
