)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"d8e221dfcd39d19d7f35fa0e4e11e40075bc11d4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I use rest API to create or update subnet service_type with"},{"line_number":10,"context_line":"invalid data type, such as int.. Hit internal error in neutron"},{"line_number":11,"context_line":"server."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa6399be_235546f9","line":9,"updated":"2016-10-14 08:21:40.000000000","message":"there is no need for bug description in commit message.","commit_id":"87cd4c3f62a39991f3815a65fca5eaa16d66a891"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"843a49c019671aa94b0d25dc3e634e67618997a5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I use rest API to create or update subnet service_type with"},{"line_number":10,"context_line":"invalid data type, such as int.. Hit internal error in neutron"},{"line_number":11,"context_line":"server."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa6399be_3bebae79","line":9,"in_reply_to":"fa6399be_235546f9","updated":"2016-10-14 09:36:18.000000000","message":"Done","commit_id":"87cd4c3f62a39991f3815a65fca5eaa16d66a891"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"eda028952e5d3c6491195160fca328389e1423fe","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa6399be_785dafeb","line":10,"range":{"start_line":10,"start_character":53,"end_line":10,"end_character":61},"updated":"2016-10-18 15:00:11.000000000","message":"Simply","commit_id":"a7745831e63ed9ce833aa47e00d5d19766107257"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"eda028952e5d3c6491195160fca328389e1423fe","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa6399be_386c179c","line":10,"range":{"start_line":10,"start_character":31,"end_line":10,"end_character":51},"updated":"2016-10-18 15:00:11.000000000","message":"creating or updating","commit_id":"a7745831e63ed9ce833aa47e00d5d19766107257"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"20b51f345cad2abc52f111cce034d66383e3272f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     ZhaoBo \u003czhaobo6@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-22 03:34:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_d26ce838","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":54},"updated":"2016-12-08 04:01:39.000000000","message":"Catch invalid subnet service_types on input","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8c38ac3981df851cf83ca9dc90ad6cfbb0cee435","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     ZhaoBo \u003czhaobo6@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-22 03:34:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_4b234dbd","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":54},"in_reply_to":"3a71b18c_d26ce838","updated":"2016-12-12 03:38:21.000000000","message":"Thanks very much for making this patch more detailed.","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"20b51f345cad2abc52f111cce034d66383e3272f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_32efdcb1","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":41},"updated":"2016-12-08 04:01:39.000000000","message":"on creation","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8c38ac3981df851cf83ca9dc90ad6cfbb0cee435","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_6b2c89ac","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":41},"in_reply_to":"3a71b18c_32efdcb1","updated":"2016-12-12 03:38:21.000000000","message":"Done","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"20b51f345cad2abc52f111cce034d66383e3272f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"},{"line_number":14,"context_line":"type is unicode."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_b2104caa","line":11,"range":{"start_line":10,"start_character":53,"end_line":11,"end_character":17},"updated":"2016-12-08 04:01:39.000000000","message":"For example, if an integer type is passed,","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8c38ac3981df851cf83ca9dc90ad6cfbb0cee435","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix when input invalid service_type hit internal error"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"_validate_subnet_service_types function does not consider the"},{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"},{"line_number":14,"context_line":"type is unicode."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_ab186185","line":11,"range":{"start_line":10,"start_character":53,"end_line":11,"end_character":17},"in_reply_to":"3a71b18c_b2104caa","updated":"2016-12-12 03:38:21.000000000","message":"Done","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"20b51f345cad2abc52f111cce034d66383e3272f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"},{"line_number":14,"context_line":"type is unicode."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I5e6d15def3e23f51172b69e1287ff18ab5d3f6aa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_32743cfc","line":13,"range":{"start_line":13,"start_character":11,"end_line":13,"end_character":55},"updated":"2016-12-08 04:01:39.000000000","message":"adds a check to make sure the","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8c38ac3981df851cf83ca9dc90ad6cfbb0cee435","unresolved":false,"context_lines":[{"line_number":10,"context_line":"data type of service_type when creatation or update. Simplely,"},{"line_number":11,"context_line":"use interger type, the neutron-server will hit internal error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch add the check towards whether the input each data"},{"line_number":14,"context_line":"type is unicode."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I5e6d15def3e23f51172b69e1287ff18ab5d3f6aa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a71b18c_eb0ed93b","line":13,"range":{"start_line":13,"start_character":11,"end_line":13,"end_character":55},"in_reply_to":"3a71b18c_32743cfc","updated":"2016-12-12 03:38:21.000000000","message":"Done","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"}],"neutron/extensions/subnet_service_types.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7f8c4b9cdb6e83969848fcd0acbb07c98f66ee04","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class InvalidInputSubnetServiceType(exceptions.InvalidInput):"},{"line_number":34,"context_line":"    message \u003d _(\"Subnet service type %(service_type)s is not string\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _validate_subnet_service_types(service_types, valid_values\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_13134d5c","line":34,"updated":"2016-10-13 17:35:18.000000000","message":"s/is not string/is not a string.","commit_id":"2b341bf66d42c077d17f1dc49c6a5f56498b16ca"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"d8e221dfcd39d19d7f35fa0e4e11e40075bc11d4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                \"to a valid device owner.\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class InvalidInputSubnetServiceType(exceptions.InvalidInput):"},{"line_number":34,"context_line":"    message \u003d _(\"Subnet service type %(service_type)s is not a string\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_c35d6a16","line":33,"updated":"2016-10-14 08:21:40.000000000","message":"do we really need a new Exception?","commit_id":"87cd4c3f62a39991f3815a65fca5eaa16d66a891"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"843a49c019671aa94b0d25dc3e634e67618997a5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                \"to a valid device owner.\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class InvalidInputSubnetServiceType(exceptions.InvalidInput):"},{"line_number":34,"context_line":"    message \u003d _(\"Subnet service type %(service_type)s is not a string\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_bb533e38","line":33,"in_reply_to":"fa6399be_c35d6a16","updated":"2016-10-14 09:36:18.000000000","message":"Actually, I\u0027m still confuse whether I should add an new exception class here. But the original class \"InvalidSubnetServiceType\" just check the prefixes of service_type is valid, no check the input data type of service_type. So I think these errors may be split. :).","commit_id":"87cd4c3f62a39991f3815a65fca5eaa16d66a891"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"eda028952e5d3c6491195160fca328389e1423fe","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                \"to a valid device owner.\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class InvalidInputSubnetServiceType(exceptions.InvalidInput):"},{"line_number":34,"context_line":"    message \u003d _(\"Subnet service type %(service_type)s is not a string\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _validate_subnet_service_types(service_types, valid_values\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_58bb8b0e","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":71},"updated":"2016-10-18 15:00:11.000000000","message":"This is basically TypeError. You can pass in a custom message to it too.","commit_id":"a7745831e63ed9ce833aa47e00d5d19766107257"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"eda028952e5d3c6491195160fca328389e1423fe","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        prefixes +\u003d constants.DEVICE_OWNER_COMPUTE_PREFIX"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        for service_type in service_types:"},{"line_number":49,"context_line":"            if not isinstance(service_type, six.text_type):"},{"line_number":50,"context_line":"                raise InvalidInputSubnetServiceType(service_type\u003dservice_type)"},{"line_number":51,"context_line":"            elif not service_type.startswith(tuple(prefixes)):"},{"line_number":52,"context_line":"                raise InvalidSubnetServiceType(service_type\u003dservice_type)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_383417dd","line":49,"range":{"start_line":49,"start_character":19,"end_line":49,"end_character":59},"updated":"2016-10-18 15:00:11.000000000","message":"More pythonic approach is duck typing. This way you don\u0027t have to import six too.\n\n.....\n\ntry:\n    if not service_type.startswith(tuple(prefixes)):\n        raise InvalidInputSubnetServiceType(service_type\u003dservice_type)\nexcept TypeError, InvalidInputSubnetServiceType:\n    raise","commit_id":"a7745831e63ed9ce833aa47e00d5d19766107257"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"20b51f345cad2abc52f111cce034d66383e3272f","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class InvalidInputSubnetServiceType(exceptions.InvalidInput):"},{"line_number":34,"context_line":"    message \u003d _(\"Subnet service type %(service_type)s is not a string\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _validate_subnet_service_types(service_types, valid_values\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_92fd1071","line":34,"updated":"2016-12-08 04:01:39.000000000","message":"Missing a trailing period here.","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"8c38ac3981df851cf83ca9dc90ad6cfbb0cee435","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class InvalidInputSubnetServiceType(exceptions.InvalidInput):"},{"line_number":34,"context_line":"    message \u003d _(\"Subnet service type %(service_type)s is not a string\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _validate_subnet_service_types(service_types, valid_values\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_4e3fdbb3","line":34,"in_reply_to":"3a71b18c_92fd1071","updated":"2016-12-12 03:38:21.000000000","message":"Done","commit_id":"aff5c852dd8b8dcb24c011d9711bd996c411f7db"}],"neutron/tests/unit/extensions/test_subnet_service_types.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7f8c4b9cdb6e83969848fcd0acbb07c98f66ee04","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        subnet \u003d self.deserialize(\u0027json\u0027, res)[\u0027subnet\u0027]"},{"line_number":163,"context_line":"        # Update it with an invalid service type"},{"line_number":164,"context_line":"        self._test_update_subnet(subnet, service_types, expect_fail\u003dTrue)"},{"line_number":165,"context_line":"        self._test_update_subnet(subnet, [\"network:fool\", 2], expect_fail\u003dTrue)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def _assert_port_res(self, port, service_type, subnet, fallback,"},{"line_number":168,"context_line":"                         error\u003d\u0027IpAddressGenerationFailureNoMatchingSubnet\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_f88b18c1","line":165,"updated":"2016-10-13 17:35:18.000000000","message":"nit: s/fool/foo","commit_id":"2b341bf66d42c077d17f1dc49c6a5f56498b16ca"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"d8a0d70aa5f30dd94d22caf020cae102e237a1b3","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_create_subnet_bar_and_foo_type(self):"},{"line_number":96,"context_line":"        self._test_create_subnet([\u0027network:bar\u0027, \u0027compute:foo\u0027])"},{"line_number":97,"context_line":"        self._test_create_subnet([\u0027network:foo\u0027, 1], expect_fail\u003dTrue)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def test_create_subnet_invalid_type(self):"},{"line_number":100,"context_line":"        self._test_create_subnet([\u0027foo\u0027], expect_fail\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_1e101101","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":70},"updated":"2016-12-13 17:47:40.000000000","message":"In order to match the format of the rest of the file this line should be moved to the function ``test_create_subnet_invalid_type`` on Line 99 like how you did with the update test.","commit_id":"39110991241d40d717f830a12252201749e7cea8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"737d6c2f7f5c1497bcb93576f00e4463422ea4e5","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_create_subnet_bar_and_foo_type(self):"},{"line_number":97,"context_line":"        self._test_create_subnet([\u0027network:bar\u0027, \u0027compute:foo\u0027])"},{"line_number":98,"context_line":"        self._test_create_subnet([\u0027network:foo\u0027, 1], expect_fail\u003dTrue)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def test_create_subnet_invalid_type(self):"},{"line_number":101,"context_line":"        self._test_create_subnet([\u0027foo\u0027], expect_fail\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_7226adcf","line":98,"updated":"2017-01-03 15:23:16.000000000","message":"This should be in the next test on L102 since it\u0027s an invalid type.  And you don\u0027t need the \u0027network:foo\u0027 type, right, just the integer?","commit_id":"0339ce1f0030a8bde479166f55211380511def9f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"70fb1d618b1fab62b31fcc9a994608eb21ca10da","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_create_subnet_bar_and_foo_type(self):"},{"line_number":97,"context_line":"        self._test_create_subnet([\u0027network:bar\u0027, \u0027compute:foo\u0027])"},{"line_number":98,"context_line":"        self._test_create_subnet([\u0027network:foo\u0027, 1], expect_fail\u003dTrue)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def test_create_subnet_invalid_type(self):"},{"line_number":101,"context_line":"        self._test_create_subnet([\u0027foo\u0027], expect_fail\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_8b73cc14","line":98,"in_reply_to":"ba5201f7_7226adcf","updated":"2017-01-04 02:01:22.000000000","message":"Thanks, I just want to show if there are a valid value and a invalid one. It will raise error.","commit_id":"0339ce1f0030a8bde479166f55211380511def9f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"737d6c2f7f5c1497bcb93576f00e4463422ea4e5","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        subnet \u003d self.deserialize(\u0027json\u0027, res)[\u0027subnet\u0027]"},{"line_number":164,"context_line":"        # Update it with an invalid service type"},{"line_number":165,"context_line":"        self._test_update_subnet(subnet, service_types, expect_fail\u003dTrue)"},{"line_number":166,"context_line":"        self._test_update_subnet(subnet, [\"network:foo\", 2], expect_fail\u003dTrue)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _assert_port_res(self, port, service_type, subnet, fallback,"},{"line_number":169,"context_line":"                         error\u003d\u0027IpAddressGenerationFailureNoMatchingSubnet\u0027):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_65142944","line":166,"updated":"2017-01-03 15:23:16.000000000","message":"Need \u0027network:foo\u0027 here as well?","commit_id":"0339ce1f0030a8bde479166f55211380511def9f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"70fb1d618b1fab62b31fcc9a994608eb21ca10da","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        subnet \u003d self.deserialize(\u0027json\u0027, res)[\u0027subnet\u0027]"},{"line_number":164,"context_line":"        # Update it with an invalid service type"},{"line_number":165,"context_line":"        self._test_update_subnet(subnet, service_types, expect_fail\u003dTrue)"},{"line_number":166,"context_line":"        self._test_update_subnet(subnet, [\"network:foo\", 2], expect_fail\u003dTrue)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _assert_port_res(self, port, service_type, subnet, fallback,"},{"line_number":169,"context_line":"                         error\u003d\u0027IpAddressGenerationFailureNoMatchingSubnet\u0027):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_6b4f88bd","line":166,"in_reply_to":"ba5201f7_65142944","updated":"2017-01-04 02:01:22.000000000","message":"The same with above. But I will move them in the right place. And change them for your kind suggesion.:)","commit_id":"0339ce1f0030a8bde479166f55211380511def9f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"edd82fca135dd30c561afe39e7b25fe898b913e3","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        req \u003d self.new_update_request(\u0027subnets\u0027, data, subnet[\u0027id\u0027])"},{"line_number":112,"context_line":"        res \u003d self.deserialize(self.fmt, req.get_response(self.api))"},{"line_number":113,"context_line":"        if expect_fail:"},{"line_number":114,"context_line":"            self.assertIn(res[\u0027NeutronError\u0027][\u0027type\u0027],"},{"line_number":115,"context_line":"                          [\u0027InvalidSubnetServiceType\u0027,"},{"line_number":116,"context_line":"                           \u0027InvalidInputSubnetServiceType\u0027])"},{"line_number":117,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5201f7_539a5d64","line":114,"updated":"2017-01-04 16:03:19.000000000","message":"Actually, looking at this again, we should be checking for the specific error code since we know what it will be, we\u0027re losing that with this change.  I\u0027ll post a quick update.","commit_id":"369867befdc796bc3b917859647356bf9d60f58b"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"fe8817295a21cb179d76b9800ec6c1784efc3c26","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        req \u003d self.new_update_request(\u0027subnets\u0027, data, subnet[\u0027id\u0027])"},{"line_number":112,"context_line":"        res \u003d self.deserialize(self.fmt, req.get_response(self.api))"},{"line_number":113,"context_line":"        if expect_fail:"},{"line_number":114,"context_line":"            self.assertIn(res[\u0027NeutronError\u0027][\u0027type\u0027],"},{"line_number":115,"context_line":"                          [\u0027InvalidSubnetServiceType\u0027,"},{"line_number":116,"context_line":"                           \u0027InvalidInputSubnetServiceType\u0027])"},{"line_number":117,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5201f7_769c9d0f","line":114,"in_reply_to":"ba5201f7_539a5d64","updated":"2017-01-05 01:25:45.000000000","message":"Thank a lot for review and kind update.:)","commit_id":"369867befdc796bc3b917859647356bf9d60f58b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"edd82fca135dd30c561afe39e7b25fe898b913e3","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        res \u003d self._create_service_subnet()"},{"line_number":163,"context_line":"        subnet \u003d self.deserialize(\u0027json\u0027, res)[\u0027subnet\u0027]"},{"line_number":164,"context_line":"        # Update it with an invalid service type"},{"line_number":165,"context_line":"        self._test_update_subnet(subnet, service_types, expect_fail\u003dTrue)"},{"line_number":166,"context_line":"        self._test_update_subnet(subnet, [2], expect_fail\u003dTrue)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _assert_port_res(self, port, service_type, subnet, fallback,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5201f7_739da158","line":165,"updated":"2017-01-04 16:03:19.000000000","message":"This should just be [\u0027foo\u0027] now that we have two calls, looks funny.","commit_id":"369867befdc796bc3b917859647356bf9d60f58b"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"fe8817295a21cb179d76b9800ec6c1784efc3c26","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        res \u003d self._create_service_subnet()"},{"line_number":163,"context_line":"        subnet \u003d self.deserialize(\u0027json\u0027, res)[\u0027subnet\u0027]"},{"line_number":164,"context_line":"        # Update it with an invalid service type"},{"line_number":165,"context_line":"        self._test_update_subnet(subnet, service_types, expect_fail\u003dTrue)"},{"line_number":166,"context_line":"        self._test_update_subnet(subnet, [2], expect_fail\u003dTrue)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _assert_port_res(self, port, service_type, subnet, fallback,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5201f7_f6888dc7","line":165,"in_reply_to":"ba5201f7_739da158","updated":"2017-01-05 01:25:45.000000000","message":"Thanks again.","commit_id":"369867befdc796bc3b917859647356bf9d60f58b"}]}
