)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"e5b7c424dba6ae747fe31d0f88814b6c94df2de8","unresolved":true,"context_lines":[{"line_number":18,"context_line":"PASS: Verify special characters won\u0027t be accepted on system values"},{"line_number":19,"context_line":"PASS: Verify the system works properly after setting a value with any of"},{"line_number":20,"context_line":"the accepted characters: \u0027a-zA-Z0-9!@#$%^\u0026*()_+-\u003d[]{};:\u0027\"|,.\u003c\u003e/? \u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Closes-Bug: 1952008"},{"line_number":23,"context_line":"Signed-off-by: Rafael Camargos \u003cRafaelLucas.Camargos@windriver.com\u003e"},{"line_number":24,"context_line":"Change-Id: I1844e6af40c7b82f2c5a6e995947b1c166f82e0d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"728c9b98_4c11fcb1","line":21,"updated":"2021-11-24 18:59:42.000000000","message":"A testcase should be added for at least initial bootstrap to ensure the system configuration values are accepted","commit_id":"8b77bf4b8215405024267a20697a29dd3c3ddd17"},{"author":{"_account_id":33667,"name":"Rafael Camargos","email":"RafaelLucas.Camargos@windriver.com","username":"rcamargo"},"change_message_id":"32ab875dde50b643477858794d863d7f566a4829","unresolved":false,"context_lines":[{"line_number":18,"context_line":"PASS: Verify special characters won\u0027t be accepted on system values"},{"line_number":19,"context_line":"PASS: Verify the system works properly after setting a value with any of"},{"line_number":20,"context_line":"the accepted characters: \u0027a-zA-Z0-9!@#$%^\u0026*()_+-\u003d[]{};:\u0027\"|,.\u003c\u003e/? \u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Closes-Bug: 1952008"},{"line_number":23,"context_line":"Signed-off-by: Rafael Camargos \u003cRafaelLucas.Camargos@windriver.com\u003e"},{"line_number":24,"context_line":"Change-Id: I1844e6af40c7b82f2c5a6e995947b1c166f82e0d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"d405aad8_f5b72657","line":21,"in_reply_to":"728c9b98_4c11fcb1","updated":"2021-11-25 15:47:36.000000000","message":"Done","commit_id":"8b77bf4b8215405024267a20697a29dd3c3ddd17"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":33667,"name":"Rafael Camargos","email":"RafaelLucas.Camargos@windriver.com","username":"rcamargo"},"change_message_id":"22f546090ed330150ab166f540e6e3d34ae3a90e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e02d0a2d_a88e3b93","updated":"2021-11-24 14:10:40.000000000","message":"Marking as WIP to fix Zuul","commit_id":"067124e459ec0de0da56e0ea4a17ffa0271ea5ec"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"db0b3f6781627093383dd8b5e8a11787758bf6a4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b7f09d34_2a4c66e0","updated":"2021-12-15 17:08:21.000000000","message":"This is preventing the bootstrap from completing.\n\nsysinv 2021-12-15 13:59:36.237 64179 ERROR wsme.api [-] Server-side error: \"expected string or bytes-like object\". Detail:\nTraceback (most recent call last):\nFile \"/usr/lib/python3/dist-packages/wsmeext/pecan.py\", line 84, in callfunction\nresult \u003d f(self, *args, **kwargs)\nFile \"/usr/lib/python3/dist-packages/sysinv/api/controllers/v1/system.py\", line 415, in patch\nif p[\u0027value\u0027] is not None and not re.match(ALLOWED_CHARS, p[\u0027value\u0027]):\nFile \"/usr/lib/python3.9/re.py\", line 191, in match\nreturn _compile(pattern, flags).match(string)\nTypeError: expected string or bytes-like object\n\n\nInvestigation: capabilities is a dict.\n\n\ncontroller-0:~$ cat re_.py \nimport re\nimport jsonpatch\n\nALLOWED_CHARS \u003d r\"^[a-zA-Z0-9!@#$%^\u0026*()_+\\-\u003d\\[\\]{};:\\\u0027\\\"|,.\u003c\u003e\\/? ]*$\"\n\npatch \u003d [{\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: \u0027/system_mode\u0027, \u0027value\u0027: \u0027simplex\u0027}, {\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: \u0027/capabilities\u0027, \u0027value\u0027: {\u0027region_config\u0027: False, \u0027vswitch_type\u0027: \u0027none\u0027, \u0027shared_services\u0027: \u0027[]\u0027, \u0027sdn_enabled\u0027: False, \u0027https_enabled\u0027: False}}, {\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: \u0027/timezone\u0027, \u0027value\u0027: \u0027UTC\u0027}, {\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: \u0027/region_name\u0027, \u0027value\u0027: \u0027RegionOne\u0027}, {\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: \u0027/service_project_name\u0027, \u0027value\u0027: \u0027services\u0027}, {\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: \u0027/distributed_cloud_role\u0027, \u0027value\u0027: None}, {\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: \u0027/system_type\u0027, \u0027value\u0027: \u0027All-in-one\u0027}]\n\n#patch \u003d [{u\u0027path\u0027: u\u0027/system_mode\u0027, u\u0027value\u0027: u\u0027simplex\u0027, u\u0027op\u0027: u\u0027replace\u0027}, {u\u0027path\u0027: u\u0027/region_name\u0027, u\u0027value\u0027: u\u0027RegionOne\u0027, u\u0027op\u0027: u\u0027replace\u0027}, {u\u0027path\u0027: u\u0027/service_project_name\u0027, u\u0027value\u0027: u\u0027services\u0027, u\u0027op\u0027: u\u0027replace\u0027}, {u\u0027path\u0027: u\u0027/distributed_cloud_role\u0027, u\u0027value\u0027: None, u\u0027op\u0027: u\u0027replace\u0027}, {u\u0027path\u0027: u\u0027/capabilities\u0027, u\u0027value\u0027: {u\u0027https_enabled\u0027: False, u\u0027vswitch_type\u0027: u\u0027none\u0027, u\u0027region_config\u0027: False, u\u0027sdn_enabled\u0027: False, u\u0027shared_services\u0027: u\u0027[]\u0027}, u\u0027op\u0027: u\u0027replace\u0027}, {u\u0027path\u0027: u\u0027/system_type\u0027, u\u0027value\u0027: u\u0027All-in-one\u0027, u\u0027op\u0027: u\u0027replace\u0027}, {u\u0027path\u0027: u\u0027/timezone\u0027, u\u0027value\u0027: u\u0027UTC\u0027, u\u0027op\u0027: u\u0027replace\u0027}]\n\nfor p in jsonpatch.JsonPatch(patch):\n    print(p[\u0027value\u0027])\n    if p[\u0027value\u0027] is not None:\n        re.match(ALLOWED_CHARS, p[\u0027value\u0027])\n\ncontroller-0:~$ python2 re_.py \nsimplex\n{\u0027https_enabled\u0027: False, \u0027vswitch_type\u0027: \u0027none\u0027, \u0027region_config\u0027: False, \u0027sdn_enabled\u0027: False, \u0027shared_services\u0027: \u0027[]\u0027}\nTraceback (most recent call last):\n  File \"re_.py\", line 13, in \u003cmodule\u003e\n    re.match(ALLOWED_CHARS, p[\u0027value\u0027])\n  File \"/usr/lib64/python2.7/re.py\", line 137, in match\n    return _compile(pattern, flags).match(string)\nTypeError: expected string or buffer\n\n","commit_id":"f096dcf15903a3b962182f5b85d173a0b1523dd2"},{"author":{"_account_id":28558,"name":"Ghada Khalil","email":"ghada.khalil@windriver.com","username":"gkhalil"},"change_message_id":"452d8540d10d5ea2cafd9467644952198604718c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6bff90c8_5422d46a","in_reply_to":"0e6c4a38_be0e21eb","updated":"2021-12-15 19:30:33.000000000","message":"It seems that the issue reported in on Debian as per the notes in the revert review: https://review.opendev.org/c/starlingx/config/+/821769\nIn my opinion, the original commit should not have been reverted as it\u0027s not causing any issues for the primary supported CentOS env A follow-up change should have been proposed instead to address the Debian issue.","commit_id":"f096dcf15903a3b962182f5b85d173a0b1523dd2"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"68c39f832899fde0b9e2e8d7bd562eb91513ecbe","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"da16b7a5_04a3d1b8","in_reply_to":"b7f09d34_2a4c66e0","updated":"2021-12-15 17:15:58.000000000","message":"We should revert this commit,\nThe change in sysinv.py should only do the \u0027re\u0027 for a certain known list of \u0027path\u0027 inputs, and not for all inputs.","commit_id":"f096dcf15903a3b962182f5b85d173a0b1523dd2"},{"author":{"_account_id":33667,"name":"Rafael Camargos","email":"RafaelLucas.Camargos@windriver.com","username":"rcamargo"},"change_message_id":"c032c438e4c249ce8d832a4e9a7f7b3ce3d07f4c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"0e6c4a38_be0e21eb","in_reply_to":"da16b7a5_04a3d1b8","updated":"2021-12-15 17:43:43.000000000","message":"How was the issue caught? What system does it affect? How to reproduce it?","commit_id":"f096dcf15903a3b962182f5b85d173a0b1523dd2"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/system.py":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"62f5a7c7562872aa8fc338a676988d1b738b5b06","unresolved":true,"context_lines":[{"line_number":408,"context_line":"        change_dc_role \u003d False"},{"line_number":409,"context_line":"        vswitch_type \u003d None"},{"line_number":410,"context_line":"        new_system_mode \u003d None"},{"line_number":411,"context_line":"        ALLOWED_CHARS \u003d r\"^[a-zA-Z0-9!@#$%^\u0026*()_+\\-\u003d\\[\\]{};:\\\u0027\\\"|,.\u003c\u003e\\/? ]*$\""},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        # prevent description field from being updated"},{"line_number":414,"context_line":"        for p in jsonpatch.JsonPatch(patch):"}],"source_content_type":"text/x-python","patch_set":7,"id":"264b587b_b9d5e4cf","line":411,"updated":"2021-11-24 16:09:58.000000000","message":"if these are all the DB allowed values, it should be put into common/constants.py for reference.","commit_id":"8b77bf4b8215405024267a20697a29dd3c3ddd17"},{"author":{"_account_id":33667,"name":"Rafael Camargos","email":"RafaelLucas.Camargos@windriver.com","username":"rcamargo"},"change_message_id":"39d30894484f39382651857f644ea4a14afd22a4","unresolved":true,"context_lines":[{"line_number":408,"context_line":"        change_dc_role \u003d False"},{"line_number":409,"context_line":"        vswitch_type \u003d None"},{"line_number":410,"context_line":"        new_system_mode \u003d None"},{"line_number":411,"context_line":"        ALLOWED_CHARS \u003d r\"^[a-zA-Z0-9!@#$%^\u0026*()_+\\-\u003d\\[\\]{};:\\\u0027\\\"|,.\u003c\u003e\\/? ]*$\""},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        # prevent description field from being updated"},{"line_number":414,"context_line":"        for p in jsonpatch.JsonPatch(patch):"}],"source_content_type":"text/x-python","patch_set":7,"id":"a74f0fcd_8b1418a8","line":411,"in_reply_to":"264b587b_b9d5e4cf","updated":"2021-11-24 17:11:32.000000000","message":"What I did here was actually way \"ad-hoc\u0027er\" than officially getting and using the allowed values on the system: I came up with an inclusive list of common chars and tested each of them. I sense that it would accept all ascii characters but I don\u0027t feel like we should.\n\nIn this sense, I\u0027m not sure if this list of chars should be made a common reference or not.","commit_id":"8b77bf4b8215405024267a20697a29dd3c3ddd17"},{"author":{"_account_id":33667,"name":"Rafael Camargos","email":"RafaelLucas.Camargos@windriver.com","username":"rcamargo"},"change_message_id":"32ab875dde50b643477858794d863d7f566a4829","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        change_dc_role \u003d False"},{"line_number":409,"context_line":"        vswitch_type \u003d None"},{"line_number":410,"context_line":"        new_system_mode \u003d None"},{"line_number":411,"context_line":"        ALLOWED_CHARS \u003d r\"^[a-zA-Z0-9!@#$%^\u0026*()_+\\-\u003d\\[\\]{};:\\\u0027\\\"|,.\u003c\u003e\\/? ]*$\""},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        # prevent description field from being updated"},{"line_number":414,"context_line":"        for p in jsonpatch.JsonPatch(patch):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fb007ee7_07eae30a","line":411,"in_reply_to":"a74f0fcd_8b1418a8","updated":"2021-11-25 15:47:36.000000000","message":"Ack","commit_id":"8b77bf4b8215405024267a20697a29dd3c3ddd17"}],"sysinv/sysinv/sysinv/sysinv/tests/api/test_system.py":[{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"721b3b63cf06ff0fd7b5931b2402e07b22d130d5","unresolved":true,"context_lines":[{"line_number":102,"context_line":"                              update, expect_errors\u003dTrue)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_update_longitude_invalid_chars(self):"},{"line_number":105,"context_line":"        update \u003d {\"latitude\": u\"99.99999° W\"}"},{"line_number":106,"context_line":"        self._patch_and_check(self._get_path(self.system.uuid),"},{"line_number":107,"context_line":"                              update, expect_errors\u003dTrue)"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"af38fc25_43d20e5c","line":105,"range":{"start_line":105,"start_character":19,"end_line":105,"end_character":27},"updated":"2021-11-25 21:33:25.000000000","message":"this unit test is for longitude and you changed the update field to latitude.\n\nAlso, I am  wondering why you removed the null check unit tests","commit_id":"4c3eb84eed609f26a35e532981447fa05847ad74"},{"author":{"_account_id":33667,"name":"Rafael Camargos","email":"RafaelLucas.Camargos@windriver.com","username":"rcamargo"},"change_message_id":"d2faa6745fd3c0426621181bff43aea098066f34","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                              update, expect_errors\u003dTrue)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_update_longitude_invalid_chars(self):"},{"line_number":105,"context_line":"        update \u003d {\"latitude\": u\"99.99999° W\"}"},{"line_number":106,"context_line":"        self._patch_and_check(self._get_path(self.system.uuid),"},{"line_number":107,"context_line":"                              update, expect_errors\u003dTrue)"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bbf7f850_3c52258e","line":105,"range":{"start_line":105,"start_character":19,"end_line":105,"end_character":27},"in_reply_to":"af38fc25_43d20e5c","updated":"2021-11-26 11:55:58.000000000","message":"Ops, bad copy/paste. Renamed.\n\nRegarding the null check, it was moved to an inclusive valid choices test which I added here.","commit_id":"4c3eb84eed609f26a35e532981447fa05847ad74"}]}
