When perform an instantiate rollback after Instantiate operation failed, the following error message is output in the tacker conductor logs and the operation fails.
```
ERROR tacker.sol_refactored.conductor.conductor_v2 [req-c3fd15c6-652d-4e75-b562-2a9828b78484 nfv_user nfv] ROLLING_BACK INSTANTIATE failed: NotImplementedError: Cannot load 'instantiatedVnfInfo' in the base class
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 Traceback (most recent call last):
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 File "/opt/stack/tacker/tacker/sol_refactored/conductor/conductor_v2.py", line 285, in _rollback_lcm_op
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 self.vnflcm_driver.rollback(context, lcmocc, inst, grant_req,
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 File "/opt/stack/tacker/tacker/sol_refactored/conductor/vnflcm_driver_v2.py", line 253, in rollback
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 method(context, lcmocc, inst, grant_req, grant, vnfd)
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 File "/opt/stack/tacker/tacker/sol_refactored/conductor/vnflcm_driver_v2.py", line 454, in instantiate_rollback
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 driver.instantiate_rollback(req, inst, grant_req, grant, vnfd)
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 File "/opt/stack/tacker/tacker/sol_refactored/infra_drivers/terraform/terraform.py", line 125, in instantiate_rollback
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 self.terminate(req, inst, grant_req, grant, vnfd)
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 File "/opt/stack/tacker/tacker/sol_refactored/infra_drivers/terraform/terraform.py", line 92, in terminate
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 tf_var_path = inst.instantiatedVnfInfo.metadata['tf_var_path']
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 File "/usr/local/lib/python3.8/dist-packages/oslo_versionedobjects/base.py", line 67, in getter
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 self.obj_load_attr(name)
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 File "/usr/local/lib/python3.8/dist-packages/oslo_versionedobjects/base.py", line 600, in obj_load_attr
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 raise NotImplementedError(
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2 NotImplementedError: Cannot load 'instantiatedVnfInfo' in the base class
1944876 ERROR tacker.sol_refactored.conductor.conductor_v2
```
In the instantiate rollback process of current Terraform InfraDriver, just calling the terminate function.
https://github.com/openstack/tacker/blob/master/tacker/sol_refactored/infra_drivers/terraform/terraform.py#L112-L114
```
def instantiate_rollback(self, req, inst, grant_req, grant, vnfd):
'''Calls terminate'''
self.terminate(req, inst, grant_req, grant, vnfd)
```
https://github.com/openstack/tacker/blob/master/tacker/sol_refactored/infra_drivers/terraform/terraform.py#L79C1-L85C65
```
def terminate(self, req, inst, grant_req, grant, vnfd):
'''Terminates the terraform resources managed by the current project'''
vim_conn_info = inst_utils.select_vim_info(inst.vimConnectionInfo)
working_dir = f"{CONF.v2_vnfm.tf_file_dir}/{inst.id}"
tf_var_path = inst.instantiatedVnfInfo.metadata['tf_var_path'] <-- Error here
self._terminate(vim_conn_info, working_dir, tf_var_path)
```
However, "instantiatedVnfInfo" is configure and saved at the LCM operation ends, so "instantiatedVnfInfo" may not be configure depending on the timing of the failure. Therefore, it's better that needed infromation gets from "InstantiateVnfRequest" instead of "instantiatedVnfInfo" in instantiation rollback operation.
Fix proposed to branch: master /review. opendev. org/c/openstack /tacker/ +/899110
Review: https:/