summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/provider/ssh_authorized_key/parsed.rb15
-rw-r--r--lib/puppet/type/ssh_authorized_key.rb14
2 files changed, 15 insertions, 14 deletions
diff --git a/lib/puppet/provider/ssh_authorized_key/parsed.rb b/lib/puppet/provider/ssh_authorized_key/parsed.rb
index 5604ba32a..051fb63ef 100644
--- a/lib/puppet/provider/ssh_authorized_key/parsed.rb
+++ b/lib/puppet/provider/ssh_authorized_key/parsed.rb
@@ -36,21 +36,8 @@ Puppet::Type.type(:ssh_authorized_key).provide(:parsed,
:rts => /^\s+/,
:match => /^(?:(.+) )?(\d+) (\d+) (\d+)(?: (.+))?$/
- def prefetch
- # This was done in the type class but path expansion was failing for
- # not yet existing users, the only workaround I found was to move that
- # in the provider.
- @resource[:target] = target
-
- super
- end
-
def target
- if user
- File.expand_path("~%s/.ssh/authorized_keys" % user)
- elsif target = @resource.should(:target)
- target
- end
+ @resource.should(:target)
end
def user
diff --git a/lib/puppet/type/ssh_authorized_key.rb b/lib/puppet/type/ssh_authorized_key.rb
index 66cf3e733..997afb81e 100644
--- a/lib/puppet/type/ssh_authorized_key.rb
+++ b/lib/puppet/type/ssh_authorized_key.rb
@@ -31,6 +31,20 @@ module Puppet
newproperty(:target) do
desc "The file in which to store the SSH key."
+
+ defaultto :absent
+
+ def should
+ if defined? @should and @should[0] != :absent
+ return super
+ end
+
+ if user = resource[:user]
+ return File.expand_path("~%s/.ssh/authorized_keys" % user)
+ end
+
+ return nil
+ end
end
newproperty(:options, :array_matching => :all) do