)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"fdc96f2dce6a3eb36af5a78279f49bd097552cae","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance Neutron ports update test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Test update ports security groups."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iba96704d132b6f4461b041216817ff718b59db9e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAS3%2F%2FhdM%3D","line":9,"updated":"2013-09-25 09:15:16.000000000","message":"From the change I look through, it doesn\u0027t matter about security groups. Could you please explain more?","commit_id":"22d855ec7e7ecf659adf5943e9977d8f81bad52f"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"92ff7172acb32568ec376fee912d5e62f19364d6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance Neutron ports update test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Test update ports security groups."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iba96704d132b6f4461b041216817ff718b59db9e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAS3%2F%2Fhcs%3D","line":9,"in_reply_to":"AAAAS3%2F%2FhdM%3D","updated":"2013-09-25 09:19:08.000000000","message":"Sorry about that, just remove temporarily to pass Jenkins. \nWill update.\n\nThanks.","commit_id":"22d855ec7e7ecf659adf5943e9977d8f81bad52f"}],"tempest/api/network/test_networks.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"5f5c6629e8d3af2fa2cc5361076ee46918bf1f7e","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        new_port \u003d {"},{"line_number":179,"context_line":"            \u0027name\u0027: rand_name(\"New_Port\"),"},{"line_number":180,"context_line":"            \u0027security_groups\u0027: security_groups"},{"line_number":181,"context_line":"        }"},{"line_number":182,"context_line":"        resp, body \u003d self.client.update_port(port[\u0027id\u0027], **new_port)"},{"line_number":183,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":184,"context_line":"        updated_port \u003d body[\u0027port\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAS3%2F%2FdUI%3D","line":181,"updated":"2013-09-26 12:01:05.000000000","message":"personally I would to this in a different test, and consider adding also the negative test for a non existing security group.","commit_id":"64499d85ec2aa106114227dc14cc4fc0b10aa709"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"328a9be94680af75401ff4263b2a928b6340bf5b","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        new_port \u003d {"},{"line_number":179,"context_line":"            \u0027name\u0027: rand_name(\"New_Port\"),"},{"line_number":180,"context_line":"            \u0027security_groups\u0027: security_groups"},{"line_number":181,"context_line":"        }"},{"line_number":182,"context_line":"        resp, body \u003d self.client.update_port(port[\u0027id\u0027], **new_port)"},{"line_number":183,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":184,"context_line":"        updated_port \u003d body[\u0027port\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAS3%2F%2Fc%2Fo%3D","line":181,"in_reply_to":"AAAAS3%2F%2FdUI%3D","updated":"2013-09-26 13:48:20.000000000","message":"That\u0027s a good idea, will update.","commit_id":"64499d85ec2aa106114227dc14cc4fc0b10aa709"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"cec54a286d878fa7c65a326702809b88ba6b3d37","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        cls.cidr \u003d cls.subnet[\u0027cidr\u0027]"},{"line_number":64,"context_line":"        cls.port \u003d cls.create_port(cls.network)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _delete_security_group(self, secgroup_id):"},{"line_number":67,"context_line":"        resp, _ \u003d self.client.delete_security_group(secgroup_id)"},{"line_number":68,"context_line":"        self.assertEqual(204, resp.status)"},{"line_number":69,"context_line":"        # Asserting that the secgroup is not found in the list"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAS3%2F%2FOSU%3D","line":66,"updated":"2013-10-02 00:07:49.000000000","message":"looks like this is duplicating the stuff in test_security_groups I think you should either move it in base.py","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"4bce71def86cd1e4a10d05128232d35f824e5109","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        cls.cidr \u003d cls.subnet[\u0027cidr\u0027]"},{"line_number":64,"context_line":"        cls.port \u003d cls.create_port(cls.network)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _delete_security_group(self, secgroup_id):"},{"line_number":67,"context_line":"        resp, _ \u003d self.client.delete_security_group(secgroup_id)"},{"line_number":68,"context_line":"        self.assertEqual(204, resp.status)"},{"line_number":69,"context_line":"        # Asserting that the secgroup is not found in the list"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATH%2F%2F1lM%3D","line":66,"in_reply_to":"AAAAS3%2F%2FOSU%3D","updated":"2013-10-09 06:53:18.000000000","message":"I have deleted this function, replaced with directly calling self.addCleanup(self.client.delete_security_group, secgroup_id) to avoid verifying delete_security_group() outside of test_security_group().","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"cec54a286d878fa7c65a326702809b88ba6b3d37","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        resp, body \u003d self.client.create_security_group(name)"},{"line_number":188,"context_line":"        secgroup_id \u003d body[\u0027security_group\u0027][\u0027id\u0027]"},{"line_number":189,"context_line":"        self.addCleanup(self._delete_security_group, secgroup_id)"},{"line_number":190,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":191,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":192,"context_line":"        self.assertEqual(body[\u0027security_group\u0027][\u0027name\u0027], name)"},{"line_number":193,"context_line":"        security_groups \u003d list()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAS3%2F%2FOR4%3D","line":190,"updated":"2013-10-02 00:07:49.000000000","message":"I\u0027d move this on line 184","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"4bce71def86cd1e4a10d05128232d35f824e5109","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        resp, body \u003d self.client.create_security_group(name)"},{"line_number":188,"context_line":"        secgroup_id \u003d body[\u0027security_group\u0027][\u0027id\u0027]"},{"line_number":189,"context_line":"        self.addCleanup(self._delete_security_group, secgroup_id)"},{"line_number":190,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":191,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":192,"context_line":"        self.assertEqual(body[\u0027security_group\u0027][\u0027name\u0027], name)"},{"line_number":193,"context_line":"        security_groups \u003d list()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATH%2F%2F1kU%3D","line":190,"in_reply_to":"AAAAS3%2F%2FOR4%3D","updated":"2013-10-09 06:53:18.000000000","message":"Seems it\u0027s like a stack when performing addCleanup(), if moving it to line 184, action \u0027delete port\u0027 will be pushed to the stack bottom, and action \u0027delete security group\u0027 is pushed to the stack top, at this situation, the security group will be deleted first which will be failed since the port belongs to this group still exists.","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"cec54a286d878fa7c65a326702809b88ba6b3d37","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":206,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":207,"context_line":"        # Verification of port update"},{"line_number":208,"context_line":"        non_exist_sg_id \u003d \u0027fake_secgroup_id\u0027"},{"line_number":209,"context_line":"        security_groups \u003d list()"},{"line_number":210,"context_line":"        security_groups.append(non_exist_sg_id)"},{"line_number":211,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAS3%2F%2FOSI%3D","line":208,"updated":"2013-10-02 00:07:49.000000000","message":"should this be a string, some int or uuid?","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"4bce71def86cd1e4a10d05128232d35f824e5109","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":206,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":207,"context_line":"        # Verification of port update"},{"line_number":208,"context_line":"        non_exist_sg_id \u003d \u0027fake_secgroup_id\u0027"},{"line_number":209,"context_line":"        security_groups \u003d list()"},{"line_number":210,"context_line":"        security_groups.append(non_exist_sg_id)"},{"line_number":211,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATH%2F%2F1l0%3D","line":208,"in_reply_to":"AAAAS3%2F%2FOSI%3D","updated":"2013-10-09 06:53:18.000000000","message":"Done","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"cec54a286d878fa7c65a326702809b88ba6b3d37","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        non_exist_sg_id \u003d \u0027fake_secgroup_id\u0027"},{"line_number":209,"context_line":"        security_groups \u003d list()"},{"line_number":210,"context_line":"        security_groups.append(non_exist_sg_id)"},{"line_number":211,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":212,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":213,"context_line":"                          self.client.update_port_security_groups,"},{"line_number":214,"context_line":"                          port[\u0027id\u0027], security_groups)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAS3%2F%2FOSA%3D","line":211,"updated":"2013-10-02 00:07:49.000000000","message":"I\u0027d move this on line 206","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"4bce71def86cd1e4a10d05128232d35f824e5109","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        non_exist_sg_id \u003d \u0027fake_secgroup_id\u0027"},{"line_number":209,"context_line":"        security_groups \u003d list()"},{"line_number":210,"context_line":"        security_groups.append(non_exist_sg_id)"},{"line_number":211,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":212,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":213,"context_line":"                          self.client.update_port_security_groups,"},{"line_number":214,"context_line":"                          port[\u0027id\u0027], security_groups)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATH%2F%2F1lw%3D","line":211,"in_reply_to":"AAAAS3%2F%2FOSA%3D","updated":"2013-10-09 06:53:18.000000000","message":"Done","commit_id":"2d1d6f2a22663a31a597083a6eeb2e47839a8b08"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ab2aeff6c9c6a33f18649295ebcf20e732e6fa0e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest import exceptions"},{"line_number":23,"context_line":"from tempest.test import attr"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import uuid"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class NetworksTestJSON(base.BaseNetworkTest):"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATH%2F%2FwHk%3D","line":25,"updated":"2013-10-10 10:47:22.000000000","message":"if you need to use uuid, move the import before line 18  (I assume tempest adopts same HACKING rules as other openstack projects).\nAlternatively consider adding uuidutils from openstack/common to tempest.","commit_id":"ba79a02a6ba5a3137bf227f8f8e70c978ce6f87b"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"5f4d1cf83cc64cfe1863afd0c24214c9a891e739","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest import exceptions"},{"line_number":23,"context_line":"from tempest.test import attr"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import uuid"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class NetworksTestJSON(base.BaseNetworkTest):"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATH%2F%2FruE%3D","line":25,"in_reply_to":"AAAATH%2F%2FwHk%3D","updated":"2013-10-11 09:15:12.000000000","message":"Will remote the uuid import.\nFailed to notice the HACKING rules, I will be careful later :).","commit_id":"ba79a02a6ba5a3137bf227f8f8e70c978ce6f87b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ab2aeff6c9c6a33f18649295ebcf20e732e6fa0e","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":197,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":198,"context_line":"        # Verification of port update"},{"line_number":199,"context_line":"        non_exist_sg_id \u003d str(uuid.uuid4())"},{"line_number":200,"context_line":"        security_groups \u003d list()"},{"line_number":201,"context_line":"        security_groups.append(non_exist_sg_id)"},{"line_number":202,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATH%2F%2FwHg%3D","line":199,"updated":"2013-10-10 10:47:22.000000000","message":"If you do not want to import uuid, you can just encode some fake uuid like \u002712345678-1234-1234-1234-123456789098\u0027 - this will be also in accordance with Giulio\u0027s comment on the previous patch.","commit_id":"ba79a02a6ba5a3137bf227f8f8e70c978ce6f87b"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"5f4d1cf83cc64cfe1863afd0c24214c9a891e739","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":197,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":198,"context_line":"        # Verification of port update"},{"line_number":199,"context_line":"        non_exist_sg_id \u003d str(uuid.uuid4())"},{"line_number":200,"context_line":"        security_groups \u003d list()"},{"line_number":201,"context_line":"        security_groups.append(non_exist_sg_id)"},{"line_number":202,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATH%2F%2FruQ%3D","line":199,"in_reply_to":"AAAATH%2F%2FwHg%3D","updated":"2013-10-11 09:15:12.000000000","message":"Thanks, I will encode the fake uuid as you said.","commit_id":"ba79a02a6ba5a3137bf227f8f8e70c978ce6f87b"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"852e1c2f57bab8f697b0f2fe58ec62ad37f40716","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":168,"context_line":"    def test_update_port_with_security_groups(self):"},{"line_number":169,"context_line":"        # Verify that successful port creation, update \u0026 deletion"},{"line_number":170,"context_line":"        resp, body \u003d self.client.create_port(self.network[\u0027id\u0027])"},{"line_number":171,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":172,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":173,"context_line":"        # Verification of port update"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATH%2F%2FaX8%3D","line":170,"updated":"2013-10-16 14:49:38.000000000","message":"Could you give a name to the port ?","commit_id":"eec6562405855197190f09e517b656271e1963c7"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"852e1c2f57bab8f697b0f2fe58ec62ad37f40716","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            port[\u0027id\u0027], security_groups)"},{"line_number":185,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":186,"context_line":"        updated_port \u003d body[\u0027port\u0027]"},{"line_number":187,"context_line":"        self.assertEqual(updated_port[\u0027security_groups\u0027], security_groups)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":190,"context_line":"    def test_update_port_with_nonexistent_security_groups(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATH%2F%2FaXs%3D","line":187,"updated":"2013-10-16 14:49:38.000000000","message":"Could you assert the name of the port after the update ?","commit_id":"eec6562405855197190f09e517b656271e1963c7"}],"tempest/services/network/json/network_client.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"fdc96f2dce6a3eb36af5a78279f49bd097552cae","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def update_port(self, port_id, **kwargs):"},{"line_number":180,"context_line":"        put_body \u003d {"},{"line_number":181,"context_line":"            \u0027port\u0027: kwargs"},{"line_number":182,"context_line":"        }"},{"line_number":183,"context_line":"        body \u003d json.dumps(put_body)"},{"line_number":184,"context_line":"        uri \u003d \u0027%s/ports/%s\u0027 % (self.uri_prefix, port_id)"},{"line_number":185,"context_line":"        resp, body \u003d self.put(uri, body\u003dbody, headers\u003dself.headers)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FheM%3D","line":182,"updated":"2013-09-25 09:15:16.000000000","message":"Can you explain more about this change? Can we update other attributes besides \"name\"? If we can, why not add tests against on these. If it depends on plugin, this is ok.","commit_id":"22d855ec7e7ecf659adf5943e9977d8f81bad52f"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"92ff7172acb32568ec376fee912d5e62f19364d6","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def update_port(self, port_id, **kwargs):"},{"line_number":180,"context_line":"        put_body \u003d {"},{"line_number":181,"context_line":"            \u0027port\u0027: kwargs"},{"line_number":182,"context_line":"        }"},{"line_number":183,"context_line":"        body \u003d json.dumps(put_body)"},{"line_number":184,"context_line":"        uri \u003d \u0027%s/ports/%s\u0027 % (self.uri_prefix, port_id)"},{"line_number":185,"context_line":"        resp, body \u003d self.put(uri, body\u003dbody, headers\u003dself.headers)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fhco%3D","line":182,"in_reply_to":"AAAAS3%2F%2FheM%3D","updated":"2013-09-25 09:19:08.000000000","message":"PLS see the first reply.","commit_id":"22d855ec7e7ecf659adf5943e9977d8f81bad52f"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"5f5c6629e8d3af2fa2cc5361076ee46918bf1f7e","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        body \u003d json.loads(body)"},{"line_number":177,"context_line":"        return resp, body"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def update_port(self, port_id, new_name):"},{"line_number":180,"context_line":"        put_body \u003d {"},{"line_number":181,"context_line":"            \u0027port\u0027: {"},{"line_number":182,"context_line":"                \u0027name\u0027: new_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAS3%2F%2FdUY%3D","side":"PARENT","line":179,"updated":"2013-09-26 12:01:05.000000000","message":"rather than doing this kind of change to the method interface, I would add the new parameter as kewargs - none of the other update methods in this module uses kwargs","commit_id":"7643e1227879ca273b99e278cb11422cd917931f"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"328a9be94680af75401ff4263b2a928b6340bf5b","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        body \u003d json.loads(body)"},{"line_number":177,"context_line":"        return resp, body"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def update_port(self, port_id, new_name):"},{"line_number":180,"context_line":"        put_body \u003d {"},{"line_number":181,"context_line":"            \u0027port\u0027: {"},{"line_number":182,"context_line":"                \u0027name\u0027: new_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAS3%2F%2Fc%2Fs%3D","side":"PARENT","line":179,"in_reply_to":"AAAAS3%2F%2FdUY%3D","updated":"2013-09-26 13:48:20.000000000","message":"No offense,  the function update_router(self, router_id, **kwargs) in this file is defined in the same way. I thought changing name to kwargs may become more extensible. \n\nBut according to your first comment, if I follow you, it\u0027s better not to change the interface and add new tests to security groups for ports.","commit_id":"7643e1227879ca273b99e278cb11422cd917931f"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ab2aeff6c9c6a33f18649295ebcf20e732e6fa0e","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        body \u003d json.loads(body)"},{"line_number":189,"context_line":"        return resp, body"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def update_port_security_groups(self, port_id, secgroups):"},{"line_number":192,"context_line":"        put_body \u003d {"},{"line_number":193,"context_line":"            \u0027port\u0027: {"},{"line_number":194,"context_line":"                \u0027security_groups\u0027: secgroups,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATH%2F%2FwIw%3D","line":191,"updated":"2013-10-10 10:47:22.000000000","message":"thanks for doing this.\nI know create_router uses kwargs; it\u0027s not a big deal, but if we have a chance to have a clear list of positional parameters that would be better.\n\nAnother option would be to add a kw argument to update_port and avoid this method altogether, but I do not have a strong opinion on the subject.","commit_id":"ba79a02a6ba5a3137bf227f8f8e70c978ce6f87b"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"5f4d1cf83cc64cfe1863afd0c24214c9a891e739","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        body \u003d json.loads(body)"},{"line_number":189,"context_line":"        return resp, body"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def update_port_security_groups(self, port_id, secgroups):"},{"line_number":192,"context_line":"        put_body \u003d {"},{"line_number":193,"context_line":"            \u0027port\u0027: {"},{"line_number":194,"context_line":"                \u0027security_groups\u0027: secgroups,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATH%2F%2Frtk%3D","line":191,"in_reply_to":"AAAATH%2F%2FwIw%3D","updated":"2013-10-11 09:15:12.000000000","message":"I agree with your first suggestion, which makes a clear checking.","commit_id":"ba79a02a6ba5a3137bf227f8f8e70c978ce6f87b"}]}
