summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Roberts <Markus@reality.com>2010-01-15 14:31:22 -0800
committerMarkus Roberts <Markus@reality.com>2010-01-15 22:14:06 -0800
commit67216aa5637a0e134750103abb74b5c2e3db3eb6 (patch)
treeceea952c225c888484e90ff33c5eb01c509cc73c
parente4462c036aaba48149564ad6c4a90a27eb2ec391 (diff)
downloadpuppet-67216aa5637a0e134750103abb74b5c2e3db3eb6.tar.gz
puppet-67216aa5637a0e134750103abb74b5c2e3db3eb6.tar.xz
puppet-67216aa5637a0e134750103abb74b5c2e3db3eb6.zip
Fix for #3075 (sshkey host_aliases ignored)
In the alias --> host_aliases conversion, I overlooked parsed file provider for sshkeys. Now with tests.
-rwxr-xr-xlib/puppet/provider/sshkey/parsed.rb10
-rwxr-xr-xspec/unit/provider/sshkey/parsed.rb27
2 files changed, 28 insertions, 9 deletions
diff --git a/lib/puppet/provider/sshkey/parsed.rb b/lib/puppet/provider/sshkey/parsed.rb
index 4673b5731..e84e3e5c5 100755
--- a/lib/puppet/provider/sshkey/parsed.rb
+++ b/lib/puppet/provider/sshkey/parsed.rb
@@ -21,14 +21,14 @@ Puppet::Type.type(:sshkey).provide(:parsed,
:post_parse => proc { |hash|
names = hash[:name].split(",", -1)
hash[:name] = names.shift
- hash[:alias] = names
+ hash[:host_aliases] = names
},
:pre_gen => proc { |hash|
- if hash[:alias]
- names = [hash[:name], hash[:alias]].flatten
+ if hash[:host_aliases]
+ names = [hash[:name], hash[:host_aliases]].flatten
- hash[:name] = [hash[:name], hash[:alias]].flatten.join(",")
- hash.delete(:alias)
+ hash[:name] = [hash[:name], hash[:host_aliases]].flatten.join(",")
+ hash.delete(:host_aliases)
end
}
end
diff --git a/spec/unit/provider/sshkey/parsed.rb b/spec/unit/provider/sshkey/parsed.rb
index c97656fbd..fc6c85dbd 100755
--- a/spec/unit/provider/sshkey/parsed.rb
+++ b/spec/unit/provider/sshkey/parsed.rb
@@ -8,12 +8,31 @@ describe provider_class do
before do
@sshkey_class = Puppet::Type.type(:sshkey)
@provider_class = @sshkey_class.provider(:parsed)
+ @key = 'AAAAB3NzaC1yc2EAAAABIwAAAQEAzwHhxXvIrtfIwrudFqc8yQcIfMudrgpnuh1F3AV6d2BrLgu/yQE7W5UyJMUjfj427sQudRwKW45O0Jsnr33F4mUw+GIMlAAmp9g24/OcrTiB8ZUKIjoPy/cO4coxGi8/NECtRzpD/ZUPFh6OEpyOwJPMb7/EC2Az6Otw4StHdXUYw22zHazBcPFnv6zCgPx1hA7QlQDWTu4YcL0WmTYQCtMUb3FUqrcFtzGDD0ytosgwSd+JyN5vj5UwIABjnNOHPZ62EY1OFixnfqX/+dUwrFSs5tPgBF/KkC6R7tmbUfnBON6RrGEmu+ajOTOLy23qUZB4CQ53V7nyAWhzqSK+hw=='
end
- it "should not drop an empty alias" do
- line = 'test,alias, ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzwHhxXvIrtfIwrudFqc8yQcIfMudrgpnuh1F3AV6d2BrLgu/yQE7W5UyJMUjfj427sQudRwKW45O0Jsnr33F4mUw+GIMlAAmp9g24/OcrTiB8ZUKIjoPy/cO4coxGi8/NECtRzpD/ZUPFh6OEpyOwJPMb7/EC2Az6Otw4StHdXUYw22zHazBcPFnv6zCgPx1hA7QlQDWTu4YcL0WmTYQCtMUb3FUqrcFtzGDD0ytosgwSd+JyN5vj5UwIABjnNOHPZ62EY1OFixnfqX/+dUwrFSs5tPgBF/KkC6R7tmbUfnBON6RrGEmu+ajOTOLy23qUZB4CQ53V7nyAWhzqSK+hw=='
- parsed = @provider_class.parse_line(line)
- parsed[:alias].should == ["alias",""]
+ it "should parse the name from the first field" do
+ @provider_class.parse_line('test ssh-rsa '+@key)[:name].should == "test"
+ end
+
+ it "should parse the first component of the first field as the name" do
+ @provider_class.parse_line('test,alias ssh-rsa '+@key)[:name].should == "test"
+ end
+
+ it "should parse host_aliases from the remaining components of the first field" do
+ @provider_class.parse_line('test,alias ssh-rsa '+@key)[:host_aliases].should == ["alias"]
+ end
+
+ it "should parse multiple host_aliases" do
+ @provider_class.parse_line('test,alias1,alias2,alias3 ssh-rsa '+@key)[:host_aliases].should == ["alias1","alias2","alias3"]
+ end
+
+ it "should not drop an empty host_alias" do
+ @provider_class.parse_line('test,alias, ssh-rsa '+@key)[:host_aliases].should == ["alias",""]
+ end
+
+ it "should recognise when there are no host aliases" do
+ @provider_class.parse_line('test ssh-rsa '+@key)[:host_aliases].should == []
end
end