mirror of
https://github.com/inspec/inspec
synced 2024-11-23 13:13:22 +00:00
55abdebdc9
* adding df resource Signed-off-by: Vern Burton <me@vernburton.com> * adding unit tests and required mocks for them, created integration test Signed-off-by: Vern Burton <me@vernburton.com> * cleaning up skip test to include only the filename and not full path Signed-off-by: Vern Burton <me@vernburton.com> * adding docs Signed-off-by: Vern Burton <me@vernburton.com> * size makes more sense than space Signed-off-by: Vern Burton <me@vernburton.com> * removing unneeded author lines Signed-off-by: Vern Burton <me@vernburton.com> * as the command changed, changing mock to the new sha Signed-off-by: Vern Burton <me@vernburton.com> * updating to address comments from #2441 * removing author lines * using attr_reader functions * using ruby string functions rather than pipe to sed * adding os family detection * using ResourceFailed as the pattern already existed for OS family detection * using if for future case support for unix and unix-like (FreeBSD) Signed-off-by: Vern Burton <me@vernburton.com> * adding supports to resource metadata, and adding tests that show that resource says that it is not supported on windows/unix. Signed-off-by: Vern Burton <me@vernburton.com> * focusing on linux os family and removing logic for assumed future cases Signed-off-by: Vern Burton <me@vernburton.com> * changing df to filesystem Signed-off-by: Vern Burton <me@vernburton.com>
31 lines
832 B
Ruby
31 lines
832 B
Ruby
module Inspec::Resources
|
|
class FileSystemResource < Inspec.resource(1)
|
|
name 'filesystem'
|
|
supports os_family: 'linux'
|
|
desc 'Use the filesystem InSpec resource to test file system'
|
|
example "
|
|
describe filesystem('/') do
|
|
its('size') { should be >= 32000 }
|
|
end
|
|
"
|
|
attr_reader :partition
|
|
|
|
def initialize(partition)
|
|
@partition = partition
|
|
end
|
|
|
|
def size
|
|
@size ||= begin
|
|
cmd = inspec.command("df #{partition} --output=size")
|
|
raise Inspec::Exceptions::ResourceFailed, "Unable to get available space for partition #{partition}" if cmd.stdout.nil? || cmd.stdout.empty? || !cmd.exit_status.zero?
|
|
|
|
value = cmd.stdout.gsub(/\dK-blocks[\r\n]/, '').strip
|
|
value.to_i
|
|
end
|
|
end
|
|
|
|
def to_s
|
|
"Filesystem #{partition}"
|
|
end
|
|
end
|
|
end
|