)]}'
{"doc/source/user/vnfm_usage_guide.rst":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"b35ce932248129bb86933309c7656354204b8ea5","unresolved":false,"context_lines":[{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"VNFs can be updated as shown below."},{"line_number":129,"context_line":"--config, --config-file and --param-file can not be specified together."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":".. code-block:: console"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1fa4df85_bae2c7d3","line":129,"range":{"start_line":129,"start_character":41,"end_line":129,"end_character":70},"updated":"2020-03-10 16:11:11.000000000","message":"I didn\u0027t check it but I think we can specify param-file and config-file at the same time","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"656db6f6cf4ce95f7ac55c3a2ccaeda3ace6d450","unresolved":false,"context_lines":[{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"VNFs can be updated as shown below."},{"line_number":129,"context_line":"--config, --config-file and --param-file can not be specified together."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":".. code-block:: console"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1fa4df85_4942ea10","line":129,"range":{"start_line":129,"start_character":41,"end_line":129,"end_character":70},"in_reply_to":"1fa4df85_bae2c7d3","updated":"2020-03-11 02:12:40.000000000","message":"This statement is correct.\nOn the tackerclient side, it is confirmed by the following unittest.\nhttps://review.opendev.org/#/c/710205/1/tackerclient/tests/unit/osc/v1/vnf/test_vnf.py\ntest_vnf_update_multi_args_configfile_paramfile","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"}],"tacker/extensions/vnfm.py":[{"author":{"_account_id":17255,"name":"Toshiaki Takahashi","email":"ts-takahashi@nec.com","username":"takahashi_ts"},"change_message_id":"938efe42548111b9975caa59c34aeb87135571d9","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class VNFUpdateInvalidInput(exceptions.TackerException):"},{"line_number":68,"context_line":"    message \u003d _(\u0027%(reason)s\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class VNFUpdateWaitFailed(exceptions.TackerException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_ac0e9e38","line":68,"updated":"2020-03-02 04:30:37.000000000","message":"I think \u0027VNF Update Invalid Input %(reason)s\u0027 is better for debugger. It is useful to add new reason later.","commit_id":"987f124525e2b970d7ba2fc01b957a39d4fd0fdd"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"8e3ca769def80f7319ef8b9d122869b523958727","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class VNFUpdateInvalidInput(exceptions.TackerException):"},{"line_number":68,"context_line":"    message \u003d _(\u0027%(reason)s\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class VNFUpdateWaitFailed(exceptions.TackerException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_1992244d","line":68,"in_reply_to":"1fa4df85_ac0e9e38","updated":"2020-03-09 01:23:20.000000000","message":"Done","commit_id":"987f124525e2b970d7ba2fc01b957a39d4fd0fdd"}],"tacker/tests/unit/vnfm/infra_drivers/openstack/data/updated_param_data.yaml":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"b35ce932248129bb86933309c7656354204b8ea5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"flavor: m1.tiny"},{"line_number":2,"context_line":"reservation_id: 99999999-3925-4c9e-9074-239a902b68d7"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1fa4df85_c5bd6802","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":52},"updated":"2020-03-10 16:11:11.000000000","message":"this file is not used","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"656db6f6cf4ce95f7ac55c3a2ccaeda3ace6d450","unresolved":false,"context_lines":[{"line_number":1,"context_line":"flavor: m1.tiny"},{"line_number":2,"context_line":"reservation_id: 99999999-3925-4c9e-9074-239a902b68d7"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1fa4df85_693006a0","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":52},"in_reply_to":"1fa4df85_c5bd6802","updated":"2020-03-11 02:12:40.000000000","message":"I\u0027ll delete this file because unnecessary.","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"}],"tacker/tests/unit/vnfm/infra_drivers/openstack/test_openstack.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"b35ce932248129bb86933309c7656354204b8ea5","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        mock_log.error.assert_called_with("},{"line_number":295,"context_line":"            \"VNF \u0027%s\u0027 failed to heal\", vnf_dict[\u0027id\u0027])"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def test_update_param(self):"},{"line_number":298,"context_line":"        vnf_obj \u003d utils.get_dummy_vnf_param_attr()"},{"line_number":299,"context_line":"        vnf_param_obj \u003d utils.get_dummy_vnf_update_param()"},{"line_number":300,"context_line":"        expected_vnf_update \u003d self._get_expected_vnf_update_param_obj()"},{"line_number":301,"context_line":"        vnf_id \u003d \u00274a4c2d44-8a52-4895-9a75-9d1c76c3e738\u0027"},{"line_number":302,"context_line":"        self.infra_driver.update(plugin\u003dNone, context\u003dself.context,"},{"line_number":303,"context_line":"                                 vnf_id\u003dvnf_id, vnf_dict\u003dvnf_obj,"},{"line_number":304,"context_line":"                                 vnf\u003dvnf_param_obj,"},{"line_number":305,"context_line":"                                 auth_attr\u003dutils.get_vim_auth_obj())"},{"line_number":306,"context_line":"        expected_vnf_update[\u0027attributes\u0027][\u0027param_values\u0027] \u003d yaml.safe_load("},{"line_number":307,"context_line":"            expected_vnf_update[\u0027attributes\u0027][\u0027param_values\u0027])"},{"line_number":308,"context_line":"        vnf_obj[\u0027attributes\u0027][\u0027param_values\u0027] \u003d yaml.safe_load("},{"line_number":309,"context_line":"            vnf_obj[\u0027attributes\u0027][\u0027param_values\u0027])"},{"line_number":310,"context_line":"        self.assertEqual(expected_vnf_update, vnf_obj)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def test_update_new_param(self):"},{"line_number":313,"context_line":"        vnf_obj \u003d utils.get_dummy_vnf_param_attr()"},{"line_number":314,"context_line":"        vnf_param_obj \u003d utils.get_dummy_vnf_update_new_param()"},{"line_number":315,"context_line":"        expected_vnf_update \u003d self._get_expected_vnf_update_new_param_obj()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_c5e4883e","line":312,"range":{"start_line":297,"start_character":0,"end_line":312,"end_character":36},"updated":"2020-03-10 16:11:11.000000000","message":"As I see, there is no different between these tests because they all update new param.","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"656db6f6cf4ce95f7ac55c3a2ccaeda3ace6d450","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        mock_log.error.assert_called_with("},{"line_number":295,"context_line":"            \"VNF \u0027%s\u0027 failed to heal\", vnf_dict[\u0027id\u0027])"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def test_update_param(self):"},{"line_number":298,"context_line":"        vnf_obj \u003d utils.get_dummy_vnf_param_attr()"},{"line_number":299,"context_line":"        vnf_param_obj \u003d utils.get_dummy_vnf_update_param()"},{"line_number":300,"context_line":"        expected_vnf_update \u003d self._get_expected_vnf_update_param_obj()"},{"line_number":301,"context_line":"        vnf_id \u003d \u00274a4c2d44-8a52-4895-9a75-9d1c76c3e738\u0027"},{"line_number":302,"context_line":"        self.infra_driver.update(plugin\u003dNone, context\u003dself.context,"},{"line_number":303,"context_line":"                                 vnf_id\u003dvnf_id, vnf_dict\u003dvnf_obj,"},{"line_number":304,"context_line":"                                 vnf\u003dvnf_param_obj,"},{"line_number":305,"context_line":"                                 auth_attr\u003dutils.get_vim_auth_obj())"},{"line_number":306,"context_line":"        expected_vnf_update[\u0027attributes\u0027][\u0027param_values\u0027] \u003d yaml.safe_load("},{"line_number":307,"context_line":"            expected_vnf_update[\u0027attributes\u0027][\u0027param_values\u0027])"},{"line_number":308,"context_line":"        vnf_obj[\u0027attributes\u0027][\u0027param_values\u0027] \u003d yaml.safe_load("},{"line_number":309,"context_line":"            vnf_obj[\u0027attributes\u0027][\u0027param_values\u0027])"},{"line_number":310,"context_line":"        self.assertEqual(expected_vnf_update, vnf_obj)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def test_update_new_param(self):"},{"line_number":313,"context_line":"        vnf_obj \u003d utils.get_dummy_vnf_param_attr()"},{"line_number":314,"context_line":"        vnf_param_obj \u003d utils.get_dummy_vnf_update_new_param()"},{"line_number":315,"context_line":"        expected_vnf_update \u003d self._get_expected_vnf_update_new_param_obj()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_290c4e92","line":312,"range":{"start_line":297,"start_character":0,"end_line":312,"end_character":36},"in_reply_to":"1fa4df85_c5e4883e","updated":"2020-03-11 02:12:40.000000000","message":"The differences between these tests were as follows.\nHowever, test_update_param is included in test_update_new_param, so I\u0027ll delete it.\n\ntest_update_param(Only update existing params)\n・flavor(Update)\n・reservation_id(Update)\n\ntest_update_new_param(Update existing params and add new param)\n・flavor(Update)\n・reservation_id(Update)\n・new_param_key(Add)","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"}],"tacker/tests/unit/vnfm/test_plugin.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"b35ce932248129bb86933309c7656354204b8ea5","unresolved":false,"context_lines":[{"line_number":846,"context_line":"    def test_update_vnf_invalid_config_type(self):"},{"line_number":847,"context_line":"        self._insert_dummy_vnf_template()"},{"line_number":848,"context_line":"        dummy_device_obj \u003d self._insert_dummy_vnf()"},{"line_number":849,"context_line":"        vnf_param_obj \u003d utils.get_dummy_vnf_invalid_config_type_obj()"},{"line_number":850,"context_line":"        self.assertRaises(vnfm.InvalidAPIAttributeType,"},{"line_number":851,"context_line":"                          self.vnfm_plugin.update_vnf,"},{"line_number":852,"context_line":"                          self.context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_2571dc76","line":849,"range":{"start_line":849,"start_character":8,"end_line":849,"end_character":69},"updated":"2020-03-10 16:11:11.000000000","message":"did you miss to call update_vnf()?","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"656db6f6cf4ce95f7ac55c3a2ccaeda3ace6d450","unresolved":false,"context_lines":[{"line_number":846,"context_line":"    def test_update_vnf_invalid_config_type(self):"},{"line_number":847,"context_line":"        self._insert_dummy_vnf_template()"},{"line_number":848,"context_line":"        dummy_device_obj \u003d self._insert_dummy_vnf()"},{"line_number":849,"context_line":"        vnf_param_obj \u003d utils.get_dummy_vnf_invalid_config_type_obj()"},{"line_number":850,"context_line":"        self.assertRaises(vnfm.InvalidAPIAttributeType,"},{"line_number":851,"context_line":"                          self.vnfm_plugin.update_vnf,"},{"line_number":852,"context_line":"                          self.context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_290d2ee7","line":849,"range":{"start_line":849,"start_character":8,"end_line":849,"end_character":69},"in_reply_to":"1fa4df85_2571dc76","updated":"2020-03-11 02:12:40.000000000","message":"No, I didn\u0027t.\nUsing the data obtained here, update_vnf () is called in the following self.assertRaises.","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"}],"tacker/vnfm/infra_drivers/openstack/openstack.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"b35ce932248129bb86933309c7656354204b8ea5","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                    update_values[key] \u003d value"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            if not update_values:"},{"line_number":224,"context_line":"                error_reason \u003d _(\"at vnf_id {} because all parameters \""},{"line_number":225,"context_line":"                                 \"match the existing one.\").format(vnf_id)"},{"line_number":226,"context_line":"                LOG.warning(error_reason)"},{"line_number":227,"context_line":"                raise vnfm.VNFUpdateInvalidInput(reason\u003derror_reason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_65291435","line":224,"range":{"start_line":224,"start_character":34,"end_line":224,"end_character":43},"updated":"2020-03-10 16:11:11.000000000","message":"Error happened when updating VNF vnf_id ...","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"7101ca62669e3faa3b2e2ccf828ee4af02c3bb67","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                    update_values[key] \u003d value"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            if not update_values:"},{"line_number":224,"context_line":"                error_reason \u003d _(\"at vnf_id {} because all parameters \""},{"line_number":225,"context_line":"                                 \"match the existing one.\").format(vnf_id)"},{"line_number":226,"context_line":"                LOG.warning(error_reason)"},{"line_number":227,"context_line":"                raise vnfm.VNFUpdateInvalidInput(reason\u003derror_reason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_85d67927","line":224,"range":{"start_line":224,"start_character":34,"end_line":224,"end_character":43},"in_reply_to":"1fa4df85_056fe992","updated":"2020-03-11 16:15:51.000000000","message":"If there are no change, IMO notify the warning to user that nothing change is better than error","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"656db6f6cf4ce95f7ac55c3a2ccaeda3ace6d450","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                    update_values[key] \u003d value"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            if not update_values:"},{"line_number":224,"context_line":"                error_reason \u003d _(\"at vnf_id {} because all parameters \""},{"line_number":225,"context_line":"                                 \"match the existing one.\").format(vnf_id)"},{"line_number":226,"context_line":"                LOG.warning(error_reason)"},{"line_number":227,"context_line":"                raise vnfm.VNFUpdateInvalidInput(reason\u003derror_reason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_c9c25a53","line":224,"range":{"start_line":224,"start_character":34,"end_line":224,"end_character":43},"in_reply_to":"1fa4df85_65291435","updated":"2020-03-11 02:12:40.000000000","message":"I understand you have mentioned me to modify as follows, is it right?\n\nerror_reason \u003d _(\"{} because all parameters \"\n             　   \"match the existing one.\").format(vnf_id)\n---\n・tacker/extensions/vnfm.py\nclass VNFUpdateInvalidInput(exceptions.TackerException):\n     message \u003d _(\u0027Error happened when updating VNF %(reason)s\u0027)","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"6027a14612f0041b2cfa2c5a9030c7767d26e357","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                    update_values[key] \u003d value"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            if not update_values:"},{"line_number":224,"context_line":"                error_reason \u003d _(\"at vnf_id {} because all parameters \""},{"line_number":225,"context_line":"                                 \"match the existing one.\").format(vnf_id)"},{"line_number":226,"context_line":"                LOG.warning(error_reason)"},{"line_number":227,"context_line":"                raise vnfm.VNFUpdateInvalidInput(reason\u003derror_reason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_892c4b4b","line":224,"range":{"start_line":224,"start_character":34,"end_line":224,"end_character":43},"in_reply_to":"1fa4df85_85d67927","updated":"2020-03-12 00:18:54.000000000","message":"It\u0027s OK, I\u0027ll revert to old messages.\nThe log level is already warning, so I don\u0027t think it needs to be changed.","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"49233528db52774502b396ae13b637feb0f56a7d","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                    update_values[key] \u003d value"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            if not update_values:"},{"line_number":224,"context_line":"                error_reason \u003d _(\"at vnf_id {} because all parameters \""},{"line_number":225,"context_line":"                                 \"match the existing one.\").format(vnf_id)"},{"line_number":226,"context_line":"                LOG.warning(error_reason)"},{"line_number":227,"context_line":"                raise vnfm.VNFUpdateInvalidInput(reason\u003derror_reason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_056fe992","line":224,"range":{"start_line":224,"start_character":34,"end_line":224,"end_character":43},"in_reply_to":"1fa4df85_c9c25a53","updated":"2020-03-11 16:12:16.000000000","message":"I am sorry because I didn\u0027t notice the message. The old one is good to me.","commit_id":"2d89a46402378c97213102c1e1cc558c9029aef1"}]}
