)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"d53ca3a1da3d3a435df3ad1e8267fdb4906f3634","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-21 09:56:20 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support a judgement of NFVO operation condition"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported judging NFVO operation condition."},{"line_number":10,"context_line":"This is related to PKG information and Granting information."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_3bc7ad98","line":7,"updated":"2020-08-26 00:13:57.000000000","message":"I think the topic of this patch should be set \u0027bp/support-vnfm-operations\u0027.\nIs it right?","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-21 09:56:20 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support a judgement of NFVO operation condition"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported judging NFVO operation condition."},{"line_number":10,"context_line":"This is related to PKG information and Granting information."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_84724b7b","line":7,"in_reply_to":"9f560f44_3bc7ad98","updated":"2020-09-03 16:00:23.000000000","message":"renamed topic as suggested.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"e2e067240182c4ba0100b7f62da2d556eedbaafd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9f560f44_8b6021a7","line":13,"updated":"2020-09-11 08:49:56.000000000","message":"Please add `Implements` tag for your bp.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"eccb9de7407092b7fe5cde5c58149cdcdfea4335","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9f560f44_50aaa419","line":13,"in_reply_to":"9f560f44_8b6021a7","updated":"2020-09-19 13:58:32.000000000","message":"Done","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"}],"tacker/tests/unit/vnfm/sample_vnf_package_artifact.yaml":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"b39bcfbaafa570241f304ee2a9f7b5a1a83e0c0c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"description: Example VNFFG template"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f560f44_9ea1abac","line":1,"updated":"2020-08-24 08:38:49.000000000","message":"I think you should define tosca_simple_yaml_1_2.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"description: Example VNFFG template"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f560f44_e46187aa","line":1,"in_reply_to":"9f560f44_9ea1abac","updated":"2020-09-03 16:00:23.000000000","message":"Corrected based on suggestion.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"03854a1964572df7cb72a38eaeb59c86f5176c80","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"description: Example VNFFG template"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f560f44_85fd603d","line":1,"in_reply_to":"9f560f44_d55b9df3","updated":"2020-09-16 09:33:52.000000000","message":"Yes. This file is no longer needed because the unit test was changed to use existing file instead of this file.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2af52001daed0cd5bc989afd196984e3d732b5bd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"description: Example VNFFG template"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f560f44_d55b9df3","line":1,"in_reply_to":"9f560f44_e46187aa","updated":"2020-09-15 08:07:51.000000000","message":"The latest patch-set seems to have deleted this file itself.\nDoes this mean that you deleted it because you can run unittests without having to prepare this new file?","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"}],"tacker/tests/unit/vnfm/test_nfvo_client.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"b39bcfbaafa570241f304ee2a9f7b5a1a83e0c0c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            expected_elm_cnt \u003d sum("},{"line_number":75,"context_line":"                map(lambda x: len(x.namelist()), expected_zips))"},{"line_number":76,"context_line":"            self.assertEqual(expected_elm_cnt +"},{"line_number":77,"context_line":"     len(expected_artifacts), len(actual_zip.namelist()))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            for expected_zip in expected_zips:"},{"line_number":80,"context_line":"                check_zip(expected_zip)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_5e743336","line":77,"updated":"2020-08-24 08:38:49.000000000","message":"The indent is incorrect.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            expected_elm_cnt \u003d sum("},{"line_number":75,"context_line":"                map(lambda x: len(x.namelist()), expected_zips))"},{"line_number":76,"context_line":"            self.assertEqual(expected_elm_cnt +"},{"line_number":77,"context_line":"     len(expected_artifacts), len(actual_zip.namelist()))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            for expected_zip in expected_zips:"},{"line_number":80,"context_line":"                check_zip(expected_zip)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_24437f15","line":77,"in_reply_to":"9f560f44_5e743336","updated":"2020-09-03 16:00:23.000000000","message":"Indention is corrected.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0afb5b4ee8ef98102f5ba307fea6c531cf45d446","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(30, cfg.CONF.connect_vnf_pakages.retry_wait)"},{"line_number":106,"context_line":"        self.assertEqual(20, cfg.CONF.connect_vnf_pakages.timeout)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @ddt.data({\u0027content\u0027: \u0027sample_vnf_package_content.zip\u0027,"},{"line_number":109,"context_line":"    \u0027vnfd\u0027: None,"},{"line_number":110,"context_line":"    \u0027artifacts\u0027: None},"},{"line_number":111,"context_line":"    {\u0027content\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_8d4243aa","line":108,"updated":"2020-08-21 08:15:19.000000000","message":"https://review.opendev.org/#/c/730709/\nLike the patch above, please avoid use of zip files in unit tests.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(30, cfg.CONF.connect_vnf_pakages.retry_wait)"},{"line_number":106,"context_line":"        self.assertEqual(20, cfg.CONF.connect_vnf_pakages.timeout)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @ddt.data({\u0027content\u0027: \u0027sample_vnf_package_content.zip\u0027,"},{"line_number":109,"context_line":"    \u0027vnfd\u0027: None,"},{"line_number":110,"context_line":"    \u0027artifacts\u0027: None},"},{"line_number":111,"context_line":"    {\u0027content\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_84c40b94","line":108,"in_reply_to":"9f560f44_8d4243aa","updated":"2020-09-03 16:00:23.000000000","message":"Corrected based on the suggested measure.\nhttps://review.opendev.org/#/c/730709/","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"42eded29d39f5ae1cf24f4b37413a562a845eeb0","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        except requests.exceptions.RequestException as e:"},{"line_number":580,"context_line":"            self.assertEqual(400, e.response.status_code)"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        history \u003d self.requests_mock.request_history"},{"line_number":583,"context_line":"        self.assertEqual("},{"line_number":584,"context_line":"            cfg.CONF.connect_grant.retry_num + 1, len(history))"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    def test_grants_with_retry_raise_timeout(self):"},{"line_number":587,"context_line":"        cfg.CONF.set_override(\"base_url\", self.url, group\u003d\u0027connect_grant\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_29023070","line":584,"range":{"start_line":582,"start_character":7,"end_line":584,"end_character":63},"updated":"2020-09-03 23:14:18.000000000","message":"I think the unstable Zuul result is caused here. \"len(history)\" may contain the POST result of VIM ping monitor. When VIM monitor call `NFVOPlugin.monitor_vim()` accidentally during a test execution, the history gets more counts than expected.\n\n\nPlease refer the Zuul log for patch set 4. You can find an error saying \"ERROR [tacker.nfvo.nfvo_plugin] Keystone Auth URL invalid\".\n\n\nYou can update the logic to count the history only when its URL is the one expected in the test.\n\n\nThis is the same situation for the test using \"history\".","commit_id":"53194c68875eae1d39a1bd599ec59ca74e60a055"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"c76aa93add1cb611556579a2810cb12c93d55a2c","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        except requests.exceptions.RequestException as e:"},{"line_number":580,"context_line":"            self.assertEqual(400, e.response.status_code)"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        history \u003d self.requests_mock.request_history"},{"line_number":583,"context_line":"        self.assertEqual("},{"line_number":584,"context_line":"            cfg.CONF.connect_grant.retry_num + 1, len(history))"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    def test_grants_with_retry_raise_timeout(self):"},{"line_number":587,"context_line":"        cfg.CONF.set_override(\"base_url\", self.url, group\u003d\u0027connect_grant\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_f1028308","line":584,"range":{"start_line":582,"start_character":7,"end_line":584,"end_character":63},"in_reply_to":"9f560f44_29023070","updated":"2020-09-10 09:15:47.000000000","message":"The fix is to be done in 747349 in which the issue occurred.","commit_id":"53194c68875eae1d39a1bd599ec59ca74e60a055"},{"author":{"_account_id":17255,"name":"Toshiaki Takahashi","email":"ts-takahashi@nec.com","username":"takahashi_ts"},"change_message_id":"198abd7ed38729b9a743328de67537cae7d3ad45","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from tacker.tests.unit.vnfpkgm import fakes"},{"line_number":30,"context_line":"from tacker.tests import utils"},{"line_number":31,"context_line":"from tacker.tests import uuidsentinel"},{"line_number":32,"context_line":"from tacker.vnfm.nfvo_client import FaliedDownloadContentException"},{"line_number":33,"context_line":"from tacker.vnfm.nfvo_client import GrantRequest"},{"line_number":34,"context_line":"from tacker.vnfm.nfvo_client import UndefinedExternalSettingException"},{"line_number":35,"context_line":"from tacker.vnfm.nfvo_client import VnfPackageRequest"},{"line_number":36,"context_line":"from unittest import mock"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_7f66232b","line":35,"range":{"start_line":32,"start_character":0,"end_line":35,"end_character":53},"updated":"2020-09-11 10:43:53.000000000","message":"Only modules can be imported, objects cannot be imported.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"867ac516c02ec133d72ae97b41754d66b5284de8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from tacker.tests.unit.vnfpkgm import fakes"},{"line_number":30,"context_line":"from tacker.tests import utils"},{"line_number":31,"context_line":"from tacker.tests import uuidsentinel"},{"line_number":32,"context_line":"from tacker.vnfm.nfvo_client import FaliedDownloadContentException"},{"line_number":33,"context_line":"from tacker.vnfm.nfvo_client import GrantRequest"},{"line_number":34,"context_line":"from tacker.vnfm.nfvo_client import UndefinedExternalSettingException"},{"line_number":35,"context_line":"from tacker.vnfm.nfvo_client import VnfPackageRequest"},{"line_number":36,"context_line":"from unittest import mock"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_d0c0e74c","line":35,"range":{"start_line":32,"start_character":0,"end_line":35,"end_character":53},"in_reply_to":"9f560f44_7f66232b","updated":"2020-09-14 01:48:41.000000000","message":"Fixed.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"}],"tacker/vnfm/nfvo_client.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0afb5b4ee8ef98102f5ba307fea6c531cf45d446","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class UndefinedExternalSettingException(Exception):"},{"line_number":26,"context_line":"    pass"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class FaliedDownloadContentException(Exception):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_2d43376e","line":26,"updated":"2020-08-21 08:15:19.000000000","message":"Is this WIP?","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class UndefinedExternalSettingException(Exception):"},{"line_number":26,"context_line":"    pass"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class FaliedDownloadContentException(Exception):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_04047bc5","line":26,"in_reply_to":"9f560f44_2d43376e","updated":"2020-09-03 16:00:23.000000000","message":"Since Exception is set by the caller, nothing is done here, so PASS is described.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0afb5b4ee8ef98102f5ba307fea6c531cf45d446","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            timeout\u003dself.timeout,"},{"line_number":52,"context_line":"            **kwargs)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __request(self, request_function, *args, **kwargs):"},{"line_number":55,"context_line":"        connect_cnt \u003d 0"},{"line_number":56,"context_line":"        response \u003d None"},{"line_number":57,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_4848192c","line":54,"updated":"2020-08-21 08:15:19.000000000","message":"Is it intentional to give 2 underscores instead of 1?\nhttps://www.python.org/dev/peps/pep-0008/","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            timeout\u003dself.timeout,"},{"line_number":52,"context_line":"            **kwargs)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __request(self, request_function, *args, **kwargs):"},{"line_number":55,"context_line":"        connect_cnt \u003d 0"},{"line_number":56,"context_line":"        response \u003d None"},{"line_number":57,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_e406a7cd","line":54,"in_reply_to":"9f560f44_4848192c","updated":"2020-09-03 16:00:23.000000000","message":"yes, it is intentional.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"b39bcfbaafa570241f304ee2a9f7b5a1a83e0c0c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                response \u003d request_function(*args, **kwargs)"},{"line_number":71,"context_line":"                if 200 \u003c\u003d response.status_code \u003c\u003d 299:"},{"line_number":72,"context_line":"                    return response"},{"line_number":73,"context_line":"                elif response.status_code \u003d\u003d 401:"},{"line_number":74,"context_line":"                    pass"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"                LOG.error(\"Connected error. Failed http status\u003d\u003c{}\u003e\".format("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_fbcc398a","line":73,"updated":"2020-08-24 08:38:49.000000000","message":"Is it correct to pass in case of 401 Unauthorized?","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                response \u003d request_function(*args, **kwargs)"},{"line_number":71,"context_line":"                if 200 \u003c\u003d response.status_code \u003c\u003d 299:"},{"line_number":72,"context_line":"                    return response"},{"line_number":73,"context_line":"                elif response.status_code \u003d\u003d 401:"},{"line_number":74,"context_line":"                    pass"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"                LOG.error(\"Connected error. Failed http status\u003d\u003c{}\u003e\".format("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_44279365","line":73,"in_reply_to":"9f560f44_fbcc398a","updated":"2020-09-03 16:00:23.000000000","message":"Removed it as it is not needed.\nThere is no problem even if you delete it because it enters the error logic as well.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"b39bcfbaafa570241f304ee2a9f7b5a1a83e0c0c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            except requests.exceptions.ConnectTimeout as e:"},{"line_number":79,"context_line":"                LOG.error(\"Connected error. details\u003d\u003c{}\u003e\".format(e))"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            if connect_cnt \u003c self.retry_num:"},{"line_number":82,"context_line":"                connect_cnt +\u003d 1"},{"line_number":83,"context_line":"                time.sleep(self.retry_wait)"},{"line_number":84,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_5b9ba571","line":81,"updated":"2020-08-24 08:38:49.000000000","message":"I think using a for loop is simpler to write than using a while loop.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            except requests.exceptions.ConnectTimeout as e:"},{"line_number":79,"context_line":"                LOG.error(\"Connected error. details\u003d\u003c{}\u003e\".format(e))"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            if connect_cnt \u003c self.retry_num:"},{"line_number":82,"context_line":"                connect_cnt +\u003d 1"},{"line_number":83,"context_line":"                time.sleep(self.retry_wait)"},{"line_number":84,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_c41a8315","line":81,"in_reply_to":"9f560f44_5b9ba571","updated":"2020-09-03 16:00:23.000000000","message":"Fixed as suggested.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0afb5b4ee8ef98102f5ba307fea6c531cf45d446","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    OPTS \u003d ["},{"line_number":92,"context_line":"        cfg.StrOpt(\u0027base_url\u0027,"},{"line_number":93,"context_line":"                   default\u003dNone,"},{"line_number":94,"context_line":"                   help\u003d\"vnf_pakages base_url\"),"},{"line_number":95,"context_line":"        cfg.ListOpt(\u0027pipeline\u0027,"},{"line_number":96,"context_line":"                    default\u003dNone,"},{"line_number":97,"context_line":"                    help\u003d\"Get vnf_pakages api pipeline\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_e8ff6dfe","line":94,"updated":"2020-08-21 08:15:19.000000000","message":"typo: packages\nSame for others.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    OPTS \u003d ["},{"line_number":92,"context_line":"        cfg.StrOpt(\u0027base_url\u0027,"},{"line_number":93,"context_line":"                   default\u003dNone,"},{"line_number":94,"context_line":"                   help\u003d\"vnf_pakages base_url\"),"},{"line_number":95,"context_line":"        cfg.ListOpt(\u0027pipeline\u0027,"},{"line_number":96,"context_line":"                    default\u003dNone,"},{"line_number":97,"context_line":"                    help\u003d\"Get vnf_pakages api pipeline\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_04d2bb34","line":94,"in_reply_to":"9f560f44_e8ff6dfe","updated":"2020-09-03 16:00:23.000000000","message":"changed all typos for packages.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0afb5b4ee8ef98102f5ba307fea6c531cf45d446","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        cfg.ListOpt(\u0027pipeline\u0027,"},{"line_number":96,"context_line":"                    default\u003dNone,"},{"line_number":97,"context_line":"                    help\u003d\"Get vnf_pakages api pipeline\"),"},{"line_number":98,"context_line":"        cfg.StrOpt(\u0027package_content\u0027,"},{"line_number":99,"context_line":"                   default\u003d\"{}/package_content\","},{"line_number":100,"context_line":"                   help\u003d\"Get vnf_pakages api of package_content\"),"},{"line_number":101,"context_line":"        cfg.StrOpt(\u0027vnfd\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_286de5cb","line":98,"updated":"2020-08-21 08:15:19.000000000","message":"I think package_content, vnfd, artifacts need not to be configured.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        cfg.ListOpt(\u0027pipeline\u0027,"},{"line_number":96,"context_line":"                    default\u003dNone,"},{"line_number":97,"context_line":"                    help\u003d\"Get vnf_pakages api pipeline\"),"},{"line_number":98,"context_line":"        cfg.StrOpt(\u0027package_content\u0027,"},{"line_number":99,"context_line":"                   default\u003d\"{}/package_content\","},{"line_number":100,"context_line":"                   help\u003d\"Get vnf_pakages api of package_content\"),"},{"line_number":101,"context_line":"        cfg.StrOpt(\u0027vnfd\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_e4d4e721","line":98,"in_reply_to":"9f560f44_286de5cb","updated":"2020-09-03 16:00:23.000000000","message":"They are removed from OPTS.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"b39bcfbaafa570241f304ee2a9f7b5a1a83e0c0c","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            vnf_package_id)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # zip format only."},{"line_number":236,"context_line":"        headers \u003d {\u0027Accept\u0027: \u0027application/zip\u0027}"},{"line_number":237,"context_line":"        response \u003d cls._connector.request(\u0027GET\u0027, request_url, headers\u003dheaders)"},{"line_number":238,"context_line":"        cls._write(vnf_package_zip, response)"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_9ee9ab1b","line":236,"updated":"2020-08-24 08:38:49.000000000","message":"I think it\u0027s better to set \u0027application/zip\u0027 for _download_package_content and _download_artifacts as well.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"075e8c905e061454581a8bf27c16b8c3e3b3d938","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            vnf_package_id)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # zip format only."},{"line_number":236,"context_line":"        headers \u003d {\u0027Accept\u0027: \u0027application/zip\u0027}"},{"line_number":237,"context_line":"        response \u003d cls._connector.request(\u0027GET\u0027, request_url, headers\u003dheaders)"},{"line_number":238,"context_line":"        cls._write(vnf_package_zip, response)"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_84e52b0d","line":236,"in_reply_to":"9f560f44_9ee9ab1b","updated":"2020-09-03 16:00:23.000000000","message":"it is set as suggested.","commit_id":"bc456c17b1511aca72a26a55bf2da58b928e0b77"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"e2e067240182c4ba0100b7f62da2d556eedbaafd","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __request(self, request_function, *args, **kwargs):"},{"line_number":55,"context_line":"        response \u003d None"},{"line_number":56,"context_line":"        for retry_cnt in range(self.retry_num + 1):"},{"line_number":57,"context_line":"            LOG.info(\"Connecting to \u003c{}:{}\u003e, count\u003d\u003c{}\u003e\".format("},{"line_number":58,"context_line":"                args[0], args[1], retry_cnt))"},{"line_number":59,"context_line":"            if \u0027headers\u0027 in kwargs:"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_8b8f8121","line":56,"range":{"start_line":56,"start_character":31,"end_line":56,"end_character":45},"updated":"2020-09-11 08:49:56.000000000","message":"Is it ensured that its type is `int`?  range() cannot take a `float` var.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"eccb9de7407092b7fe5cde5c58149cdcdfea4335","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __request(self, request_function, *args, **kwargs):"},{"line_number":55,"context_line":"        response \u003d None"},{"line_number":56,"context_line":"        for retry_cnt in range(self.retry_num + 1):"},{"line_number":57,"context_line":"            LOG.info(\"Connecting to \u003c{}:{}\u003e, count\u003d\u003c{}\u003e\".format("},{"line_number":58,"context_line":"                args[0], args[1], retry_cnt))"},{"line_number":59,"context_line":"            if \u0027headers\u0027 in kwargs:"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_f0601810","line":56,"range":{"start_line":56,"start_character":31,"end_line":56,"end_character":45},"in_reply_to":"9f560f44_8b8f8121","updated":"2020-09-19 13:58:32.000000000","message":"It\u0027 OK, because retry_num comes from config file as \u0027int\u0027.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"e2e067240182c4ba0100b7f62da2d556eedbaafd","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def __request(self, request_function, *args, **kwargs):"},{"line_number":55,"context_line":"        response \u003d None"},{"line_number":56,"context_line":"        for retry_cnt in range(self.retry_num + 1):"},{"line_number":57,"context_line":"            LOG.info(\"Connecting to \u003c{}:{}\u003e, count\u003d\u003c{}\u003e\".format("},{"line_number":58,"context_line":"                args[0], args[1], retry_cnt))"},{"line_number":59,"context_line":"            if \u0027headers\u0027 in kwargs:"},{"line_number":60,"context_line":"                LOG.info(\"[REQ] HEADERS\u003d{}\".format(kwargs[\u0027headers\u0027]))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_0ba3719f","line":58,"range":{"start_line":57,"start_character":21,"end_line":58,"end_character":44},"updated":"2020-09-11 08:49:56.000000000","message":"It\u0027s better to use labels for args[0] and args[1] to make it understandable at a glance, like as bellow.\n\n\"Connecting to \u003c{ip}:{port}\u003e, ...\".format(ip\u003dargs[0], port\u003dargs[1], ...)","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"eccb9de7407092b7fe5cde5c58149cdcdfea4335","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def __request(self, request_function, *args, **kwargs):"},{"line_number":55,"context_line":"        response \u003d None"},{"line_number":56,"context_line":"        for retry_cnt in range(self.retry_num + 1):"},{"line_number":57,"context_line":"            LOG.info(\"Connecting to \u003c{}:{}\u003e, count\u003d\u003c{}\u003e\".format("},{"line_number":58,"context_line":"                args[0], args[1], retry_cnt))"},{"line_number":59,"context_line":"            if \u0027headers\u0027 in kwargs:"},{"line_number":60,"context_line":"                LOG.info(\"[REQ] HEADERS\u003d{}\".format(kwargs[\u0027headers\u0027]))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_d3051ec3","line":58,"range":{"start_line":57,"start_character":21,"end_line":58,"end_character":44},"in_reply_to":"9f560f44_0ba3719f","updated":"2020-09-19 13:58:32.000000000","message":"Fixed as you pointed out.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"e2e067240182c4ba0100b7f62da2d556eedbaafd","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            if \u0027headers\u0027 in kwargs:"},{"line_number":60,"context_line":"                LOG.info(\"[REQ] HEADERS\u003d{}\".format(kwargs[\u0027headers\u0027]))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"            if \u0027data\u0027 in kwargs:"},{"line_number":63,"context_line":"                LOG.info(\"[REQ] BODY\u003d{}\".format(kwargs[\u0027data\u0027]))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            if \u0027json\u0027 in kwargs:"},{"line_number":66,"context_line":"                LOG.info(\"[REQ] BODY\u003d{}\".format(kwargs[\u0027json\u0027]))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"            try:"},{"line_number":69,"context_line":"                response \u003d request_function(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_2b6e352b","line":66,"range":{"start_line":62,"start_character":12,"end_line":66,"end_character":64},"updated":"2020-09-11 08:49:56.000000000","message":"Why these log messages are same each other? It\u0027s better to make them different, or use `else` if there\u0027re exclusive.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"eccb9de7407092b7fe5cde5c58149cdcdfea4335","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            if \u0027headers\u0027 in kwargs:"},{"line_number":60,"context_line":"                LOG.info(\"[REQ] HEADERS\u003d{}\".format(kwargs[\u0027headers\u0027]))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"            if \u0027data\u0027 in kwargs:"},{"line_number":63,"context_line":"                LOG.info(\"[REQ] BODY\u003d{}\".format(kwargs[\u0027data\u0027]))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            if \u0027json\u0027 in kwargs:"},{"line_number":66,"context_line":"                LOG.info(\"[REQ] BODY\u003d{}\".format(kwargs[\u0027json\u0027]))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"            try:"},{"line_number":69,"context_line":"                response \u003d request_function(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_931446eb","line":66,"range":{"start_line":62,"start_character":12,"end_line":66,"end_character":64},"in_reply_to":"9f560f44_2b6e352b","updated":"2020-09-19 13:58:32.000000000","message":"Modified so as to use elif.","commit_id":"5c7f40402505287895cbe50903479a56b78e9067"}]}
