Heal and scale method support of lcm_user_data

Blueprints:

https://blueprints.launchpad.net/tacker/+spec/stack-parameter-customization

The aim of this specification is to provide support for stack parameter customization during heal and scale operation.

Problem description

As regards the stack parameter to be passed at the time of updating the Heat, the user can create the stack parameter using lcm_user_data during Instantiation, but during Heal and Scale, the creation of the stack parameter is a fixed process and user cannot do the customization.

For example, at the time of scale, the desired_capacity value is rewritten as a Tacker process by setting up a get_param naming convention (VDU name_desired_capacity) on the HOT (Heat Orchestration Template) without going through the lcm_user_data script. Since desired_capacity is also in the scope of rewriting HOT with parameters, it needs to be modified through the script of lcm_user_data.

Proposed change

  • At the time of stack parameter generation process before Heat Update in the Heal process, if the heal method exists in lcm_user_data, call it to get the stack parameters.

  • At the time of stack parameter generation process before Heat Update in the Scale process, if the scale method exists in lcm_user_data, call it to get the stack parameters.

Below is the definition of scale and heal functions in user_lcm_data.py in VNF package. The vnfc_resource_info in heal represent the vnfc resource list and resource_number represent number of resources to set as desired_capacity.

def heal(base_hot_dict=None,
         vnfd_dict=None,
         heal_vnf_request=None,
         vnf_instances=None,
         inst_vnf_info=None,
         param=None, vnfc_resource_info=None):

def scale(base_hot_dict=None,
          vnfd_dict=None,
          scale_vnf_request=None,
          vnf_instances=None,
          inst_vnf_info=None,
          param=None, resource_number=None):

Flow of the Stack update process

  • Heal VNF instance (POST /vnf_instances/(vnfinstanceId)/heal)

Precondition: The resource representing the VNF instance has been created and instantiated.

  • Scale VNF instance (POST /vnf_instances/{vnfInstanceId}/scale)

Precondition: The resource representing the VNF instance has been created and instantiated.

Data model impact

None

REST API impact

None

Security impact

None

Notifications impact

None

Other end user impact

Users can now create stack parameters through the lcm_user_data script.

Performance Impact

None

Other deployer impact

None

Developer impact

None

Implementation

Assignee(s)

Renu Rani <renu.rani@gmail.com>

Work Items

  • Call heal method in lcm_user_data

  • Call scale method in lcm_user_data

  • Generation utility method of desired_capacity information

  • Testing

Dependencies

None

Testing

Unit and functional test cases will be added for heal and scale operation with updated lcm_user_data script.

Documentation Impact

Complete user guide will be added to explain how to use lcm_user_data script for stack parameter update in heal and scale operation.

References

None

History

None