serverspec-clc 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +26 -0
- data/.gitmodules +3 -0
- data/.travis.yml +14 -0
- data/Gemfile +8 -0
- data/Guardfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +15 -0
- data/Rakefile +30 -0
- data/WINDOWS_SUPPORT.md +116 -0
- data/bin/serverspec-init +7 -0
- data/lib/serverspec.rb +33 -0
- data/lib/serverspec/commands/base.rb +7 -0
- data/lib/serverspec/helper.rb +8 -0
- data/lib/serverspec/helper/type.rb +23 -0
- data/lib/serverspec/matcher.rb +35 -0
- data/lib/serverspec/matcher/be_enabled.rb +13 -0
- data/lib/serverspec/matcher/be_executable.rb +13 -0
- data/lib/serverspec/matcher/be_installed.rb +13 -0
- data/lib/serverspec/matcher/be_listening.rb +13 -0
- data/lib/serverspec/matcher/be_mounted.rb +15 -0
- data/lib/serverspec/matcher/be_reachable.rb +17 -0
- data/lib/serverspec/matcher/be_readable.rb +13 -0
- data/lib/serverspec/matcher/be_resolvable.rb +9 -0
- data/lib/serverspec/matcher/be_running.rb +13 -0
- data/lib/serverspec/matcher/be_writable.rb +13 -0
- data/lib/serverspec/matcher/belong_to_group.rb +5 -0
- data/lib/serverspec/matcher/belong_to_primary_group.rb +5 -0
- data/lib/serverspec/matcher/contain.rb +24 -0
- data/lib/serverspec/matcher/have_entry.rb +14 -0
- data/lib/serverspec/matcher/have_rule.rb +17 -0
- data/lib/serverspec/matcher/have_site_application.rb +18 -0
- data/lib/serverspec/matcher/have_site_bindings.rb +22 -0
- data/lib/serverspec/matcher/have_virtual_dir.rb +14 -0
- data/lib/serverspec/setup.rb +333 -0
- data/lib/serverspec/subject.rb +12 -0
- data/lib/serverspec/type/base.rb +21 -0
- data/lib/serverspec/type/cgroup.rb +17 -0
- data/lib/serverspec/type/command.rb +20 -0
- data/lib/serverspec/type/cron.rb +11 -0
- data/lib/serverspec/type/default_gateway.rb +15 -0
- data/lib/serverspec/type/file.rb +113 -0
- data/lib/serverspec/type/group.rb +11 -0
- data/lib/serverspec/type/host.rb +15 -0
- data/lib/serverspec/type/iis_app_pool.rb +43 -0
- data/lib/serverspec/type/iis_website.rb +40 -0
- data/lib/serverspec/type/interface.rb +18 -0
- data/lib/serverspec/type/ip6tables.rb +13 -0
- data/lib/serverspec/type/ipfilter.rb +11 -0
- data/lib/serverspec/type/ipnat.rb +11 -0
- data/lib/serverspec/type/iptables.rb +11 -0
- data/lib/serverspec/type/kernel_module.rb +7 -0
- data/lib/serverspec/type/linux_kernel_parameter.rb +10 -0
- data/lib/serverspec/type/lxc.rb +15 -0
- data/lib/serverspec/type/mail_alias.rb +7 -0
- data/lib/serverspec/type/package.rb +65 -0
- data/lib/serverspec/type/php_config.rb +10 -0
- data/lib/serverspec/type/port.rb +40 -0
- data/lib/serverspec/type/ppa.rb +11 -0
- data/lib/serverspec/type/process.rb +27 -0
- data/lib/serverspec/type/routing_table.rb +11 -0
- data/lib/serverspec/type/selinux.rb +19 -0
- data/lib/serverspec/type/selinux_module.rb +11 -0
- data/lib/serverspec/type/service.rb +33 -0
- data/lib/serverspec/type/user.rb +31 -0
- data/lib/serverspec/type/windows_feature.rb +7 -0
- data/lib/serverspec/type/windows_hot_fix.rb +7 -0
- data/lib/serverspec/type/windows_registry_key.rb +19 -0
- data/lib/serverspec/type/windows_scheduled_task.rb +7 -0
- data/lib/serverspec/type/yumrepo.rb +11 -0
- data/lib/serverspec/type/zfs.rb +15 -0
- data/lib/serverspec/version.rb +3 -0
- data/serverspec.gemspec +26 -0
- data/spec/helper/type_spec.rb +6 -0
- data/spec/spec_helper.rb +28 -0
- data/spec/type/aix/file_spec.rb +31 -0
- data/spec/type/aix/group_spec.rb +7 -0
- data/spec/type/aix/package_spec.rb +7 -0
- data/spec/type/aix/port_spec.rb +20 -0
- data/spec/type/aix/service_spec.rb +12 -0
- data/spec/type/aix/user_spec.rb +16 -0
- data/spec/type/arch/file_spec.rb +15 -0
- data/spec/type/arch/package_spec.rb +19 -0
- data/spec/type/arch/service_spec.rb +9 -0
- data/spec/type/base/command_spec.rb +62 -0
- data/spec/type/base/cron_spec.rb +11 -0
- data/spec/type/base/default_gateway_spec.rb +11 -0
- data/spec/type/base/file_spec.rb +336 -0
- data/spec/type/base/group_spec.rb +11 -0
- data/spec/type/base/host_spec.rb +36 -0
- data/spec/type/base/mail_alias_spec.rb +7 -0
- data/spec/type/base/package_spec.rb +43 -0
- data/spec/type/base/php_config_spec.rb +33 -0
- data/spec/type/base/port_spec.rb +34 -0
- data/spec/type/base/process_spec.rb +35 -0
- data/spec/type/base/routing_table_spec.rb +118 -0
- data/spec/type/base/service_spec.rb +45 -0
- data/spec/type/base/user_spec.rb +31 -0
- data/spec/type/darwin/file_spec.rb +41 -0
- data/spec/type/darwin/package_spec.rb +19 -0
- data/spec/type/darwin/port_spec.rb +27 -0
- data/spec/type/darwin/service_spec.rb +16 -0
- data/spec/type/debian/package_spec.rb +23 -0
- data/spec/type/debian/service_spec.rb +11 -0
- data/spec/type/fedora/service_spec.rb +15 -0
- data/spec/type/fedora15/service_spec.rb +15 -0
- data/spec/type/fedora20/service_spec.rb +15 -0
- data/spec/type/freebsd/file_spec.rb +29 -0
- data/spec/type/freebsd/package_spec.rb +19 -0
- data/spec/type/freebsd/port_spec.rb +27 -0
- data/spec/type/freebsd/service_spec.rb +8 -0
- data/spec/type/freebsd10/package_spec.rb +19 -0
- data/spec/type/gentoo/package_spec.rb +7 -0
- data/spec/type/gentoo/service_spec.rb +12 -0
- data/spec/type/linux/cgroup_spec.rb +13 -0
- data/spec/type/linux/file_spec.rb +21 -0
- data/spec/type/linux/interface_spec.rb +25 -0
- data/spec/type/linux/ip6tables_spec.rb +19 -0
- data/spec/type/linux/iptables_spec.rb +11 -0
- data/spec/type/linux/kernel_module_spec.rb +7 -0
- data/spec/type/linux/linux_kernel_parameter_spec.rb +33 -0
- data/spec/type/linux/lxc_container_spec.rb +12 -0
- data/spec/type/linux/selinux_module_spec.rb +11 -0
- data/spec/type/linux/selinux_spec.rb +15 -0
- data/spec/type/linux/zfs_spec.rb +15 -0
- data/spec/type/nixos/package_spec.rb +15 -0
- data/spec/type/nixos/service_spec.rb +9 -0
- data/spec/type/openbsd/file_spec.rb +134 -0
- data/spec/type/openbsd/interface_spec.rb +21 -0
- data/spec/type/openbsd/mail_alias_spec.rb +7 -0
- data/spec/type/openbsd/package_spec.rb +11 -0
- data/spec/type/openbsd/port_spec.rb +7 -0
- data/spec/type/openbsd/service_spec.rb +13 -0
- data/spec/type/openbsd/user_spec.rb +12 -0
- data/spec/type/opensuse/service_spec.rb +16 -0
- data/spec/type/plamo/package_spec.rb +8 -0
- data/spec/type/plamo/service_spec.rb +8 -0
- data/spec/type/redhat/file_spec.rb +19 -0
- data/spec/type/redhat/package_spec.rb +23 -0
- data/spec/type/redhat/service_spec.rb +11 -0
- data/spec/type/redhat/yumrepo_spec.rb +11 -0
- data/spec/type/redhat5/iptables_spec.rb +11 -0
- data/spec/type/redhat7/service_spec.rb +9 -0
- data/spec/type/smartos/package_spec.rb +19 -0
- data/spec/type/smartos/service_spec.rb +16 -0
- data/spec/type/solaris/cron_spec.rb +11 -0
- data/spec/type/solaris/file_spec.rb +15 -0
- data/spec/type/solaris/group_spec.rb +7 -0
- data/spec/type/solaris/host_spec.rb +19 -0
- data/spec/type/solaris/ipfilter_spec.rb +7 -0
- data/spec/type/solaris/ipnat_spec.rb +7 -0
- data/spec/type/solaris/package_spec.rb +7 -0
- data/spec/type/solaris/port_spec.rb +34 -0
- data/spec/type/solaris/service_spec.rb +16 -0
- data/spec/type/solaris/user_spec.rb +16 -0
- data/spec/type/solaris/zfs_spec.rb +15 -0
- data/spec/type/solaris10/file_spec.rb +313 -0
- data/spec/type/solaris10/group_spec.rb +8 -0
- data/spec/type/solaris10/host_spec.rb +16 -0
- data/spec/type/solaris10/package_spec.rb +8 -0
- data/spec/type/solaris10/user_spec.rb +8 -0
- data/spec/type/suse/package_spec.rb +23 -0
- data/spec/type/suse/service_spec.rb +11 -0
- data/spec/type/ubuntu/ppa_spec.rb +11 -0
- data/spec/type/ubuntu/service_spec.rb +7 -0
- data/spec/type/windows/command_spec.rb +64 -0
- data/spec/type/windows/feature_spec.rb +17 -0
- data/spec/type/windows/file_spec.rb +121 -0
- data/spec/type/windows/group_spec.rb +23 -0
- data/spec/type/windows/host_spec.rb +32 -0
- data/spec/type/windows/hot_fix_spec.rb +22 -0
- data/spec/type/windows/iis_app_pool_spec.rb +17 -0
- data/spec/type/windows/iis_webisite_spec.rb +16 -0
- data/spec/type/windows/package_spec.rb +10 -0
- data/spec/type/windows/port_spec.rb +25 -0
- data/spec/type/windows/registry_key_spec.rb +58 -0
- data/spec/type/windows/scheduled_task_spec.rb +9 -0
- data/spec/type/windows/service_spec.rb +30 -0
- data/spec/type/windows/user_spec.rb +33 -0
- metadata +400 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
module Serverspec::Type
|
|
2
|
+
class Package < Base
|
|
3
|
+
def installed?(provider, version)
|
|
4
|
+
if provider.nil?
|
|
5
|
+
@runner.check_package_is_installed(@name, version)
|
|
6
|
+
else
|
|
7
|
+
check_method = "check_package_is_installed_by_#{provider}".to_sym
|
|
8
|
+
@runner.send(check_method, @name, version)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def version
|
|
13
|
+
ret = @runner.get_package_version(@name).stdout.strip
|
|
14
|
+
if ret.empty?
|
|
15
|
+
nil
|
|
16
|
+
else
|
|
17
|
+
Version.new(ret)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class Version
|
|
22
|
+
include Comparable
|
|
23
|
+
|
|
24
|
+
attr_reader :epoch, :version
|
|
25
|
+
|
|
26
|
+
def initialize(val)
|
|
27
|
+
matches = val.match(/^(?:(\d+):)?(\d[0-9a-zA-Z.+:~-]*)$/)
|
|
28
|
+
if matches.nil?
|
|
29
|
+
raise ArgumentError, "Malformed version number string #{val}"
|
|
30
|
+
end
|
|
31
|
+
@epoch = matches[1].to_i
|
|
32
|
+
@version = matches[2].to_s
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def <=>(other)
|
|
36
|
+
other = Version.new(other) if other.is_a?(String)
|
|
37
|
+
rv = @epoch <=> other.epoch
|
|
38
|
+
return rv if rv != 0
|
|
39
|
+
|
|
40
|
+
self.ver_array <=> other.ver_array
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def ver_array
|
|
44
|
+
val = @version
|
|
45
|
+
re = /^(?:(\d+)|(\D+))(.*)$/
|
|
46
|
+
res = []
|
|
47
|
+
until val.empty?
|
|
48
|
+
matches = val.match(re)
|
|
49
|
+
if matches[1].nil?
|
|
50
|
+
# String
|
|
51
|
+
matches[2].to_s.each_byte do |b|
|
|
52
|
+
code_point = defined?("~".ord) ? "~".ord : ?~
|
|
53
|
+
res << ((b == code_point) ? -2 : b)
|
|
54
|
+
end
|
|
55
|
+
else
|
|
56
|
+
# Digits
|
|
57
|
+
res << matches[1].to_i
|
|
58
|
+
end
|
|
59
|
+
val = matches[3].to_s
|
|
60
|
+
end
|
|
61
|
+
res << -1
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'resolv'
|
|
2
|
+
|
|
3
|
+
module Serverspec::Type
|
|
4
|
+
class Port < Base
|
|
5
|
+
def protocols
|
|
6
|
+
%w(udp tcp tcp6 udp6)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def options
|
|
10
|
+
@options ||= {}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def protocol_matcher(protocol)
|
|
14
|
+
protocol = protocol.to_s.downcase
|
|
15
|
+
if protocols.include?(protocol)
|
|
16
|
+
options[:protocol] = protocol
|
|
17
|
+
else
|
|
18
|
+
raise ArgumentError.new("`be_listening` matcher doesn't support #{protocol}")
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def local_address_matcher(local_address)
|
|
23
|
+
if valid_ip_address?(local_address)
|
|
24
|
+
options[:local_address] = local_address
|
|
25
|
+
else
|
|
26
|
+
raise ArgumentError.new("`be_listening` matcher requires valid IPv4 or IPv6 address")
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def listening?(protocol, local_address)
|
|
31
|
+
protocol_matcher(protocol) if protocol
|
|
32
|
+
local_address_matcher(local_address) if local_address
|
|
33
|
+
@runner.check_port_is_listening(@name, options)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def valid_ip_address?(ip_address)
|
|
37
|
+
!!(ip_address =~ Resolv::IPv4::Regex) || !!(ip_address =~ Resolv::IPv6::Regex)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Serverspec::Type
|
|
2
|
+
class Process < Base
|
|
3
|
+
def running?
|
|
4
|
+
pid = @runner.get_process(@name, :format => "pid=").stdout
|
|
5
|
+
not pid.empty?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def user
|
|
9
|
+
get_column("user")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def group
|
|
13
|
+
get_column("group")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def method_missing(meth)
|
|
17
|
+
get_column(meth.to_s)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def get_column(keyword)
|
|
21
|
+
ret = @runner.get_process(@name, :format => "#{keyword}=")
|
|
22
|
+
val = ret.stdout.strip
|
|
23
|
+
val = val.to_i if val.match(/^\d+$/)
|
|
24
|
+
val
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Serverspec::Type
|
|
2
|
+
class Selinux < Base
|
|
3
|
+
def disabled?
|
|
4
|
+
@runner.check_selinux_has_mode('disabled')
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def enforcing?
|
|
8
|
+
@runner.check_selinux_has_mode('enforcing')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def permissive?
|
|
12
|
+
@runner.check_selinux_has_mode('permissive')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def to_s
|
|
16
|
+
'SELinux'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Serverspec::Type
|
|
2
|
+
class Service < Base
|
|
3
|
+
def enabled?(level=3)
|
|
4
|
+
@runner.check_service_is_enabled(@name, level)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def installed?(name, version)
|
|
8
|
+
@runner.check_service_is_installed(@name)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def has_start_mode?(mode)
|
|
12
|
+
@runner.check_service_has_start_mode(@name, mode)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def running?(under)
|
|
16
|
+
if under
|
|
17
|
+
check_method = "check_service_is_running_under_#{under}".to_sym
|
|
18
|
+
@runner.send(check_method, @name)
|
|
19
|
+
else
|
|
20
|
+
@runner.check_service_is_running(@name)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def monitored_by?(monitor)
|
|
25
|
+
check_method = "check_service_is_monitored_by_#{monitor}".to_sym
|
|
26
|
+
res = @runner.send(check_method, @name)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def has_property?(property)
|
|
30
|
+
@runner.check_service_has_property(@name, property)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Serverspec::Type
|
|
2
|
+
class User < Base
|
|
3
|
+
def exists?
|
|
4
|
+
@runner.check_user_exists(@name)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def belongs_to_group?(group)
|
|
8
|
+
@runner.check_user_belongs_to_group(@name, group)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def belongs_to_primary_group?(group)
|
|
12
|
+
@runner.check_user_belongs_to_primary_group(@name, group)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def has_uid?(uid)
|
|
16
|
+
@runner.check_user_has_uid(@name, uid)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def has_home_directory?(path)
|
|
20
|
+
@runner.check_user_has_home_directory(@name, path)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def has_login_shell?(shell)
|
|
24
|
+
@runner.check_user_has_login_shell(@name, shell)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def has_authorized_key?(key)
|
|
28
|
+
@runner.check_user_has_authorized_key(@name, key)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Serverspec::Type
|
|
2
|
+
class WindowsRegistryKey < Base
|
|
3
|
+
def exists?
|
|
4
|
+
@runner.check_registry_key_exists(@name)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def has_property?(property_name, property_type = :type_string)
|
|
8
|
+
@runner.check_registry_key_has_property(@name, {:name => property_name, :type => property_type})
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def has_value?(value)
|
|
12
|
+
@runner.check_registry_key_has_value(@name, {:name => '', :type => :type_string, :value => value})
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def has_property_value?(property_name, property_type, value)
|
|
16
|
+
@runner.check_registry_key_has_value(@name, {:name => property_name, :type => property_type, :value => value})
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
data/serverspec.gemspec
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'serverspec/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "serverspec-clc"
|
|
8
|
+
spec.version = Serverspec::VERSION
|
|
9
|
+
spec.authors = ["Gosuke Miyashita"]
|
|
10
|
+
spec.email = ["gosukenator@gmail.com"]
|
|
11
|
+
spec.description = %q{RSpec tests for your servers configured by Puppet, Chef or anything else}
|
|
12
|
+
spec.summary = %q{RSpec tests for your servers configured by Puppet, Chef or anything else}
|
|
13
|
+
spec.homepage = "http://serverspec.org/"
|
|
14
|
+
spec.license = "MIT"
|
|
15
|
+
|
|
16
|
+
spec.files = `git ls-files`.split($/)
|
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
|
+
spec.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
spec.add_runtime_dependency "rspec", "~> 3.0"
|
|
22
|
+
spec.add_runtime_dependency "rspec-its"
|
|
23
|
+
spec.add_runtime_dependency "specinfra", "~> 2.1"
|
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
|
25
|
+
spec.add_development_dependency "rake", "~> 10.1.1"
|
|
26
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'serverspec'
|
|
2
|
+
|
|
3
|
+
set :backend, :exec
|
|
4
|
+
|
|
5
|
+
module Specinfra
|
|
6
|
+
module Backend
|
|
7
|
+
class Exec < Base
|
|
8
|
+
def run_command cmd
|
|
9
|
+
CommandResult.new({
|
|
10
|
+
:stdout => ::Specinfra.configuration.stdout,
|
|
11
|
+
:stderr => ::Specinfra.configuration.stderr,
|
|
12
|
+
:exit_status => 0,
|
|
13
|
+
:exit_signal => nil,
|
|
14
|
+
})
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
class Cmd < Base
|
|
18
|
+
def run_command cmd
|
|
19
|
+
CommandResult.new({
|
|
20
|
+
:stdout => ::Specinfra.configuration.stdout,
|
|
21
|
+
:stderr => ::Specinfra.configuration.stderr,
|
|
22
|
+
:exit_status => 0,
|
|
23
|
+
:exit_signal => nil,
|
|
24
|
+
})
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, {:family => 'aix'}
|
|
4
|
+
|
|
5
|
+
describe file('/tmp') do
|
|
6
|
+
it { should be_readable.by_user('mail') }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe file('/tmp') do
|
|
10
|
+
it { should be_writable.by_user('mail') }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe file('/tmp') do
|
|
14
|
+
it { should be_executable.by_user('mail') }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe file('/etc/passwd') do
|
|
18
|
+
it 'be_mode is not implemented' do
|
|
19
|
+
expect {
|
|
20
|
+
should be_mode 644
|
|
21
|
+
}.to raise_exception
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe file('/etc/passwd') do
|
|
26
|
+
it { should be_owned_by 'root' }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe file('/etc/passwd') do
|
|
30
|
+
it { should be_grouped_into 'root' }
|
|
31
|
+
end
|