Назад | Перейти на главную страницу

Объединение переменных в тепловом шаблоне openstack

Скажем, я хочу назвать ресурс на основе двух переменных, поэтому у меня есть что-то вроде:

heat_template_version: 2013-05-23

description: Create network with

parameters:
  client_code:
    type: string
    description: 4 character customer code. Will be used for instance naming
  project_code:
    type: string
    description: 3 character project code

Теперь я хотел бы создать ресурс с именем на основе клиента и проекта:

resources:
  test:
    type: OS::Neutron::Net
    properties:
      name: {get_param: client_code}{get_param: project_code}

Это создание ресурса дает мне ошибку синтаксического анализа. Могу ли я добиться этого в любом случае, или мне нужно использовать предварительный сценарий для создания моего шаблона?

Я нашел решение, используя list_join:

heat_template_version: 2013-05-23

  int_network:
    type: OS::Neutron::Net
    properties:
    name:
       list_join: ['-', [ {get_param: tenant}, 'net']]

Я нашел решение, используя str_replace. Мой код выглядит примерно так:

heat_template_version: 2013-05-23

description: Create network with

parameters:
  client_code:
    type: string
    description: 4 character customer code. Will be used for instance naming
  project_code:
    type: string
    description: 3 character project code

resources:
  test:
    type: OS::Neutron::Net
    properties:
      name:
        str_replace:
        template: cust%-proj%
        params:
          "cust%": { get_param: client_code } 
          "proj%": { get_param: project_code }