Add non-string value support for CephAnsibleEnvironmentVariables

CephAnsibleEnvironmentVariables data is supposed to be transformed
into "KEY=VALUE" format by yaql expression.

```
ceph_ansible_environment_variables:
  yaql:
    data: {get_param: CephAnsibleEnvironmentVariables}
    expression: $.data.items().select($[0] + '=' + $[1])
```

However, the expression here uses `+` to join the key($[0]) and
value($[1]), which will cause syntax error when value is not string
type.

For example:

If we use boolean or integer for environment values such as
```
parameter_defaults:
  CephAnsibleEnvironmentVariables:
    ANSIBLE_DEBUG: true
```

the following error will occour

```
overcloud.CephStorageServiceChain:
  resource_type: OS::TripleO::CephStorageServices
  physical_resource_id: 51fd6f95-027b-4047-9132-763e1cb8150c
  status: UPDATE_FAILED
  status_reason: |
    resources.CephStorageServiceChain:
    Error in 4 output role_data:
    Error in CephBase output role_data:
    No function "#operator_+" matches supplied arguments
```

Change-Id: I8394cec6bbaca9c89c848eaddf724c072bc36cb3
Closes-Bug: #1878720
This commit is contained in:
Zhu Sheng Li 2020-05-15 12:44:45 +08:00
parent 0f7cca3e1b
commit 7c46fd0142
5 changed files with 9 additions and 9 deletions

View File

@ -154,8 +154,8 @@ parameter_defaults:
CephClientKey: 'AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw=='
CephAnsiblePlaybookVerbosity: 1
CephAnsibleEnvironmentVariables:
ANSIBLE_SSH_RETRIES: '4'
DEFAULT_FORKS: '3'
ANSIBLE_SSH_RETRIES: 4
DEFAULT_FORKS: 3
CephEnableDashboard: true
NovaEnableRbdBackend: true
CinderEnableRbdBackend: true

View File

@ -127,8 +127,8 @@ parameter_defaults:
dashboard_enabled: false
CephAnsiblePlaybookVerbosity: 1
CephAnsibleEnvironmentVariables:
ANSIBLE_SSH_RETRIES: '4'
DEFAULT_FORKS: '3'
ANSIBLE_SSH_RETRIES: 4
DEFAULT_FORKS: 3
NovaEnableRbdBackend: true
CinderEnableRbdBackend: true
CinderBackupBackend: ceph

View File

@ -62,8 +62,8 @@ parameter_defaults:
CephAnsiblePlaybookVerbosity: 1
CephAnsibleRepo: "tripleo-centos-ceph-nautilus"
CephAnsibleEnvironmentVariables:
ANSIBLE_SSH_RETRIES: '4'
DEFAULT_FORKS: '3'
ANSIBLE_SSH_RETRIES: 4
DEFAULT_FORKS: 3
ManilaCephFSDataPoolPGNum: 16
ManilaCephFSMetadataPoolPGNum: 16
NovaEnableRbdBackend: true

View File

@ -67,8 +67,8 @@ parameter_defaults:
CephClientKey: 'AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw=='
CephAnsiblePlaybookVerbosity: 1
CephAnsibleEnvironmentVariables:
ANSIBLE_SSH_RETRIES: '4'
DEFAULT_FORKS: '3'
ANSIBLE_SSH_RETRIES: 4
DEFAULT_FORKS: 3
NovaEnableRbdBackend: true
CinderEnableRbdBackend: true
CephAnsibleRepo: "tripleo-centos-ceph-nautilus"

View File

@ -635,7 +635,7 @@ outputs:
ceph_ansible_environment_variables:
yaql:
data: {get_param: CephAnsibleEnvironmentVariables}
expression: $.data.items().select($[0] + '=' + $[1])
expression: $.data.items().select($.join('='))
ceph_ansible_skip_tags: {get_param: CephAnsibleSkipTags}
- name: get ssh private key
include_role: