)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31668},"change_message_id":"2c8c6528bc0d39beec1309398d6aa552e823b437","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Handle invalid attrName in v2 API AttributeFilter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When an invalid attrName was passed to AttributeFilter, it caused"},{"line_number":10,"context_line":"a 500 error.  This commit makes AttributeFilter to return a"},{"line_number":11,"context_line":"more-appropriate 400 error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint support-nfv-solv3-query-vnf-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"f20b17c8_2a4feee1","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":14},"updated":"2022-01-28 04:22:58.000000000","message":"I think it\u0027s better to remove one space or start a new line.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":31668},"change_message_id":"5640bcd974231405f9fbe2c18c052b316f0d50b0","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Handle invalid attrName in v2 API AttributeFilter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When an invalid attrName was passed to AttributeFilter, it caused"},{"line_number":10,"context_line":"a 500 error.  This commit makes AttributeFilter to return a"},{"line_number":11,"context_line":"more-appropriate 400 error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint support-nfv-solv3-query-vnf-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"de0caaa5_27ea6bcc","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":14},"in_reply_to":"287a7fe5_b3126fc5","updated":"2022-02-02 02:21:33.000000000","message":"I felt a little uncomfortable with these two spaces, but I don\u0027t think it\u0027s an important point.\nIf the other members are good, there is no problem.\n\nAfter Zuul added +1 I will also add +1.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"686c1eb926e93b5cab8a79209f0a1c46ff39becc","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Handle invalid attrName in v2 API AttributeFilter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When an invalid attrName was passed to AttributeFilter, it caused"},{"line_number":10,"context_line":"a 500 error.  This commit makes AttributeFilter to return a"},{"line_number":11,"context_line":"more-appropriate 400 error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint support-nfv-solv3-query-vnf-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"287a7fe5_b3126fc5","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":14},"in_reply_to":"4888ad0b_185ac6c7","updated":"2022-02-02 01:57:28.000000000","message":"Double space is kinda my preference.\nGiven it is so unpopular here and rarely used in tacker comments, I made a compromise for the latter. :-)","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":31668},"change_message_id":"9d7c8de1b61e1f2072e073ed8e22775761da062b","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Handle invalid attrName in v2 API AttributeFilter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When an invalid attrName was passed to AttributeFilter, it caused"},{"line_number":10,"context_line":"a 500 error.  This commit makes AttributeFilter to return a"},{"line_number":11,"context_line":"more-appropriate 400 error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint support-nfv-solv3-query-vnf-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4888ad0b_185ac6c7","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":14},"in_reply_to":"8c4f4131_c033a405","updated":"2022-02-02 00:53:20.000000000","message":"I confirmed the correction for the same comment in \"vnflcm_view.py\".\nIs it a correction mistake that the commit message has not been corrected? Or is it your policy?","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"fadbf4b1c0c17319c2e87d327a8a9eb1658d4271","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Handle invalid attrName in v2 API AttributeFilter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When an invalid attrName was passed to AttributeFilter, it caused"},{"line_number":10,"context_line":"a 500 error.  This commit makes AttributeFilter to return a"},{"line_number":11,"context_line":"more-appropriate 400 error."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint support-nfv-solv3-query-vnf-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"8c4f4131_c033a405","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":14},"in_reply_to":"f20b17c8_2a4feee1","updated":"2022-02-01 09:21:11.000000000","message":"Oh, double space is so unpopular here..\nI think this is a valid writing style.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"718726041a3c76ac7346cfd38e1fe3a578cb24ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e8819229_e7178f71","updated":"2022-01-27 08:24:52.000000000","message":"Fixed in PS3. Please check.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"fadbf4b1c0c17319c2e87d327a8a9eb1658d4271","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"12e5f681_1e7c55b6","updated":"2022-02-01 09:21:11.000000000","message":"Uploaded a new patchset. Please check.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"dabc632d9456dc4afed09e829856cac1b28c7c10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0793e58c_d02b9841","updated":"2022-01-28 01:24:46.000000000","message":"recheck","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"4553a9af24237d4ecafca08535509301cc29e53e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"479a1600_5bc7b17d","updated":"2022-02-03 08:23:40.000000000","message":"LGTM. Thanks for your patch.","commit_id":"158f05e4734904872fd7378c1bd5f43fe3aa05d9"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"686c1eb926e93b5cab8a79209f0a1c46ff39becc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2115c51d_ef7e74fa","updated":"2022-02-02 01:57:28.000000000","message":"recheck","commit_id":"158f05e4734904872fd7378c1bd5f43fe3aa05d9"}],"tacker/sol_refactored/controller/vnflcm_view.py":[{"author":{"_account_id":31668},"change_message_id":"1f9435065da9ab1b7877f7960de2d5adfd6890e4","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            return False"},{"line_number":87,"context_line":"        except TypeError:"},{"line_number":88,"context_line":"            raise sol_ex.InvalidAttributeFilter("},{"line_number":89,"context_line":"                sol_detail\u003d\"AttrName %s is invalid\" % \u0027/\u0027.join(self.attr))"},{"line_number":90,"context_line":"        LOG.debug(\"Key %s type %s\", self.attr, type(val))"},{"line_number":91,"context_line":"        # If not str, assume type conversion is already done."},{"line_number":92,"context_line":"        # Note: It is assumed that the type doesn\u0027t change between calls,"}],"source_content_type":"text/x-python","patch_set":1,"id":"43009d08_529036fd","line":89,"updated":"2022-01-27 06:26:02.000000000","message":"If \"self.attr\" contains \"@key\" (KeyAttribute), the creation of sol_detail will fail and a 500 error will be returned instead of a 400 error.\nFor example, if the filter is set to \"(eq,instantiatedVnfInfo/extVirtualLinkInfo/currentVnfExtCpData/cpConfig/@key,VDU1_CP1)\", a 500 error will be returned.\nShouldn\u0027t this return a 400 error?\n\nPlease add a comment that @key is not supported for \"map\" in \"list\".","commit_id":"a03ee1db1d10703d6cf0b46e7c8a8bfade148ba7"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"718726041a3c76ac7346cfd38e1fe3a578cb24ce","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            return False"},{"line_number":87,"context_line":"        except TypeError:"},{"line_number":88,"context_line":"            raise sol_ex.InvalidAttributeFilter("},{"line_number":89,"context_line":"                sol_detail\u003d\"AttrName %s is invalid\" % \u0027/\u0027.join(self.attr))"},{"line_number":90,"context_line":"        LOG.debug(\"Key %s type %s\", self.attr, type(val))"},{"line_number":91,"context_line":"        # If not str, assume type conversion is already done."},{"line_number":92,"context_line":"        # Note: It is assumed that the type doesn\u0027t change between calls,"}],"source_content_type":"text/x-python","patch_set":1,"id":"653d1105_155719e0","line":89,"in_reply_to":"43009d08_529036fd","updated":"2022-01-27 08:24:52.000000000","message":"Nice catch. Thanks.","commit_id":"a03ee1db1d10703d6cf0b46e7c8a8bfade148ba7"},{"author":{"_account_id":31668},"change_message_id":"9d7c8de1b61e1f2072e073ed8e22775761da062b","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            return False"},{"line_number":87,"context_line":"        except TypeError:"},{"line_number":88,"context_line":"            raise sol_ex.InvalidAttributeFilter("},{"line_number":89,"context_line":"                sol_detail\u003d\"AttrName %s is invalid\" % \u0027/\u0027.join(self.attr))"},{"line_number":90,"context_line":"        LOG.debug(\"Key %s type %s\", self.attr, type(val))"},{"line_number":91,"context_line":"        # If not str, assume type conversion is already done."},{"line_number":92,"context_line":"        # Note: It is assumed that the type doesn\u0027t change between calls,"}],"source_content_type":"text/x-python","patch_set":1,"id":"b072e1ec_7d369caa","line":89,"in_reply_to":"653d1105_155719e0","updated":"2022-02-02 00:53:20.000000000","message":"Done","commit_id":"a03ee1db1d10703d6cf0b46e7c8a8bfade148ba7"},{"author":{"_account_id":31668},"change_message_id":"2c8c6528bc0d39beec1309398d6aa552e823b437","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        try:"},{"line_number":81,"context_line":"            for a in self.attr:"},{"line_number":82,"context_line":"                # NOTE(toshii): The attribute specified by \"@key\""},{"line_number":83,"context_line":"                # must be a dict, not a list of dicts.  SOL013 isn\u0027t"},{"line_number":84,"context_line":"                # very clear on this topic and the current implementation"},{"line_number":85,"context_line":"                # doesn\u0027t support the latter."},{"line_number":86,"context_line":"                if isinstance(a, KeyAttribute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9d0fc4f3_a620cfd6","line":83,"range":{"start_line":83,"start_character":54,"end_line":83,"end_character":56},"updated":"2022-01-28 04:22:58.000000000","message":"I think it\u0027s better to remove one space or start a new line.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":31668},"change_message_id":"9d7c8de1b61e1f2072e073ed8e22775761da062b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        try:"},{"line_number":81,"context_line":"            for a in self.attr:"},{"line_number":82,"context_line":"                # NOTE(toshii): The attribute specified by \"@key\""},{"line_number":83,"context_line":"                # must be a dict, not a list of dicts.  SOL013 isn\u0027t"},{"line_number":84,"context_line":"                # very clear on this topic and the current implementation"},{"line_number":85,"context_line":"                # doesn\u0027t support the latter."},{"line_number":86,"context_line":"                if isinstance(a, KeyAttribute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"45aba128_be5abf13","line":83,"range":{"start_line":83,"start_character":54,"end_line":83,"end_character":56},"in_reply_to":"82d4876e_8086acee","updated":"2022-02-02 00:53:20.000000000","message":"Done","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"fadbf4b1c0c17319c2e87d327a8a9eb1658d4271","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        try:"},{"line_number":81,"context_line":"            for a in self.attr:"},{"line_number":82,"context_line":"                # NOTE(toshii): The attribute specified by \"@key\""},{"line_number":83,"context_line":"                # must be a dict, not a list of dicts.  SOL013 isn\u0027t"},{"line_number":84,"context_line":"                # very clear on this topic and the current implementation"},{"line_number":85,"context_line":"                # doesn\u0027t support the latter."},{"line_number":86,"context_line":"                if isinstance(a, KeyAttribute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"82d4876e_8086acee","line":83,"range":{"start_line":83,"start_character":54,"end_line":83,"end_character":56},"in_reply_to":"9d0fc4f3_a620cfd6","updated":"2022-02-01 09:21:11.000000000","message":"ditto.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":31668},"change_message_id":"a1020953cdc29867ea2e49934f65e3b139e0303d","unresolved":true,"context_lines":[{"line_number":86,"context_line":"                if isinstance(a, KeyAttribute):"},{"line_number":87,"context_line":"                    val \u003d list(val.keys())"},{"line_number":88,"context_line":"                else:"},{"line_number":89,"context_line":"                    val \u003d val[a]"},{"line_number":90,"context_line":"        except KeyError:"},{"line_number":91,"context_line":"            LOG.debug(\"Attr %s not found in %s\", self.attr, val)"},{"line_number":92,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"85c8485b_cccb7b78","line":89,"updated":"2022-01-28 05:23:33.000000000","message":"If the attribute is invalid, an \"Attribute Error\" will occur and a 500 error will be returned.\nFor example, if the filter is set to \"(eq,instantiationState_dummy,INSTANTIATED)\", it will return a 500 error.\nPlease correct it to return a 400 error.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"fadbf4b1c0c17319c2e87d327a8a9eb1658d4271","unresolved":true,"context_lines":[{"line_number":86,"context_line":"                if isinstance(a, KeyAttribute):"},{"line_number":87,"context_line":"                    val \u003d list(val.keys())"},{"line_number":88,"context_line":"                else:"},{"line_number":89,"context_line":"                    val \u003d val[a]"},{"line_number":90,"context_line":"        except KeyError:"},{"line_number":91,"context_line":"            LOG.debug(\"Attr %s not found in %s\", self.attr, val)"},{"line_number":92,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"86b62cab_d46105c8","line":89,"in_reply_to":"85c8485b_cccb7b78","updated":"2022-02-01 09:21:11.000000000","message":"My bad. Thanks for testing.\nSo val isn\u0027t a usual dict but a ovoo. Corrected.","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"},{"author":{"_account_id":31668},"change_message_id":"9d7c8de1b61e1f2072e073ed8e22775761da062b","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                if isinstance(a, KeyAttribute):"},{"line_number":87,"context_line":"                    val \u003d list(val.keys())"},{"line_number":88,"context_line":"                else:"},{"line_number":89,"context_line":"                    val \u003d val[a]"},{"line_number":90,"context_line":"        except KeyError:"},{"line_number":91,"context_line":"            LOG.debug(\"Attr %s not found in %s\", self.attr, val)"},{"line_number":92,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"2b075261_e5f9dafc","line":89,"in_reply_to":"86b62cab_d46105c8","updated":"2022-02-02 00:53:20.000000000","message":"Done","commit_id":"c268c5c9bef567b84345ff3f3cfc9b11d5e38e43"}]}
