serverspec-ruby19 2.24.3

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 (205) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +19 -0
  5. data/Gemfile +8 -0
  6. data/Guardfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +26 -0
  9. data/Rakefile +30 -0
  10. data/WINDOWS_SUPPORT.md +118 -0
  11. data/appveyor.yml +56 -0
  12. data/bin/serverspec-init +7 -0
  13. data/lib/serverspec.rb +63 -0
  14. data/lib/serverspec/commands/base.rb +7 -0
  15. data/lib/serverspec/helper.rb +8 -0
  16. data/lib/serverspec/helper/type.rb +26 -0
  17. data/lib/serverspec/matcher.rb +39 -0
  18. data/lib/serverspec/matcher/be_enabled.rb +13 -0
  19. data/lib/serverspec/matcher/be_enforcing.rb +10 -0
  20. data/lib/serverspec/matcher/be_executable.rb +13 -0
  21. data/lib/serverspec/matcher/be_installed.rb +13 -0
  22. data/lib/serverspec/matcher/be_listening.rb +13 -0
  23. data/lib/serverspec/matcher/be_mounted.rb +15 -0
  24. data/lib/serverspec/matcher/be_permissive.rb +10 -0
  25. data/lib/serverspec/matcher/be_reachable.rb +17 -0
  26. data/lib/serverspec/matcher/be_readable.rb +13 -0
  27. data/lib/serverspec/matcher/be_resolvable.rb +9 -0
  28. data/lib/serverspec/matcher/be_running.rb +13 -0
  29. data/lib/serverspec/matcher/be_writable.rb +13 -0
  30. data/lib/serverspec/matcher/belong_to_group.rb +5 -0
  31. data/lib/serverspec/matcher/belong_to_primary_group.rb +5 -0
  32. data/lib/serverspec/matcher/contain.rb +28 -0
  33. data/lib/serverspec/matcher/have_entry.rb +14 -0
  34. data/lib/serverspec/matcher/have_rule.rb +17 -0
  35. data/lib/serverspec/matcher/have_site_application.rb +18 -0
  36. data/lib/serverspec/matcher/have_site_bindings.rb +22 -0
  37. data/lib/serverspec/matcher/have_virtual_dir.rb +14 -0
  38. data/lib/serverspec/power_assert.rb +14 -0
  39. data/lib/serverspec/setup.rb +338 -0
  40. data/lib/serverspec/subject.rb +12 -0
  41. data/lib/serverspec/type/base.rb +30 -0
  42. data/lib/serverspec/type/bond.rb +11 -0
  43. data/lib/serverspec/type/bridge.rb +11 -0
  44. data/lib/serverspec/type/cgroup.rb +17 -0
  45. data/lib/serverspec/type/command.rb +20 -0
  46. data/lib/serverspec/type/cron.rb +15 -0
  47. data/lib/serverspec/type/default_gateway.rb +15 -0
  48. data/lib/serverspec/type/docker_base.rb +29 -0
  49. data/lib/serverspec/type/docker_container.rb +27 -0
  50. data/lib/serverspec/type/docker_image.rb +4 -0
  51. data/lib/serverspec/type/file.rb +133 -0
  52. data/lib/serverspec/type/fstab.rb +11 -0
  53. data/lib/serverspec/type/group.rb +11 -0
  54. data/lib/serverspec/type/host.rb +21 -0
  55. data/lib/serverspec/type/iis_app_pool.rb +43 -0
  56. data/lib/serverspec/type/iis_website.rb +40 -0
  57. data/lib/serverspec/type/interface.rb +27 -0
  58. data/lib/serverspec/type/ip6tables.rb +13 -0
  59. data/lib/serverspec/type/ipfilter.rb +11 -0
  60. data/lib/serverspec/type/ipnat.rb +11 -0
  61. data/lib/serverspec/type/iptables.rb +11 -0
  62. data/lib/serverspec/type/kernel_module.rb +7 -0
  63. data/lib/serverspec/type/linux_audit_system.rb +45 -0
  64. data/lib/serverspec/type/linux_kernel_parameter.rb +10 -0
  65. data/lib/serverspec/type/lxc.rb +15 -0
  66. data/lib/serverspec/type/mail_alias.rb +7 -0
  67. data/lib/serverspec/type/mysql_config.rb +10 -0
  68. data/lib/serverspec/type/package.rb +66 -0
  69. data/lib/serverspec/type/php_config.rb +10 -0
  70. data/lib/serverspec/type/port.rb +40 -0
  71. data/lib/serverspec/type/ppa.rb +11 -0
  72. data/lib/serverspec/type/process.rb +27 -0
  73. data/lib/serverspec/type/routing_table.rb +11 -0
  74. data/lib/serverspec/type/selinux.rb +19 -0
  75. data/lib/serverspec/type/selinux_module.rb +11 -0
  76. data/lib/serverspec/type/service.rb +52 -0
  77. data/lib/serverspec/type/user.rb +43 -0
  78. data/lib/serverspec/type/windows_feature.rb +7 -0
  79. data/lib/serverspec/type/windows_hot_fix.rb +7 -0
  80. data/lib/serverspec/type/windows_registry_key.rb +19 -0
  81. data/lib/serverspec/type/windows_scheduled_task.rb +7 -0
  82. data/lib/serverspec/type/x509_certificate.rb +76 -0
  83. data/lib/serverspec/type/x509_private_key.rb +21 -0
  84. data/lib/serverspec/type/yumrepo.rb +11 -0
  85. data/lib/serverspec/type/zfs.rb +29 -0
  86. data/lib/serverspec/version.rb +3 -0
  87. data/serverspec.gemspec +28 -0
  88. data/spec/helper/type_spec.rb +6 -0
  89. data/spec/spec_helper.rb +28 -0
  90. data/spec/type/aix/file_spec.rb +31 -0
  91. data/spec/type/aix/group_spec.rb +7 -0
  92. data/spec/type/aix/package_spec.rb +7 -0
  93. data/spec/type/aix/port_spec.rb +20 -0
  94. data/spec/type/aix/service_spec.rb +12 -0
  95. data/spec/type/aix/user_spec.rb +16 -0
  96. data/spec/type/arch/file_spec.rb +15 -0
  97. data/spec/type/arch/package_spec.rb +19 -0
  98. data/spec/type/arch/service_spec.rb +9 -0
  99. data/spec/type/base/command_spec.rb +67 -0
  100. data/spec/type/base/cron_spec.rb +11 -0
  101. data/spec/type/base/default_gateway_spec.rb +11 -0
  102. data/spec/type/base/file_spec.rb +356 -0
  103. data/spec/type/base/group_spec.rb +11 -0
  104. data/spec/type/base/host_spec.rb +47 -0
  105. data/spec/type/base/mail_alias_spec.rb +7 -0
  106. data/spec/type/base/mysql_config_spec.rb +13 -0
  107. data/spec/type/base/package_spec.rb +51 -0
  108. data/spec/type/base/php_config_spec.rb +33 -0
  109. data/spec/type/base/port_spec.rb +34 -0
  110. data/spec/type/base/process_spec.rb +35 -0
  111. data/spec/type/base/routing_table_spec.rb +63 -0
  112. data/spec/type/base/service_spec.rb +49 -0
  113. data/spec/type/base/user_spec.rb +44 -0
  114. data/spec/type/darwin/file_spec.rb +41 -0
  115. data/spec/type/darwin/package_spec.rb +19 -0
  116. data/spec/type/darwin/port_spec.rb +27 -0
  117. data/spec/type/darwin/service_spec.rb +16 -0
  118. data/spec/type/debian/package_spec.rb +23 -0
  119. data/spec/type/debian/service_spec.rb +11 -0
  120. data/spec/type/fedora/service_spec.rb +15 -0
  121. data/spec/type/fedora15/service_spec.rb +15 -0
  122. data/spec/type/fedora20/service_spec.rb +15 -0
  123. data/spec/type/freebsd/file_spec.rb +29 -0
  124. data/spec/type/freebsd/package_spec.rb +19 -0
  125. data/spec/type/freebsd/port_spec.rb +27 -0
  126. data/spec/type/freebsd/service_spec.rb +8 -0
  127. data/spec/type/freebsd10/package_spec.rb +19 -0
  128. data/spec/type/gentoo/package_spec.rb +7 -0
  129. data/spec/type/gentoo/service_spec.rb +12 -0
  130. data/spec/type/linux/bond_spec.rb +12 -0
  131. data/spec/type/linux/bridge_spec.rb +12 -0
  132. data/spec/type/linux/cgroup_spec.rb +13 -0
  133. data/spec/type/linux/docker_container_pre_1_8_spec.rb +124 -0
  134. data/spec/type/linux/docker_container_spec.rb +126 -0
  135. data/spec/type/linux/docker_image_spec.rb +94 -0
  136. data/spec/type/linux/file_spec.rb +27 -0
  137. data/spec/type/linux/fstab_spec.rb +31 -0
  138. data/spec/type/linux/interface_spec.rb +30 -0
  139. data/spec/type/linux/ip6tables_spec.rb +19 -0
  140. data/spec/type/linux/iptables_spec.rb +11 -0
  141. data/spec/type/linux/kernel_module_spec.rb +7 -0
  142. data/spec/type/linux/linux_audit_system_spec.rb +139 -0
  143. data/spec/type/linux/linux_kernel_parameter_spec.rb +33 -0
  144. data/spec/type/linux/lxc_container_spec.rb +12 -0
  145. data/spec/type/linux/selinux_module_spec.rb +11 -0
  146. data/spec/type/linux/selinux_spec.rb +23 -0
  147. data/spec/type/linux/x509_certificate_spec.rb +62 -0
  148. data/spec/type/linux/x509_private_key_spec.rb +31 -0
  149. data/spec/type/linux/zfs_spec.rb +15 -0
  150. data/spec/type/nixos/package_spec.rb +15 -0
  151. data/spec/type/nixos/service_spec.rb +9 -0
  152. data/spec/type/openbsd/file_spec.rb +134 -0
  153. data/spec/type/openbsd/interface_spec.rb +21 -0
  154. data/spec/type/openbsd/mail_alias_spec.rb +7 -0
  155. data/spec/type/openbsd/package_spec.rb +11 -0
  156. data/spec/type/openbsd/port_spec.rb +7 -0
  157. data/spec/type/openbsd/service_spec.rb +13 -0
  158. data/spec/type/openbsd/user_spec.rb +12 -0
  159. data/spec/type/opensuse/service_spec.rb +16 -0
  160. data/spec/type/plamo/package_spec.rb +8 -0
  161. data/spec/type/plamo/service_spec.rb +8 -0
  162. data/spec/type/redhat/file_spec.rb +19 -0
  163. data/spec/type/redhat/package_spec.rb +23 -0
  164. data/spec/type/redhat/service_spec.rb +11 -0
  165. data/spec/type/redhat/yumrepo_spec.rb +11 -0
  166. data/spec/type/redhat5/iptables_spec.rb +11 -0
  167. data/spec/type/redhat7/service_spec.rb +9 -0
  168. data/spec/type/smartos/package_spec.rb +19 -0
  169. data/spec/type/smartos/service_spec.rb +16 -0
  170. data/spec/type/solaris/cron_spec.rb +11 -0
  171. data/spec/type/solaris/file_spec.rb +15 -0
  172. data/spec/type/solaris/group_spec.rb +7 -0
  173. data/spec/type/solaris/host_spec.rb +19 -0
  174. data/spec/type/solaris/ipfilter_spec.rb +7 -0
  175. data/spec/type/solaris/ipnat_spec.rb +7 -0
  176. data/spec/type/solaris/package_spec.rb +7 -0
  177. data/spec/type/solaris/port_spec.rb +34 -0
  178. data/spec/type/solaris/service_spec.rb +16 -0
  179. data/spec/type/solaris/user_spec.rb +16 -0
  180. data/spec/type/solaris/zfs_spec.rb +15 -0
  181. data/spec/type/solaris10/file_spec.rb +313 -0
  182. data/spec/type/solaris10/group_spec.rb +8 -0
  183. data/spec/type/solaris10/host_spec.rb +16 -0
  184. data/spec/type/solaris10/package_spec.rb +8 -0
  185. data/spec/type/solaris10/user_spec.rb +8 -0
  186. data/spec/type/suse/package_spec.rb +23 -0
  187. data/spec/type/suse/service_spec.rb +11 -0
  188. data/spec/type/ubuntu/ppa_spec.rb +11 -0
  189. data/spec/type/ubuntu/service_spec.rb +7 -0
  190. data/spec/type/windows/command_spec.rb +64 -0
  191. data/spec/type/windows/feature_spec.rb +17 -0
  192. data/spec/type/windows/file_spec.rb +120 -0
  193. data/spec/type/windows/group_spec.rb +23 -0
  194. data/spec/type/windows/host_spec.rb +32 -0
  195. data/spec/type/windows/hot_fix_spec.rb +22 -0
  196. data/spec/type/windows/iis_app_pool_spec.rb +17 -0
  197. data/spec/type/windows/iis_webisite_spec.rb +16 -0
  198. data/spec/type/windows/package_spec.rb +10 -0
  199. data/spec/type/windows/port_spec.rb +25 -0
  200. data/spec/type/windows/registry_key_spec.rb +58 -0
  201. data/spec/type/windows/scheduled_task_spec.rb +9 -0
  202. data/spec/type/windows/service_spec.rb +30 -0
  203. data/spec/type/windows/user_spec.rb +33 -0
  204. data/wercker.yml +1 -0
  205. metadata +450 -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,30 @@
