Try this: yaql: expression:let(root => $) -> dict($root.data.service.items().select([$[0], $root.data.ip[$[1]]])) data: service: { get_param: ServiceNetMap } ip: { get_param: NetIpMap}
2016-07-15 12:25 GMT+03:00 Steven Hardy <sha...@redhat.com>: > Hi all, > > I'm trying to figure out the cleanest way to do a replacement of values in > a mapping (json parameter) in a heat template, e.g: > > ServiceNetMap: > type: json > default: > IronicApiNetwork: internal_api > CephPublicNetwork: storage > > NetIpMap: > type: json > default: > storage: 192.0.2.2 > internal_api: 192.0.2.5 > > How do I get > OutputMap: > IronicApiNetwork: 192.0.2.5 > CephPublicNetwork: 192.0.2.2 > > It seems like something yaql should be able to do, but I've so far failed > to figure out the syntax. > > The other (possibly simpler) possibility is to implement a new hot > function, e.g something like: > > map_replace: > template: {get_param: ServiceNetMap} > value_replacements: {get_param: NetIpMap} > > The function could accept e.t value_replacements and key_replacements, and > simply iterate over the map doing a key lookup and replacement on the > key/value when they match. > > Anyone got any simpler ideas, or an example of what this would look like in > yaql? > > Thanks! > > Steve > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > -- Best regards, Peter Razumovsky
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev