On Fri, 15 May 2015 at 00:59 Joshua hoblitt <[email protected]> wrote:

> As I'm slowly updating my modules' testing boilerplate for puppet 4.x,
> I've run into a couple cases of breakage that I'm unsure if they are
> intentional changes in semantics or regressions.
>
> When introspecting on a resource and the param is undefined, an empty
> string is now being returned instead of my good friend `undef`.
>
> I understand that '' is the same type of the param in this case but it
> seems like a step backwards to have to go back to [the early days of]
> comparing everything to '' instead of undef.
>
> ```
>    $user_home = getparam(User[$user], 'home')
>
>    $home = $user_home ? {
>      ''      => "/home/${user}", # puppet 4.0
>      undef   => "/home/${user}", # puppet 3.7
>      default => $user_home,
>    }
> ```
>
> It appears that classes are no longer a first class resource.
>
> ```
>    Class['port389::admin::ssl']{ notify =>
> Class['port389::admin::service'] }
> ```
>
> ```
>         Evaluation Error: Resource Override can only operate on
> resources, got: Class[port389::admin::ssl]-Type at
>
> /home/jhoblitt/github/puppet-port389/spec/fixtures/modules/port389/manifests/admin/ssl.pp:8:3
> on node leo.tuc.noao.edu
> ```
>
> I confess that this is fairly unusual syntax but it does work as
> expected under 3.x.
>
> What do you guys think?
>

This second issue was discussed a bit in the comments on PUP-2891:
https://tickets.puppetlabs.com/browse/PUP-2891

You could work around it by using the syntax Class['port389::admin::ssl']
~> Class['port389::admin::service'] instead which works in both 3.x and 4.x.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/CAAAzDLed0i0gpHSvV58oCvy1Nus77GBO5c0%2BcYoU601Ep3Yr%2BQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to