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.
Files changed (180) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +14 -0
  5. data/Gemfile +8 -0
  6. data/Guardfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +15 -0
  9. data/Rakefile +30 -0
  10. data/WINDOWS_SUPPORT.md +116 -0
  11. data/bin/serverspec-init +7 -0
  12. data/lib/serverspec.rb +33 -0
  13. data/lib/serverspec/commands/base.rb +7 -0
  14. data/lib/serverspec/helper.rb +8 -0
  15. data/lib/serverspec/helper/type.rb +23 -0
  16. data/lib/serverspec/matcher.rb +35 -0
  17. data/lib/serverspec/matcher/be_enabled.rb +13 -0
  18. data/lib/serverspec/matcher/be_executable.rb +13 -0
  19. data/lib/serverspec/matcher/be_installed.rb +13 -0
  20. data/lib/serverspec/matcher/be_listening.rb +13 -0
  21. data/lib/serverspec/matcher/be_mounted.rb +15 -0
  22. data/lib/serverspec/matcher/be_reachable.rb +17 -0
  23. data/lib/serverspec/matcher/be_readable.rb +13 -0
  24. data/lib/serverspec/matcher/be_resolvable.rb +9 -0
  25. data/lib/serverspec/matcher/be_running.rb +13 -0
  26. data/lib/serverspec/matcher/be_writable.rb +13 -0
  27. data/lib/serverspec/matcher/belong_to_group.rb +5 -0
  28. data/lib/serverspec/matcher/belong_to_primary_group.rb +5 -0
  29. data/lib/serverspec/matcher/contain.rb +24 -0
  30. data/lib/serverspec/matcher/have_entry.rb +14 -0
  31. data/lib/serverspec/matcher/have_rule.rb +17 -0
  32. data/lib/serverspec/matcher/have_site_application.rb +18 -0
  33. data/lib/serverspec/matcher/have_site_bindings.rb +22 -0
  34. data/lib/serverspec/matcher/have_virtual_dir.rb +14 -0
  35. data/lib/serverspec/setup.rb +333 -0
  36. data/lib/serverspec/subject.rb +12 -0
  37. data/lib/serverspec/type/base.rb +21 -0
  38. data/lib/serverspec/type/cgroup.rb +17 -0
  39. data/lib/serverspec/type/command.rb +20 -0
  40. data/lib/serverspec/type/cron.rb +11 -0
  41. data/lib/serverspec/type/default_gateway.rb +15 -0
  42. data/lib/serverspec/type/file.rb +113 -0
  43. data/lib/serverspec/type/group.rb +11 -0
  44. data/lib/serverspec/type/host.rb +15 -0
  45. data/lib/serverspec/type/iis_app_pool.rb +43 -0
  46. data/lib/serverspec/type/iis_website.rb +40 -0
  47. data/lib/serverspec/type/interface.rb +18 -0
  48. data/lib/serverspec/type/ip6tables.rb +13 -0
  49. data/lib/serverspec/type/ipfilter.rb +11 -0
  50. data/lib/serverspec/type/ipnat.rb +11 -0
  51. data/lib/serverspec/type/iptables.rb +11 -0
  52. data/lib/serverspec/type/kernel_module.rb +7 -0
  53. data/lib/serverspec/type/linux_kernel_parameter.rb +10 -0
  54. data/lib/serverspec/type/lxc.rb +15 -0
  55. data/lib/serverspec/type/mail_alias.rb +7 -0
  56. data/lib/serverspec/type/package.rb +65 -0
  57. data/lib/serverspec/type/php_config.rb +10 -0
  58. data/lib/serverspec/type/port.rb +40 -0
  59. data/lib/serverspec/type/ppa.rb +11 -0
  60. data/lib/serverspec/type/process.rb +27 -0
  61. data/lib/serverspec/type/routing_table.rb +11 -0
  62. data/lib/serverspec/type/selinux.rb +19 -0
  63. data/lib/serverspec/type/selinux_module.rb +11 -0
  64. data/lib/serverspec/type/service.rb +33 -0
  65. data/lib/serverspec/type/user.rb +31 -0
  66. data/lib/serverspec/type/windows_feature.rb +7 -0
  67. data/lib/serverspec/type/windows_hot_fix.rb +7 -0
  68. data/lib/serverspec/type/windows_registry_key.rb +19 -0
  69. data/lib/serverspec/type/windows_scheduled_task.rb +7 -0
  70. data/lib/serverspec/type/yumrepo.rb +11 -0
  71. data/lib/serverspec/type/zfs.rb +15 -0
  72. data/lib/serverspec/version.rb +3 -0
  73. data/serverspec.gemspec +26 -0
  74. data/spec/helper/type_spec.rb +6 -0
  75. data/spec/spec_helper.rb +28 -0
  76. data/spec/type/aix/file_spec.rb +31 -0
  77. data/spec/type/aix/group_spec.rb +7 -0
  78. data/spec/type/aix/package_spec.rb +7 -0
  79. data/spec/type/aix/port_spec.rb +20 -0
  80. data/spec/type/aix/service_spec.rb +12 -0
  81. data/spec/type/aix/user_spec.rb +16 -0
  82. data/spec/type/arch/file_spec.rb +15 -0
  83. data/spec/type/arch/package_spec.rb +19 -0
  84. data/spec/type/arch/service_spec.rb +9 -0
  85. data/spec/type/base/command_spec.rb +62 -0
  86. data/spec/type/base/cron_spec.rb +11 -0
  87. data/spec/type/base/default_gateway_spec.rb +11 -0
  88. data/spec/type/base/file_spec.rb +336 -0
  89. data/spec/type/base/group_spec.rb +11 -0
  90. data/spec/type/base/host_spec.rb +36 -0
  91. data/spec/type/base/mail_alias_spec.rb +7 -0
  92. data/spec/type/base/package_spec.rb +43 -0
  93. data/spec/type/base/php_config_spec.rb +33 -0
  94. data/spec/type/base/port_spec.rb +34 -0
  95. data/spec/type/base/process_spec.rb +35 -0
  96. data/spec/type/base/routing_table_spec.rb +118 -0
  97. data/spec/type/base/service_spec.rb +45 -0
  98. data/spec/type/base/user_spec.rb +31 -0
  99. data/spec/type/darwin/file_spec.rb +41 -0
  100. data/spec/type/darwin/package_spec.rb +19 -0
  101. data/spec/type/darwin/port_spec.rb +27 -0
  102. data/spec/type/darwin/service_spec.rb +16 -0
  103. data/spec/type/debian/package_spec.rb +23 -0
  104. data/spec/type/debian/service_spec.rb +11 -0
  105. data/spec/type/fedora/service_spec.rb +15 -0
  106. data/spec/type/fedora15/service_spec.rb +15 -0
  107. data/spec/type/fedora20/service_spec.rb +15 -0
  108. data/spec/type/freebsd/file_spec.rb +29 -0
  109. data/spec/type/freebsd/package_spec.rb +19 -0
  110. data/spec/type/freebsd/port_spec.rb +27 -0
  111. data/spec/type/freebsd/service_spec.rb +8 -0
  112. data/spec/type/freebsd10/package_spec.rb +19 -0
  113. data/spec/type/gentoo/package_spec.rb +7 -0
  114. data/spec/type/gentoo/service_spec.rb +12 -0
  115. data/spec/type/linux/cgroup_spec.rb +13 -0
  116. data/spec/type/linux/file_spec.rb +21 -0
  117. data/spec/type/linux/interface_spec.rb +25 -0
  118. data/spec/type/linux/ip6tables_spec.rb +19 -0
  119. data/spec/type/linux/iptables_spec.rb +11 -0
  120. data/spec/type/linux/kernel_module_spec.rb +7 -0
  121. data/spec/type/linux/linux_kernel_parameter_spec.rb +33 -0
  122. data/spec/type/linux/lxc_container_spec.rb +12 -0
  123. data/spec/type/linux/selinux_module_spec.rb +11 -0
  124. data/spec/type/linux/selinux_spec.rb +15 -0
  125. data/spec/type/linux/zfs_spec.rb +15 -0
  126. data/spec/type/nixos/package_spec.rb +15 -0
  127. data/spec/type/nixos/service_spec.rb +9 -0
  128. data/spec/type/openbsd/file_spec.rb +134 -0
  129. data/spec/type/openbsd/interface_spec.rb +21 -0
  130. data/spec/type/openbsd/mail_alias_spec.rb +7 -0
  131. data/spec/type/openbsd/package_spec.rb +11 -0
  132. data/spec/type/openbsd/port_spec.rb +7 -0
  133. data/spec/type/openbsd/service_spec.rb +13 -0
  134. data/spec/type/openbsd/user_spec.rb +12 -0
  135. data/spec/type/opensuse/service_spec.rb +16 -0
  136. data/spec/type/plamo/package_spec.rb +8 -0
  137. data/spec/type/plamo/service_spec.rb +8 -0
  138. data/spec/type/redhat/file_spec.rb +19 -0
  139. data/spec/type/redhat/package_spec.rb +23 -0
  140. data/spec/type/redhat/service_spec.rb +11 -0
  141. data/spec/type/redhat/yumrepo_spec.rb +11 -0
  142. data/spec/type/redhat5/iptables_spec.rb +11 -0
  143. data/spec/type/redhat7/service_spec.rb +9 -0
  144. data/spec/type/smartos/package_spec.rb +19 -0
  145. data/spec/type/smartos/service_spec.rb +16 -0
  146. data/spec/type/solaris/cron_spec.rb +11 -0
  147. data/spec/type/solaris/file_spec.rb +15 -0
  148. data/spec/type/solaris/group_spec.rb +7 -0
  149. data/spec/type/solaris/host_spec.rb +19 -0
  150. data/spec/type/solaris/ipfilter_spec.rb +7 -0
  151. data/spec/type/solaris/ipnat_spec.rb +7 -0
  152. data/spec/type/solaris/package_spec.rb +7 -0
  153. data/spec/type/solaris/port_spec.rb +34 -0
  154. data/spec/type/solaris/service_spec.rb +16 -0
  155. data/spec/type/solaris/user_spec.rb +16 -0
  156. data/spec/type/solaris/zfs_spec.rb +15 -0
  157. data/spec/type/solaris10/file_spec.rb +313 -0
  158. data/spec/type/solaris10/group_spec.rb +8 -0
  159. data/spec/type/solaris10/host_spec.rb +16 -0
  160. data/spec/type/solaris10/package_spec.rb +8 -0
  161. data/spec/type/solaris10/user_spec.rb +8 -0
  162. data/spec/type/suse/package_spec.rb +23 -0
  163. data/spec/type/suse/service_spec.rb +11 -0
  164. data/spec/type/ubuntu/ppa_spec.rb +11 -0
  165. data/spec/type/ubuntu/service_spec.rb +7 -0
  166. data/spec/type/windows/command_spec.rb +64 -0
  167. data/spec/type/windows/feature_spec.rb +17 -0
  168. data/spec/type/windows/file_spec.rb +121 -0
  169. data/spec/type/windows/group_spec.rb +23 -0
  170. data/spec/type/windows/host_spec.rb +32 -0
  171. data/spec/type/windows/hot_fix_spec.rb +22 -0
  172. data/spec/type/windows/iis_app_pool_spec.rb +17 -0
  173. data/spec/type/windows/iis_webisite_spec.rb +16 -0
  174. data/spec/type/windows/package_spec.rb +10 -0
  175. data/spec/type/windows/port_spec.rb +25 -0
  176. data/spec/type/windows/registry_key_spec.rb +58 -0
  177. data/spec/type/windows/scheduled_task_spec.rb +9 -0
  178. data/spec/type/windows/service_spec.rb +30 -0
  179. data/spec/type/windows/user_spec.rb +33 -0
  180. metadata +400 -0
