)]}'
{"watcher/objects/notifications/base.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"aeda509a4ef2107df1222df967ec6f1aa0c47e51","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    fields \u003d {"},{"line_number":42,"context_line":"        \u0027object\u0027: wfields.StringField(nullable\u003dFalse),"},{"line_number":43,"context_line":"        \u0027action\u0027: wfields.NotificationActionField(nullable\u003dFalse),"},{"line_number":44,"context_line":"        \u0027phase\u0027: wfields.NotificationPhaseField(nullable\u003dTrue),"},{"line_number":45,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_ea0f332c","line":42,"range":{"start_line":42,"start_character":38,"end_line":42,"end_character":52},"updated":"2016-10-18 09:48:21.000000000","message":"by default, nullable is False. You can remove it.","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"073c4bc4c6c42024eeb8e1e0a76a527e16342541","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    fields \u003d {"},{"line_number":42,"context_line":"        \u0027object\u0027: wfields.StringField(nullable\u003dFalse),"},{"line_number":43,"context_line":"        \u0027action\u0027: wfields.NotificationActionField(nullable\u003dFalse),"},{"line_number":44,"context_line":"        \u0027phase\u0027: wfields.NotificationPhaseField(nullable\u003dTrue),"},{"line_number":45,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_fedc4776","line":42,"range":{"start_line":42,"start_character":38,"end_line":42,"end_character":52},"in_reply_to":"fa6399be_ea0f332c","updated":"2016-10-18 15:49:06.000000000","message":"Done","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"aeda509a4ef2107df1222df967ec6f1aa0c47e51","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    fields \u003d {"},{"line_number":42,"context_line":"        \u0027object\u0027: wfields.StringField(nullable\u003dFalse),"},{"line_number":43,"context_line":"        \u0027action\u0027: wfields.NotificationActionField(nullable\u003dFalse),"},{"line_number":44,"context_line":"        \u0027phase\u0027: wfields.NotificationPhaseField(nullable\u003dTrue),"},{"line_number":45,"context_line":"    }"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_0a1d4766","line":43,"range":{"start_line":43,"start_character":50,"end_line":43,"end_character":64},"updated":"2016-10-18 09:48:21.000000000","message":"ditto","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"073c4bc4c6c42024eeb8e1e0a76a527e16342541","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    fields \u003d {"},{"line_number":42,"context_line":"        \u0027object\u0027: wfields.StringField(nullable\u003dFalse),"},{"line_number":43,"context_line":"        \u0027action\u0027: wfields.NotificationActionField(nullable\u003dFalse),"},{"line_number":44,"context_line":"        \u0027phase\u0027: wfields.NotificationPhaseField(nullable\u003dTrue),"},{"line_number":45,"context_line":"    }"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_5ee4533a","line":43,"range":{"start_line":43,"start_character":50,"end_line":43,"end_character":64},"in_reply_to":"fa6399be_0a1d4766","updated":"2016-10-18 15:49:06.000000000","message":"Done","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"}],"watcher/objects/notifications/exception.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"3c4e0d052c65aa2f9165f9035323ab76bb52ffeb","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            exception_message\u003dsix.text_type(fault))"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# @notificationbase.notification_sample(\u0027compute-exception.json\u0027)"},{"line_number":47,"context_line":"@base.WatcherObjectRegistry.register_notification"},{"line_number":48,"context_line":"class ExceptionNotification(notificationbase.NotificationBase):"},{"line_number":49,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_3017dcee","line":46,"range":{"start_line":46,"start_character":41,"end_line":46,"end_character":48},"updated":"2016-10-18 09:55:23.000000000","message":"infra-optim","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"073c4bc4c6c42024eeb8e1e0a76a527e16342541","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            exception_message\u003dsix.text_type(fault))"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# @notificationbase.notification_sample(\u0027compute-exception.json\u0027)"},{"line_number":47,"context_line":"@base.WatcherObjectRegistry.register_notification"},{"line_number":48,"context_line":"class ExceptionNotification(notificationbase.NotificationBase):"},{"line_number":49,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_7e5d97eb","line":46,"range":{"start_line":46,"start_character":41,"end_line":46,"end_character":48},"in_reply_to":"fa6399be_3017dcee","updated":"2016-10-18 15:49:06.000000000","message":"Done","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"}],"watcher/tests/objects/notifications/test_notification.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"aeda509a4ef2107df1222df967ec6f1aa0c47e51","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                phase\u003dwfields.NotificationPhase.START),"},{"line_number":109,"context_line":"            publisher\u003dnotificationbase.NotificationPublisher("},{"line_number":110,"context_line":"                host\u003d\u0027fake-host\u0027, binary\u003d\u0027watcher-fake\u0027),"},{"line_number":111,"context_line":"            priority\u003dwfields.NotificationPriority.INFO,"},{"line_number":112,"context_line":"            payload\u003dself.payload)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _verify_notification(self, mock_notifier, mock_context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_85d068cb","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":55},"updated":"2016-10-18 09:48:21.000000000","message":"how do you check priority value is well take into account ?","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"073c4bc4c6c42024eeb8e1e0a76a527e16342541","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                phase\u003dwfields.NotificationPhase.START),"},{"line_number":109,"context_line":"            publisher\u003dnotificationbase.NotificationPublisher("},{"line_number":110,"context_line":"                host\u003d\u0027fake-host\u0027, binary\u003d\u0027watcher-fake\u0027),"},{"line_number":111,"context_line":"            priority\u003dwfields.NotificationPriority.INFO,"},{"line_number":112,"context_line":"            payload\u003dself.payload)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _verify_notification(self, mock_notifier, mock_context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_3efcff3d","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":55},"in_reply_to":"fa6399be_85d068cb","updated":"2016-10-18 15:49:06.000000000","message":"if you look at line 119 https://review.openstack.org/#/c/387542/2/watcher/tests/objects/notifications/test_notification.py@119 you can see that we mock the info() handler, so that\u0027s why we know that it\u0027s the correct priority.","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"aeda509a4ef2107df1222df967ec6f1aa0c47e51","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            expected_payload\u003dself.expected_payload)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @mock.patch.object(rpc, \u0027NOTIFIER\u0027)"},{"line_number":140,"context_line":"    def test_emit_with_host_and_binary_as_publisher(self, mock_notifier):"},{"line_number":141,"context_line":"        noti \u003d self.TestNotification("},{"line_number":142,"context_line":"            event_type\u003dnotificationbase.EventType("},{"line_number":143,"context_line":"                object\u003d\u0027test_object\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_a5a3ac4e","line":140,"range":{"start_line":140,"start_character":8,"end_line":140,"end_character":51},"updated":"2016-10-18 09:48:21.000000000","message":"is duplicated of test_emit_notification ?","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"073c4bc4c6c42024eeb8e1e0a76a527e16342541","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            expected_payload\u003dself.expected_payload)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @mock.patch.object(rpc, \u0027NOTIFIER\u0027)"},{"line_number":140,"context_line":"    def test_emit_with_host_and_binary_as_publisher(self, mock_notifier):"},{"line_number":141,"context_line":"        noti \u003d self.TestNotification("},{"line_number":142,"context_line":"            event_type\u003dnotificationbase.EventType("},{"line_number":143,"context_line":"                object\u003d\u0027test_object\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_f9954188","line":140,"range":{"start_line":140,"start_character":8,"end_line":140,"end_character":51},"in_reply_to":"fa6399be_a5a3ac4e","updated":"2016-10-18 15:49:06.000000000","message":"Done","commit_id":"fb538951f5d1d5b3214ca4fd99f8852d31c43c4c"}],"watcher/tests/objects/test_objects.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"8237db99a916ec8e0ab6e95386ed93196540cf9b","unresolved":false,"context_lines":[{"line_number":431,"context_line":"    :return: a dict mapping class names to lists of versioned objects"},{"line_number":432,"context_line":"    \"\"\""},{"line_number":433,"context_line":"    all_classes \u003d base.WatcherObjectRegistry.obj_classes()"},{"line_number":434,"context_line":"    nova_classes \u003d {}"},{"line_number":435,"context_line":"    for name in all_classes:"},{"line_number":436,"context_line":"        objclasses \u003d all_classes[name]"},{"line_number":437,"context_line":"        if (objclasses[0].OBJ_PROJECT_NAMESPACE !\u003d"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_75b73186","line":434,"range":{"start_line":434,"start_character":4,"end_line":434,"end_character":16},"updated":"2016-11-01 09:14:12.000000000","message":"maybe \u0027watcher_classes\u0027","commit_id":"67120a085ef720fbb4f895dcaa9c2d67cddd697e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"93b5fec4b2d18f1eeeed7ae8e821faa66db746f5","unresolved":false,"context_lines":[{"line_number":431,"context_line":"    :return: a dict mapping class names to lists of versioned objects"},{"line_number":432,"context_line":"    \"\"\""},{"line_number":433,"context_line":"    all_classes \u003d base.WatcherObjectRegistry.obj_classes()"},{"line_number":434,"context_line":"    nova_classes \u003d {}"},{"line_number":435,"context_line":"    for name in all_classes:"},{"line_number":436,"context_line":"        objclasses \u003d all_classes[name]"},{"line_number":437,"context_line":"        if (objclasses[0].OBJ_PROJECT_NAMESPACE !\u003d"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_b34cb871","line":434,"range":{"start_line":434,"start_character":4,"end_line":434,"end_character":16},"in_reply_to":"ba5da102_75b73186","updated":"2016-11-08 13:54:26.000000000","message":"Done","commit_id":"67120a085ef720fbb4f895dcaa9c2d67cddd697e"}]}
