I'm in no way a puppet guru.... but rewritting it didnt work? from a logic point of view this should work:
class ....
$baseurl,
$webapp_context_path = ''
) {
if ($webapp_context_path == '') {
# Try to get value from baseurl
$webapp_context_path = regsubst($baseurl, '^https?://[^/]+(/.*)', '\1')
if ($webapp_context_path == '') {
#Set default
$webapp_context_path = '/'
}
}
notify{"rewritted webapp_context_path='${webapp_context_path}' from url='${baseurl}'": }
}
But as I said I'm fairly new with puppet, did not tried above code.
Hello,
I have a small Puppet 2.7 module to configure Sonatype Nexus Professional. The module takes, among other things, a baseurl in the form of "http://example.com/path" and I'd like it to extract the "/path" from that variable into a separate variable IF an optional "path" variable haven't been supplied.
Here is an extract:
class nexus::config(
...
$baseurl,
$webapp_context_path = ''
) {
if ($webapp_context_path == '')
{
$webapp_context_path = regsubst($baseurl, '^https?://[^/]+(/.*)', '\1')
$webapp_context_path = regsubst($baseurl, '^https?://[^/]+(/.*)', '\1')
if ($extracted_url_path)
{
$int_webapp_context_path = $extracted_url_path
}
else
{
# in case we were given a $baseurl without the tailing "/"
$int_webapp_context_path = '/'
}
notify{"extracted int_webapp_context_path \"${int_webapp_context_path}\" from url \"${baseurl}\"": }
}
# use $int_webapp_context_path in the .erb template file
My question - this use of $int_webapp_context_path and $extracted_url_path looks a bit shabby. But I didn't find a way to use conditional assignments to remove these intermediate variables and either:
1. Assign the value I want to $webapp_context_path if it's not set yet.
2. Or at least get rid of the $extracted_url_path
Is there a nicer way to achieve the above?
Thanks.