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?

-Josh

--

--
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/555528E1.9020007%40hoblitt.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to