)]}'
{"tempest/api/network/admin/test_ports.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f9a148bdfe83a4bd39a6be4071540ff39f0b66","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def resource_setup(cls):"},{"line_number":38,"context_line":"        super(PortsAdminExtendedAttrsTestJSON, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":40,"context_line":"        hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":41,"context_line":"        cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":44,"context_line":"    def test_create_port_binding_ext_attr(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_6c8ebf28","line":41,"range":{"start_line":40,"start_character":0,"end_line":41,"end_character":73},"updated":"2018-04-16 02:52:53.000000000","message":"maybe you can add:\nif CONF.service_available.nova:","commit_id":"c1f25d03c6ef4748fc968ecbbff89bc76f892071"},{"author":{"_account_id":22078,"name":"Damon Li","email":"likailichee@gmail.com","username":"likai"},"change_message_id":"03b2766ab56ecea8e136a1d11f3fa6766c1d8301","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def resource_setup(cls):"},{"line_number":38,"context_line":"        super(PortsAdminExtendedAttrsTestJSON, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":40,"context_line":"        hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":41,"context_line":"        cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":44,"context_line":"    def test_create_port_binding_ext_attr(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_8c99d320","line":41,"range":{"start_line":40,"start_character":0,"end_line":41,"end_character":73},"in_reply_to":"9f6a8fd7_6c8ebf28","updated":"2018-04-16 03:21:38.000000000","message":"Thanks zhufl, good solution! Will update it.","commit_id":"c1f25d03c6ef4748fc968ecbbff89bc76f892071"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f9a148bdfe83a4bd39a6be4071540ff39f0b66","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":44,"context_line":"    def test_create_port_binding_ext_attr(self):"},{"line_number":45,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027],"},{"line_number":46,"context_line":"                     \"binding:host_id\": self.host_id}"},{"line_number":47,"context_line":"        body \u003d self.admin_ports_client.create_port(**post_body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_0c9f0351","line":44,"range":{"start_line":44,"start_character":4,"end_line":44,"end_character":48},"updated":"2018-04-16 02:52:53.000000000","message":"add @utils.services(\u0027compute\u0027)","commit_id":"c1f25d03c6ef4748fc968ecbbff89bc76f892071"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"97ed1e030dd8c1d4c8dcd622075faa9a51a25880","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                         \u0027%s\u0027 % (port[\u0027id\u0027], ports_list))"},{"line_number":90,"context_line":"        self.assertEqual(self.host_id, listed_port[0][\u0027binding:host_id\u0027])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @decorators.idempotent_id(\u0027b54ac0ff-35fc-4c79-9ca3-c7dbd4ea4f13\u0027)"},{"line_number":93,"context_line":"    def test_show_port_binding_ext_attr(self):"},{"line_number":94,"context_line":"        body \u003d self.admin_ports_client.create_port("},{"line_number":95,"context_line":"            network_id\u003dself.network[\u0027id\u0027])"},{"line_number":96,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":97,"context_line":"        self.addCleanup(self.admin_ports_client.delete_port, port[\u0027id\u0027])"},{"line_number":98,"context_line":"        body \u003d self.admin_ports_client.show_port(port[\u0027id\u0027])"},{"line_number":99,"context_line":"        show_port \u003d body[\u0027port\u0027]"},{"line_number":100,"context_line":"        self.assertEqual(port[\u0027binding:host_id\u0027],"},{"line_number":101,"context_line":"                         show_port[\u0027binding:host_id\u0027])"},{"line_number":102,"context_line":"        self.assertEqual(port[\u0027binding:vif_type\u0027],"},{"line_number":103,"context_line":"                         show_port[\u0027binding:vif_type\u0027])"},{"line_number":104,"context_line":"        self.assertEqual(port[\u0027binding:vif_details\u0027],"},{"line_number":105,"context_line":"                         show_port[\u0027binding:vif_details\u0027])"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"class PortsAdminExtendedAttrsIpV6TestJSON(PortsAdminExtendedAttrsTestJSON):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_86b3120a","line":105,"range":{"start_line":92,"start_character":0,"end_line":105,"end_character":58},"updated":"2018-04-14 00:33:15.000000000","message":"I don\u0027t think this test needs Nova as self.host_id isn\u0027t being used. Consider moving this into a separate class as this doesn\u0027t need to be skipped like the others.\n\nThough that will require moving _ip_version \u003d 6 version of the test as well.\n\nAlthough the test appears in interop so maybe moving it is not possible: http://codesearch.openstack.org/?q\u003dtest_show_port_binding_ext_attr\u0026i\u003dnope\u0026files\u003d\u0026repos\u003dinterop","commit_id":"c1f25d03c6ef4748fc968ecbbff89bc76f892071"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a6cbe35c378196b1a66bb31956e7ae80841a9eed","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def resource_setup(cls):"},{"line_number":33,"context_line":"        super(PortsAdminExtendedAttrsTestJSON, cls).resource_setup()"},{"line_number":34,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":35,"context_line":"        if CONF.service_available.nova:"},{"line_number":36,"context_line":"            hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":37,"context_line":"            cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_88e67f16","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":39},"updated":"2018-04-17 05:58:53.000000000","message":"There is no else condition here and it leave cls.host_id undefined if nova is not available.\n\nWe can leave this as it is and tagging tests with \u0027compute\u0027 service is enough.","commit_id":"94035cd99386307cdf587601df620444a8d9b46a"},{"author":{"_account_id":22078,"name":"Damon Li","email":"likailichee@gmail.com","username":"likai"},"change_message_id":"879f725962262bf08ff76021e13778d6b304d1fa","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def resource_setup(cls):"},{"line_number":33,"context_line":"        super(PortsAdminExtendedAttrsTestJSON, cls).resource_setup()"},{"line_number":34,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":35,"context_line":"        if CONF.service_available.nova:"},{"line_number":36,"context_line":"            hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":37,"context_line":"            cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_88767fd8","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":39},"in_reply_to":"9f6a8fd7_88e67f16","updated":"2018-04-17 06:32:18.000000000","message":"Done","commit_id":"94035cd99386307cdf587601df620444a8d9b46a"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"2776dc6752d5197853ffa6cf15430b4e5fc5ae62","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        super(PortsAdminExtendedAttrsTestJSON, cls).resource_setup()"},{"line_number":34,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":35,"context_line":"        if CONF.service_available.nova:"},{"line_number":36,"context_line":"            hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":37,"context_line":"            cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_dce8b817","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":60},"updated":"2018-04-17 06:48:57.000000000","message":"this will fail without CONF.service_available.nova?","commit_id":"94035cd99386307cdf587601df620444a8d9b46a"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"5cc0227c32138d1f371029f69955715c6501fd7a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def resource_setup(cls):"},{"line_number":33,"context_line":"        super(PortsAdminExtendedAttrsTestJSON, cls).resource_setup()"},{"line_number":34,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":35,"context_line":"        if CONF.service_available.nova:"},{"line_number":36,"context_line":"            hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":37,"context_line":"            cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":40,"context_line":"    @utils.services(\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_03440346","line":37,"range":{"start_line":35,"start_character":8,"end_line":37,"end_character":77},"updated":"2018-05-30 05:40:28.000000000","message":"There is no else condition, so host_id will not get assigned any value if \"CONF.service_available.nova\" is not true and it can cause failure","commit_id":"7ebd491375a487a2daf5a6c77b69c1f7da58790f"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5eddb36a4ce9bc56c75ab28256041929d43c8370","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        if CONF.service_available.nova:"},{"line_number":37,"context_line":"            hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":38,"context_line":"            cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":39,"context_line":"        else:"},{"line_number":40,"context_line":"            cls.host_id \u003d None"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":43,"context_line":"    @utils.services(\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_922116b7","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":30},"updated":"2019-08-05 01:43:39.000000000","message":"This seems can be removed, because testcases using cls.host_id will be skipped if cls.host_id is not assigned.","commit_id":"675f2cf99a41e5782fa186e10f82c0c97dc6be61"},{"author":{"_account_id":22078,"name":"Damon Li","email":"likailichee@gmail.com","username":"likai"},"change_message_id":"3c3667f781b2d2d979559d86637ffb6007c43def","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        if CONF.service_available.nova:"},{"line_number":37,"context_line":"            hyper_list \u003d cls.hyper_client.list_hypervisors()"},{"line_number":38,"context_line":"            cls.host_id \u003d hyper_list[\u0027hypervisors\u0027][0][\u0027hypervisor_hostname\u0027]"},{"line_number":39,"context_line":"        else:"},{"line_number":40,"context_line":"            cls.host_id \u003d None"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":43,"context_line":"    @utils.services(\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_55b14843","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":30},"in_reply_to":"7faddb67_922116b7","updated":"2019-08-05 02:19:38.000000000","message":"Done","commit_id":"675f2cf99a41e5782fa186e10f82c0c97dc6be61"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"6f23511e22c3667d7eed025568ed40a98e1c5cff","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            cls.host_id \u003d None"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":43,"context_line":"    @utils.services(\u0027compute\u0027)"},{"line_number":44,"context_line":"    def test_create_port_binding_ext_attr(self):"},{"line_number":45,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027],"},{"line_number":46,"context_line":"                     \"binding:host_id\": self.host_id}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_8a67ddb7","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":30},"updated":"2019-07-31 02:25:38.000000000","message":"this notation does the skip on nova.compute do you just want to add it to the test_show_port_binding_ext_attr test case also to support all tests in class?\n\nhttps://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/common/utils/__init__.py#L65","commit_id":"675f2cf99a41e5782fa186e10f82c0c97dc6be61"},{"author":{"_account_id":22078,"name":"Damon Li","email":"likailichee@gmail.com","username":"likai"},"change_message_id":"f035985427da4ea6aa5f03ab5a6b3d7e5bb2fc76","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            cls.host_id \u003d None"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":43,"context_line":"    @utils.services(\u0027compute\u0027)"},{"line_number":44,"context_line":"    def test_create_port_binding_ext_attr(self):"},{"line_number":45,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027],"},{"line_number":46,"context_line":"                     \"binding:host_id\": self.host_id}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_cace3559","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":30},"in_reply_to":"7faddb67_8a67ddb7","updated":"2019-07-31 02:52:09.000000000","message":"I saw test_show_port_binding_ext_attr doesn\u0027t use self.host_id. This case shouldn\u0027t depend on nova-compute service. So I don\u0027t add skip on this case.","commit_id":"675f2cf99a41e5782fa186e10f82c0c97dc6be61"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"3117e84a9e16355043dea87ef102b2c4320fd1dd","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            cls.host_id \u003d None"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @decorators.idempotent_id(\u00278e8569c1-9ac7-44db-8bc1-f5fb2814f29b\u0027)"},{"line_number":43,"context_line":"    @utils.services(\u0027compute\u0027)"},{"line_number":44,"context_line":"    def test_create_port_binding_ext_attr(self):"},{"line_number":45,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027],"},{"line_number":46,"context_line":"                     \"binding:host_id\": self.host_id}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_e35c6c1a","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":30},"in_reply_to":"7faddb67_cace3559","updated":"2019-07-31 20:45:07.000000000","message":"My bad I miss read it.","commit_id":"675f2cf99a41e5782fa186e10f82c0c97dc6be61"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6b7275c3c1f3d65ef65bb31ebac44f10e0fae152","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.network import base"},{"line_number":17,"context_line":"from tempest.lib.common.utils import test_utils"},{"line_number":18,"context_line":"from tempest.common import utils"},{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.lib import decorators"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_b1467e7a","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":26},"updated":"2019-08-06 01:36:01.000000000","message":"These should be before\n\n from tempest.lib.common.utils import test_utils\n\nhttps://logs.opendev.org/66/561166/6/check/openstack-tox-pep8/a3403d8/job-output.txt.gz#_2019-08-05_02_23_35_221970","commit_id":"87d43170f04c7e27ebc879c7c068042f006ae219"},{"author":{"_account_id":22078,"name":"Damon Li","email":"likailichee@gmail.com","username":"likai"},"change_message_id":"4890237d3c9d611984e18dd8d4cb20af44114394","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.network import base"},{"line_number":17,"context_line":"from tempest.lib.common.utils import test_utils"},{"line_number":18,"context_line":"from tempest.common import utils"},{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.lib import decorators"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_37a4be4a","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":26},"in_reply_to":"7faddb67_b1467e7a","updated":"2019-08-06 05:57:27.000000000","message":"Done, Thanks!","commit_id":"87d43170f04c7e27ebc879c7c068042f006ae219"}]}
