)]}'
{"dragonflow/tests/fullstack/test_ovsdb_monitor.py":[{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ae9fcb4d15a2f9734c94d893452ae5de997a74d4","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u0027name\u0027: \u0027private\u0027,\r"},{"line_number":78,"context_line":"            \u0027enable_dhcp\u0027: True}\r"},{"line_number":79,"context_line":"        self.neutron.create_subnet({\u0027subnet\u0027: subnet})\r"},{"line_number":80,"context_line":"\r"},{"line_number":81,"context_line":"        vm \u003d self.store(objects.VMTestObj(self, self.neutron))\r"},{"line_number":82,"context_line":"        vm.create(network\u003dnetwork)\r"},{"line_number":83,"context_line":"        self.assertIsNotNone(vm.server.addresses[\u0027private\u0027])\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_c76c640a","line":80,"updated":"2016-03-24 07:22:47.000000000","message":"please check the objects are created successfully.\nself.assertTrue(network.exists())\nself.assertTrue(subnet.exists())","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"70863cd4904eb2833d6a9009fda50ca607470ae7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u0027name\u0027: \u0027private\u0027,\r"},{"line_number":78,"context_line":"            \u0027enable_dhcp\u0027: True}\r"},{"line_number":79,"context_line":"        self.neutron.create_subnet({\u0027subnet\u0027: subnet})\r"},{"line_number":80,"context_line":"\r"},{"line_number":81,"context_line":"        vm \u003d self.store(objects.VMTestObj(self, self.neutron))\r"},{"line_number":82,"context_line":"        vm.create(network\u003dnetwork)\r"},{"line_number":83,"context_line":"        self.assertIsNotNone(vm.server.addresses[\u0027private\u0027])\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_192a44db","line":80,"in_reply_to":"fa0719c6_c76c640a","updated":"2016-03-24 11:42:20.000000000","message":"ok,thanks","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ae9fcb4d15a2f9734c94d893452ae5de997a74d4","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        mac \u003d vm.server.addresses[\u0027private\u0027][0][\u0027OS-EXT-IPS-MAC:mac_addr\u0027]\r"},{"line_number":85,"context_line":"        self.assertIsNotNone(mac)\r"},{"line_number":86,"context_line":"        #wait for ovsdb monitor messages put into queue\r"},{"line_number":87,"context_line":"        time.sleep(3)\r"},{"line_number":88,"context_line":"        self.assertTrue(self.queue_has_data(self.nb_api._queue))\r"},{"line_number":89,"context_line":"        find_wanted_online_vm \u003d False\r"},{"line_number":90,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_277c40b4","line":87,"range":{"start_line":87,"start_character":8,"end_line":87,"end_character":21},"updated":"2016-03-24 07:22:47.000000000","message":"there is a global timeout definition for commands.\ntime.sleep(utils.DEFAULT_CMD_TIMEOUT)","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"70863cd4904eb2833d6a9009fda50ca607470ae7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        mac \u003d vm.server.addresses[\u0027private\u0027][0][\u0027OS-EXT-IPS-MAC:mac_addr\u0027]\r"},{"line_number":85,"context_line":"        self.assertIsNotNone(mac)\r"},{"line_number":86,"context_line":"        #wait for ovsdb monitor messages put into queue\r"},{"line_number":87,"context_line":"        time.sleep(3)\r"},{"line_number":88,"context_line":"        self.assertTrue(self.queue_has_data(self.nb_api._queue))\r"},{"line_number":89,"context_line":"        find_wanted_online_vm \u003d False\r"},{"line_number":90,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_d45c061b","line":87,"range":{"start_line":87,"start_character":8,"end_line":87,"end_character":21},"in_reply_to":"fa0719c6_277c40b4","updated":"2016-03-24 11:42:20.000000000","message":"ok","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ae9fcb4d15a2f9734c94d893452ae5de997a74d4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\r"},{"line_number":97,"context_line":"        self.nb_api._queue.clear()\r"},{"line_number":98,"context_line":"        vm.close()\r"},{"line_number":99,"context_line":"        time.sleep(3)\r"},{"line_number":100,"context_line":"        self.assertTrue(self.queue_has_data(self.nb_api._queue))\r"},{"line_number":101,"context_line":"        find_wanted_offline_vm \u003d False\r"},{"line_number":102,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_e75c084d","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":21},"updated":"2016-03-24 07:22:47.000000000","message":"ditto","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ae9fcb4d15a2f9734c94d893452ae5de997a74d4","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            if self.check_wanted_vm_offline(self.next_update, mac):\r"},{"line_number":105,"context_line":"                find_wanted_offline_vm \u003d True\r"},{"line_number":106,"context_line":"                break\r"},{"line_number":107,"context_line":"        self.assertTrue(find_wanted_offline_vm)\r"},{"line_number":108,"context_line":"\r"},{"line_number":109,"context_line":"    def test_reply_message(self):\r"},{"line_number":110,"context_line":"        self.nb_api._queue.clear()\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_2753a03a","line":107,"updated":"2016-03-24 07:22:47.000000000","message":"wait until vm port is deleted\n\nnetwork.close()","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"ffb4aee334edcaa59adba4bb8035913375ed437d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            if self.check_wanted_vm_offline(self.next_update, mac):\r"},{"line_number":105,"context_line":"                find_wanted_offline_vm \u003d True\r"},{"line_number":106,"context_line":"                break\r"},{"line_number":107,"context_line":"        self.assertTrue(find_wanted_offline_vm)\r"},{"line_number":108,"context_line":"\r"},{"line_number":109,"context_line":"    def test_reply_message(self):\r"},{"line_number":110,"context_line":"        self.nb_api._queue.clear()\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_6a7c2eec","line":107,"in_reply_to":"fa0719c6_07a5ab45","updated":"2016-03-24 12:57:26.000000000","message":"yes, I have found the bug, I\u0027ll modify it, thanks:)","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"70863cd4904eb2833d6a9009fda50ca607470ae7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            if self.check_wanted_vm_offline(self.next_update, mac):\r"},{"line_number":105,"context_line":"                find_wanted_offline_vm \u003d True\r"},{"line_number":106,"context_line":"                break\r"},{"line_number":107,"context_line":"        self.assertTrue(find_wanted_offline_vm)\r"},{"line_number":108,"context_line":"\r"},{"line_number":109,"context_line":"    def test_reply_message(self):\r"},{"line_number":110,"context_line":"        self.nb_api._queue.clear()\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_d44366ad","line":107,"in_reply_to":"fa0719c6_2753a03a","updated":"2016-03-24 11:42:20.000000000","message":"I have invoked the store method which will let the network resource be released when the teardown method of DFTestBase is invoked, so the resource will be released eventually, but if we want to release the resource immediately, I can add the close method","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"20638746900a5aa2258a9646425f701021920013","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            if self.check_wanted_vm_offline(self.next_update, mac):\r"},{"line_number":105,"context_line":"                find_wanted_offline_vm \u003d True\r"},{"line_number":106,"context_line":"                break\r"},{"line_number":107,"context_line":"        self.assertTrue(find_wanted_offline_vm)\r"},{"line_number":108,"context_line":"\r"},{"line_number":109,"context_line":"    def test_reply_message(self):\r"},{"line_number":110,"context_line":"        self.nb_api._queue.clear()\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_07a5ab45","line":107,"in_reply_to":"fa0719c6_d44366ad","updated":"2016-03-24 12:48:49.000000000","message":"Thanks for your reminding. Actually the vm needs to be destroyed, and it takes some time on removing the ports. If you close all of them in the tearDown function, it may fail. The network.close() will raise PortExist error.\n\nSee: https://github.com/openstack/dragonflow/blob/master/dragonflow/tests/fullstack/test_l2_multicast.py#L88-L95","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ae9fcb4d15a2f9734c94d893452ae5de997a74d4","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            \u0027name\u0027: \u0027private\u0027,\r"},{"line_number":118,"context_line":"            \u0027enable_dhcp\u0027: True}\r"},{"line_number":119,"context_line":"        self.neutron.create_subnet({\u0027subnet\u0027: subnet})\r"},{"line_number":120,"context_line":"\r"},{"line_number":121,"context_line":"        vm1 \u003d self.store(objects.VMTestObj(self, self.neutron))\r"},{"line_number":122,"context_line":"        vm1.create(network\u003dnetwork)\r"},{"line_number":123,"context_line":"        self.assertIsNotNone(vm1.server.addresses[\u0027private\u0027])\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_a73df0de","line":120,"updated":"2016-03-24 07:22:47.000000000","message":"self.assertTrue(network.exists())\nself.assertTrue(subnet.exists())","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"70863cd4904eb2833d6a9009fda50ca607470ae7","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            \u0027name\u0027: \u0027private\u0027,\r"},{"line_number":118,"context_line":"            \u0027enable_dhcp\u0027: True}\r"},{"line_number":119,"context_line":"        self.neutron.create_subnet({\u0027subnet\u0027: subnet})\r"},{"line_number":120,"context_line":"\r"},{"line_number":121,"context_line":"        vm1 \u003d self.store(objects.VMTestObj(self, self.neutron))\r"},{"line_number":122,"context_line":"        vm1.create(network\u003dnetwork)\r"},{"line_number":123,"context_line":"        self.assertIsNotNone(vm1.server.addresses[\u0027private\u0027])\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_f41f8ab4","line":120,"in_reply_to":"fa0719c6_a73df0de","updated":"2016-03-24 11:42:20.000000000","message":"ok","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ae9fcb4d15a2f9734c94d893452ae5de997a74d4","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.assertIsNotNone(mac2)\r"},{"line_number":132,"context_line":"\r"},{"line_number":133,"context_line":"        #wait for ovsdb monitor messages put into queue\r"},{"line_number":134,"context_line":"        time.sleep(3)\r"},{"line_number":135,"context_line":"        self.assertTrue(self.queue_has_data(self.nb_api._queue))\r"},{"line_number":136,"context_line":"        find_wanted_vm1 \u003d False\r"},{"line_number":137,"context_line":"        find_wanted_vm2 \u003d False\r"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_472fb4a0","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":21},"updated":"2016-03-24 07:22:47.000000000","message":"time.sleep(utils.DEFAULT_CMD_TIMEOUT)","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ae9fcb4d15a2f9734c94d893452ae5de997a74d4","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            else:\r"},{"line_number":149,"context_line":"                continue\r"},{"line_number":150,"context_line":"        self.assertTrue(find_wanted_vm1)\r"},{"line_number":151,"context_line":"        self.assertTrue(find_wanted_vm2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_871b8c80","line":151,"updated":"2016-03-24 07:22:47.000000000","message":"vm1.close()\nvm2.close()\n\nwait until vm port are all deleted\n\nnetwork.close()","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"20638746900a5aa2258a9646425f701021920013","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            else:\r"},{"line_number":149,"context_line":"                continue\r"},{"line_number":150,"context_line":"        self.assertTrue(find_wanted_vm1)\r"},{"line_number":151,"context_line":"        self.assertTrue(find_wanted_vm2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_671bc781","line":151,"in_reply_to":"fa0719c6_871b8c80","updated":"2016-03-24 12:48:49.000000000","message":"See the explanation above. Thanks.","commit_id":"9258bd98822d69d5a1320ed4f6c7d51a5cd828ba"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"42a22ea835397832409bf569f09fed74cbb4511b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        else:\r"},{"line_number":68,"context_line":"            return True\r"},{"line_number":69,"context_line":"\r"},{"line_number":70,"context_line":"    def get_vm_port(self, mac):\r"},{"line_number":71,"context_line":"        lports \u003d self.nb_api.get_all_logical_ports()\r"},{"line_number":72,"context_line":"        for lport in lports:\r"},{"line_number":73,"context_line":"            if lport.get_mac() \u003d\u003d mac:\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"da0c15f0_0160bc34","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":19},"updated":"2016-03-25 03:50:52.000000000","message":"Considering using get_vm_port_by_mac_address","commit_id":"c032d71b223d27224578ad44af5df70ba9dbf1bd"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"42a22ea835397832409bf569f09fed74cbb4511b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.assertIsNotNone(vm.server.addresses[\u0027private\u0027])\r"},{"line_number":96,"context_line":"        mac \u003d vm.server.addresses[\u0027private\u0027][0][\u0027OS-EXT-IPS-MAC:mac_addr\u0027]\r"},{"line_number":97,"context_line":"        self.assertIsNotNone(mac)\r"},{"line_number":98,"context_line":"        #wait for ovsdb monitor messages put into queue\r"},{"line_number":99,"context_line":"        time.sleep(utils.DEFAULT_CMD_TIMEOUT)\r"},{"line_number":100,"context_line":"        self.assertTrue(self.queue_has_data(self.nb_api._queue))\r"},{"line_number":101,"context_line":"        find_wanted_online_vm \u003d False\r"},{"line_number":102,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"da0c15f0_7ce79f12","line":99,"range":{"start_line":98,"start_character":8,"end_line":99,"end_character":45},"updated":"2016-03-25 03:50:52.000000000","message":"how to make sure this time is suitable? It\u0027s better to get queue status periodic, then it maybe return asap. and please use wait_until_true instead of this one.","commit_id":"c032d71b223d27224578ad44af5df70ba9dbf1bd"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"42a22ea835397832409bf569f09fed74cbb4511b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"\r"},{"line_number":109,"context_line":"        self.nb_api._queue.clear()\r"},{"line_number":110,"context_line":"        vm.close()\r"},{"line_number":111,"context_line":"        time.sleep(utils.DEFAULT_CMD_TIMEOUT)\r"},{"line_number":112,"context_line":"        self.assertTrue(self.queue_has_data(self.nb_api._queue))\r"},{"line_number":113,"context_line":"        find_wanted_offline_vm \u003d False\r"},{"line_number":114,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"da0c15f0_1ccf83b1","line":111,"range":{"start_line":111,"start_character":7,"end_line":111,"end_character":45},"updated":"2016-03-25 03:50:52.000000000","message":"ditto","commit_id":"c032d71b223d27224578ad44af5df70ba9dbf1bd"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"42a22ea835397832409bf569f09fed74cbb4511b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        mac2 \u003d vm2.server.addresses[\u0027private\u0027][0][\u0027OS-EXT-IPS-MAC:mac_addr\u0027]\r"},{"line_number":152,"context_line":"        self.assertIsNotNone(mac2)\r"},{"line_number":153,"context_line":"\r"},{"line_number":154,"context_line":"        #wait for ovsdb monitor messages put into queue\r"},{"line_number":155,"context_line":"        time.sleep(utils.DEFAULT_CMD_TIMEOUT)\r"},{"line_number":156,"context_line":"        self.assertTrue(self.queue_has_data(self.nb_api._queue))\r"},{"line_number":157,"context_line":"        find_wanted_vm1 \u003d False\r"},{"line_number":158,"context_line":"        find_wanted_vm2 \u003d False\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"da0c15f0_fc044fc7","line":155,"range":{"start_line":154,"start_character":2,"end_line":155,"end_character":45},"updated":"2016-03-25 03:50:52.000000000","message":"ditto","commit_id":"c032d71b223d27224578ad44af5df70ba9dbf1bd"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from dragonflow.tests.fullstack import test_objects as objects\r"},{"line_number":17,"context_line":"\r"},{"line_number":18,"context_line":"\r"},{"line_number":19,"context_line":"class TestOvsdbMonitor(test_base.DFTestBase):\r"},{"line_number":20,"context_line":"    def setUp(self):\r"},{"line_number":21,"context_line":"        super(TestOvsdbMonitor, self).setUp()\r"},{"line_number":22,"context_line":"        self.ovsdb_monitor \u003d OvsdbMonitor(\"127.0.0.1\", \"6640\", self.nb_api)\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_cbacc8a2","line":19,"updated":"2016-03-28 14:38:01.000000000","message":"Consider renaming private methods from \u003cmethod name\u003e to _\u003cmethod name\u003e","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"fa83f2cfd281a2232d6c8311d8faff68da52a187","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from dragonflow.tests.fullstack import test_objects as objects\r"},{"line_number":17,"context_line":"\r"},{"line_number":18,"context_line":"\r"},{"line_number":19,"context_line":"class TestOvsdbMonitor(test_base.DFTestBase):\r"},{"line_number":20,"context_line":"    def setUp(self):\r"},{"line_number":21,"context_line":"        super(TestOvsdbMonitor, self).setUp()\r"},{"line_number":22,"context_line":"        self.ovsdb_monitor \u003d OvsdbMonitor(\"127.0.0.1\", \"6640\", self.nb_api)\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_bb69368e","line":19,"in_reply_to":"da0c15f0_cbacc8a2","updated":"2016-03-29 07:24:27.000000000","message":"ok","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        super(TestOvsdbMonitor, self).tearDown()\r"},{"line_number":27,"context_line":"        self.ovsdb_monitor.stop()\r"},{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"    def queue_has_data(self, queue):\r"},{"line_number":30,"context_line":"        if queue.qsize() \u003e 0:\r"},{"line_number":31,"context_line":"            return True\r"},{"line_number":32,"context_line":"        else:\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_2bee24ec","line":29,"updated":"2016-03-28 14:38:01.000000000","message":"I can\u0027t find where this method is used.","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"fa83f2cfd281a2232d6c8311d8faff68da52a187","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        super(TestOvsdbMonitor, self).tearDown()\r"},{"line_number":27,"context_line":"        self.ovsdb_monitor.stop()\r"},{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"    def queue_has_data(self, queue):\r"},{"line_number":30,"context_line":"        if queue.qsize() \u003e 0:\r"},{"line_number":31,"context_line":"            return True\r"},{"line_number":32,"context_line":"        else:\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_7b1dde0e","line":29,"in_reply_to":"da0c15f0_2bee24ec","updated":"2016-03-29 07:24:27.000000000","message":"I forget to delete it:)","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":79,"context_line":"\r"},{"line_number":80,"context_line":"    def get_wanted_vm_online(self, mac):\r"},{"line_number":81,"context_line":"        find_wanted_online_vm \u003d False\r"},{"line_number":82,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"},{"line_number":83,"context_line":"            self.next_update \u003d self.nb_api._queue.get()\r"},{"line_number":84,"context_line":"            if self.check_wanted_vm_online(self.next_update, mac):\r"},{"line_number":85,"context_line":"                find_wanted_online_vm \u003d True\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_2b1f4360","line":82,"updated":"2016-03-28 14:38:01.000000000","message":"I think nb_api\u0027s _queue object is only updated when it is run via the DF controller. I don\u0027t think anything is populating it in this context.\n\nOtherwise, how do you make sure to see the event before it is removed from the queue and processed?","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"fa83f2cfd281a2232d6c8311d8faff68da52a187","unresolved":false,"context_lines":[{"line_number":79,"context_line":"\r"},{"line_number":80,"context_line":"    def get_wanted_vm_online(self, mac):\r"},{"line_number":81,"context_line":"        find_wanted_online_vm \u003d False\r"},{"line_number":82,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"},{"line_number":83,"context_line":"            self.next_update \u003d self.nb_api._queue.get()\r"},{"line_number":84,"context_line":"            if self.check_wanted_vm_online(self.next_update, mac):\r"},{"line_number":85,"context_line":"                find_wanted_online_vm \u003d True\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_7b6afe1b","line":82,"in_reply_to":"da0c15f0_2b1f4360","updated":"2016-03-29 07:24:27.000000000","message":"In fullstack context I start a new ovsdb monitor green thread and use the nb_api which is initialized in the DFTestBase, so the nb_api._queue is separate with the queue in DF controller context, this queue is only used by my ovsdb monitor fullstack code, it will not affect the queue in DF controller:)","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"},{"line_number":83,"context_line":"            self.next_update \u003d self.nb_api._queue.get()\r"},{"line_number":84,"context_line":"            if self.check_wanted_vm_online(self.next_update, mac):\r"},{"line_number":85,"context_line":"                find_wanted_online_vm \u003d True\r"},{"line_number":86,"context_line":"                break\r"},{"line_number":87,"context_line":"        if find_wanted_online_vm:\r"},{"line_number":88,"context_line":"            return None\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_0b487f5a","line":85,"updated":"2016-03-28 14:38:01.000000000","message":"Consider \u0027return True\u0027 here, and False if the loop ends (and therefore doesn\u0027t find the event).","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"fa83f2cfd281a2232d6c8311d8faff68da52a187","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"},{"line_number":83,"context_line":"            self.next_update \u003d self.nb_api._queue.get()\r"},{"line_number":84,"context_line":"            if self.check_wanted_vm_online(self.next_update, mac):\r"},{"line_number":85,"context_line":"                find_wanted_online_vm \u003d True\r"},{"line_number":86,"context_line":"                break\r"},{"line_number":87,"context_line":"        if find_wanted_online_vm:\r"},{"line_number":88,"context_line":"            return None\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_1bc78213","line":85,"in_reply_to":"da0c15f0_0b487f5a","updated":"2016-03-29 07:24:27.000000000","message":"ok","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        else:\r"},{"line_number":90,"context_line":"            return mac\r"},{"line_number":91,"context_line":"\r"},{"line_number":92,"context_line":"    def get_wanted_vm_offline(self, mac):\r"},{"line_number":93,"context_line":"        find_wanted_offline_vm \u003d False\r"},{"line_number":94,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"},{"line_number":95,"context_line":"            self.next_update \u003d self.nb_api._queue.get()\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_eb69cbbf","line":92,"updated":"2016-03-28 14:38:01.000000000","message":"Same two remarks here as in \u0027get_wanted_vm_online\u0027","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        else:\r"},{"line_number":102,"context_line":"            return mac\r"},{"line_number":103,"context_line":"\r"},{"line_number":104,"context_line":"    def get_all_wanted_vms_online(self, mac1, mac2):\r"},{"line_number":105,"context_line":"        find_wanted_vm1 \u003d False\r"},{"line_number":106,"context_line":"        find_wanted_vm2 \u003d False\r"},{"line_number":107,"context_line":"        while self.nb_api._queue.qsize() \u003e 0:\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_8bce4fb2","line":104,"updated":"2016-03-28 14:38:01.000000000","message":"Same remarks here as above","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        mac \u003d vm.server.addresses[\u0027private\u0027][0][\u0027OS-EXT-IPS-MAC:mac_addr\u0027]\r"},{"line_number":143,"context_line":"        self.assertIsNotNone(mac)\r"},{"line_number":144,"context_line":"        #wait util get the message we want\r"},{"line_number":145,"context_line":"        utils.wait_until_none(\r"},{"line_number":146,"context_line":"            lambda: self.get_wanted_vm_online(mac), timeout\u003d30, sleep\u003d1,\r"},{"line_number":147,"context_line":"            exception\u003dException(\u0027Could not get wanted online vm\u0027)\r"},{"line_number":148,"context_line":"        )\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_cbe32704","line":145,"updated":"2016-03-28 14:38:01.000000000","message":"This test is counter intuitive - get_wanted_vm_online returns None when the VM is found (instead of true), and then you succeed if the result is None.\n\nWhy not return True when the test succeeds, and \u0027wait_unitl_true\u0027?","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"fa83f2cfd281a2232d6c8311d8faff68da52a187","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        mac \u003d vm.server.addresses[\u0027private\u0027][0][\u0027OS-EXT-IPS-MAC:mac_addr\u0027]\r"},{"line_number":143,"context_line":"        self.assertIsNotNone(mac)\r"},{"line_number":144,"context_line":"        #wait util get the message we want\r"},{"line_number":145,"context_line":"        utils.wait_until_none(\r"},{"line_number":146,"context_line":"            lambda: self.get_wanted_vm_online(mac), timeout\u003d30, sleep\u003d1,\r"},{"line_number":147,"context_line":"            exception\u003dException(\u0027Could not get wanted online vm\u0027)\r"},{"line_number":148,"context_line":"        )\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_3bed268c","line":145,"in_reply_to":"da0c15f0_cbe32704","updated":"2016-03-29 07:24:27.000000000","message":"ok, I\u0027ll use wait_util_true directly instead of wait_util_none","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        #wait util get the message we want\r"},{"line_number":151,"context_line":"        vm.close()\r"},{"line_number":152,"context_line":"        utils.wait_until_none(\r"},{"line_number":153,"context_line":"            lambda: self.get_wanted_vm_offline(mac), timeout\u003d30, sleep\u003d1,\r"},{"line_number":154,"context_line":"            exception\u003dException(\u0027Could not get wanted offline vm\u0027)\r"},{"line_number":155,"context_line":"        )\r"},{"line_number":156,"context_line":"        utils.wait_until_none(\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_6bbbfbe5","line":153,"updated":"2016-03-28 14:38:01.000000000","message":"Same here.","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"95e800fc27e2c1e54d918aa1ff8b1f28f1315c98","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        mac2 \u003d vm2.server.addresses[\u0027private\u0027][0][\u0027OS-EXT-IPS-MAC:mac_addr\u0027]\r"},{"line_number":186,"context_line":"        self.assertIsNotNone(mac2)\r"},{"line_number":187,"context_line":"\r"},{"line_number":188,"context_line":"        #wait util get the message we want\r"},{"line_number":189,"context_line":"        utils.wait_until_none(\r"},{"line_number":190,"context_line":"            lambda: self.get_all_wanted_vms_online(mac1, mac2),\r"},{"line_number":191,"context_line":"            timeout\u003d30, sleep\u003d1,\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"da0c15f0_ab835303","line":188,"updated":"2016-03-28 14:38:01.000000000","message":"Same remarks here as in the previous tests.","commit_id":"707c1896f5b7ab1c1476981db95001c25d63173b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"11c100bc9575f62cae2d68647cd59e4e7a0b3ab7","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    def setUp(self):\r"},{"line_number":23,"context_line":"        super(TestOvsdbMonitor, self).setUp()\r"},{"line_number":24,"context_line":"        self.set_wanted_vms \u003d set()\r"},{"line_number":25,"context_line":"        self.ovsdb_monitor \u003d OvsdbMonitor(\"127.0.0.1\", \"6640\", self.nb_api)\r"},{"line_number":26,"context_line":"        self.ovsdb_monitor.daemonize()\r"},{"line_number":27,"context_line":"\r"},{"line_number":28,"context_line":"    def tearDown(self):\r"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_e8259fc2","line":25,"range":{"start_line":25,"start_character":42,"end_line":25,"end_character":61},"updated":"2016-03-29 09:19:09.000000000","message":"after the fix bug patch https://review.openstack.org/#/c/298167/ merged, I\u0027ll chang the input args here","commit_id":"2057d4b42fdb00c9b9829e854a088d857fde3ab2"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1e6887e8a0c8d208259a8672f085c2adb52b713a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def _check_wanted_vm_online(self, update, mac):\r"},{"line_number":33,"context_line":"        if update.table !\u003d \"ovsinterface\":\r"},{"line_number":34,"context_line":"            return False\r"},{"line_number":35,"context_line":"        if update.action !\u003d \"create\" and update.action !\u003d \"update\":\r"},{"line_number":36,"context_line":"            return False\r"},{"line_number":37,"context_line":"        _interface \u003d update.value\r"},{"line_number":38,"context_line":"        if _interface is None:\r"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a1b2928_7cd5bf41","line":35,"range":{"start_line":35,"start_character":59,"end_line":35,"end_character":65},"updated":"2016-04-11 19:06:29.000000000","message":"This event is changed to \u0027set\u0027 in:\nhttps://review.openstack.org/#/c/303284\n\nI think it should be modified here as well.","commit_id":"9b700bd087a0676080241ed11164f25c0d8ec829"}]}
