有没有一种方法可以根据HOT中的输入参数来计算资源价值



我需要根据另一个卷自动计算一个卷大小。简化示例:

有一个输入参数

data_disk_size:
type: number
default: 50

我们希望第二卷是:100,如果1<data_disk_size<200;如果200<data_disk_size<400;其他400

正如我所理解的,conditions块不会有帮助,因为它只使用布尔值,可用的选项是if和yaql。但我无法将它们一起使用:

instance_volume_2:
type: OS::Cinder::Volume
properties:
...
size:
if:
- yaql:
expression: $.data > 1 and $.data < 200
data: {get_param: data_disk_size}
- 100
- 200 {only for test, there should be nested if}

它给出:

'错误:if.yaql:函数"yaql";在""上下文中无效

所以剩下的唯一选项是纯yaql,但它没有if运算符!

我错过了什么?也许有简单的方法可以做到这一点?

我找到了解决方案!丑陋,但工作的一个:(

YAQL没有if,但有其他逻辑运算符,如和/或。所以值可以这样计算:

instance_volume_2:
type: OS::Cinder::Volume
properties:
...
size:
yaql:
expression: (($.data < 200 and 100) or ($.data < 400 and 200)) or 400
data: {get_param: data_disk_size}

相关内容

  • 没有找到相关文章

最新更新