tree 59738e767b24fcd6be3ee37bbebc7bd5fd67ca65
parent 647c2dcfde4ab2d820257a9b9680bfa93920c6f9
author Fernando Miguélez Palomo <fernando.miguelez@gmail.com> 1616472044 +0100
committer GitHub <noreply@github.com> 1616472044 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgWWfsCRBK7hj4Ov3rIwAAdHIIAIy8oC5z78Kl+Ap253CiNlNW
 AEndqba0y1vYI86m4S7sKFd4BlpVWbqW8P6asqi+qd7fyb/zkwM0u9nqLPwVIjjO
 KookLdFuNOkXilf3kGkL0RFYeucuHl4bwNjEqN4gUwFyp9WBZfM1eOsJlvOcO6Z2
 GLxoSFTusNnM+hjDInxnb/oHPZN3dmdqplUWj2/y/jLdAEM5TTxwmA1xmvzbzwWs
 W3kybemarQq9G+/6pjPiCl8xPCyeb8qQkhmSQ9xm5HG/M7QaoOObuvgeBTsUxD9u
 GPnH3BO5Zl0Cdh9kCAhuRpHKa0vwA2BpJ8Xy32Rc8Toggc/mu/e5PA/yrtLcq3g=
 =KdZT
 -----END PGP SIGNATURE-----
 

[Issue 9867][scripts] Fixes issue (#9884)

Fixes #9867 

### Motivation

As described in the issue the script to modify configuration yaml file (used by functions worker) did not work with array type variables. 

This fix allows specifying same values for array properties like `authenticationProviders` in environment variables (with `PF_` prefix) as the ones used by `apply-config-from-env.py` for conf files, i.e. a comma separated list of values.

E.g. You can define environment variable `PF_authenticationProviders` taking value `org.apache.pulsar.broker.authentication.AuthenticationProviderTls,org.apache.pulsar.broker.authentication.AuthenticationProviderAthenz` to specify two values or `org.apache.pulsar.broker.authentication.AuthenticationProviderTls` to specify only one. In both cases value will be correctly set in final yaml file as an array:

```yaml
authenticationProviders:
- org.apache.pulsar.broker.authentication.AuthenticationProviderTls
- org.apache.pulsar.broker.authentication.AuthenticationProviderAthenz
```

### Modifications

We have just added a check on the variable names that have type `Set<String>` in `WorkerConfig` the same way it is done for  `int` variables. We then split the value using ",", which already produces an array type.