puppet resource command

I’ve created a puppet resource for interfaces. Most of the interface names on my switch are lowercase with the exception of Ethernet interfaces, so I munged the interface name to hopefully reduce errors in the manifest; e.g.:

manifest:

cisco_interface { ‘Ethernet1/1’: description => ‘foo’ }

type/cisco_interface.rb:

newparam(:name) do munge { |value| value.downcase } end

My provider code also downcases the interface names when I collect the list of interfaces with self.instances.

So this works great when I test with the manifest, but not so great with the puppet resource command which only works when I call it with the name already downcased:

switch# puppet resource cisco_interface ‘Ethernet1/1’ cisco_interface { ‘Ethernet1/1’: ensure => ‘absent’, } switch# puppet resource cisco_interface ‘ethernet1/1’ cisco_interface { ‘ethernet1/1’: ensure => ‘present’, description => ‘foo’, }

The puppet resource command name field seems to just be a simple filter so I think I’m stuck, but I thought I’d seen other resource types munging title values like this.

Is it possible to munge the title values in a way that works for both scenarios? If not then I’m not sure whether it would be better to leave it case-sensitive since that is what users will see in the switch config, or to “help” them avoid errors in the manifest.

Hi Lucie,

Thank you for posting your question on the Mellanox Community.

Based on the information provided, the question is related to Cisco products.

Unfortunately, we cannot be of any assistance regarding this issue.

Please contact Cisco for this issue.

Thanks and regards,

~Mellanox Technical Support