)]}'
{"tacker/api/schemas/vnf_lcm.py":[{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"0ea6968f2b7d93142c88f3c219a5764b744dd9a7","unresolved":true,"context_lines":[{"line_number":191,"context_line":"            }"},{"line_number":192,"context_line":"        }"},{"line_number":193,"context_line":"    },"},{"line_number":194,"context_line":"    \u0027required\u0027: [\u0027vnfSoftwareVersion\u0027]"},{"line_number":195,"context_line":"}"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"_vnf_products \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"22877b25_ec8139c0","line":194,"updated":"2021-03-24 23:30:28.000000000","message":"Should be after L.192","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"3d7c67e6fa6386256c6f78391f64a418857055d3","unresolved":true,"context_lines":[{"line_number":191,"context_line":"            }"},{"line_number":192,"context_line":"        }"},{"line_number":193,"context_line":"    },"},{"line_number":194,"context_line":"    \u0027required\u0027: [\u0027vnfSoftwareVersion\u0027]"},{"line_number":195,"context_line":"}"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"_vnf_products \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"c818a2ef_7f450701","line":194,"in_reply_to":"22877b25_ec8139c0","updated":"2021-03-25 11:05:04.000000000","message":"\u003e Should be after L.192\n\nmoved as suggested","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"0ea6968f2b7d93142c88f3c219a5764b744dd9a7","unresolved":true,"context_lines":[{"line_number":203,"context_line":"            \u0027versions\u0027: _versions"},{"line_number":204,"context_line":"        }"},{"line_number":205,"context_line":"    },"},{"line_number":206,"context_line":"    \u0027required\u0027: [\u0027vnfProductName\u0027]"},{"line_number":207,"context_line":"}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"_vnf_products_from_providers \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"ea200183_316b37e2","line":206,"updated":"2021-03-24 23:30:28.000000000","message":"Should be after L.204","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"3d7c67e6fa6386256c6f78391f64a418857055d3","unresolved":true,"context_lines":[{"line_number":203,"context_line":"            \u0027versions\u0027: _versions"},{"line_number":204,"context_line":"        }"},{"line_number":205,"context_line":"    },"},{"line_number":206,"context_line":"    \u0027required\u0027: [\u0027vnfProductName\u0027]"},{"line_number":207,"context_line":"}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"_vnf_products_from_providers \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"92c4f8ef_bbb5e2ba","line":206,"in_reply_to":"ea200183_316b37e2","updated":"2021-03-25 11:05:04.000000000","message":"\u003e Should be after L.204\n\nmoved as suggested","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"}],"tacker/api/validation/parameter_types.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3c0cdaeb5e71ae5946ee3727c65b0ec31e8b6e59","unresolved":true,"context_lines":[{"line_number":121,"context_line":"            \u0027anyOf\u0027: ["},{"line_number":122,"context_line":"                {\u0027type\u0027: \u0027array\u0027},"},{"line_number":123,"context_line":"                {\u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 255},"},{"line_number":124,"context_line":"                {\u0027type\u0027: \u0027object\u0027}"},{"line_number":125,"context_line":"            ]"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":7,"id":"6da9c0c3_4f23f1fc","line":124,"updated":"2021-02-25 10:29:32.000000000","message":"Is this fix needed because of the other code fixes in this patch?","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"90953908c3a8f3a4dd7f5c895464128d4e9eae29","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            \u0027anyOf\u0027: ["},{"line_number":122,"context_line":"                {\u0027type\u0027: \u0027array\u0027},"},{"line_number":123,"context_line":"                {\u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 255},"},{"line_number":124,"context_line":"                {\u0027type\u0027: \u0027object\u0027}"},{"line_number":125,"context_line":"            ]"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f4a1b7a_eabd2dd3","line":124,"in_reply_to":"0850e29d_1075fde8","updated":"2021-03-10 08:28:41.000000000","message":"I\u0027ve confirmed.","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"de5edae32e8c7b1f2fc2855ea87d05b06c93c2f2","unresolved":true,"context_lines":[{"line_number":121,"context_line":"            \u0027anyOf\u0027: ["},{"line_number":122,"context_line":"                {\u0027type\u0027: \u0027array\u0027},"},{"line_number":123,"context_line":"                {\u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 255},"},{"line_number":124,"context_line":"                {\u0027type\u0027: \u0027object\u0027}"},{"line_number":125,"context_line":"            ]"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":7,"id":"0850e29d_1075fde8","line":124,"in_reply_to":"6da9c0c3_4f23f1fc","updated":"2021-03-04 19:22:37.000000000","message":"\u003e Is this fix needed because of the other code fixes in this patch?\n\nYes, because Subscription POST now supports vnfInstanceSubscriptionFilter which is an object type.","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"}],"tacker/api/vnflcm/v1/controller.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3c0cdaeb5e71ae5946ee3727c65b0ec31e8b6e59","unresolved":true,"context_lines":[{"line_number":856,"context_line":"                    return self._make_problem_detail("},{"line_number":857,"context_line":"                        msg, 400, title\u003d\u0027Bad Request\u0027)"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"            # vnfInstanceSubscriptionFilter check"},{"line_number":860,"context_line":"            try:"},{"line_number":861,"context_line":"                if vnf_subscription_filter is not {}:"},{"line_number":862,"context_line":"                    vnfd_products_from_providers \u003d \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"08082e44_09d3828c","line":859,"range":{"start_line":859,"start_character":14,"end_line":859,"end_character":49},"updated":"2021-02-25 10:29:32.000000000","message":"Can these validation checks be performed at \u0027api/schemas/vnf_lcm.py\u0027?","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"de5edae32e8c7b1f2fc2855ea87d05b06c93c2f2","unresolved":true,"context_lines":[{"line_number":856,"context_line":"                    return self._make_problem_detail("},{"line_number":857,"context_line":"                        msg, 400, title\u003d\u0027Bad Request\u0027)"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"            # vnfInstanceSubscriptionFilter check"},{"line_number":860,"context_line":"            try:"},{"line_number":861,"context_line":"                if vnf_subscription_filter is not {}:"},{"line_number":862,"context_line":"                    vnfd_products_from_providers \u003d \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"4fc3612a_0f126f33","line":859,"range":{"start_line":859,"start_character":14,"end_line":859,"end_character":49},"in_reply_to":"08082e44_09d3828c","updated":"2021-03-04 19:22:37.000000000","message":"\u003e Can these validation checks be performed at \u0027api/schemas/vnf_lcm.py\u0027?\n\nRemoved checking in controller.py, moved to api/schemas/vnf_lcm.py","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"8f2d2ed44e112d784a6423d9a49d6f546546ed60","unresolved":false,"context_lines":[{"line_number":856,"context_line":"                    return self._make_problem_detail("},{"line_number":857,"context_line":"                        msg, 400, title\u003d\u0027Bad Request\u0027)"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"            # vnfInstanceSubscriptionFilter check"},{"line_number":860,"context_line":"            try:"},{"line_number":861,"context_line":"                if vnf_subscription_filter is not {}:"},{"line_number":862,"context_line":"                    vnfd_products_from_providers \u003d \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"eb4cb8e4_3184f8f5","line":859,"range":{"start_line":859,"start_character":14,"end_line":859,"end_character":49},"in_reply_to":"4fc3612a_0f126f33","updated":"2021-03-11 09:48:31.000000000","message":"I\u0027ve confirmed.","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"}],"tacker/common/utils.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3c0cdaeb5e71ae5946ee3727c65b0ec31e8b6e59","unresolved":true,"context_lines":[{"line_number":440,"context_line":"    return True"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"def get_dict_bottom_values(nested_dictionary, arr\u003d[]):"},{"line_number":444,"context_line":"    \"\"\"Loop through a dictionary and returns bottom level values in a list.\"\"\""},{"line_number":445,"context_line":"    for key, value in nested_dictionary.items():"},{"line_number":446,"context_line":"        if type(value) is dict:"}],"source_content_type":"text/x-python","patch_set":7,"id":"43dabe8b_4d44b019","line":443,"range":{"start_line":443,"start_character":4,"end_line":443,"end_character":26},"updated":"2021-02-25 10:29:32.000000000","message":"Are you using this newly defined function?","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"de5edae32e8c7b1f2fc2855ea87d05b06c93c2f2","unresolved":true,"context_lines":[{"line_number":440,"context_line":"    return True"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"def get_dict_bottom_values(nested_dictionary, arr\u003d[]):"},{"line_number":444,"context_line":"    \"\"\"Loop through a dictionary and returns bottom level values in a list.\"\"\""},{"line_number":445,"context_line":"    for key, value in nested_dictionary.items():"},{"line_number":446,"context_line":"        if type(value) is dict:"}],"source_content_type":"text/x-python","patch_set":7,"id":"55bec49d_dbb50552","line":443,"range":{"start_line":443,"start_character":4,"end_line":443,"end_character":26},"in_reply_to":"43dabe8b_4d44b019","updated":"2021-03-04 19:22:37.000000000","message":"\u003e Are you using this newly defined function?\n\nthis method is now removed","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"90953908c3a8f3a4dd7f5c895464128d4e9eae29","unresolved":false,"context_lines":[{"line_number":440,"context_line":"    return True"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"def get_dict_bottom_values(nested_dictionary, arr\u003d[]):"},{"line_number":444,"context_line":"    \"\"\"Loop through a dictionary and returns bottom level values in a list.\"\"\""},{"line_number":445,"context_line":"    for key, value in nested_dictionary.items():"},{"line_number":446,"context_line":"        if type(value) is dict:"}],"source_content_type":"text/x-python","patch_set":7,"id":"c888e85e_617d90b3","line":443,"range":{"start_line":443,"start_character":4,"end_line":443,"end_character":26},"in_reply_to":"55bec49d_dbb50552","updated":"2021-03-10 08:28:41.000000000","message":"I\u0027ve confirmed.","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3c0cdaeb5e71ae5946ee3727c65b0ec31e8b6e59","unresolved":true,"context_lines":[{"line_number":450,"context_line":"    return arr"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":454,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":455,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":456,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"0f3e96ad_79f6abcd","line":453,"range":{"start_line":453,"start_character":4,"end_line":453,"end_character":42},"updated":"2021-02-25 10:29:32.000000000","message":"Is it possible to extend \u0027convert_snakecase_to_camelcase\u0027 instead of defining a new one?","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"de5edae32e8c7b1f2fc2855ea87d05b06c93c2f2","unresolved":true,"context_lines":[{"line_number":450,"context_line":"    return arr"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":454,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":455,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":456,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"8e55d2d5_9aa8029c","line":453,"range":{"start_line":453,"start_character":4,"end_line":453,"end_character":42},"in_reply_to":"0f3e96ad_79f6abcd","updated":"2021-03-04 19:22:37.000000000","message":"\u003e Is it possible to extend \u0027convert_snakecase_to_camelcase\u0027 instead of defining a new one?\n\nIntroducing string type to this method might disrupt the functionality of the method. The current method \u0027\u0027convert_snakecase_to_camelcase\u0027 expects dict/list types while the new one expects string. Additionally, the current method is recursive and will stop only if it\u0027s not dict/list anymore.","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"90953908c3a8f3a4dd7f5c895464128d4e9eae29","unresolved":false,"context_lines":[{"line_number":450,"context_line":"    return arr"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":454,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":455,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":456,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ea16b20_2fd2e763","line":453,"range":{"start_line":453,"start_character":4,"end_line":453,"end_character":42},"in_reply_to":"8e55d2d5_9aa8029c","updated":"2021-03-10 08:28:41.000000000","message":"I\u0027ve confirmed.","commit_id":"8a550e9d67057dafccf0d1b24bfafe25154ff1d5"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c709acf96378d45f0be45806504e5650f466c692","unresolved":true,"context_lines":[{"line_number":466,"context_line":"    return True"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":470,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":471,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":472,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"},{"line_number":473,"context_line":"    return re.sub(\u0027([a-z0-9])([A-Z])\u0027, r\u0027\\1_\\2\u0027,"},{"line_number":474,"context_line":"                  name_with_underscores).lower()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"class CooperativeReader(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"d3295592_587640b4","line":474,"range":{"start_line":469,"start_character":0,"end_line":474,"end_character":48},"updated":"2021-03-22 07:34:23.000000000","message":"It\u0027s same as `convert()` in `convert_camelcase_to_snakecase()`. In addition, name of this function should be revised because just a bit long and `_` in `snake_case` is not needed.\n\nWhy don\u0027t you update `convert_camelcase_to_snakecase()` to return not only dict and list but also string type?","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c38e7d0e59b59a0e9f2025e4407d5cb247cf0c4c","unresolved":true,"context_lines":[{"line_number":466,"context_line":"    return True"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":470,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":471,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":472,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"},{"line_number":473,"context_line":"    return re.sub(\u0027([a-z0-9])([A-Z])\u0027, r\u0027\\1_\\2\u0027,"},{"line_number":474,"context_line":"                  name_with_underscores).lower()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"class CooperativeReader(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ec887f7f_437a4d46","line":474,"range":{"start_line":469,"start_character":0,"end_line":474,"end_character":48},"in_reply_to":"49730596_02fc3d86","updated":"2021-03-24 18:13:31.000000000","message":"I don\u0027t understand what is disrupted. The reason why `convert_snakecase_to_camelcase` supports only dict and list is because it\u0027s no need to support other types. I\u0027m not sure what do you think about `recursive`, but supporting string type can be done adding before.\n\n```\n    if isinstance(request_data, str):\n        return convert(request_data)\n\n    elif isinstance(request_data, dict):\n        ...\n\n    elif isinstance(request_data, list):\n        ...\n```\n\nIf you have any other considerations cannot be fixed soon, it\u0027s OK to make TODO for the issue at this time.\n\n```\n# TODO(your_hn) Consider to move this func to convert_camelcase_to_snakecase()\n```","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"9e052b68703be0b07bcded53186697949f67966e","unresolved":false,"context_lines":[{"line_number":466,"context_line":"    return True"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":470,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":471,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":472,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"},{"line_number":473,"context_line":"    return re.sub(\u0027([a-z0-9])([A-Z])\u0027, r\u0027\\1_\\2\u0027,"},{"line_number":474,"context_line":"                  name_with_underscores).lower()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"class CooperativeReader(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"888daf97_f6c353ab","line":474,"range":{"start_line":469,"start_character":0,"end_line":474,"end_character":48},"in_reply_to":"862ee0ee_b2c175db","updated":"2021-03-26 04:55:48.000000000","message":"I understand this comment conflicts with another one from Oda-san. Anyway, thanks for consideration.","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"fd619fa72870f77e403e9072fa1a149b4ee51810","unresolved":true,"context_lines":[{"line_number":466,"context_line":"    return True"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":470,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":471,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":472,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"},{"line_number":473,"context_line":"    return re.sub(\u0027([a-z0-9])([A-Z])\u0027, r\u0027\\1_\\2\u0027,"},{"line_number":474,"context_line":"                  name_with_underscores).lower()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"class CooperativeReader(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"49730596_02fc3d86","line":474,"range":{"start_line":469,"start_character":0,"end_line":474,"end_character":48},"in_reply_to":"d3295592_587640b4","updated":"2021-03-24 04:12:54.000000000","message":"\u003e It\u0027s same as `convert()` in `convert_camelcase_to_snakecase()`. In addition, name of this function should be revised because just a bit long and `_` in `snake_case` is not needed.\n\u003e \n\u003e Why don\u0027t you update `convert_camelcase_to_snakecase()` to return not only dict and list but also string type?\n\nrevised function name\n\nThis suggestion was already raised in patchset 7.\nIntroducing string type to this method might disrupt the functionality of the method. The method \u0027\u0027convert_snakecase_to_camelcase\u0027 expects dict/list types while the new one expects string. Additionally, the current method is recursive and will stop only if it\u0027s not dict/list anymore.","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"3d7c67e6fa6386256c6f78391f64a418857055d3","unresolved":true,"context_lines":[{"line_number":466,"context_line":"    return True"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def convert_camelcase_to_snake_case_string(name):"},{"line_number":470,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":471,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":472,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"},{"line_number":473,"context_line":"    return re.sub(\u0027([a-z0-9])([A-Z])\u0027, r\u0027\\1_\\2\u0027,"},{"line_number":474,"context_line":"                  name_with_underscores).lower()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"class CooperativeReader(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"862ee0ee_b2c175db","line":474,"range":{"start_line":469,"start_character":0,"end_line":474,"end_character":48},"in_reply_to":"ec887f7f_437a4d46","updated":"2021-03-25 11:05:04.000000000","message":"\u003e I don\u0027t understand what is disrupted. The reason why `convert_snakecase_to_camelcase` supports only dict and list is because it\u0027s no need to support other types. I\u0027m not sure what do you think about `recursive`, but supporting string type can be done adding before.\n\u003e \n\u003e ```\n\u003e     if isinstance(request_data, str):\n\u003e         return convert(request_data)\n\u003e \n\u003e     elif isinstance(request_data, dict):\n\u003e         ...\n\u003e \n\u003e     elif isinstance(request_data, list):\n\u003e         ...\n\u003e ```\n\u003e \n\u003e If you have any other considerations cannot be fixed soon, it\u0027s OK to make TODO for the issue at this time.\n\u003e \n\u003e ```\n\u003e # TODO(your_hn) Consider to move this func to convert_camelcase_to_snakecase()\n\u003e ```\n\nFor now, we added TODO, we need to decide on how to deal with it to avoid degrade.","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"0ea6968f2b7d93142c88f3c219a5764b744dd9a7","unresolved":true,"context_lines":[{"line_number":352,"context_line":"            \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"},{"line_number":353,"context_line":"        return re.sub(\u0027([a-z0-9])([A-Z])\u0027, r\u0027\\1_\\2\u0027,"},{"line_number":354,"context_line":"                      name_with_underscores).lower()"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    if isinstance(request_data, dict):"},{"line_number":357,"context_line":"        new_dict \u003d {}"},{"line_number":358,"context_line":"        for key, property_value in request_data.items():"}],"source_content_type":"text/x-python","patch_set":13,"id":"39bf5f1a_8eea7b27","line":355,"updated":"2021-03-24 23:30:28.000000000","message":"about L.350-L.355、L.360\nIt is better to change to use convert_string_to_snakecase() at the same time.\n(remove L.350-L.355、change to use convert_string_to_snakecase in L.360)\nDRY!","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"3d7c67e6fa6386256c6f78391f64a418857055d3","unresolved":true,"context_lines":[{"line_number":352,"context_line":"            \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"},{"line_number":353,"context_line":"        return re.sub(\u0027([a-z0-9])([A-Z])\u0027, r\u0027\\1_\\2\u0027,"},{"line_number":354,"context_line":"                      name_with_underscores).lower()"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    if isinstance(request_data, dict):"},{"line_number":357,"context_line":"        new_dict \u003d {}"},{"line_number":358,"context_line":"        for key, property_value in request_data.items():"}],"source_content_type":"text/x-python","patch_set":13,"id":"c6804490_bcb8a428","line":355,"in_reply_to":"39bf5f1a_8eea7b27","updated":"2021-03-25 11:05:04.000000000","message":"\u003e about L.350-L.355、L.360\n\u003e It is better to change to use convert_string_to_snakecase() at the same time.\n\u003e (remove L.350-L.355、change to use convert_string_to_snakecase in L.360)\n\u003e DRY!\n\nmoved convert_string_to_snakecase to L360\nremoved L350-L355 and use convert_string_to_snakecase","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"0ea6968f2b7d93142c88f3c219a5764b744dd9a7","unresolved":true,"context_lines":[{"line_number":466,"context_line":"    return True"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def convert_string_to_snakecase(name):"},{"line_number":470,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":471,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":472,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"30543574_3782c8e1","line":469,"updated":"2021-03-24 23:30:28.000000000","message":"It seems copy and paste from L.350. See. L.355 comment.\n(And it is better to move before L.340)","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"3d7c67e6fa6386256c6f78391f64a418857055d3","unresolved":true,"context_lines":[{"line_number":466,"context_line":"    return True"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"def convert_string_to_snakecase(name):"},{"line_number":470,"context_line":"    \"\"\"Converts a string from camelCase to snake_case.\"\"\""},{"line_number":471,"context_line":"    name_with_underscores \u003d re.sub("},{"line_number":472,"context_line":"        \u0027(.)([A-Z][a-z]+)\u0027, r\u0027\\1_\\2\u0027, name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"a2c9c59f_d4954ffa","line":469,"in_reply_to":"30543574_3782c8e1","updated":"2021-03-25 11:05:04.000000000","message":"\u003e It seems copy and paste from L.350. See. L.355 comment.\n\u003e (And it is better to move before L.340)\n\nmoved convert_string_to_snakecase to L360\nremoved L350-L355 and use convert_string_to_snakecase","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"}],"tacker/db/migration/alembic_migrations/versions/c31f65e0d099_add_columns_to_vnf_lcm_filter.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c709acf96378d45f0be45806504e5650f466c692","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":"#"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"add columns to v"},{"line_number":17,"context_line":"nf_lcm_filter"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Revision ID: c31f65e0d099"},{"line_number":20,"context_line":"Revises: 7186440a306b"}],"source_content_type":"text/x-python","patch_set":11,"id":"672a27f0_28d38e25","line":17,"range":{"start_line":16,"start_character":18,"end_line":17,"end_character":13},"updated":"2021-03-22 07:34:23.000000000","message":"It seems separated into two lines unexpectedly, and such a comment statement is better to start with capital char hopefully.","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c38e7d0e59b59a0e9f2025e4407d5cb247cf0c4c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":"#"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"add columns to v"},{"line_number":17,"context_line":"nf_lcm_filter"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Revision ID: c31f65e0d099"},{"line_number":20,"context_line":"Revises: 7186440a306b"}],"source_content_type":"text/x-python","patch_set":11,"id":"63109fca_f1a361c5","line":17,"range":{"start_line":16,"start_character":18,"end_line":17,"end_character":13},"in_reply_to":"4e8d20b3_7973483b","updated":"2021-03-24 18:13:31.000000000","message":"Done","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"fd619fa72870f77e403e9072fa1a149b4ee51810","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":"#"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"add columns to v"},{"line_number":17,"context_line":"nf_lcm_filter"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Revision ID: c31f65e0d099"},{"line_number":20,"context_line":"Revises: 7186440a306b"}],"source_content_type":"text/x-python","patch_set":11,"id":"4e8d20b3_7973483b","line":17,"range":{"start_line":16,"start_character":18,"end_line":17,"end_character":13},"in_reply_to":"672a27f0_28d38e25","updated":"2021-03-24 04:12:54.000000000","message":"\u003e It seems separated into two lines unexpectedly, and such a comment statement is better to start with capital char hopefully.\n\nmodified migration file","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c709acf96378d45f0be45806504e5650f466c692","unresolved":true,"context_lines":[{"line_number":42,"context_line":"    op.add_column("},{"line_number":43,"context_line":"        \u0027vnf_lcm_filters\u0027,"},{"line_number":44,"context_line":"        sa.Column("},{"line_number":45,"context_line":"            \u0027operation_states\u0027, sa.TEXT(length\u003d65535),"},{"line_number":46,"context_line":"            sa.Computed("},{"line_number":47,"context_line":"                \"json_unquote(json_extract(`filter`,\u0027$.operationStates\u0027))\")))"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"aa461704_7fe4b339","line":45,"range":{"start_line":45,"start_character":47,"end_line":45,"end_character":52},"updated":"2021-03-22 07:34:23.000000000","message":"I\u0027d ask you two things.\n\n1. It\u0027s better to define the value as a variable because all of filter sizes are the same.\n\n2. Could I confirm how you decided this size 65535 because It seems too long for me?","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"fd619fa72870f77e403e9072fa1a149b4ee51810","unresolved":true,"context_lines":[{"line_number":42,"context_line":"    op.add_column("},{"line_number":43,"context_line":"        \u0027vnf_lcm_filters\u0027,"},{"line_number":44,"context_line":"        sa.Column("},{"line_number":45,"context_line":"            \u0027operation_states\u0027, sa.TEXT(length\u003d65535),"},{"line_number":46,"context_line":"            sa.Computed("},{"line_number":47,"context_line":"                \"json_unquote(json_extract(`filter`,\u0027$.operationStates\u0027))\")))"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ef35fa29_d7e214a3","line":45,"range":{"start_line":45,"start_character":47,"end_line":45,"end_character":52},"in_reply_to":"aa461704_7fe4b339","updated":"2021-03-24 04:12:54.000000000","message":"\u003e I\u0027d ask you two things.\n\u003e \n\u003e 1. It\u0027s better to define the value as a variable because all of filter sizes are the same.\n\u003e \n\u003e 2. Could I confirm how you decided this size 65535 because It seems too long for me?\n\n1. defined variable for sizes\n2. this size is what is being used by existing migration files","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c38e7d0e59b59a0e9f2025e4407d5cb247cf0c4c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    op.add_column("},{"line_number":43,"context_line":"        \u0027vnf_lcm_filters\u0027,"},{"line_number":44,"context_line":"        sa.Column("},{"line_number":45,"context_line":"            \u0027operation_states\u0027, sa.TEXT(length\u003d65535),"},{"line_number":46,"context_line":"            sa.Computed("},{"line_number":47,"context_line":"                \"json_unquote(json_extract(`filter`,\u0027$.operationStates\u0027))\")))"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a24ff72_6d46325b","line":45,"range":{"start_line":45,"start_character":47,"end_line":45,"end_character":52},"in_reply_to":"ef35fa29_d7e214a3","updated":"2021-03-24 18:13:31.000000000","message":"Done","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"}],"tacker/objects/vnf_lcm_subscriptions.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c709acf96378d45f0be45806504e5650f466c692","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from sqlalchemy.sql import text"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tacker.common import exceptions"},{"line_number":18,"context_line":"from tacker.common.utils import convert_camelcase_to_snake_case_string"},{"line_number":19,"context_line":"import tacker.conf"},{"line_number":20,"context_line":"from tacker.db import api as db_api"},{"line_number":21,"context_line":"from tacker.db.db_sqlalchemy import api"}],"source_content_type":"text/x-python","patch_set":11,"id":"1c65f814_642cb517","line":18,"range":{"start_line":18,"start_character":32,"end_line":18,"end_character":70},"updated":"2021-03-22 07:34:23.000000000","message":"It should also be updated for the reason commented on `tacker/common/utils.py`.","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"fd619fa72870f77e403e9072fa1a149b4ee51810","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from sqlalchemy.sql import text"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tacker.common import exceptions"},{"line_number":18,"context_line":"from tacker.common.utils import convert_camelcase_to_snake_case_string"},{"line_number":19,"context_line":"import tacker.conf"},{"line_number":20,"context_line":"from tacker.db import api as db_api"},{"line_number":21,"context_line":"from tacker.db.db_sqlalchemy import api"}],"source_content_type":"text/x-python","patch_set":11,"id":"4269d64e_7a233192","line":18,"range":{"start_line":18,"start_character":32,"end_line":18,"end_character":70},"in_reply_to":"1c65f814_642cb517","updated":"2021-03-24 04:12:54.000000000","message":"\u003e It should also be updated for the reason commented on `tacker/common/utils.py`.\n\nchanged function name as suggested","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c38e7d0e59b59a0e9f2025e4407d5cb247cf0c4c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from sqlalchemy.sql import text"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tacker.common import exceptions"},{"line_number":18,"context_line":"from tacker.common.utils import convert_camelcase_to_snake_case_string"},{"line_number":19,"context_line":"import tacker.conf"},{"line_number":20,"context_line":"from tacker.db import api as db_api"},{"line_number":21,"context_line":"from tacker.db.db_sqlalchemy import api"}],"source_content_type":"text/x-python","patch_set":11,"id":"1d49956e_58863cb1","line":18,"range":{"start_line":18,"start_character":32,"end_line":18,"end_character":70},"in_reply_to":"4269d64e_7a233192","updated":"2021-03-24 18:13:31.000000000","message":"Ack","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c709acf96378d45f0be45806504e5650f466c692","unresolved":true,"context_lines":[{"line_number":51,"context_line":"    vnf_provider \u003d vnfd_products_from_providers.get(\u0027vnfProvider\u0027, \"\")"},{"line_number":52,"context_line":"    vnf_products \u003d vnfd_products_from_providers.get(\u0027vnfProducts\u0027, [])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    vnf_product_name \u003d \"\""},{"line_number":55,"context_line":"    versions \u003d []"},{"line_number":56,"context_line":"    for vnf_product in vnf_products:"},{"line_number":57,"context_line":"        vnf_product_name \u003d vnf_product.get(\u0027vnfProductName\u0027, \"\")"},{"line_number":58,"context_line":"        versions \u003d vnf_product.get(\u0027versions\u0027, [])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    vnf_software_version \u003d \"\""},{"line_number":61,"context_line":"    vnfd_versions \u003d []"},{"line_number":62,"context_line":"    for version in versions:"},{"line_number":63,"context_line":"        vnf_software_version \u003d version.get(\u0027vnfSoftwareVersion\u0027, \"\")"},{"line_number":64,"context_line":"        vnfd_versions \u003d version.get(\u0027vnfdVersions\u0027, [])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    vnf_subscription_array \u003d ["},{"line_number":67,"context_line":"        {\u0027vnfdIds\u0027: vnfd_ids},"}],"source_content_type":"text/x-python","patch_set":11,"id":"f9c9e39a_fc28aac6","line":64,"range":{"start_line":54,"start_character":0,"end_line":64,"end_character":55},"updated":"2021-03-22 07:34:23.000000000","message":"Could I confirm why you use `for` and just assign variables? Is it OK the variables to be overwritten if `vnf_products` or `versions` have several elements?","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"c38e7d0e59b59a0e9f2025e4407d5cb247cf0c4c","unresolved":true,"context_lines":[{"line_number":51,"context_line":"    vnf_provider \u003d vnfd_products_from_providers.get(\u0027vnfProvider\u0027, \"\")"},{"line_number":52,"context_line":"    vnf_products \u003d vnfd_products_from_providers.get(\u0027vnfProducts\u0027, [])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    vnf_product_name \u003d \"\""},{"line_number":55,"context_line":"    versions \u003d []"},{"line_number":56,"context_line":"    for vnf_product in vnf_products:"},{"line_number":57,"context_line":"        vnf_product_name \u003d vnf_product.get(\u0027vnfProductName\u0027, \"\")"},{"line_number":58,"context_line":"        versions \u003d vnf_product.get(\u0027versions\u0027, [])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    vnf_software_version \u003d \"\""},{"line_number":61,"context_line":"    vnfd_versions \u003d []"},{"line_number":62,"context_line":"    for version in versions:"},{"line_number":63,"context_line":"        vnf_software_version \u003d version.get(\u0027vnfSoftwareVersion\u0027, \"\")"},{"line_number":64,"context_line":"        vnfd_versions \u003d version.get(\u0027vnfdVersions\u0027, [])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    vnf_subscription_array \u003d ["},{"line_number":67,"context_line":"        {\u0027vnfdIds\u0027: vnfd_ids},"}],"source_content_type":"text/x-python","patch_set":11,"id":"dd99baaf_65739070","line":64,"range":{"start_line":54,"start_character":0,"end_line":64,"end_character":55},"in_reply_to":"44caae56_5a3c14cf","updated":"2021-03-24 18:13:31.000000000","message":"I don\u0027t understand why you use `for` if you get the value from the first element. Is it same as your code?\n\n```\nvnf_software_version \u003d versions[0].get(\u0027vnfSoftwareVersion\u0027, \"\")\n```","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"9e052b68703be0b07bcded53186697949f67966e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    vnf_provider \u003d vnfd_products_from_providers.get(\u0027vnfProvider\u0027, \"\")"},{"line_number":52,"context_line":"    vnf_products \u003d vnfd_products_from_providers.get(\u0027vnfProducts\u0027, [])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    vnf_product_name \u003d \"\""},{"line_number":55,"context_line":"    versions \u003d []"},{"line_number":56,"context_line":"    for vnf_product in vnf_products:"},{"line_number":57,"context_line":"        vnf_product_name \u003d vnf_product.get(\u0027vnfProductName\u0027, \"\")"},{"line_number":58,"context_line":"        versions \u003d vnf_product.get(\u0027versions\u0027, [])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    vnf_software_version \u003d \"\""},{"line_number":61,"context_line":"    vnfd_versions \u003d []"},{"line_number":62,"context_line":"    for version in versions:"},{"line_number":63,"context_line":"        vnf_software_version \u003d version.get(\u0027vnfSoftwareVersion\u0027, \"\")"},{"line_number":64,"context_line":"        vnfd_versions \u003d version.get(\u0027vnfdVersions\u0027, [])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    vnf_subscription_array \u003d ["},{"line_number":67,"context_line":"        {\u0027vnfdIds\u0027: vnfd_ids},"}],"source_content_type":"text/x-python","patch_set":11,"id":"b311aadc_238c3535","line":64,"range":{"start_line":54,"start_character":0,"end_line":64,"end_character":55},"in_reply_to":"be65667c_c946f109","updated":"2021-03-26 04:55:48.000000000","message":"Ack","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"3d7c67e6fa6386256c6f78391f64a418857055d3","unresolved":true,"context_lines":[{"line_number":51,"context_line":"    vnf_provider \u003d vnfd_products_from_providers.get(\u0027vnfProvider\u0027, \"\")"},{"line_number":52,"context_line":"    vnf_products \u003d vnfd_products_from_providers.get(\u0027vnfProducts\u0027, [])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    vnf_product_name \u003d \"\""},{"line_number":55,"context_line":"    versions \u003d []"},{"line_number":56,"context_line":"    for vnf_product in vnf_products:"},{"line_number":57,"context_line":"        vnf_product_name \u003d vnf_product.get(\u0027vnfProductName\u0027, \"\")"},{"line_number":58,"context_line":"        versions \u003d vnf_product.get(\u0027versions\u0027, [])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    vnf_software_version \u003d \"\""},{"line_number":61,"context_line":"    vnfd_versions \u003d []"},{"line_number":62,"context_line":"    for version in versions:"},{"line_number":63,"context_line":"        vnf_software_version \u003d version.get(\u0027vnfSoftwareVersion\u0027, \"\")"},{"line_number":64,"context_line":"        vnfd_versions \u003d version.get(\u0027vnfdVersions\u0027, [])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    vnf_subscription_array \u003d ["},{"line_number":67,"context_line":"        {\u0027vnfdIds\u0027: vnfd_ids},"}],"source_content_type":"text/x-python","patch_set":11,"id":"be65667c_c946f109","line":64,"range":{"start_line":54,"start_character":0,"end_line":64,"end_character":55},"in_reply_to":"dd99baaf_65739070","updated":"2021-03-25 11:05:04.000000000","message":"\u003e I don\u0027t understand why you use `for` if you get the value from the first element. Is it same as your code?\n\u003e \n\u003e ```\n\u003e vnf_software_version \u003d versions[0].get(\u0027vnfSoftwareVersion\u0027, \"\")\n\u003e ```\n\naffected with the change that was suggested by another reviewer below: \"L.56-L59 seems picking up the first element. L.63-L.67 seems too.\nThen L.54-L.66 can make simple as follows:\"","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"fd619fa72870f77e403e9072fa1a149b4ee51810","unresolved":true,"context_lines":[{"line_number":51,"context_line":"    vnf_provider \u003d vnfd_products_from_providers.get(\u0027vnfProvider\u0027, \"\")"},{"line_number":52,"context_line":"    vnf_products \u003d vnfd_products_from_providers.get(\u0027vnfProducts\u0027, [])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    vnf_product_name \u003d \"\""},{"line_number":55,"context_line":"    versions \u003d []"},{"line_number":56,"context_line":"    for vnf_product in vnf_products:"},{"line_number":57,"context_line":"        vnf_product_name \u003d vnf_product.get(\u0027vnfProductName\u0027, \"\")"},{"line_number":58,"context_line":"        versions \u003d vnf_product.get(\u0027versions\u0027, [])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    vnf_software_version \u003d \"\""},{"line_number":61,"context_line":"    vnfd_versions \u003d []"},{"line_number":62,"context_line":"    for version in versions:"},{"line_number":63,"context_line":"        vnf_software_version \u003d version.get(\u0027vnfSoftwareVersion\u0027, \"\")"},{"line_number":64,"context_line":"        vnfd_versions \u003d version.get(\u0027vnfdVersions\u0027, [])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    vnf_subscription_array \u003d ["},{"line_number":67,"context_line":"        {\u0027vnfdIds\u0027: vnfd_ids},"}],"source_content_type":"text/x-python","patch_set":11,"id":"44caae56_5a3c14cf","line":64,"range":{"start_line":54,"start_character":0,"end_line":64,"end_character":55},"in_reply_to":"f9c9e39a_fc28aac6","updated":"2021-03-24 04:12:54.000000000","message":"\u003e Could I confirm why you use `for` and just assign variables? Is it OK the variables to be overwritten if `vnf_products` or `versions` have several elements?\n\nadded break to utilize only the first element of the array","commit_id":"f3db63c3844d2c266b35ba3d547f8dd72b5a8dc6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"0ea6968f2b7d93142c88f3c219a5764b744dd9a7","unresolved":true,"context_lines":[{"line_number":64,"context_line":"        vnf_software_version \u003d version.get(\u0027vnfSoftwareVersion\u0027, \"\")"},{"line_number":65,"context_line":"        vnfd_versions \u003d version.get(\u0027vnfdVersions\u0027, [])"},{"line_number":66,"context_line":"        break"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    vnf_subscription_array \u003d ["},{"line_number":69,"context_line":"        {\u0027vnfdIds\u0027: vnfd_ids},"},{"line_number":70,"context_line":"        {\u0027vnfInstanceIds\u0027: vnf_instance_ids},"}],"source_content_type":"text/x-python","patch_set":13,"id":"027d03e2_04aeae64","line":67,"updated":"2021-03-24 23:30:28.000000000","message":"L.56-L59 seems picking up the first element. L.63-L.67 seems too.\nThen L.54-L.66 can make simple as follows:\n---\n    vnf_product_name \u003d \"\"\n    vnf_software_version \u003d \"\"\n    vnfd_versions \u003d []\n    if vnf_products:\n        vnf_product_name \u003d vnf_products[0].get(\u0027vnfProductName\u0027, \"\")\n        versions \u003d vnf_products[0].get(\u0027versions\u0027, []) \n        if versions:\n            vnf_software_version \u003d versions[0].get(\u0027vnfSoftwareVersion\u0027, \"\")\n            vnfd_versions \u003d versions[0].get(\u0027vnfdVersions\u0027, [])\n---","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"3d7c67e6fa6386256c6f78391f64a418857055d3","unresolved":true,"context_lines":[{"line_number":64,"context_line":"        vnf_software_version \u003d version.get(\u0027vnfSoftwareVersion\u0027, \"\")"},{"line_number":65,"context_line":"        vnfd_versions \u003d version.get(\u0027vnfdVersions\u0027, [])"},{"line_number":66,"context_line":"        break"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    vnf_subscription_array \u003d ["},{"line_number":69,"context_line":"        {\u0027vnfdIds\u0027: vnfd_ids},"},{"line_number":70,"context_line":"        {\u0027vnfInstanceIds\u0027: vnf_instance_ids},"}],"source_content_type":"text/x-python","patch_set":13,"id":"541793e8_7fdd9882","line":67,"in_reply_to":"027d03e2_04aeae64","updated":"2021-03-25 11:05:04.000000000","message":"\u003e L.56-L59 seems picking up the first element. L.63-L.67 seems too.\n\u003e Then L.54-L.66 can make simple as follows:\n\u003e ---\n\u003e     vnf_product_name \u003d \"\"\n\u003e     vnf_software_version \u003d \"\"\n\u003e     vnfd_versions \u003d []\n\u003e     if vnf_products:\n\u003e         vnf_product_name \u003d vnf_products[0].get(\u0027vnfProductName\u0027, \"\")\n\u003e         versions \u003d vnf_products[0].get(\u0027versions\u0027, []) \n\u003e         if versions:\n\u003e             vnf_software_version \u003d versions[0].get(\u0027vnfSoftwareVersion\u0027, \"\")\n\u003e             vnfd_versions \u003d versions[0].get(\u0027vnfdVersions\u0027, [])\n\u003e ---\n\napplied source block of code as suggested","commit_id":"de9bf159b9b3bbb7cfa57aa50d764abd889f1b33"}]}
