)]}'
{"tempest/api/network/test_ports.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"fd06429b2231dcedcde2eb529c6740238e145032","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            vif_details \u003d port[\u0027binding:vif_details\u0027][\u0027port_filter\u0027]"},{"line_number":194,"context_line":"            self.assertIsNotNone(vif_details)"},{"line_number":195,"context_line":"            bound_ports.append(port)"},{"line_number":196,"context_line":"        self.assertNotEmpty(bound_ports)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":199,"context_line":"    def test_show_port_binding_ext_attr(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F9ZgQ%3D","line":196,"updated":"2014-04-04 19:48:04.000000000","message":"can we provide a message on failure for 2nd param to explain what went terribly wrong (also possibly dump the ports_list in it so we can see what the port status is.)","commit_id":"5d8f6be920c858b765bae0b42d34f2fe931bd032"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"f496250b4069b651d1b81692f571d91303b76deb","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        resp, body \u003d self.admin_client.list_ports()"},{"line_number":193,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":194,"context_line":"        ports_list \u003d body[\u0027ports\u0027]"},{"line_number":195,"context_line":"        self.assertIn(updated_port, ports_list)"},{"line_number":196,"context_line":"        listed_port \u003d [p for p in ports_list if p[\u0027id\u0027] \u003d\u003d port[\u0027id\u0027]]"},{"line_number":197,"context_line":"        self.assertEquals(len(listed_port), 1)"},{"line_number":198,"context_line":"        self.assertEquals(listed_port[0][\u0027binding:host_id\u0027], self.host_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9YS4%3D","line":195,"updated":"2014-04-04 23:11:44.000000000","message":"it looks like port status goes from DOWN to ACTIVE between your update_port and list_ports, so I am not sure you can expect that this assertIn will reliably pass as the status of the port may change in between to two calls, as it did in the run where VMware Mine Sweeper failed.","commit_id":"1fae6bde4d56fd6793a9b773e0ae745a3d0e426d"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"cffc143a6a0cab0164a945ac6c6a9ae027798d0e","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        resp, body \u003d self.admin_client.list_ports()"},{"line_number":193,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":194,"context_line":"        ports_list \u003d body[\u0027ports\u0027]"},{"line_number":195,"context_line":"        self.assertIn(updated_port, ports_list)"},{"line_number":196,"context_line":"        listed_port \u003d [p for p in ports_list if p[\u0027id\u0027] \u003d\u003d port[\u0027id\u0027]]"},{"line_number":197,"context_line":"        self.assertEquals(len(listed_port), 1)"},{"line_number":198,"context_line":"        self.assertEquals(listed_port[0][\u0027binding:host_id\u0027], self.host_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9YRI%3D","line":195,"in_reply_to":"AAAAWH%2F9YS4%3D","updated":"2014-04-04 23:18:02.000000000","message":"Yes that\u0027s a good point that I missed, thanks Armando.\n\nYou probably should probably just check that the port is in the list by using the id. Then only verify the metada which will remain static.","commit_id":"1fae6bde4d56fd6793a9b773e0ae745a3d0e426d"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"cd4d70221adf047b2c0b4e7243b00d1d2c830faa","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        # Update the port\u0027s binding attributes so that is now \u0027bound\u0027"},{"line_number":191,"context_line":"        # to a host"},{"line_number":192,"context_line":"        update_body \u003d {\"binding:host_id\": self.host_id}"},{"line_number":193,"context_line":"        resp, body \u003d self.admin_client.update_port(port[\u0027id\u0027], **update_body)"},{"line_number":194,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        # List all ports, ensure new port is part of list and its binding"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2F7zo%3D","line":193,"updated":"2014-04-09 11:49:12.000000000","message":"unused variable body","commit_id":"e508c44b89f22b052e2755da9fad07ba5cf2b3c4"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"ef954efa898fb2f214a31d550138bfdbe339b5d3","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        pids_list \u003d [p[\u0027id\u0027] for p in ports_list]"},{"line_number":202,"context_line":"        self.assertIn(port[\u0027id\u0027], pids_list)"},{"line_number":203,"context_line":"        listed_port \u003d [p for p in ports_list if p[\u0027id\u0027] \u003d\u003d port[\u0027id\u0027]]"},{"line_number":204,"context_line":"        self.assertEqual(len(listed_port), 1)"},{"line_number":205,"context_line":"        self.assertEqual(listed_port[0][\u0027binding:host_id\u0027], self.host_id)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2Ft3g%3D","line":204,"updated":"2014-04-10 21:50:14.000000000","message":"can we get the portlist and port id dumped in the 3rd param if this fails?","commit_id":"debc6a3a1290875a8e3b5d4a2675871eaf9ebef8"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"7a927e4d1ba76f32a903a6806750c02b4c6573cc","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        pids_list \u003d [p[\u0027id\u0027] for p in ports_list]"},{"line_number":202,"context_line":"        self.assertIn(port[\u0027id\u0027], pids_list)"},{"line_number":203,"context_line":"        listed_port \u003d [p for p in ports_list if p[\u0027id\u0027] \u003d\u003d port[\u0027id\u0027]]"},{"line_number":204,"context_line":"        self.assertEqual(len(listed_port), 1,"},{"line_number":205,"context_line":"                         \u0027Multiple ports listed with id %s in ports listing: \u0027"},{"line_number":206,"context_line":"                         \u0027%s\u0027 % (port[\u0027id\u0027], ports_list))"},{"line_number":207,"context_line":"        self.assertEqual(listed_port[0][\u0027binding:host_id\u0027], self.host_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FrqY%3D","line":204,"updated":"2014-04-11 06:56:05.000000000","message":"usually self.assertEqual(expected result, actual result)","commit_id":"900d1310bbae0543b9483ac499cb72f16d1fbf83"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"7a927e4d1ba76f32a903a6806750c02b4c6573cc","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        self.assertEqual(len(listed_port), 1,"},{"line_number":205,"context_line":"                         \u0027Multiple ports listed with id %s in ports listing: \u0027"},{"line_number":206,"context_line":"                         \u0027%s\u0027 % (port[\u0027id\u0027], ports_list))"},{"line_number":207,"context_line":"        self.assertEqual(listed_port[0][\u0027binding:host_id\u0027], self.host_id)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":210,"context_line":"    def test_show_port_binding_ext_attr(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FrqU%3D","line":207,"updated":"2014-04-11 06:56:05.000000000","message":"ditto","commit_id":"900d1310bbae0543b9483ac499cb72f16d1fbf83"}]}
