lcm_user_data 的 Heal 和 Scale 方法支持

蓝图

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

本规范的目的是在 Heal 和 Scale 操作期间提供堆栈参数自定义的支持。

问题描述

在更新 Heat 时,关于要传递的堆栈参数,用户可以在实例化期间使用 lcm_user_data 创建堆栈参数,但在 Heal 和 Scale 期间,堆栈参数的创建是一个固定的过程,用户无法进行自定义。

例如,在 Scale 时,desired_capacity 值会被 Tacker 进程重写,通过在 HOT(Heat Orchestration Template)上设置 get_param 命名约定(VDU 名称_desired_capacity)来实现,而无需经过 lcm_user_data 脚本。由于 desired_capacity 也属于使用参数重写 HOT 的范围,因此需要通过 lcm_user_data 的脚本进行修改。

提议的变更

  • 在 Heal 过程中的 Heat 更新之前的堆栈参数生成过程中,如果 lcm_user_data 中存在 heal 方法,则调用它以获取堆栈参数。

  • 在 Scale 过程中的 Heat 更新之前的堆栈参数生成过程中,如果 lcm_user_data 中存在 scale 方法,则调用它以获取堆栈参数。

以下是 VNF 包中 user_lcm_data.py 中 scale 和 heal 函数的定义。heal 中的 vnfc_resource_info 代表 vnfc 资源列表,resource_number 代表设置为 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):

堆栈更新流程

  • Heal VNF 实例 (POST /vnf_instances/(vnfinstanceId)/heal)

../../_images/0143.png

先决条件:表示 VNF 实例的资源已创建并实例化。

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

../../_images/0227.png

先决条件:表示 VNF 实例的资源已创建并实例化。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

用户现在可以通过 lcm_user_data 脚本创建堆栈参数。

性能影响

其他部署者影响

开发人员影响

实现

负责人

Renu Rani <renu.rani@gmail.com>

工作项

  • 调用 lcm_user_data 中的 heal 方法

  • 调用 lcm_user_data 中的 scale 方法

  • 生成 desired_capacity 信息的实用方法

  • 测试

依赖项

测试

将为 Heal 和 Scale 操作添加单元和功能测试用例,并更新 lcm_user_data 脚本。

文档影响

将添加完整的用户指南,以解释如何在 Heal 和 Scale 操作中使用 lcm_user_data 脚本更新堆栈参数。

参考资料

历史