)]}'
{"dragonflow/tests/fullstack/test_base.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7ffc7b196a6ced5657657e87f470621df2d20582","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            self.start_subscribing()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        self.publisher \u003d self.nb_api._get_publisher()"},{"line_number":71,"context_line":"        self.publisher.initialize()"},{"line_number":72,"context_line":"        self.publisher.send_event("},{"line_number":73,"context_line":"            db_common.DbUpdate("},{"line_number":74,"context_line":"                action\u003d\u0027log\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_334dbf3d","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":35},"updated":"2017-06-28 10:38:44.000000000","message":"This fails if the publisher is already initialised. (e.g. if ActivePortDetection is loaded)","commit_id":"2a879eded216116ecbf0107338b232b7eb26c886"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"8dbc1187cd99650c45e012bd2e0d4c02b16eac45","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            self.start_subscribing()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        self.publisher \u003d self.nb_api._get_publisher()"},{"line_number":71,"context_line":"        self.publisher.initialize()"},{"line_number":72,"context_line":"        self.publisher.send_event("},{"line_number":73,"context_line":"            db_common.DbUpdate("},{"line_number":74,"context_line":"                action\u003d\u0027log\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_57cb6e1d","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":35},"in_reply_to":"5f201791_334dbf3d","updated":"2017-06-29 05:48:40.000000000","message":"Thanks, revised to use different bind port","commit_id":"2a879eded216116ecbf0107338b232b7eb26c886"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"3f1d69e87ce1acbda21382402ad572983fb6adbf","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        publisher \u003d self.get_publisher(port\u003d23456)"},{"line_number":71,"context_line":"        test_name \u003d self.id()"},{"line_number":72,"context_line":"        publisher.send_event("},{"line_number":73,"context_line":"            db_common.DbUpdate("},{"line_number":74,"context_line":"                action\u003d\u0027log\u0027,"},{"line_number":75,"context_line":"                table\u003d\u0027testing\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_1d451718","line":72,"updated":"2017-06-29 06:52:09.000000000","message":"1. Why for logging we need send request to the publisher? \n\n\n2. Maybe it will be more nice to export all work around the log  to function (and  then also the tests can use it easily  )- \n\nsomething like \n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\ndef test_log(str): \n   publisher \u003d self.get_publisher(port\u003d23456)\n   test_name \u003d self.id()\n    publisher.send_event(\n            db_common.DbUpdate(\n                action\u003d\u0027log\u0027,\n                table\u003d\u0027testing\u0027,\n                key\u003dtest_name,\n                str,\n            ),\n        )","commit_id":"b2fd4beba2c52e1c8e60c1de422d607cd3f5eec8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2cba1cbcb49e32fac64aa91840f766cb22dec35a","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        publisher \u003d self.get_publisher(port\u003d23456)"},{"line_number":71,"context_line":"        test_name \u003d self.id()"},{"line_number":72,"context_line":"        publisher.send_event("},{"line_number":73,"context_line":"            db_common.DbUpdate("},{"line_number":74,"context_line":"                action\u003d\u0027log\u0027,"},{"line_number":75,"context_line":"                table\u003d\u0027testing\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_bbef48af","line":72,"in_reply_to":"3f1d235d_1d451718","updated":"2017-06-29 11:13:28.000000000","message":"1. We want this log message to be emitted on the server-side so when we read its logs from a gate run, we can track down the errors relevant to the test.\n\nSee here:\nhttp://logs.openstack.org/57/478457/4/check/gate-dragonflow-dsvm-fullstack-ubuntu-xenial/0bab1e1/logs/screen-df-controller.txt.gz\n\n2. Done","commit_id":"b2fd4beba2c52e1c8e60c1de422d607cd3f5eec8"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"05912784d8e6c881678a03d0f11a2bf5dd7d892d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        super(DFTestBase, self).tearDown()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _publish_log_event(self, event):"},{"line_number":77,"context_line":"        publisher \u003d self.get_publisher(port\u003d23456)"},{"line_number":78,"context_line":"        test_name \u003d self.id()"},{"line_number":79,"context_line":"        publisher.send_event("},{"line_number":80,"context_line":"            db_common.DbUpdate("}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_d8831104","line":77,"range":{"start_line":77,"start_character":20,"end_line":77,"end_character":50},"updated":"2017-06-29 22:21:02.000000000","message":"why not use publisher from self.nb_api.publisher?","commit_id":"449d4f9b377ad1326b2c471d96a5769dc542f666"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"ffd64098cbf07298f757029eef1757da6bae55ed","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        super(DFTestBase, self).tearDown()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _publish_log_event(self, event):"},{"line_number":77,"context_line":"        publisher \u003d self.get_publisher(port\u003d23456)"},{"line_number":78,"context_line":"        test_name \u003d self.id()"},{"line_number":79,"context_line":"        publisher.send_event("},{"line_number":80,"context_line":"            db_common.DbUpdate("}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_8ee9a51b","line":77,"range":{"start_line":77,"start_character":20,"end_line":77,"end_character":50},"in_reply_to":"3f1d235d_d8831104","updated":"2017-07-02 11:47:01.000000000","message":"It is initialized only when active ports detection is on, and zmq turns is off.","commit_id":"449d4f9b377ad1326b2c471d96a5769dc542f666"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"05912784d8e6c881678a03d0f11a2bf5dd7d892d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        test_name \u003d self.id()"},{"line_number":79,"context_line":"        publisher.send_event("},{"line_number":80,"context_line":"            db_common.DbUpdate("},{"line_number":81,"context_line":"                action\u003d\u0027log\u0027,"},{"line_number":82,"context_line":"                table\u003d\u0027testing\u0027,"},{"line_number":83,"context_line":"                key\u003dtest_name,"},{"line_number":84,"context_line":"                value\u003d\u0027\\n{0} {1}\\n\u0027.format(test_name, event),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_98211951","line":81,"range":{"start_line":81,"start_character":24,"end_line":81,"end_character":27},"updated":"2017-06-29 22:21:02.000000000","message":"maybe rebased on [1] to use the constant?\n\nhttps://review.openstack.org/#/c/473063/11/dragonflow/controller/common/constants.py","commit_id":"449d4f9b377ad1326b2c471d96a5769dc542f666"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"ffd64098cbf07298f757029eef1757da6bae55ed","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        test_name \u003d self.id()"},{"line_number":79,"context_line":"        publisher.send_event("},{"line_number":80,"context_line":"            db_common.DbUpdate("},{"line_number":81,"context_line":"                action\u003d\u0027log\u0027,"},{"line_number":82,"context_line":"                table\u003d\u0027testing\u0027,"},{"line_number":83,"context_line":"                key\u003dtest_name,"},{"line_number":84,"context_line":"                value\u003d\u0027\\n{0} {1}\\n\u0027.format(test_name, event),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_6eec0929","line":81,"range":{"start_line":81,"start_character":24,"end_line":81,"end_character":27},"in_reply_to":"3f1d235d_98211951","updated":"2017-07-02 11:47:01.000000000","message":"Sure, will rebase","commit_id":"449d4f9b377ad1326b2c471d96a5769dc542f666"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"754a8fa09d231e2d00eeb130ecf0119a35d22954","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        )"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _get_publisher(self, pubsub_driver_name):"},{"line_number":93,"context_line":"        pub_sub_driver \u003d df_utils.load_driver("},{"line_number":94,"context_line":"            pubsub_driver_name,"},{"line_number":95,"context_line":"            df_utils.DF_PUBSUB_DRIVER_NAMESPACE)"},{"line_number":96,"context_line":"        publisher \u003d pub_sub_driver.get_publisher()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_b3d8cfee","line":93,"range":{"start_line":93,"start_character":34,"end_line":93,"end_character":45},"updated":"2017-07-06 07:23:25.000000000","message":"What if we don\u0027t have publisher (like etcd for now, or any other reason)?\nIt is better to check if the publisher exists (cfg.CONF.df.enable_df_pub_sub) before loading it","commit_id":"bd3aaec7971701c330c55ad06bac5bad7c08f5af"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"7320016607249c0a16b9a79ccd302028adb07a50","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        )"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _get_publisher(self, pubsub_driver_name):"},{"line_number":93,"context_line":"        pub_sub_driver \u003d df_utils.load_driver("},{"line_number":94,"context_line":"            pubsub_driver_name,"},{"line_number":95,"context_line":"            df_utils.DF_PUBSUB_DRIVER_NAMESPACE)"},{"line_number":96,"context_line":"        publisher \u003d pub_sub_driver.get_publisher()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f1d235d_f601956b","line":93,"range":{"start_line":93,"start_character":34,"end_line":93,"end_character":45},"in_reply_to":"3f1d235d_b3d8cfee","updated":"2017-07-06 07:48:17.000000000","message":"Good idea, done.","commit_id":"bd3aaec7971701c330c55ad06bac5bad7c08f5af"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"48634f9ecc18c9a69366ea7c60a48dd6e74ed65a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        test_name \u003d self.id()"},{"line_number":81,"context_line":"        _publisher.send_event("},{"line_number":82,"context_line":"            db_common.DbUpdate("},{"line_number":83,"context_line":"                action\u003d\u0027log\u0027,"},{"line_number":84,"context_line":"                table\u003d\u0027testing\u0027,"},{"line_number":85,"context_line":"                key\u003dtest_name,"},{"line_number":86,"context_line":"                value\u003d\u0027\\n{0} {1}\\n\u0027.format(test_name, event),"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_e99ada5f","line":83,"updated":"2017-07-06 08:09:31.000000000","message":"maybe use - the constant CONTROLLER_LOG ? \n(defined in dragonflow/controller/common/constants)","commit_id":"f0da340f7cfbe3417070bbba21eafcb4a3ef7df8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"5a7ffbab692c29477d68741b1ff96eb3a2f24c29","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        test_name \u003d self.id()"},{"line_number":81,"context_line":"        _publisher.send_event("},{"line_number":82,"context_line":"            db_common.DbUpdate("},{"line_number":83,"context_line":"                action\u003d\u0027log\u0027,"},{"line_number":84,"context_line":"                table\u003d\u0027testing\u0027,"},{"line_number":85,"context_line":"                key\u003dtest_name,"},{"line_number":86,"context_line":"                value\u003d\u0027\\n{0} {1}\\n\u0027.format(test_name, event),"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_88959289","line":83,"in_reply_to":"3f1d235d_e99ada5f","updated":"2017-07-06 13:47:09.000000000","message":"Sorry, I was sure I already fixed that.","commit_id":"f0da340f7cfbe3417070bbba21eafcb4a3ef7df8"}]}
