From 92a734a6620fcc51691d60347e344f87ac801bde Mon Sep 17 00:00:00 2001 From: Ciprian Badescu Date: Thu, 20 Feb 2020 15:32:52 +0200 Subject: (MODULES-7613) use name and type as composite namevar After this modification it will be possible to add two or more keys of different types for the same host --- lib/puppet/provider/sshkey/parsed.rb | 5 +++++ lib/puppet/type/sshkey.rb | 26 +++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/puppet/provider/sshkey/parsed.rb b/lib/puppet/provider/sshkey/parsed.rb index 3713df1..965c20d 100644 --- a/lib/puppet/provider/sshkey/parsed.rb +++ b/lib/puppet/provider/sshkey/parsed.rb @@ -46,4 +46,9 @@ Puppet::Type.type(:sshkey).provide( '/etc/ssh/ssh_known_hosts' end end + + def self.resource_for_record(record, resources) + name = "#{record[:name]}@#{record[:type]}" + resources[name] + end end diff --git a/lib/puppet/type/sshkey.rb b/lib/puppet/type/sshkey.rb index 6e51cff..c3cce5d 100644 --- a/lib/puppet/type/sshkey.rb +++ b/lib/puppet/type/sshkey.rb @@ -8,9 +8,33 @@ module Puppet ensurable - newproperty(:type) do + def name + "#{self[:name]}@#{self[:type]}" + end + + def self.title_patterns + [ + [ + %r{^(.*)@(.*)$}, + [ + [:name], + [:type], + ], + ], + [ + %r{^([^@]+)$}, + [ + [:name], + ], + ], + ] + end + + newparam(:type) do desc 'The encryption type used. Probably ssh-dss or ssh-rsa.' + isnamevar + newvalues :'ssh-dss', :'ssh-ed25519', :'ssh-rsa', :'ecdsa-sha2-nistp256', :'ecdsa-sha2-nistp384', :'ecdsa-sha2-nistp521' aliasvalue(:dsa, :'ssh-dss') -- cgit v1.2.3