Skip to content

Commit

Permalink
Merge pull request #281 from serverspec/file-content
Browse files Browse the repository at this point in the history
Support its(:content) for file resource type
  • Loading branch information
mizzy committed Oct 17, 2013
2 parents f7db725 + 1ddc950 commit 84bb1f1
Show file tree
Hide file tree
Showing 11 changed files with 174 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/serverspec/commands/base.rb
Expand Up @@ -288,6 +288,10 @@ def check_mail_alias(recipient, target)
target = "[[:space:]]#{target}"
"getent aliases #{escape(recipient)} | grep -- #{escape(target)}$"
end

def get_file_content(file)
"cat #{file}"
end
end
end
end
8 changes: 8 additions & 0 deletions lib/serverspec/type/file.rb
@@ -1,6 +1,8 @@
module Serverspec
module Type
class File < Base
attr_accessor :content

def file?
backend.check_file(@name)
end
Expand Down Expand Up @@ -73,6 +75,12 @@ def match_sha256checksum(sha256sum)
backend.check_file_sha256checksum(@name, sha256sum)
end

def content
if @content.nil?
@content = backend.run_command(commands.get_file_content(@name))[:stdout]
end
@content
end
end
end
end
18 changes: 18 additions & 0 deletions spec/aix/file_spec.rb
Expand Up @@ -386,3 +386,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/darwin/file_spec.rb
Expand Up @@ -395,3 +395,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/debian/file_spec.rb
Expand Up @@ -395,3 +395,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/freebsd/file_spec.rb
Expand Up @@ -367,3 +367,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/gentoo/file_spec.rb
Expand Up @@ -393,3 +393,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/plamo/file_spec.rb
Expand Up @@ -395,3 +395,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/redhat/file_spec.rb
Expand Up @@ -395,3 +395,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/solaris/file_spec.rb
Expand Up @@ -393,3 +393,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end
18 changes: 18 additions & 0 deletions spec/solaris11/file_spec.rb
Expand Up @@ -395,3 +395,21 @@
describe file('invalid-file') do
it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
end

describe file('/etc/passwd') do
let(:stdout) {<<EOF
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
EOF
}

its(:content) { should match /root:x:0:0/ }
end

0 comments on commit 84bb1f1

Please sign in to comment.