1
+ module Serverspec::Type
2
+ class Base
3
+
4
+ attr_reader :name
5
+
6
+ def initialize(name=nil)
7
+ @name = name
8
+ @runner = Specinfra::Runner
9
+ end
10
+
11
+ def to_s
12
+ type = self.class.name.split(':')[-1]
13
+ type.gsub!(/([a-z\d])([A-Z])/, '\1 \2')
14
+ type.capitalize!
15
+ %Q!#{type} "#{@name}"!
16
+ end
17
+
18
+ def inspect
19
+ if defined?(PowerAssert)
20
+ @inspection
21
+ else
22
+ to_s
23
+ end
24
+ end
25
+
26
+ def to_ary
27
+ to_s.split(" ")
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Bond < Base
3
+ def exists?
4
+ @runner.check_bond_exists(@name)
5
+ end
6
+
7
+ def has_interface?(interface)
8
+ @runner.check_bond_has_interface(@name, interface)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Bridge < Base
3
+ def exists?
4
+ @runner.check_bridge_exists(@name)
5
+ end
6
+
7
+ def has_interface?(interface)
8
+ @runner.check_bridge_has_interface(@name, interface)
9
+ end
10
+ end
11
+ 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
5
+ end
6
+
7
+ def stderr
8
+ command_result.stderr
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,15 @@
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 table
8
+ @runner.get_cron_table.stdout
9
+ end
10
+
11
+ def to_s
12
+ 'Cron'
13
+ end
14
+ end
15
+ 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,29 @@
1
+ require 'multi_json'
2
+
3
+ module Serverspec::Type
4
+ class DockerBase < Base
5
+ def exist?
6
+ get_inspection.success?
7
+ end
8
+
9
+ def [](key)
10
+ value = inspection
11
+ key.split('.').each do |k|
12
+ is_index = k.start_with?('[') && k.end_with?(']')
13
+ value = value[is_index ? k.to_i : k]
14
+ end
15
+ value
16
+ end
17
+
18
+ def inspection
19
+ return @inspection if @inspection
20
+ @inspection = ::MultiJson.load(get_inspection.stdout)[0]
21
+ end
22
+
23
+ private
24
+ def get_inspection
25
+ return @get_inspection if @get_inspection
26
+ @get_inspection = @runner.run_command("docker inspect #{@name}")
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,27 @@
1
+ module Serverspec::Type
2
+ class DockerContainer < DockerBase
3
+ def running?
4
+ inspection['State']['Running'] && !inspection['State']['Restarting']
5
+ end
6
+
7
+ def has_volume?(container_path, host_path)
8
+ if (inspection['Mounts'])
9
+ check_volume(container_path, host_path)
10
+ else
11
+ check_volume_pre_1_8(container_path, host_path)
12
+ end
13
+ end
14
+
15
+ private
16
+ def check_volume(container_path, host_path)
17
+ inspection['Mounts'].find {|mount|
18
+ mount['Destination'] == container_path &&
19
+ mount['Source'] == host_path
20
+ }
21
+ end
22
+
23
+ def check_volume_pre_1_8(container_path, host_path)
24
+ inspection['Volumes'][container_path] == host_path
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,4 @@
1
+ module Serverspec::Type
2
+ class DockerImage < DockerBase
3
+ end
4
+ end
@@ -0,0 +1,133 @@
1
+ require 'date'
2
+
3
+ module Serverspec::Type
4
+ class File < Base
5
+ attr_accessor :content
6
+
7
+ def file?
8
+ cmd = Specinfra.command.get(:check_file_is_file, @name)
9
+ @inspection = Specinfra.backend.build_command(cmd)
10
+ @runner.check_file_is_file(@name)
11
+ end
12
+
13
+ def block_device?
14
+ @runner.check_file_is_block_device(@name)
15
+ end
16
+
17
+ def character_device?
18
+ @runner.check_file_is_character_device(@name)
19
+ end
20
+
21
+ def socket?
22
+ @runner.check_file_is_socket(@name)
23
+ end
24
+
25
+ def directory?
26
+ @runner.check_file_is_directory(@name)
27
+ end
28
+
29
+ def symlink?
30
+ @runner.check_file_is_symlink(@name)
31
+ end
32
+
33
+ def pipe?
34
+ @runner.check_file_is_pipe(@name)
35
+ end
36
+
37
+ def contain(pattern, from, to)
38
+ if pattern.is_a?(Array)
39
+ @runner.check_file_contains_lines(@name, pattern, from, to)
40
+ else
41
+ if (from || to).nil?
42
+ @runner.check_file_contains(@name, pattern)
43
+ else
44
+ @runner.check_file_contains_within(@name, pattern, from, to)
45
+ end
46
+ end
47
+ end
48
+
49
+ def mode?(mode)
50
+ @runner.check_file_has_mode(@name, mode)
51
+ end
52
+
53
+ def owned_by?(owner)
54
+ @runner.check_file_is_owned_by(@name, owner)
55
+ end
56
+
57
+ def grouped_into?(group)
58
+ @runner.check_file_is_grouped(@name, group)
59
+ end
60
+
61
+ def linked_to?(target)
62
+ @runner.check_file_is_linked_to(@name, target)
63
+ end
64
+
65
+ def readable?(by_whom, by_user)
66
+ if by_user != nil
67
+ @runner.check_file_is_accessible_by_user(@name, by_user, 'r')
68
+ else
69
+ @runner.check_file_is_readable(@name, by_whom)
70
+ end
71
+ end
72
+
73
+ def writable?(by_whom, by_user)
74
+ if by_user != nil
75
+ @runner.check_file_is_accessible_by_user(@name, by_user, 'w')
76
+ else
77
+ @runner.check_file_is_writable(@name, by_whom)
78
+ end
79
+ end
80
+
81
+ def executable?(by_whom, by_user)
82
+ if by_user != nil
83
+ @runner.check_file_is_accessible_by_user(@name, by_user, 'x')
84
+ else
85
+ @runner.check_file_is_executable(@name, by_whom)
86
+ end
87
+ end
88
+
89
+ def mounted?(attr, only_with)
90
+ @runner.check_file_is_mounted(@name, attr, only_with)
91
+ end
92
+
93
+ def immutable?
94
+ @runner.check_file_is_immutable(@name)
95
+ end
96
+
97
+ def exists?
98
+ @runner.check_file_exists(@name)
99
+ end
100
+
101
+ def md5sum
102
+ @runner.get_file_md5sum(@name).stdout.strip
103
+ end
104
+
105
+ def sha256sum
106
+ @runner.get_file_sha256sum(@name).stdout.strip
107
+ end
108
+
109
+ def content
110
+ if @content.nil?
111
+ @content = @runner.get_file_content(@name).stdout
112
+ end
113
+ @content
114
+ end
115
+
116
+ def version?(version)
117
+ @runner.check_file_has_version(@name, version)
118
+ end
119
+
120
+ def mtime
121
+ d = @runner.get_file_mtime(@name).stdout.strip
122
+ DateTime.strptime(d, '%s').new_offset(DateTime.now.offset)
123
+ end
124
+
125
+ def size
126
+ @runner.get_file_size(@name).stdout.strip.to_i
127
+ end
128
+
129
+ def selinux_label
130
+ @runner.get_file_selinuxlabel(@name).stdout.strip
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Fstab < Base
3
+ def has_entry?(entry)
4
+ @runner.check_fstab_has_entry(entry)
5
+ end
6
+
7
+ def to_s
8
+ 'Fstab'
9
+ end
10
+ end
11
+ end
@@ -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,21 @@
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
+ def ipv4_address
15
+ @runner.get_host_ipv4_address(@name).stdout.strip
16
+ end
17
+ def ipv6_address
18
+ @runner.get_host_ipv6_address(@name).stdout.strip
19
+ end
20
+ end
21
+ 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