diff --git a/REFERENCE.md b/REFERENCE.md index 118314da..c7841703 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -2444,7 +2444,7 @@ Struct[{ Optional['NotifyAccess'] => Enum['none', 'default', 'main', 'exec', 'all'], Optional['OOMPolicy'] => Enum['continue', 'stop','kill'], Optional['OOMScoreAdjust'] => Integer[-1000,1000], - Optional['Environment'] => String, + Optional['Environment'] => Variant[String[0],Array[String[1],1]], Optional['EnvironmentFile'] => Variant[ Stdlib::Unixpath,Pattern[/-\/.+/], Array[Variant[Stdlib::Unixpath,Pattern[/-\/.+/]],1], diff --git a/spec/defines/manage_unit_spec.rb b/spec/defines/manage_unit_spec.rb index 55758aef..8629a595 100644 --- a/spec/defines/manage_unit_spec.rb +++ b/spec/defines/manage_unit_spec.rb @@ -21,6 +21,7 @@ Type: 'oneshot', ExecStart: '/usr/bin/doit.sh', SyslogIdentifier: 'doit-backwards.sh', + Environment: ['bla=foo', 'foo=bla'] }, install_entry: { WantedBy: 'multi-user.target', @@ -36,6 +37,8 @@ with_content(%r{^DefaultDependencies=true$}). with_content(%r{^\[Service\]$}). with_content(%r{^SyslogIdentifier=doit-backwards\.sh$}). + with_content(%r{^Environment=bla=foo$}). + with_content(%r{^Environment=foo=bla$}). with_content(%r{^\[Install\]$}). with_content(%r{^Description=My great service$}). with_content(%r{^Description=has two lines of description$}). diff --git a/spec/type_aliases/systemd_unit_service_spec.rb b/spec/type_aliases/systemd_unit_service_spec.rb index f687ad7c..66fc4b5a 100644 --- a/spec/type_aliases/systemd_unit_service_spec.rb +++ b/spec/type_aliases/systemd_unit_service_spec.rb @@ -34,6 +34,9 @@ it { is_expected.to allow_value({ 'ExecStart' => 'notabsolute.sh' }) } it { is_expected.not_to allow_value({ 'ExecStart' => '*/wrongprefix.sh' }) } + it { is_expected.to allow_value({ 'Environment' => '' }) } + it { is_expected.to allow_value({ 'Environment' => 'FOO=BAR' }) } + it { is_expected.to allow_value({ 'Environment' => ['FOO=BAR', 'BAR=FOO'] }) } it { is_expected.to allow_value({ 'EnvironmentFile' => '/etc/sysconfig/foo' }) } it { is_expected.to allow_value({ 'EnvironmentFile' => '-/etc/sysconfig/foo' }) } it { is_expected.to allow_value({ 'EnvironmentFile' => ['/etc/sysconfig/foo', '-/etc/sysconfig/foo-bar'] }) } diff --git a/types/unit/service.pp b/types/unit/service.pp index 96ef2992..c23cb42c 100644 --- a/types/unit/service.pp +++ b/types/unit/service.pp @@ -91,7 +91,7 @@ Optional['NotifyAccess'] => Enum['none', 'default', 'main', 'exec', 'all'], Optional['OOMPolicy'] => Enum['continue', 'stop','kill'], Optional['OOMScoreAdjust'] => Integer[-1000,1000], - Optional['Environment'] => String, + Optional['Environment'] => Variant[String[0],Array[String[1],1]], Optional['EnvironmentFile'] => Variant[ Stdlib::Unixpath,Pattern[/-\/.+/], Array[Variant[Stdlib::Unixpath,Pattern[/-\/.+/]],1],