@@ -0,0 +1,12 @@
1
+ module Serverspec
2
+ class Subject
3
+ def value(v=nil)
4
+ if v.nil?
5
+ @value
6
+ else
7
+ @value = v
8
+ self
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,21 @@
1
+ module Serverspec::Type
2
+ class Base
3
+ def initialize(name=nil)
4
+ @name = name
5
+ @runner = Specinfra::Runner
6
+ end
7
+
8
+ def to_s
9
+ type = self.class.name.split(':')[-1]
10
+ type.gsub!(/([a-z\d])([A-Z])/, '\1 \2')
11
+ type.capitalize!
12
+ %Q!#{type} "#{@name}"!
13
+ end
14
+
15
+ alias_method :inspect, :to_s
16
+
17
+ def to_ary
18
+ to_s.split(" ")
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ module Serverspec::Type
2
+ class Cgroup < Base
3
+ attr_accessor :subsystem
4
+ def method_missing(meth)
5
+ if @subsystem.nil?
6
+ @subsystem = meth.to_s
7
+ self
8
+ else
9
+ param = "#{@subsystem}.#{meth.to_s}"
10
+ ret = @runner.run_command("cgget -n -r #{param} #{@name} | awk '{print $2}'")
11
+ val = ret.stdout.strip
12
+ val = val.to_i if val.match(/^\d+$/)
13
+ val
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ module Serverspec::Type
2
+ class Command < Base
3
+ def stdout
4
+ command_result.stdout.strip
5
+ end
6
+
7
+ def stderr
8
+ command_result.stderr.strip
9
+ end
10
+
11
+ def exit_status
12
+ command_result.exit_status.to_i
13
+ end
14
+
15
+ private
16
+ def command_result()
17
+ @command_result ||= @runner.run_command(@name)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Cron < Base
3
+ def has_entry?(user, entry)
4
+ @runner.check_cron_has_entry(user, entry)
5
+ end
6
+
7
+ def to_s
8
+ 'Cron'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module Serverspec::Type
2
+ class DefaultGateway < Base
3
+ def ipaddress
4
+ @runner.get_default_gateway(:gateway)
5
+ end
6
+
7
+ def interface
8
+ @runner.get_default_gateway(:interface)
9
+ end
10
+
11
+ def to_s
12
+ 'Default Gateway'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,113 @@
1
+ require 'date'
2
+
3
+ module Serverspec::Type
4
+ class File < Base
5
+ attr_accessor :content
6
+
7
+ def file?
8
+ @runner.check_file_is_file(@name)
9
+ end
10
+
11
+ def socket?
12
+ @runner.check_file_is_socket(@name)
13
+ end
14
+
15
+ def directory?
16
+ @runner.check_file_is_directory(@name)
17
+ end
18
+
19
+ def contain(pattern, from, to)
20
+ if pattern.is_a?(Array)
21
+ @runner.check_file_contains_lines(@name, pattern, from, to)
22
+ else
23
+ if (from || to).nil?
24
+ @runner.check_file_contains(@name, pattern)
25
+ else
26
+ @runner.check_file_contains_within(@name, pattern, from, to)
27
+ end
28
+ end
29
+ end
30
+
31
+ def mode?(mode)
32
+ @runner.check_file_has_mode(@name, mode)
33
+ end
34
+
35
+ def owned_by?(owner)
36
+ @runner.check_file_is_owned_by(@name, owner)
37
+ end
38
+
39
+ def grouped_into?(group)
40
+ @runner.check_file_is_grouped(@name, group)
41
+ end
42
+
43
+ def linked_to?(target)
44
+ @runner.check_file_is_linked_to(@name, target)
45
+ end
46
+
47
+ def readable?(by_whom, by_user)
48
+ if by_user != nil
49
+ @runner.check_file_is_accessible_by_user(@name, by_user, 'r')
50
+ else
51
+ @runner.check_file_is_readable(@name, by_whom)
52
+ end
53
+ end
54
+
55
+ def writable?(by_whom, by_user)
56
+ if by_user != nil
57
+ @runner.check_file_is_accessible_by_user(@name, by_user, 'w')
58
+ else
59
+ @runner.check_file_is_writable(@name, by_whom)
60
+ end
61
+ end
62
+
63
+ def executable?(by_whom, by_user)
64
+ if by_user != nil
65
+ @runner.check_file_is_accessible_by_user(@name, by_user, 'x')
66
+ else
67
+ @runner.check_file_is_executable(@name, by_whom)
68
+ end
69
+ end
70
+
71
+ def mounted?(attr, only_with)
72
+ @runner.check_file_is_mounted(@name, attr, only_with)
73
+ end
74
+
75
+ def immutable?
76
+ @runner.check_file_is_immutable(@name)
77
+ end
78
+
79
+ def md5sum
80
+ @runner.get_file_md5sum(@name).stdout.strip
81
+ end
82
+
83
+ def sha256sum
84
+ @runner.get_file_sha256sum(@name).stdout.strip
85
+ end
86
+
87
+ def content
88
+ if @content.nil?
89
+ @content = @runner.get_file_content(@name).stdout
90
+ end
91
+ @content
92
+ end
93
+
94
+ def version?(version)
95
+ @runner.check_file_has_version(@name, version)
96
+ end
97
+
98
+ def mtime
99
+ d = @runner.get_file_mtime(@name).stdout.strip
100
+ DateTime.strptime(d, '%s').new_offset(DateTime.now.offset)
101
+ end
102
+
103
+ def size
104
+ @runner.get_file_size(@name).stdout.strip.to_i
105
+ end
106
+ end
107
+ end
108
+
109
+
110
+
111
+
112
+
113
+
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Group < Base
3
+ def exists?
4
+ @runner.check_group_exists(@name)
5
+ end
6
+
7
+ def has_gid?(gid)
8
+ @runner.check_group_has_gid(@name, gid)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module Serverspec::Type
2
+ class Host < Base
3
+ def resolvable?(type)
4
+ @runner.check_host_is_resolvable(@name, type)
5
+ end
6
+
7
+ def reachable?(port, proto, timeout)
8
+ @runner.check_host_is_reachable(@name, port, proto, timeout)
9
+ end
10
+
11
+ def ipaddress
12
+ @runner.get_host_ipaddress(@name).stdout.strip
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,43 @@
1
+ module Serverspec::Type
2
+ class IisAppPool < Base
3
+ def exists?()
4
+ @runner.check_iis_app_pool_exists(@name)
5
+ end
6
+
7
+ def has_dotnet_version?(dotnet)
8
+ @runner.check_iis_app_pool_has_dotnet_version(@name, dotnet)
9
+ end
10
+
11
+ def has_32bit_enabled?()
12
+ @runner.check_iis_app_pool_has_32bit_enabled(@name)
13
+ end
14
+
15
+ def has_idle_timeout?(minutes)
16
+ @runner.check_iis_app_pool_has_idle_timeout(@name, minutes)
17
+ end
18
+
19
+ def has_identity_type?(identity_type)
20
+ @runner.check_iis_app_pool_has_identity_type(@name, identity_type)
21
+ end
22
+
23
+ def has_periodic_restart?(minutes)
24
+ @runner.check_iis_app_pool_has_periodic_restart(@name, minutes)
25
+ end
26
+
27
+ def has_user_profile_enabled?()
28
+ @runner.check_iis_app_pool_has_user_profile(@name)
29
+ end
30
+
31
+ def has_username?(username)
32
+ @runner.check_iis_app_pool_has_username(@name, username)
33
+ end
34
+
35
+ def has_managed_pipeline_mode?(mode)
36
+ @runner.check_iis_app_pool_has_managed_pipeline_mode(@name, mode)
37
+ end
38
+
39
+ def to_s
40
+ %Q[IIS Application Pool "#{@name}"]
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,40 @@
1
+ module Serverspec::Type
2
+ class IisWebsite < Base
3
+
4
+ def exists?()
5
+ @runner.check_iis_website_is_installed(@name)
6
+ end
7
+
8
+ def enabled?()
9
+ @runner.check_iis_website_is_enabled(@name)
10
+ end
11
+
12
+ def running?()
13
+ @runner.check_iis_website_is_running(@name)
14
+ end
15
+
16
+ def in_app_pool?(app_pool)
17
+ @runner.check_iis_website_is_in_app_pool(@name, app_pool)
18
+ end
19
+
20
+ def has_physical_path?(path)
21
+ @runner.check_iis_website_has_physical_path(@name, path)
22
+ end
23
+
24
+ def has_site_bindings?(port, protocol, ipaddress, host_header)
25
+ @runner.check_iis_website_has_site_bindings(@name, port, protocol, ipaddress, host_header)
26
+ end
27
+
28
+ def has_virtual_dir?(vdir, path)
29
+ @runner.check_iis_website_has_virtual_dir(@name, vdir, path)
30
+ end
31
+
32
+ def has_site_application?(app, pool, physical_path)
33
+ @runner.check_iis_website_has_site_application(@name, app, pool, physical_path)
34
+ end
35
+
36
+ def to_s
37
+ %Q[IIS Website "#{@name}"]
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,18 @@
1
+ module Serverspec::Type
2
+ class Interface < Base
3
+ def speed
4
+ ret = @runner.get_interface_speed_of(@name)
5
+ val = ret.stdout.strip
6
+ val = val.to_i if val.match(/^\d+$/)
7
+ val
8
+ end
9
+
10
+ def has_ipv4_address?(ip_address)
11
+ @runner.check_interface_has_ipv4_address(@name, ip_address)
12
+ end
13
+
14
+ def has_ipv6_address?(ip_address)
15
+ @runner.check_interface_has_ipv6_address(@name, ip_address)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,13 @@
1
+ module Serverspec
2
+ module Type
3
+ class Ip6tables < Base
4
+ def has_rule?(rule, table, chain)
5
+ @runner.check_ip6tables_has_rule(rule, table, chain)
6
+ end
7
+
8
+ def to_s
9
+ 'ip6tables'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Ipfilter < Base
3
+ def has_rule?(rule)
4
+ @runner.check_ipfilter_has_rule(rule)
5
+ end
6
+
7
+ def to_s
8
+ 'ipfilter'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Ipnat < Base
3
+ def has_rule?(rule)
4
+ @runner.check_ipnat_has_rule(rule)
5
+ end
6
+
7
+ def to_s
8
+ 'ipnat'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Iptables < Base
3
+ def has_rule?(rule, table, chain)
4
+ @runner.check_iptables_has_rule(rule, table, chain)
5
+ end
6
+
7
+ def to_s
8
+ 'iptables'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ module Serverspec::Type
2
+ class KernelModule < Base
3
+ def loaded?
4
+ @runner.check_kernel_module_is_loaded(@name)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module Serverspec::Type
2
+ class LinuxKernelParameter < Base
3
+ def value
4
+ ret = @runner.run_command("/sbin/sysctl -q -n #{@name}")
5
+ val = ret.stdout.strip
6
+ val = val.to_i if val.match(/^\d+$/)
7
+ val
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ module Serverspec::Type
2
+ class Lxc < Base
3
+ def exists?
4
+ @runner.check_lxc_container_exists(@name)
5
+ end
6
+
7
+ def running?
8
+ @runner.check_lxc_container_is_running(@name)
9
+ end
10
+
11
+ def to_s
12
+ 'LXC'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module Serverspec::Type
2
+ class MailAlias < Base
3
+ def aliased_to?(target)
4
+ @runner.check_mail_alias_is_aliased_to(@name, target)
5
+ end
6
+ end
7
+ end