Feature #1830
regsubst() function
| Status: | Closed | Start date: | 12/19/2008 | |
|---|---|---|---|---|
| Priority: | Low | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | functions | |||
| Target version: | 0.24.8 | |||
| Affected Puppet version: | 0.24.6 | Branch: | ||
| Keywords: | ||||
| Votes: | 0 |
Description
A function for performing regular expression substitutions on text strings would be nice.
A draft implementation has been posted to the puppet-devel list by me, and I will work on completing it.
History
Updated by James Turnbull about 3 years ago
- Status changed from Unreviewed to Accepted
- Assignee set to Thomas Bellman
- Target version set to 4
Updated by Thomas Bellman about 3 years ago
Motivation for having this function:
The general problem is that I get some value, for example from a fact or from a parameter to a definition, that needs to be formatted in some way for the specific use it is being put to. regsubst() can also be used for extracting parts of such values.
As a concrete problem I will be solving, I have a large number of machines that are connected with Ethernet and Infiniband. They should have IP addresses on both networks, for example the machine named n23 should have 10.17.0.23 on the Ethernet net, and 10.18.0.23 on the Infiniband net. On the ethernet network, they get their IP addresses using DHCP (and the dhcpd.conf file is generated with an ERB template). However, none of the DHCP clients I have seen, and few of the DHCP servers, can handle Infiniband. Thus, I want Puppet to derive the node’s Infiniband IP address from its Ethernet IP address. With regsubst() and sprintf() I can do that like this:
$ipre = '^([0-9]+)[.]([0-9]+)[.]([0-9]+)[.]([0-9]+)$'
$i1 = regsubst($ipaddress_eth0, $ipre, '\1')
$i2 = regsubst($ipaddress_eth0, $ipre, '\2')
$i3 = regsubst($ipaddress_eth0, $ipre, '\3')
$i4 = regsubst($ipaddress_eth0, $ipre, '\4')
$ibip = sprintf("%d.%d.%d.%d", $i1, $i2 + 1, $i3, $i4)
(This uses the sprintf() function requested in #1831.)
Updated by Thomas Bellman about 3 years ago
- File 0001-Add-regsubst-rvalue-function-bug-1830.patch added
- Status changed from Accepted to Ready For Checkin
Updated by James Turnbull almost 3 years ago
- Status changed from Ready For Checkin to Closed
Pushed in commit:336b6458a2264c550adf8e6799162380822e0d97 in branch 0.24.x
Updated by James Turnbull almost 3 years ago
- Target version changed from 4 to 0.24.8