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 puppet-dev+unsubscr...@googlegroups.com.
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