)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cccc1c070947d33ab909f18dabeae16d79642088","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-03-27 19:43:08 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove flavor id and name validation code because of jsonschema validation."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1816755"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Id6702180a4af6f9f7851a2b912e6d6adeccf90df"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5fc1f717_72690023","line":8,"updated":"2019-03-27 16:17:12.000000000","message":"Could you please include some explanation here about why we don\u0027t need this validation anymore, referencing the commit where we started doing it via schema?","commit_id":"107c95fc5bae36e8e9f5e98a65ae0e4043ddb26e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e80798a5471781e5d8b91fef1372677dae5c5537","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-03-27 19:43:08 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove flavor id and name validation code because of jsonschema validation."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1816755"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Id6702180a4af6f9f7851a2b912e6d6adeccf90df"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5fc1f717_d2323410","line":8,"in_reply_to":"5fc1f717_72690023","updated":"2019-03-27 16:34:29.000000000","message":"+1","commit_id":"107c95fc5bae36e8e9f5e98a65ae0e4043ddb26e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"38536e3230019ba43b8b476535498951a3c47ff9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     翟小君 \u003czhaixiaojun@gohighsec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-03-28 19:22:19 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove flavor id and name validation code because of"},{"line_number":8,"context_line":"jsonschema validation.The jsonschema validation was"},{"line_number":9,"context_line":"added with Ieba96718264ad2ddfba63b65425f7e5bbb8606a9."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5fc1f717_a5eaad0b","line":7,"updated":"2019-03-28 13:42:14.000000000","message":"You should have one line for the title, then a blank line, and then write the detail description for this patch.","commit_id":"074a2355a1b7f944942673153194f8aad8cb8144"}],"nova/compute/flavors.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8ba82d375d49273bc63f8ffeb56e7fc10a8729a2","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    if isinstance(name, six.string_types):"},{"line_number":88,"context_line":"        name \u003d name.strip()"},{"line_number":89,"context_line":"    # ensure name do not exceed 255 characters"},{"line_number":90,"context_line":"    utils.check_string_length(name, \u0027name\u0027, min_length\u003d1, max_length\u003d255)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # ensure name does not contain any special characters"},{"line_number":93,"context_line":"    valid_name \u003d parameter_types.valid_name_regex_obj.search(name)"},{"line_number":94,"context_line":"    if not valid_name:"},{"line_number":95,"context_line":"        msg \u003d _(\"Flavor names can only contain printable characters \""},{"line_number":96,"context_line":"                \"and horizontal spaces.\")"},{"line_number":97,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    # NOTE(vish): Internally, flavorid is stored as a string but it comes"},{"line_number":100,"context_line":"    #             in through json as an integer, so we convert it here."},{"line_number":101,"context_line":"    flavorid \u003d six.text_type(flavorid)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    # ensure leading/trailing whitespaces not present."},{"line_number":104,"context_line":"    if flavorid.strip() !\u003d flavorid:"},{"line_number":105,"context_line":"        msg \u003d _(\"id cannot contain leading and/or trailing whitespace(s)\")"},{"line_number":106,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    # ensure flavor id does not exceed 255 characters"},{"line_number":109,"context_line":"    utils.check_string_length(flavorid, \u0027id\u0027, min_length\u003d1,"},{"line_number":110,"context_line":"                              max_length\u003d255)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    # ensure flavor id does not contain any special characters"},{"line_number":113,"context_line":"    valid_flavor_id \u003d VALID_ID_REGEX.search(flavorid)"},{"line_number":114,"context_line":"    if not valid_flavor_id:"},{"line_number":115,"context_line":"        msg \u003d _(\"Flavor id can only contain numbers from 0-9, \""},{"line_number":116,"context_line":"                \"letters from A-Z (both cases), \""},{"line_number":117,"context_line":"                \"periods, dashes, underscores and spaces.\")"},{"line_number":118,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    # NOTE(wangbo): validate attributes of the creating flavor."},{"line_number":121,"context_line":"    # ram and vcpus should be positive ( \u003e 0) integers."}],"source_content_type":"text/x-python","patch_set":3,"id":"5fc1f717_20958b32","line":118,"range":{"start_line":90,"start_character":0,"end_line":118,"end_character":48},"updated":"2019-03-26 01:25:59.000000000","message":"The above check has been added since 2013 with I63c36811a57982e826f22f827f86d40ff6a6210e\n\nNow we can remove most part because of jsonschema validation.","commit_id":"b02bfea9347a7a056cb85bf42e93364bfc6eb065"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e80798a5471781e5d8b91fef1372677dae5c5537","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    if isinstance(name, six.string_types):"},{"line_number":88,"context_line":"        name \u003d name.strip()"},{"line_number":89,"context_line":"    # ensure name do not exceed 255 characters"},{"line_number":90,"context_line":"    utils.check_string_length(name, \u0027name\u0027, min_length\u003d1, max_length\u003d255)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # ensure name does not contain any special characters"},{"line_number":93,"context_line":"    valid_name \u003d parameter_types.valid_name_regex_obj.search(name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_dd29e589","side":"PARENT","line":90,"updated":"2019-03-27 16:34:29.000000000","message":"test_create_with_name_too_long is testing long length of flavor name. But the length 0 case is not tested now.\nCould you add the following unit test to test_flavor_manage.py?\n\n     def test_create_with_short_name(self):\n         self.request_body[\u0027flavor\u0027][\u0027name\u0027] \u003d \u0027\u0027\n         self._create_flavor_bad_request_case(self.request_body)","commit_id":"3548cf59217f62966a21ea65a8cb744606431bd6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e80798a5471781e5d8b91fef1372677dae5c5537","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    if not valid_name:"},{"line_number":95,"context_line":"        msg \u003d _(\"Flavor names can only contain printable characters \""},{"line_number":96,"context_line":"                \"and horizontal spaces.\")"},{"line_number":97,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    # NOTE(vish): Internally, flavorid is stored as a string but it comes"},{"line_number":100,"context_line":"    #             in through json as an integer, so we convert it here."}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_3d2ee98b","side":"PARENT","line":97,"updated":"2019-03-27 16:34:29.000000000","message":"This case is tested with test_create_invalid_name, fine.","commit_id":"3548cf59217f62966a21ea65a8cb744606431bd6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e80798a5471781e5d8b91fef1372677dae5c5537","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    # ensure leading/trailing whitespaces not present."},{"line_number":104,"context_line":"    if flavorid.strip() !\u003d flavorid:"},{"line_number":105,"context_line":"        msg \u003d _(\"id cannot contain leading and/or trailing whitespace(s)\")"},{"line_number":106,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    # ensure flavor id does not exceed 255 characters"},{"line_number":109,"context_line":"    utils.check_string_length(flavorid, \u0027id\u0027, min_length\u003d1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_7d3d51b9","side":"PARENT","line":106,"updated":"2019-03-27 16:34:29.000000000","message":"This case is tested with test_create_with_name_leading_trailing_spaces, fine.","commit_id":"3548cf59217f62966a21ea65a8cb744606431bd6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e80798a5471781e5d8b91fef1372677dae5c5537","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    # ensure flavor id does not exceed 255 characters"},{"line_number":109,"context_line":"    utils.check_string_length(flavorid, \u0027id\u0027, min_length\u003d1,"},{"line_number":110,"context_line":"                              max_length\u003d255)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    # ensure flavor id does not contain any special characters"},{"line_number":113,"context_line":"    valid_flavor_id \u003d VALID_ID_REGEX.search(flavorid)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_3d5ca917","side":"PARENT","line":110,"updated":"2019-03-27 16:34:29.000000000","message":"This case is tested with test_create_check_flavor_id_length, fine.","commit_id":"3548cf59217f62966a21ea65a8cb744606431bd6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e80798a5471781e5d8b91fef1372677dae5c5537","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    if not valid_flavor_id:"},{"line_number":115,"context_line":"        msg \u003d _(\"Flavor id can only contain letters from A-Z (both cases), \""},{"line_number":116,"context_line":"                \"periods, dashes, underscores and spaces.\")"},{"line_number":117,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    # NOTE(wangbo): validate attributes of the creating flavor."},{"line_number":120,"context_line":"    # ram and vcpus should be positive ( \u003e 0) integers."}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_5db09543","side":"PARENT","line":117,"updated":"2019-03-27 16:34:29.000000000","message":"This case is tested with test_create_invalid_flavorid, fine.","commit_id":"3548cf59217f62966a21ea65a8cb744606431bd6"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cccc1c070947d33ab909f18dabeae16d79642088","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from oslo_utils import uuidutils"},{"line_number":25,"context_line":"import six"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from nova.api.validation import parameter_types"},{"line_number":28,"context_line":"import nova.conf"},{"line_number":29,"context_line":"from nova import context"},{"line_number":30,"context_line":"from nova.db import api as db"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_b2352847","line":27,"range":{"start_line":27,"start_character":32,"end_line":27,"end_character":47},"updated":"2019-03-27 16:17:12.000000000","message":"pep8: looks like this is now unused.","commit_id":"107c95fc5bae36e8e9f5e98a65ae0e4043ddb26e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"38536e3230019ba43b8b476535498951a3c47ff9","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# NOTE(luisg): Flavor names can include non-ascii characters so that users can"},{"line_number":39,"context_line":"# create flavor names in locales that use them, however flavor IDs are limited"},{"line_number":40,"context_line":"# to ascii characters."},{"line_number":41,"context_line":"VALID_ID_REGEX \u003d re.compile(\"^[\\w\\.\\- ]*$\")"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Validate extra specs key names."}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_453d09b9","side":"PARENT","line":40,"range":{"start_line":38,"start_character":0,"end_line":40,"end_character":22},"updated":"2019-03-28 13:42:14.000000000","message":"This comment is useless now.","commit_id":"3548cf59217f62966a21ea65a8cb744606431bd6"}]}
