)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":24777,"name":"Steven Webster","email":"steven.webster@windriver.com","username":"swebster"},"change_message_id":"b88bd645e526ab420385eca76c0c0c8a6c41b47e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b2d08532_aa905a77","updated":"2022-06-30 14:01:56.000000000","message":"Good catch OhJoohyun!","commit_id":"5b2841f2eed971838e455ee336a6f04023b33538"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"e3f45805cf7052c7e6922e58b1be5c97ab808c21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f5da37e8_24e68f04","updated":"2022-07-12 12:21:36.000000000","message":"Thanks OhJoohyun for the commit.","commit_id":"60c1074f254e4dc2970971c4d8a334ae6ab0fab4"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/interface.py":[{"author":{"_account_id":24777,"name":"Steven Webster","email":"steven.webster@windriver.com","username":"swebster"},"change_message_id":"b88bd645e526ab420385eca76c0c0c8a6c41b47e","unresolved":true,"context_lines":[{"line_number":1157,"context_line":"    # Check vlan interfaces"},{"line_number":1158,"context_line":"    if iftype \u003d\u003d constants.INTERFACE_TYPE_VLAN:"},{"line_number":1159,"context_line":"        vlan_id \u003d interface[\u0027vlan_id\u0027]"},{"line_number":1160,"context_line":"        if vlan_id is None:"},{"line_number":1161,"context_line":"            msg \u003d _(\"VLAN id cannot be empty\")"},{"line_number":1162,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1163,"context_line":"        lower_ifname \u003d interface[\u0027uses\u0027][0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"b9904f9d_ee767440","line":1160,"updated":"2022-06-30 14:01:56.000000000","message":"I think it might make more sense to do this check in _check_interface_vlan_id:\n\nhttps://opendev.org/starlingx/config/src/branch/master/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/interface.py#L541\n\nCan you also add a unit test to sysinv/tests/api/test_interface.py?  For an example, you can look at a similar test:\n\nhttps://opendev.org/starlingx/config/src/branch/master/sysinv/sysinv/sysinv/sysinv/tests/api/test_interface.py#L1377","commit_id":"5b2841f2eed971838e455ee336a6f04023b33538"},{"author":{"_account_id":34909,"name":"Joohyun","display_name":"Joohyun","email":"oh011798@gmail.com","username":"Joohyun"},"change_message_id":"99b1e850361d0a7ed903f824e3de7237fc223241","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"    # Check vlan interfaces"},{"line_number":1158,"context_line":"    if iftype \u003d\u003d constants.INTERFACE_TYPE_VLAN:"},{"line_number":1159,"context_line":"        vlan_id \u003d interface[\u0027vlan_id\u0027]"},{"line_number":1160,"context_line":"        if vlan_id is None:"},{"line_number":1161,"context_line":"            msg \u003d _(\"VLAN id cannot be empty\")"},{"line_number":1162,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1163,"context_line":"        lower_ifname \u003d interface[\u0027uses\u0027][0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"045bb3bd_24f083e3","line":1160,"in_reply_to":"0cb29775_8b2d78d9","updated":"2022-07-04 23:12:47.000000000","message":"Done","commit_id":"5b2841f2eed971838e455ee336a6f04023b33538"},{"author":{"_account_id":34909,"name":"Joohyun","display_name":"Joohyun","email":"oh011798@gmail.com","username":"Joohyun"},"change_message_id":"38193a9e7b5ca31d5ac8624f0f857c707491ec1a","unresolved":true,"context_lines":[{"line_number":1157,"context_line":"    # Check vlan interfaces"},{"line_number":1158,"context_line":"    if iftype \u003d\u003d constants.INTERFACE_TYPE_VLAN:"},{"line_number":1159,"context_line":"        vlan_id \u003d interface[\u0027vlan_id\u0027]"},{"line_number":1160,"context_line":"        if vlan_id is None:"},{"line_number":1161,"context_line":"            msg \u003d _(\"VLAN id cannot be empty\")"},{"line_number":1162,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1163,"context_line":"        lower_ifname \u003d interface[\u0027uses\u0027][0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"0cb29775_8b2d78d9","line":1160,"in_reply_to":"b9904f9d_ee767440","updated":"2022-07-04 01:19:16.000000000","message":"Thank you for review. Done","commit_id":"5b2841f2eed971838e455ee336a6f04023b33538"},{"author":{"_account_id":24777,"name":"Steven Webster","email":"steven.webster@windriver.com","username":"swebster"},"change_message_id":"a00a70f88d9abdf116518a17cbe446d6bde18776","unresolved":true,"context_lines":[{"line_number":1158,"context_line":"    if iftype \u003d\u003d constants.INTERFACE_TYPE_VLAN:"},{"line_number":1159,"context_line":"        vlan_id \u003d interface[\u0027vlan_id\u0027]"},{"line_number":1160,"context_line":"        if vlan_id is None:"},{"line_number":1161,"context_line":"            msg \u003d _(\"VLAN id cannot be empty\")"},{"line_number":1162,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1163,"context_line":"        lower_ifname \u003d interface[\u0027uses\u0027][0]"},{"line_number":1164,"context_line":"        lower_iface \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"b6d59bdf_005aeeb7","line":1161,"updated":"2022-06-30 14:11:45.000000000","message":"Can we say \"VLAN id must be specified\"","commit_id":"5b2841f2eed971838e455ee336a6f04023b33538"},{"author":{"_account_id":34909,"name":"Joohyun","display_name":"Joohyun","email":"oh011798@gmail.com","username":"Joohyun"},"change_message_id":"99b1e850361d0a7ed903f824e3de7237fc223241","unresolved":false,"context_lines":[{"line_number":1158,"context_line":"    if iftype \u003d\u003d constants.INTERFACE_TYPE_VLAN:"},{"line_number":1159,"context_line":"        vlan_id \u003d interface[\u0027vlan_id\u0027]"},{"line_number":1160,"context_line":"        if vlan_id is None:"},{"line_number":1161,"context_line":"            msg \u003d _(\"VLAN id cannot be empty\")"},{"line_number":1162,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1163,"context_line":"        lower_ifname \u003d interface[\u0027uses\u0027][0]"},{"line_number":1164,"context_line":"        lower_iface \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"38b076d4_4c9c844a","line":1161,"in_reply_to":"a4d9924a_d5457c3b","updated":"2022-07-04 23:12:47.000000000","message":"Done","commit_id":"5b2841f2eed971838e455ee336a6f04023b33538"},{"author":{"_account_id":34909,"name":"Joohyun","display_name":"Joohyun","email":"oh011798@gmail.com","username":"Joohyun"},"change_message_id":"38193a9e7b5ca31d5ac8624f0f857c707491ec1a","unresolved":true,"context_lines":[{"line_number":1158,"context_line":"    if iftype \u003d\u003d constants.INTERFACE_TYPE_VLAN:"},{"line_number":1159,"context_line":"        vlan_id \u003d interface[\u0027vlan_id\u0027]"},{"line_number":1160,"context_line":"        if vlan_id is None:"},{"line_number":1161,"context_line":"            msg \u003d _(\"VLAN id cannot be empty\")"},{"line_number":1162,"context_line":"            raise wsme.exc.ClientSideError(msg)"},{"line_number":1163,"context_line":"        lower_ifname \u003d interface[\u0027uses\u0027][0]"},{"line_number":1164,"context_line":"        lower_iface \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"a4d9924a_d5457c3b","line":1161,"in_reply_to":"b6d59bdf_005aeeb7","updated":"2022-07-04 01:19:16.000000000","message":"Done","commit_id":"5b2841f2eed971838e455ee336a6f04023b33538"}]}
