弃用流程改进

https://blueprints.launchpad.net/heat/+spec/deprecating-improvements

这些更改应该使弃用流程对用户来说显而易见且安全。

问题描述

当前的弃用流程存在一些问题
  • 对于所有已弃用的属性和特性,没有明确的信息,包括何时弃用以及何时删除。

  • 没有关于我们计划如何以及何时停止支持某个选项的说明。

  • 属性/特性模式中存在无法删除的代码。

  • 与旧模板的向后兼容性。

提议的变更

建议的更改应该解决上述问题

  1. 需要在 Heat 文档中添加一个新页面,详细描述弃用流程。在 Heat 文档的开发者文档部分添加一个名为“Heat 支持状态使用”的新页面,描述如何使用资源、属性和特性的支持状态:- 遗留选项将可用多长时间 - 弃用期结束后会发生什么 - 如何为属性、特性和资源使用 support_status - 弃用资源会发生什么 此外,还在 Heat 资源插件开发指南页面中添加关于 support_status 参数的信息。

  2. 改进 SupportStatus。为 SupportStatus 添加 previous_status 选项,用于显示对象的先前状态及其版本

    support_status=support.SupportStatus(
        status=support.DEPRECATED,
        version='2015.2',
        previous_status=support.SupportStatus(version='2014.1')
    )
    

    此外,为 DEPRECATED 对象添加 HIDDEN 状态,这些对象将完全过时。具有此状态的对象将从文档和资源类型列表中隐藏。

  3. 改进文档状态代码。改进为新的 SupportStatus 选项 previous_status 生成文档。文档必须显示资源的完整生命周期。

除此之外,还可以实现以下功能

  1. 在属性/特性模式中添加一个选项,显示遗留名称

    property_schema = {
        subnet:
            ....
            legacy_names: [subnet_id]
    }
    
  2. 添加迁移机制,以支持以下两种情况:- 从旧模板部署的新堆栈在元素处于弃用状态期间继续工作。- 旧代码在元素弃用后可以正确解释旧堆栈。- 当弃用期结束时,应更新模板,否则将引发验证错误。旧的已创建堆栈将可用,但不能使用旧模板进行更新。为了方便工作,建议使用新模板更新旧堆栈。

备选方案

可选地,我们可以添加一个 API,该 API 更新旧模板并向用户返回新的更新模板或有关应更改哪些选项的信息。

请注意,如果我们开始对旧模板返回验证错误,这没有意义。

实现

负责人

主要负责人

<prazumovsky>

协助者

<skraynev>

里程碑

完成目标里程碑

Liberty-1

工作项

  • 在文档中添加一节,介绍我们如何弃用选项。

  • 将状态 HIDDEN 添加到 SupportStatus 并改进文档生成。

  • 添加参数 previous_status 并改进 heat 对象的 SupportStatuses。

  • 为属性模式添加选项“legacy_names”。

  • 创建旧模板的自动升级机制。

依赖项