)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9b7b81942969f765347800260d0e9e512e15f7a4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This commit fixes such occurences in following APIs:"},{"line_number":15,"context_line":"1. flavor-key - sets flavor\u0027s extra_specs"},{"line_number":16,"context_line":"2. meta - sets instance metadata"},{"line_number":17,"context_line":"3. aggregate-key-set - sets aggregate metadata"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I4e81e05778a05ad0f5d434b0e4aab98c224f3c2e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a71b18c_eb7e87e2","line":17,"updated":"2016-12-07 06:48:41.000000000","message":"would you mind file a bug for this problem?","commit_id":"5fb9dcbea78ab9465486f36aa3d1986ed69a453e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6e6e10bb64e160f5b39cdcf77ac3c687b8705ebc","unresolved":false,"context_lines":[{"line_number":10,"context_line":"data."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Create a new format, \u0027extra_spec_value\u0027, which handles 4-byte unicode"},{"line_number":13,"context_line":"data similar to \u0027name\u0027. This commit fixes such occurrences in following"},{"line_number":14,"context_line":"APIs by displaying the error message respectively:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"1. flavor-key - sets flavor\u0027s extra_specs"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"1f493fa4_0ae4110c","line":14,"range":{"start_line":13,"start_character":62,"end_line":14,"end_character":3},"updated":"2020-04-30 03:11:22.000000000","message":"there are more APIs are fixed for this, we need to add the tests for those to test the new changes\n\n- image metadata API\nhttps://github.com/openstack/nova/blob/730eeb5fe002c093a5b477e095c3374457820007/nova/api/openstack/compute/schemas/image_metadata.py\n\n- create backup\nhttps://github.com/openstack/nova/blob/730eeb5fe002c093a5b477e095c3374457820007/nova/api/openstack/compute/schemas/create_backup.py#L31\n\n- create, rebuild server and create image\nhttps://github.com/openstack/nova/blob/730eeb5fe002c093a5b477e095c3374457820007/nova/api/openstack/compute/schemas/servers.py#L164","commit_id":"3b3060bfccb17535d23227926dcb13c01611792b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e6645692bf7f67bc1d64060ab54dd8360e1a91eb","unresolved":false,"context_lines":[{"line_number":38,"context_line":"   (Request-ID: req-bc587d65-f9b8-457f-bc6f-f425c0380181)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Change-Id: I4e81e05778a05ad0f5d434b0e4aab98c224f3c2e"},{"line_number":41,"context_line":"Partial-Bug: #1545729"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"1f493fa4_896833f5","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":11},"updated":"2020-04-29 22:57:21.000000000","message":"Shouldn\u0027t this be Closes-Bug instead?","commit_id":"3b3060bfccb17535d23227926dcb13c01611792b"}],"nova/api/validation/parameter_types.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1619545d62efc9fb65cb7cf1d175068757df4c45","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        _build_regex_range(),"},{"line_number":152,"context_line":"        _build_regex_range(ws\u003dFalse, invert\u003dTrue)),"},{"line_number":153,"context_line":"    _(\"printable characters. Can not start or end with whitespace.\"))"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"valid_unicode_regex \u003d ValidationRegex("},{"line_number":156,"context_line":"    valid_name_regex_base % ("},{"line_number":157,"context_line":"        _build_regex_range(ws\u003dTrue, invert\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf8cb3f7_3221ee4e","line":154,"updated":"2017-12-21 00:36:24.000000000","message":"Please add a blank line.","commit_id":"47f4451949172164d860fbd233ad0c745bc676ba"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"52f9d907f7a4d84bb33cd7ac73528c81a67453d0","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        _build_regex_range(),"},{"line_number":152,"context_line":"        _build_regex_range(ws\u003dFalse, invert\u003dTrue)),"},{"line_number":153,"context_line":"    _(\"printable characters. Can not start or end with whitespace.\"))"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"valid_unicode_regex \u003d ValidationRegex("},{"line_number":156,"context_line":"    valid_name_regex_base % ("},{"line_number":157,"context_line":"        _build_regex_range(ws\u003dTrue, invert\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf8cb3f7_52d7d2c0","line":154,"in_reply_to":"bf8cb3f7_3221ee4e","updated":"2017-12-21 00:50:54.000000000","message":"Done","commit_id":"47f4451949172164d860fbd233ad0c745bc676ba"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1619545d62efc9fb65cb7cf1d175068757df4c45","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        _build_regex_range(),"},{"line_number":159,"context_line":"        _build_regex_range(ws\u003dTrue, invert\u003dTrue)),"},{"line_number":160,"context_line":"    _(\"printable characters. Can not include 4 byte unicode characters.\"))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"# This regex allows leading/trailing whitespace"},{"line_number":163,"context_line":"valid_name_leading_trailing_spaces_regex_base \u003d ("},{"line_number":164,"context_line":"    \"^[%(ws)s]*[%(no_ws)s]+[%(ws)s]*$|\""}],"source_content_type":"text/x-python","patch_set":16,"id":"bf8cb3f7_521ef20c","line":161,"updated":"2017-12-21 00:36:24.000000000","message":"ditto.","commit_id":"47f4451949172164d860fbd233ad0c745bc676ba"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"52f9d907f7a4d84bb33cd7ac73528c81a67453d0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        _build_regex_range(),"},{"line_number":159,"context_line":"        _build_regex_range(ws\u003dTrue, invert\u003dTrue)),"},{"line_number":160,"context_line":"    _(\"printable characters. Can not include 4 byte unicode characters.\"))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"# This regex allows leading/trailing whitespace"},{"line_number":163,"context_line":"valid_name_leading_trailing_spaces_regex_base \u003d ("},{"line_number":164,"context_line":"    \"^[%(ws)s]*[%(no_ws)s]+[%(ws)s]*$|\""}],"source_content_type":"text/x-python","patch_set":16,"id":"bf8cb3f7_f2e386a3","line":161,"in_reply_to":"bf8cb3f7_521ef20c","updated":"2017-12-21 00:50:54.000000000","message":"Done","commit_id":"47f4451949172164d860fbd233ad0c745bc676ba"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6e6e10bb64e160f5b39cdcf77ac3c687b8705ebc","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":384,"context_line":"    \u0027patternProperties\u0027: {"},{"line_number":385,"context_line":"        \u0027^[a-zA-Z0-9-_:. ]{1,255}$\u0027: {"},{"line_number":386,"context_line":"            \u0027maxLength\u0027: 255, \u0027format\u0027: \u0027metadata_value\u0027"},{"line_number":387,"context_line":"        }"},{"line_number":388,"context_line":"    },"},{"line_number":389,"context_line":"    \u0027additionalProperties\u0027: False"}],"source_content_type":"text/x-python","patch_set":40,"id":"1f493fa4_cfd23bd1","line":386,"range":{"start_line":386,"start_character":0,"end_line":386,"end_character":56},"updated":"2020-04-30 03:11:22.000000000","message":"we can keep the \u0027type\u0027: \u0027string\u0027.\n\nwith type as string, if non-string value is requested then json schema can fail early without applying the user-defined format checks.","commit_id":"3b3060bfccb17535d23227926dcb13c01611792b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6e6e10bb64e160f5b39cdcf77ac3c687b8705ebc","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"metadata_with_null \u003d copy.deepcopy(metadata)"},{"line_number":394,"context_line":"metadata_with_null[\u0027patternProperties\u0027][\u0027^[a-zA-Z0-9-_:. ]{1,255}$\u0027]["},{"line_number":395,"context_line":"    \u0027format\u0027] \u003d \u0027metadata_value_or_null\u0027"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"mac_address \u003d {"}],"source_content_type":"text/x-python","patch_set":40,"id":"1f493fa4_0fd8a3ec","line":395,"range":{"start_line":395,"start_character":0,"end_line":395,"end_character":4},"updated":"2020-04-30 03:11:22.000000000","message":"ditto","commit_id":"3b3060bfccb17535d23227926dcb13c01611792b"}],"nova/api/validation/validators.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"743d5287f5c586c31be0ee46ac8ea9a9cc937788","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # The metadata must be string type. If instance isn\u0027t string type, the"},{"line_number":144,"context_line":"        # TypeError will be raised at here."},{"line_number":145,"context_line":"        pass"},{"line_number":146,"context_line":"    raise exception.InvalidExtraSpec()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027cell_name_with_leading_trailing_spaces\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_6e48b3cd","line":146,"range":{"start_line":146,"start_character":20,"end_line":146,"end_character":36},"updated":"2016-12-07 14:09:43.000000000","message":"this seems wired, can we switch to another name as ExtraSpec might be not the only consumer?","commit_id":"fe715f036814a56e6afd6fca25fcd0a2a3e6008a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6e6e10bb64e160f5b39cdcf77ac3c687b8705ebc","unresolved":false,"context_lines":[{"line_number":173,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027extra_spec_value\u0027,"},{"line_number":174,"context_line":"                                     exception.InvalidInput)"},{"line_number":175,"context_line":"def _validate_extra_spec_value(instance):"},{"line_number":176,"context_line":"    if isinstance(instance, six.integer_types) or isinstance(instance, float):"},{"line_number":177,"context_line":"        return True"},{"line_number":178,"context_line":"    return _validate_unicode_value(instance)"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"1f493fa4_efe8d77c","line":176,"range":{"start_line":176,"start_character":28,"end_line":176,"end_character":45},"updated":"2020-04-30 03:11:22.000000000","message":"\u0027int\u0027 as no python2 now. But if you want to backport this than six.integer_types is fine.","commit_id":"3b3060bfccb17535d23227926dcb13c01611792b"}],"nova/tests/unit/api/openstack/compute/test_server_metadata.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6e6e10bb64e160f5b39cdcf77ac3c687b8705ebc","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        self.assertRaises(self.validation_ex,"},{"line_number":654,"context_line":"                          self.controller.update_all, req, self.uuid,"},{"line_number":655,"context_line":"                          body\u003ddata)"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"        # test for 4 byte unicode characters."},{"line_number":658,"context_line":"        data \u003d {\"metadata\": {\"key\": u\u0027\\U0001006b\u0027}}"},{"line_number":659,"context_line":"        req.body \u003d jsonutils.dump_as_bytes(data)"},{"line_number":660,"context_line":"        self.assertRaises(self.validation_ex,"},{"line_number":661,"context_line":"                          self.controller.update_all, req, self.uuid,"},{"line_number":662,"context_line":"                          body\u003ddata)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"class BadStateServerMetaDataTestV21(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":40,"id":"1f493fa4_6a1af516","line":662,"range":{"start_line":656,"start_character":0,"end_line":662,"end_character":36},"updated":"2020-04-30 03:11:22.000000000","message":"please add the same test for update also which also use the metadata schema - self.controller.update","commit_id":"3b3060bfccb17535d23227926dcb13c01611792b"}]}
