summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-06-26 18:36:37 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-06-26 18:36:37 +0200
commit956191d17f2f6eec0cfb3deff5deae1d9d332184 (patch)
tree43075579ba525a8a0115aace9518e14d870d198d
parentfix (diff)
downloadnspawn-956191d17f2f6eec0cfb3deff5deae1d9d332184.tar.gz
nspawn-956191d17f2f6eec0cfb3deff5deae1d9d332184.tar.xz
Handel undef.
-rw-r--r--manifests/machine/nspawn.pp254
1 files changed, 131 insertions, 123 deletions
diff --git a/manifests/machine/nspawn.pp b/manifests/machine/nspawn.pp
index f00df40..c3393e5 100644
--- a/manifests/machine/nspawn.pp
+++ b/manifests/machine/nspawn.pp
@@ -10,143 +10,151 @@ define nspawn::machine::nspawn (
String $machine_name = $name,
Enum['absent', 'present'] $ensure = 'present',
) {
- $exec = $config['Exec'].map |$key, $value| {
- if $value =~ Undef {
- []
- } elsif $key in [
- 'Boot', 'Ephemeral', 'ProcessTwo',
- 'NoNewPrivileges', 'NotifyReady',
- ] {
- $value_ = if $value { 'yes' } else { 'no' }
- ["${key}=${value_}"]
- } elsif $key in [
- 'User', 'WorkingDirectory', 'PivotRoot', 'AmbientCapability',
- 'KillSignal', 'Personality', 'MachineID', 'Hostname',
- 'ResolvConf', 'Timezone', 'LinkJournal',
- ] {
- ["${key}=${value}"]
- } elsif $key == 'Parameters' {
- $value_ = $value ? {
- String => "${key}=${value}",
- default => "${key}=" + ($value.map |$param| {
- if ' ' in $param {
- if '"' in $param {
- "'${param}'"
+ $exec = $config['Exec'] ? {
+ Undef => [],
+ default => $config['Exec'].map |$key, $value| {
+ if $value =~ Undef {
+ []
+ } elsif $key in [
+ 'Boot', 'Ephemeral', 'ProcessTwo',
+ 'NoNewPrivileges', 'NotifyReady',
+ ] {
+ $value_ = if $value { 'yes' } else { 'no' }
+ ["${key}=${value_}"]
+ } elsif $key in [
+ 'User', 'WorkingDirectory', 'PivotRoot', 'AmbientCapability',
+ 'KillSignal', 'Personality', 'MachineID', 'Hostname',
+ 'ResolvConf', 'Timezone', 'LinkJournal',
+ ] {
+ ["${key}=${value}"]
+ } elsif $key == 'Parameters' {
+ $value_ = $value ? {
+ String => "${key}=${value}",
+ default => "${key}=" + ($value.map |$param| {
+ if ' ' in $param {
+ if '"' in $param {
+ "'${param}'"
+ } else {
+ "\"${param}\""
+ }
} else {
- "\"${param}\""
+ $param
}
- } else {
- $param
- }
- }.join(' '))
- }
- ["${key}=${value_}"]
- } elsif $key in ['Environment'] {
- $value.map |$k, $v| {
- "Environment=${k}=${v}"
- }
- } elsif $key in ['Capability', 'DropCapability'] {
- $value_ = if $value == 'all' {
- 'all'
- } else {
- $value.join(' ')
- }
- ["${key}=${value_}"]
- } elsif $key in ['PrivateUsers'] {
- $value_ = $value ? {
- Boolean => if $value { 'yes' } else { 'no' },
- Tuple => $value.join(':'),
- default => $value,
- }
- ["${key}=${value_}"]
- } elsif $key in ['SystemCallFilter'] {
- ["${key}=${$value.join(' ')}"]
- } elsif $key =~ /^Limit.*/ {
- $value_ = $value ? {
- Tuple => $value.join(':'),
- default => $value,
+ }.join(' '))
+ }
+ ["${key}=${value_}"]
+ } elsif $key in ['Environment'] {
+ $value.map |$k, $v| {
+ "Environment=${k}=${v}"
+ }
+ } elsif $key in ['Capability', 'DropCapability'] {
+ $value_ = if $value == 'all' {
+ 'all'
+ } else {
+ $value.join(' ')
+ }
+ ["${key}=${value_}"]
+ } elsif $key in ['PrivateUsers'] {
+ $value_ = $value ? {
+ Boolean => if $value { 'yes' } else { 'no' },
+ Tuple => $value.join(':'),
+ default => $value,
+ }
+ ["${key}=${value_}"]
+ } elsif $key in ['SystemCallFilter'] {
+ ["${key}=${$value.join(' ')}"]
+ } elsif $key =~ /^Limit.*/ {
+ $value_ = $value ? {
+ Tuple => $value.join(':'),
+ default => $value,
+ }
+ ["${key}=${value_}"]
}
- ["${key}=${value_}"]
}
}
- $files = $config['Files'].map |$key, $value| {
- if $value =~ Undef {
- []
- } elsif $key in ['ReadOnly'] {
- if $value {
- ["${key}=yes"]
- } else {
- ["${key}=no"]
- }
- } elsif $key in ['PrivateUsersOwnership'] {
- ["${key}=${value}"]
- } elsif $key in ['BindUser', 'Inaccessible'] {
- $value.map |$v| {
- "${key}=${value}"
- }
- } elsif $key in ['Volatile'] {
- $value_ = $value ? {
- Boolean => if $value { 'yes' } else { 'no' },
- default => $value,
- }
- ["${key}=${value_}"]
- } elsif $key in ['Bind', 'BindReadOnly'] {
- $value_ = $value.map |$v| {
- $value_ = $v ? {
- Tuple[String, String] => $v.join(':'),
- Tuple[String, String, Array] => "${v[0]}:${v[1]}:${v[2].join(':')}",
- Struct => "${v['source']}:${v['dest']}" + if $v['options'] =~ Undef {
- ''
- } else {
- $v['options'].join(':')
- },
- default => $v,
+ $files = $config['Files'] ? {
+ Undef => [],
+ default => $config['Files'].map |$key, $value| {
+ if $value =~ Undef {
+ []
+ } elsif $key in ['ReadOnly'] {
+ if $value {
+ ["${key}=yes"]
+ } else {
+ ["${key}=no"]
+ }
+ } elsif $key in ['PrivateUsersOwnership'] {
+ ["${key}=${value}"]
+ } elsif $key in ['BindUser', 'Inaccessible'] {
+ $value.map |$v| {
+ "${key}=${value}"
+ }
+ } elsif $key in ['Volatile'] {
+ $value_ = $value ? {
+ Boolean => if $value { 'yes' } else { 'no' },
+ default => $value,
}
["${key}=${value_}"]
- }
- } elsif $key in ['TemporaryFileSystem'] {
- $value.map |$v| {
- $value_ = $v ? {
- Tuple => $v.join(':'),
- default => $v,
+ } elsif $key in ['Bind', 'BindReadOnly'] {
+ $value_ = $value.map |$v| {
+ $value_ = $v ? {
+ Tuple[String, String] => $v.join(':'),
+ Tuple[String, String, Array] => "${v[0]}:${v[1]}:${v[2].join(':')}",
+ Struct => "${v['source']}:${v['dest']}" + if $v['options'] =~ Undef {
+ ''
+ } else {
+ $v['options'].join(':')
+ },
+ default => $v,
+ }
+ ["${key}=${value_}"]
+ }
+ } elsif $key in ['TemporaryFileSystem'] {
+ $value.map |$v| {
+ $value_ = $v ? {
+ Tuple => $v.join(':'),
+ default => $v,
+ }
+ "${key}=${value_}"
+ }
+ } elsif $key in ['Overlay'] {
+ $value.map |$v| {
+ "${key}=${$v.join(':')}"
}
- "${key}=${value_}"
- }
- } elsif $key in ['Overlay'] {
- $value.map |$v| {
- "${key}=${$v.join(':')}"
}
}
}
- # TODO
- $network = $config['Network'].map |$key, $value| {
- if $key in [
- 'Private', 'VirtualEthernet',
- ] {
- if $value {
- ["${key}=yes"]
- } else {
- ["${key}=no"]
- }
- } elsif $key in [
- 'Bridge', 'Zone',
- ] {
- ["${key}=${value}"]
- } elsif $key in ['MACVLAN', 'IPVLAN', 'Interface'] {
- "${key}=${value.join(' ')}"
- } elsif $key in ['VirtualEthernetExtra'] {
- $value.map |$v| {
- $value_ = $v ? {
- Tuple => $v.join(':'),
- default => $v,
+ $network = $config['Network'] ? {
+ Undef => [],
+ default => $config['Network'].map |$key, $value| {
+ if $key in [
+ 'Private', 'VirtualEthernet',
+ ] {
+ if $value {
+ ["${key}=yes"]
+ } else {
+ ["${key}=no"]
+ }
+ } elsif $key in [
+ 'Bridge', 'Zone',
+ ] {
+ ["${key}=${value}"]
+ } elsif $key in ['MACVLAN', 'IPVLAN', 'Interface'] {
+ "${key}=${value.join(' ')}"
+ } elsif $key in ['VirtualEthernetExtra'] {
+ $value.map |$v| {
+ $value_ = $v ? {
+ Tuple => $v.join(':'),
+ default => $v,
+ }
+ "${key}=${value_}"
+ }
+ } elsif $key in ['Port'] {
+ $value.map |$v| {
+ "${key}=${v.join(':')}"
}
- "${key}=${value_}"
- }
- } elsif $key in ['Port'] {
- $value.map |$v| {
- "${key}=${v.join(':')}"
}
}
}