specinfra-cisco 2.40.2

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 (390) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +19 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +12 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +29 -0
  9. data/Rakefile +43 -0
  10. data/appveyor.yml +56 -0
  11. data/examples/multiple_backends.rb +46 -0
  12. data/lib/specinfra.rb +45 -0
  13. data/lib/specinfra/backend.rb +12 -0
  14. data/lib/specinfra/backend/base.rb +55 -0
  15. data/lib/specinfra/backend/cmd.rb +68 -0
  16. data/lib/specinfra/backend/docker.rb +112 -0
  17. data/lib/specinfra/backend/dockerfile.rb +32 -0
  18. data/lib/specinfra/backend/exec.rb +152 -0
  19. data/lib/specinfra/backend/lxc.rb +45 -0
  20. data/lib/specinfra/backend/powershell/command.rb +40 -0
  21. data/lib/specinfra/backend/powershell/script_helper.rb +86 -0
  22. data/lib/specinfra/backend/powershell/support/check_file_access_rules.ps1 +8 -0
  23. data/lib/specinfra/backend/powershell/support/crop_text.ps1 +11 -0
  24. data/lib/specinfra/backend/powershell/support/find_group.ps1 +8 -0
  25. data/lib/specinfra/backend/powershell/support/find_iis_component.ps1 +90 -0
  26. data/lib/specinfra/backend/powershell/support/find_installed_application.ps1 +37 -0
  27. data/lib/specinfra/backend/powershell/support/find_installed_hot_fix.ps1 +18 -0
  28. data/lib/specinfra/backend/powershell/support/find_scheduled_task.ps1 +7 -0
  29. data/lib/specinfra/backend/powershell/support/find_service.ps1 +5 -0
  30. data/lib/specinfra/backend/powershell/support/find_user.ps1 +8 -0
  31. data/lib/specinfra/backend/powershell/support/find_usergroup.ps1 +9 -0
  32. data/lib/specinfra/backend/powershell/support/is_port_listening.ps1 +14 -0
  33. data/lib/specinfra/backend/powershell/support/is_remote_port_listening.ps1 +51 -0
  34. data/lib/specinfra/backend/powershell/support/list_windows_features.ps1 +68 -0
  35. data/lib/specinfra/backend/shell_script.rb +29 -0
  36. data/lib/specinfra/backend/ssh.rb +182 -0
  37. data/lib/specinfra/backend/telnet.rb +111 -0
  38. data/lib/specinfra/backend/winrm.rb +29 -0
  39. data/lib/specinfra/command.rb +304 -0
  40. data/lib/specinfra/command/aix.rb +1 -0
  41. data/lib/specinfra/command/aix/base.rb +2 -0
  42. data/lib/specinfra/command/aix/base/file.rb +21 -0
  43. data/lib/specinfra/command/aix/base/group.rb +8 -0
  44. data/lib/specinfra/command/aix/base/host.rb +17 -0
  45. data/lib/specinfra/command/aix/base/inventory.rb +38 -0
  46. data/lib/specinfra/command/aix/base/package.rb +11 -0
  47. data/lib/specinfra/command/aix/base/port.rb +8 -0
  48. data/lib/specinfra/command/aix/base/service.rb +11 -0
  49. data/lib/specinfra/command/aix/base/user.rb +15 -0
  50. data/lib/specinfra/command/alpine.rb +1 -0
  51. data/lib/specinfra/command/alpine/base.rb +2 -0
  52. data/lib/specinfra/command/alpine/base/package.rb +19 -0
  53. data/lib/specinfra/command/alpine/base/process.rb +20 -0
  54. data/lib/specinfra/command/alpine/base/service.rb +11 -0
  55. data/lib/specinfra/command/amazon.rb +2 -0
  56. data/lib/specinfra/command/amazon/base.rb +2 -0
  57. data/lib/specinfra/command/arch.rb +1 -0
  58. data/lib/specinfra/command/arch/base.rb +11 -0
  59. data/lib/specinfra/command/arch/base/file.rb +14 -0
  60. data/lib/specinfra/command/arch/base/package.rb +30 -0
  61. data/lib/specinfra/command/arch/base/service.rb +5 -0
  62. data/lib/specinfra/command/base.rb +21 -0
  63. data/lib/specinfra/command/base/bond.rb +2 -0
  64. data/lib/specinfra/command/base/bridge.rb +2 -0
  65. data/lib/specinfra/command/base/cron.rb +17 -0
  66. data/lib/specinfra/command/base/file.rb +179 -0
  67. data/lib/specinfra/command/base/fstab.rb +2 -0
  68. data/lib/specinfra/command/base/group.rb +26 -0
  69. data/lib/specinfra/command/base/host.rb +25 -0
  70. data/lib/specinfra/command/base/interface.rb +2 -0
  71. data/lib/specinfra/command/base/inventory.rb +2 -0
  72. data/lib/specinfra/command/base/ip6tables.rb +2 -0
  73. data/lib/specinfra/command/base/ipfilter.rb +2 -0
  74. data/lib/specinfra/command/base/ipnat.rb +2 -0
  75. data/lib/specinfra/command/base/iptables.rb +2 -0
  76. data/lib/specinfra/command/base/kernel_module.rb +2 -0
  77. data/lib/specinfra/command/base/localhost.rb +7 -0
  78. data/lib/specinfra/command/base/lxc_container.rb +2 -0
  79. data/lib/specinfra/command/base/mail_alias.rb +12 -0
  80. data/lib/specinfra/command/base/package.rb +51 -0
  81. data/lib/specinfra/command/base/port.rb +10 -0
  82. data/lib/specinfra/command/base/ppa.rb +2 -0
  83. data/lib/specinfra/command/base/process.rb +15 -0
  84. data/lib/specinfra/command/base/routing_table.rb +9 -0
  85. data/lib/specinfra/command/base/selinux.rb +2 -0
  86. data/lib/specinfra/command/base/selinux_module.rb +2 -0
  87. data/lib/specinfra/command/base/service.rb +15 -0
  88. data/lib/specinfra/command/base/user.rb +94 -0
  89. data/lib/specinfra/command/base/yumrepo.rb +3 -0
  90. data/lib/specinfra/command/base/zfs.rb +1 -0
  91. data/lib/specinfra/command/coreos.rb +1 -0
  92. data/lib/specinfra/command/coreos/base.rb +2 -0
  93. data/lib/specinfra/command/coreos/base/service.rb +5 -0
  94. data/lib/specinfra/command/cumulus.rb +11 -0
  95. data/lib/specinfra/command/cumulus/base.rb +2 -0
  96. data/lib/specinfra/command/cumulus/base/ppa.rb +17 -0
  97. data/lib/specinfra/command/cumulus/base/service.rb +7 -0
  98. data/lib/specinfra/command/darwin.rb +1 -0
  99. data/lib/specinfra/command/darwin/base.rb +2 -0
  100. data/lib/specinfra/command/darwin/base/file.rb +47 -0
  101. data/lib/specinfra/command/darwin/base/host.rb +11 -0
  102. data/lib/specinfra/command/darwin/base/inventory.rb +28 -0
  103. data/lib/specinfra/command/darwin/base/package.rb +41 -0
  104. data/lib/specinfra/command/darwin/base/port.rb +8 -0
  105. data/lib/specinfra/command/darwin/base/service.rb +11 -0
  106. data/lib/specinfra/command/darwin/base/user.rb +15 -0
  107. data/lib/specinfra/command/debian.rb +1 -0
  108. data/lib/specinfra/command/debian/base.rb +11 -0
  109. data/lib/specinfra/command/debian/base/package.rb +33 -0
  110. data/lib/specinfra/command/debian/base/ppa.rb +2 -0
  111. data/lib/specinfra/command/debian/base/service.rb +32 -0
  112. data/lib/specinfra/command/debian/v8.rb +2 -0
  113. data/lib/specinfra/command/debian/v8/service.rb +5 -0
  114. data/lib/specinfra/command/esxi.rb +1 -0
  115. data/lib/specinfra/command/esxi/base.rb +2 -0
  116. data/lib/specinfra/command/esxi/base/package.rb +7 -0
  117. data/lib/specinfra/command/fedora.rb +1 -0
  118. data/lib/specinfra/command/fedora/base.rb +2 -0
  119. data/lib/specinfra/command/fedora/base/service.rb +11 -0
  120. data/lib/specinfra/command/fedora/v15.rb +2 -0
  121. data/lib/specinfra/command/fedora/v15/service.rb +5 -0
  122. data/lib/specinfra/command/freebsd.rb +1 -0
  123. data/lib/specinfra/command/freebsd/base.rb +3 -0
  124. data/lib/specinfra/command/freebsd/base/file.rb +42 -0
  125. data/lib/specinfra/command/freebsd/base/interface.rb +35 -0
  126. data/lib/specinfra/command/freebsd/base/inventory.rb +28 -0
  127. data/lib/specinfra/command/freebsd/base/package.rb +19 -0
  128. data/lib/specinfra/command/freebsd/base/port.rb +8 -0
  129. data/lib/specinfra/command/freebsd/base/routing_table.rb +9 -0
  130. data/lib/specinfra/command/freebsd/base/service.rb +11 -0
  131. data/lib/specinfra/command/freebsd/base/user.rb +20 -0
  132. data/lib/specinfra/command/freebsd/v10.rb +2 -0
  133. data/lib/specinfra/command/freebsd/v10/package.rb +31 -0
  134. data/lib/specinfra/command/freebsd/v6.rb +2 -0
  135. data/lib/specinfra/command/freebsd/v6/user.rb +19 -0
  136. data/lib/specinfra/command/gentoo.rb +1 -0
  137. data/lib/specinfra/command/gentoo/base.rb +2 -0
  138. data/lib/specinfra/command/gentoo/base/package.rb +7 -0
  139. data/lib/specinfra/command/gentoo/base/service.rb +19 -0
  140. data/lib/specinfra/command/linux.rb +1 -0
  141. data/lib/specinfra/command/linux/base.rb +2 -0
  142. data/lib/specinfra/command/linux/base/bond.rb +11 -0
  143. data/lib/specinfra/command/linux/base/bridge.rb +11 -0
  144. data/lib/specinfra/command/linux/base/file.rb +20 -0
  145. data/lib/specinfra/command/linux/base/fstab.rb +9 -0
  146. data/lib/specinfra/command/linux/base/interface.rb +38 -0
  147. data/lib/specinfra/command/linux/base/inventory.rb +31 -0
  148. data/lib/specinfra/command/linux/base/ip6tables.rb +15 -0
  149. data/lib/specinfra/command/linux/base/iptables.rb +12 -0
  150. data/lib/specinfra/command/linux/base/kernel_module.rb +7 -0
  151. data/lib/specinfra/command/linux/base/lxc_container.rb +11 -0
  152. data/lib/specinfra/command/linux/base/package.rb +2 -0
  153. data/lib/specinfra/command/linux/base/ppa.rb +2 -0
  154. data/lib/specinfra/command/linux/base/selinux.rb +12 -0
  155. data/lib/specinfra/command/linux/base/selinux_module.rb +16 -0
  156. data/lib/specinfra/command/linux/base/service.rb +2 -0
  157. data/lib/specinfra/command/linux/base/yumrepo.rb +2 -0
  158. data/lib/specinfra/command/linux/base/zfs.rb +5 -0
  159. data/lib/specinfra/command/module.rb +7 -0
  160. data/lib/specinfra/command/module/service/daemontools.rb +46 -0
  161. data/lib/specinfra/command/module/service/delegator.rb +20 -0
  162. data/lib/specinfra/command/module/service/god.rb +13 -0
  163. data/lib/specinfra/command/module/service/init.rb +42 -0
  164. data/lib/specinfra/command/module/service/monit.rb +13 -0
  165. data/lib/specinfra/command/module/service/runit.rb +13 -0
  166. data/lib/specinfra/command/module/service/supervisor.rb +13 -0
  167. data/lib/specinfra/command/module/service/systemd.rb +41 -0
  168. data/lib/specinfra/command/module/service/upstart.rb +13 -0
  169. data/lib/specinfra/command/module/ss.rb +39 -0
  170. data/lib/specinfra/command/module/systemd.rb +12 -0
  171. data/lib/specinfra/command/module/zfs.rb +25 -0
  172. data/lib/specinfra/command/nexus.rb +1 -0
  173. data/lib/specinfra/command/nexus/base.rb +2 -0
  174. data/lib/specinfra/command/nexus/base/file.rb +8 -0
  175. data/lib/specinfra/command/nexus/base/host.rb +2 -0
  176. data/lib/specinfra/command/nexus/base/iptables.rb +11 -0
  177. data/lib/specinfra/command/nexus/base/package.rb +30 -0
  178. data/lib/specinfra/command/nexus/base/port.rb +5 -0
  179. data/lib/specinfra/command/nexus/base/service.rb +2 -0
  180. data/lib/specinfra/command/nexus/base/yumrepo.rb +11 -0
  181. data/lib/specinfra/command/nexus/v7.rb +3 -0
  182. data/lib/specinfra/command/nixos.rb +1 -0
  183. data/lib/specinfra/command/nixos/base.rb +2 -0
  184. data/lib/specinfra/command/nixos/base/package.rb +17 -0
  185. data/lib/specinfra/command/nixos/base/service.rb +5 -0
  186. data/lib/specinfra/command/openbsd.rb +1 -0
  187. data/lib/specinfra/command/openbsd/base.rb +4 -0
  188. data/lib/specinfra/command/openbsd/base/bond.rb +11 -0
  189. data/lib/specinfra/command/openbsd/base/bridge.rb +11 -0
  190. data/lib/specinfra/command/openbsd/base/file.rb +47 -0
  191. data/lib/specinfra/command/openbsd/base/fstab.rb +9 -0
  192. data/lib/specinfra/command/openbsd/base/interface.rb +40 -0
  193. data/lib/specinfra/command/openbsd/base/inventory.rb +28 -0
  194. data/lib/specinfra/command/openbsd/base/mail_alias.rb +7 -0
  195. data/lib/specinfra/command/openbsd/base/package.rb +15 -0
  196. data/lib/specinfra/command/openbsd/base/port.rb +7 -0
  197. data/lib/specinfra/command/openbsd/base/routing_table.rb +9 -0
  198. data/lib/specinfra/command/openbsd/base/service.rb +11 -0
  199. data/lib/specinfra/command/openbsd/base/user.rb +11 -0
  200. data/lib/specinfra/command/opensuse.rb +1 -0
  201. data/lib/specinfra/command/opensuse/base.rb +3 -0
  202. data/lib/specinfra/command/opensuse/base/service.rb +12 -0
  203. data/lib/specinfra/command/plamo.rb +1 -0
  204. data/lib/specinfra/command/plamo/base.rb +3 -0
  205. data/lib/specinfra/command/plamo/base/package.rb +11 -0
  206. data/lib/specinfra/command/plamo/base/service.rb +14 -0
  207. data/lib/specinfra/command/redhat.rb +1 -0
  208. data/lib/specinfra/command/redhat/base.rb +2 -0
  209. data/lib/specinfra/command/redhat/base/file.rb +8 -0
  210. data/lib/specinfra/command/redhat/base/host.rb +2 -0
  211. data/lib/specinfra/command/redhat/base/iptables.rb +11 -0
  212. data/lib/specinfra/command/redhat/base/package.rb +39 -0
  213. data/lib/specinfra/command/redhat/base/port.rb +2 -0
  214. data/lib/specinfra/command/redhat/base/service.rb +2 -0
  215. data/lib/specinfra/command/redhat/base/yumrepo.rb +13 -0
  216. data/lib/specinfra/command/redhat/v5.rb +3 -0
  217. data/lib/specinfra/command/redhat/v5/iptables.rb +10 -0
  218. data/lib/specinfra/command/redhat/v7.rb +3 -0
  219. data/lib/specinfra/command/redhat/v7/host.rb +15 -0
  220. data/lib/specinfra/command/redhat/v7/port.rb +5 -0
  221. data/lib/specinfra/command/redhat/v7/service.rb +5 -0
  222. data/lib/specinfra/command/smartos.rb +1 -0
  223. data/lib/specinfra/command/smartos/base.rb +3 -0
  224. data/lib/specinfra/command/smartos/base/file.rb +11 -0
  225. data/lib/specinfra/command/smartos/base/package.rb +15 -0
  226. data/lib/specinfra/command/smartos/base/service.rb +11 -0
  227. data/lib/specinfra/command/solaris.rb +1 -0
  228. data/lib/specinfra/command/solaris/base.rb +2 -0
  229. data/lib/specinfra/command/solaris/base/cron.rb +12 -0
  230. data/lib/specinfra/command/solaris/base/file.rb +20 -0
  231. data/lib/specinfra/command/solaris/base/group.rb +8 -0
  232. data/lib/specinfra/command/solaris/base/host.rb +14 -0
  233. data/lib/specinfra/command/solaris/base/inventory.rb +37 -0
  234. data/lib/specinfra/command/solaris/base/ipfilter.rb +7 -0
  235. data/lib/specinfra/command/solaris/base/ipnat.rb +14 -0
  236. data/lib/specinfra/command/solaris/base/package.rb +14 -0
  237. data/lib/specinfra/command/solaris/base/port.rb +13 -0
  238. data/lib/specinfra/command/solaris/base/service.rb +24 -0
  239. data/lib/specinfra/command/solaris/base/user.rb +15 -0
  240. data/lib/specinfra/command/solaris/base/zfs.rb +13 -0
  241. data/lib/specinfra/command/solaris/v10.rb +2 -0
  242. data/lib/specinfra/command/solaris/v10/file.rb +42 -0
  243. data/lib/specinfra/command/solaris/v10/group.rb +7 -0
  244. data/lib/specinfra/command/solaris/v10/host.rb +13 -0
  245. data/lib/specinfra/command/solaris/v10/package.rb +11 -0
  246. data/lib/specinfra/command/solaris/v10/user.rb +18 -0
  247. data/lib/specinfra/command/suse.rb +1 -0
  248. data/lib/specinfra/command/suse/base.rb +2 -0
  249. data/lib/specinfra/command/suse/base/package.rb +21 -0
  250. data/lib/specinfra/command/suse/base/service.rb +14 -0
  251. data/lib/specinfra/command/ubuntu.rb +11 -0
  252. data/lib/specinfra/command/ubuntu/base.rb +2 -0
  253. data/lib/specinfra/command/ubuntu/base/ppa.rb +17 -0
  254. data/lib/specinfra/command/ubuntu/base/service.rb +7 -0
  255. data/lib/specinfra/command/ubuntu/v15.rb +1 -0
  256. data/lib/specinfra/command/ubuntu/v15/service.rb +5 -0
  257. data/lib/specinfra/command/windows.rb +1 -0
  258. data/lib/specinfra/command/windows/base.rb +22 -0
  259. data/lib/specinfra/command/windows/base/feature.rb +17 -0
  260. data/lib/specinfra/command/windows/base/file.rb +113 -0
  261. data/lib/specinfra/command/windows/base/group.rb +11 -0
  262. data/lib/specinfra/command/windows/base/host.rb +25 -0
  263. data/lib/specinfra/command/windows/base/hot_fix.rb +19 -0
  264. data/lib/specinfra/command/windows/base/iis_app_pool.rb +66 -0
  265. data/lib/specinfra/command/windows/base/iis_website.rb +59 -0
  266. data/lib/specinfra/command/windows/base/package.rb +11 -0
  267. data/lib/specinfra/command/windows/base/port.rb +17 -0
  268. data/lib/specinfra/command/windows/base/process.rb +31 -0
  269. data/lib/specinfra/command/windows/base/registry_key.rb +53 -0
  270. data/lib/specinfra/command/windows/base/scheduled_task.rb +10 -0
  271. data/lib/specinfra/command/windows/base/service.rb +31 -0
  272. data/lib/specinfra/command/windows/base/user.rb +22 -0
  273. data/lib/specinfra/command_factory.rb +83 -0
  274. data/lib/specinfra/command_result.rb +28 -0
  275. data/lib/specinfra/configuration.rb +62 -0
  276. data/lib/specinfra/core.rb +18 -0
  277. data/lib/specinfra/ec2_metadata.rb +93 -0
  278. data/lib/specinfra/ext.rb +2 -0
  279. data/lib/specinfra/ext/class.rb +9 -0
  280. data/lib/specinfra/ext/string.rb +14 -0
  281. data/lib/specinfra/helper.rb +6 -0
  282. data/lib/specinfra/helper/configuration.rb +41 -0
  283. data/lib/specinfra/helper/detect_os.rb +38 -0
  284. data/lib/specinfra/helper/detect_os/aix.rb +12 -0
  285. data/lib/specinfra/helper/detect_os/alpine.rb +8 -0
  286. data/lib/specinfra/helper/detect_os/arch.rb +7 -0
  287. data/lib/specinfra/helper/detect_os/coreos.rb +18 -0
  288. data/lib/specinfra/helper/detect_os/darwin.rb +11 -0
  289. data/lib/specinfra/helper/detect_os/debian.rb +26 -0
  290. data/lib/specinfra/helper/detect_os/esxi.rb +10 -0
  291. data/lib/specinfra/helper/detect_os/freebsd.rb +11 -0
  292. data/lib/specinfra/helper/detect_os/gentoo.rb +7 -0
  293. data/lib/specinfra/helper/detect_os/nexus.rb +14 -0
  294. data/lib/specinfra/helper/detect_os/nixos.rb +7 -0
  295. data/lib/specinfra/helper/detect_os/openbsd.rb +11 -0
  296. data/lib/specinfra/helper/detect_os/plamo.rb +7 -0
  297. data/lib/specinfra/helper/detect_os/redhat.rb +31 -0
  298. data/lib/specinfra/helper/detect_os/solaris.rb +15 -0
  299. data/lib/specinfra/helper/detect_os/suse.rb +15 -0
  300. data/lib/specinfra/helper/docker.rb +11 -0
  301. data/lib/specinfra/helper/host_inventory.rb +12 -0
  302. data/lib/specinfra/helper/lxc.rb +11 -0
  303. data/lib/specinfra/helper/os.rb +35 -0
  304. data/lib/specinfra/helper/properties.rb +14 -0
  305. data/lib/specinfra/helper/set.rb +10 -0
  306. data/lib/specinfra/host_inventory.rb +68 -0
  307. data/lib/specinfra/host_inventory/base.rb +14 -0
  308. data/lib/specinfra/host_inventory/cpu.rb +77 -0
  309. data/lib/specinfra/host_inventory/domain.rb +16 -0
  310. data/lib/specinfra/host_inventory/ec2.rb +11 -0
  311. data/lib/specinfra/host_inventory/filesystem.rb +31 -0
  312. data/lib/specinfra/host_inventory/fqdn.rb +16 -0
  313. data/lib/specinfra/host_inventory/hostname.rb +16 -0
  314. data/lib/specinfra/host_inventory/kernel.rb +27 -0
  315. data/lib/specinfra/host_inventory/memory.rb +83 -0
  316. data/lib/specinfra/host_inventory/platform.rb +9 -0
  317. data/lib/specinfra/host_inventory/platform_version.rb +15 -0
  318. data/lib/specinfra/host_inventory/virtualization.rb +39 -0
  319. data/lib/specinfra/processor.rb +229 -0
  320. data/lib/specinfra/properties.rb +17 -0
  321. data/lib/specinfra/runner.rb +35 -0
  322. data/lib/specinfra/version.rb +3 -0
  323. data/spec/backend/exec/build_command_spec.rb +148 -0
  324. data/spec/backend/exec/child_process_spec.rb +18 -0
  325. data/spec/backend/exec/env_spec.rb +16 -0
  326. data/spec/backend/exec/read_noblock_spec.rb +50 -0
  327. data/spec/backend/exec/stdxxx_handler_spec.rb +25 -0
  328. data/spec/backend/ssh/build_command_spec.rb +115 -0
  329. data/spec/command/amazon/interface_spec.rb +9 -0
  330. data/spec/command/amazon/package_spec.rb +7 -0
  331. data/spec/command/amazon/service_spec.rb +28 -0
  332. data/spec/command/base/file_spec.rb +91 -0
  333. data/spec/command/base/group_spec.rb +16 -0
  334. data/spec/command/base/localhost_spec.rb +7 -0
  335. data/spec/command/base/package_spec.rb +11 -0
  336. data/spec/command/base/user_spec.rb +59 -0
  337. data/spec/command/darwin/file_spec.rb +16 -0
  338. data/spec/command/darwin/user_spec.rb +15 -0
  339. data/spec/command/debian/service_spec.rb +28 -0
  340. data/spec/command/esxi/package_spec.rb +8 -0
  341. data/spec/command/factory_spec.rb +30 -0
  342. data/spec/command/freebsd/file_spec.rb +12 -0
  343. data/spec/command/freebsd/interface_spec.rb +28 -0
  344. data/spec/command/linux/bond_spec.rb +12 -0
  345. data/spec/command/linux/bridge_spec.rb +12 -0
  346. data/spec/command/linux/file_spec.rb +12 -0
  347. data/spec/command/linux/interface_spec.rb +24 -0
  348. data/spec/command/linux/inventory_spec.rb +15 -0
  349. data/spec/command/linux/ip6tables_spec.rb +7 -0
  350. data/spec/command/linux/selinux_module_spec.rb +12 -0
  351. data/spec/command/linux/selinux_spec.rb +8 -0
  352. data/spec/command/module/service/daemontools_spec.rb +18 -0
  353. data/spec/command/module/service/init_spec.rb +18 -0
  354. data/spec/command/module/service/systemd_spec.rb +16 -0
  355. data/spec/command/module/ss_spec.rb +28 -0
  356. data/spec/command/module/systemd_spec.rb +19 -0
  357. data/spec/command/module/zfs_spec.rb +6 -0
  358. data/spec/command/openbsd/file_spec.rb +12 -0
  359. data/spec/command/openbsd/interface_spec.rb +28 -0
  360. data/spec/command/redhat/package_spec.rb +8 -0
  361. data/spec/command/redhat/service_spec.rb +28 -0
  362. data/spec/command/redhat7/host_spec.rb +13 -0
  363. data/spec/command/redhat7/interface_spec.rb +9 -0
  364. data/spec/command/redhat7/port_spec.rb +8 -0
  365. data/spec/command/redhat7/service_spec.rb +32 -0
  366. data/spec/command/ubuntu/ppa_spec.rb +12 -0
  367. data/spec/command/windows/registry_key_spec.rb +36 -0
  368. data/spec/configuration_spec.rb +14 -0
  369. data/spec/helper/detect_os/aix_spec.rb +58 -0
  370. data/spec/helper/detect_os/darwin_spec.rb +42 -0
  371. data/spec/helper/detect_os/esxi_spec.rb +22 -0
  372. data/spec/helper/detect_os/freebsd_spec.rb +42 -0
  373. data/spec/helper/detect_os/openbsd_spec.rb +42 -0
  374. data/spec/helper/os_spec.rb +58 -0
  375. data/spec/helper/properties_spec.rb +11 -0
  376. data/spec/helper/set_spec.rb +14 -0
  377. data/spec/host_inventory/aix/filesystem_spec.rb +107 -0
  378. data/spec/host_inventory/darwin/filesystem_spec.rb +63 -0
  379. data/spec/host_inventory/freebsd/filesystem_spec.rb +123 -0
  380. data/spec/host_inventory/linux/cpu_spec.rb +123 -0
  381. data/spec/host_inventory/linux/filesystem_spec.rb +53 -0
  382. data/spec/host_inventory/linux/kernel_spec.rb +33 -0
  383. data/spec/host_inventory/linux/memory_spec.rb +145 -0
  384. data/spec/host_inventory/linux/virtualization_docker_spec.rb +134 -0
  385. data/spec/host_inventory/linux/virtualization_kvm_spec.rb +132 -0
  386. data/spec/host_inventory/openbsd/filesystem_spec.rb +43 -0
  387. data/spec/host_inventory/solaris/filesystem_spec.rb +137 -0
  388. data/spec/spec_helper.rb +26 -0
  389. data/specinfra-cisco.gemspec +28 -0
  390. metadata +613 -0
@@ -0,0 +1,123 @@
1
+ require 'spec_helper'
2
+
3
+ str = <<-EOH
4
+ processor : 0
5
+ vendor_id : GenuineIntel
6
+ cpu family : 6
7
+ model : 60
8
+ model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
9
+ stepping : 3
10
+ microcode : 0x19
11
+ cpu MHz : 3132.076
12
+ cache size : 6144 KB
13
+ physical id : 0
14
+ siblings : 2
15
+ core id : 0
16
+ cpu cores : 2
17
+ apicid : 0
18
+ initial apicid : 0
19
+ fpu : yes
20
+ fpu_exception : yes
21
+ cpuid level : 5
22
+ wp : yes
23
+ flags : fpu vme de pse
24
+ bogomips : 6264.15
25
+ clflush size : 64
26
+ cache_alignment : 64
27
+ address sizes : 39 bits physical, 48 bits virtual
28
+ power management:
29
+
30
+ processor : 1
31
+ vendor_id : GenuineIntel
32
+ cpu family : 6
33
+ model : 60
34
+ model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
35
+ stepping : 3
36
+ microcode : 0x19
37
+ cpu MHz : 3132.076
38
+ cache size : 6144 KB
39
+ physical id : 0
40
+ siblings : 2
41
+ core id : 1
42
+ cpu cores : 2
43
+ apicid : 1
44
+ initial apicid : 1
45
+ fpu : yes
46
+ fpu_exception : yes
47
+ cpuid level : 5
48
+ wp : yes
49
+ flags : fpu vme de
50
+ bogomips : 6264.15
51
+ clflush size : 64
52
+ cache_alignment : 64
53
+ address sizes : 39 bits physical, 48 bits virtual
54
+ power management:
55
+ EOH
56
+
57
+ describe Specinfra::HostInventory::Cpu do
58
+ let(:host_inventory) { nil }
59
+ describe 'Example of Ubuntu 14.04.1 LTS Kernel version 3.13.11' do
60
+ ret = Specinfra::HostInventory::Cpu.new(host_inventory).parse(str)
61
+ example do
62
+ expect(ret["0"]).to include(
63
+ "vendor_id" => "GenuineIntel",
64
+ "cpu_family" => "6",
65
+ "model" => "60",
66
+ "model_name" => "Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz",
67
+ "stepping" => "3",
68
+ "microcode" => "0x19",
69
+ "cpu_mhz" => "3132.076",
70
+ "cache_size" => "6144KB",
71
+ "physical_id" => "0",
72
+ "siblings" => "2",
73
+ "core_id" => "0",
74
+ "cpu_cores" => "2",
75
+ "apicid" => "0",
76
+ "initial_apicid" => "0",
77
+ "fpu" => "yes",
78
+ "fpu_exception" => "yes",
79
+ "cpuid_level" => "5",
80
+ "wp" => "yes",
81
+ "flags" => ["fpu", "vme", "de", "pse"],
82
+ "bogomips" => "6264.15",
83
+ "clflush_size" => "64",
84
+ "cache_alignment" => "64",
85
+ "address_sizes" => "39 bits physical, 48 bits virtual",
86
+ "power_management" => ""
87
+ )
88
+ end
89
+
90
+ example do
91
+ expect(ret["1"]).to include(
92
+ "vendor_id" => "GenuineIntel",
93
+ "cpu_family" => "6",
94
+ "model" => "60",
95
+ "model_name" => "Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz",
96
+ "stepping" => "3",
97
+ "microcode" => "0x19",
98
+ "cpu_mhz" => "3132.076",
99
+ "cache_size" => "6144KB",
100
+ "physical_id" => "0",
101
+ "siblings" => "2",
102
+ "core_id" => "1",
103
+ "cpu_cores" => "2",
104
+ "apicid" => "1",
105
+ "initial_apicid" => "1",
106
+ "fpu" => "yes",
107
+ "fpu_exception" => "yes",
108
+ "cpuid_level" => "5",
109
+ "wp" => "yes",
110
+ "flags" => ["fpu", "vme", "de"],
111
+ "bogomips" => "6264.15",
112
+ "clflush_size" => "64",
113
+ "cache_alignment" => "64",
114
+ "address_sizes" => "39 bits physical, 48 bits virtual",
115
+ "power_management" => ""
116
+ )
117
+ end
118
+
119
+ example do
120
+ expect(ret["total"]).to eq "2"
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ ## Output from 'df -P'
4
+ str = <<-EOH
5
+ Filesystem 1024-blocks Used Available Capacity Mounted on
6
+ /dev/mapper/vg_idefix-lv_root 51475068 8840540 40013088 19% /
7
+ tmpfs 509696 872 508824 1% /dev/shm
8
+ /dev/sdb3 487652 124828 337224 28% /boot
9
+ /dev/mapper/vg_idefix-lv_home 20857444 17905852 1885404 91% /home
10
+ EOH
11
+
12
+ describe Specinfra::HostInventory::Filesystem do
13
+ let(:host_inventory) { nil }
14
+ describe 'Example of CentOS 6.6 Kernel version 2.6.32-504.23.4.el6.i686' do
15
+ ret = Specinfra::HostInventory::Filesystem.new(host_inventory).parse(str)
16
+ example "/dev/mapper/vg_idefix-lv_home" do
17
+ expect(ret["/dev/mapper/vg_idefix-lv_home"]).to include(
18
+ "kb_used" => "17905852",
19
+ "kb_size" => "20857444",
20
+ "kb_available" => "1885404",
21
+ "mount" => "/home",
22
+ "percent_used" => "91%"
23
+ )
24
+ end
25
+ example "/dev/mapper/vg_idefix-lv_root" do
26
+ expect(ret["/dev/mapper/vg_idefix-lv_root"]).to include(
27
+ "kb_used" => "8840540",
28
+ "kb_size" => "51475068",
29
+ "kb_available" => "40013088",
30
+ "mount" => "/",
31
+ "percent_used" => "19%"
32
+ )
33
+ end
34
+ example "/dev/sdb3" do
35
+ expect(ret["/dev/sdb3"]).to include(
36
+ "kb_used" => "124828",
37
+ "kb_size" => "487652",
38
+ "kb_available" => "337224",
39
+ "mount" => "/boot",
40
+ "percent_used" => "28%"
41
+ )
42
+ end
43
+ example "tmpfs" do
44
+ expect(ret["tmpfs"]).to include(
45
+ "kb_used" => "872",
46
+ "kb_size" => "509696",
47
+ "kb_available" => "508824",
48
+ "mount" => "/dev/shm",
49
+ "percent_used" => "1%"
50
+ )
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe Specinfra::HostInventory::Kernel do
4
+ describe 'Example of CentOS 6.6 Kernel version 2.6.32-504.30.3.el6.x86_64' do
5
+ str = 'Linux 2.6.32-504.30.3.el6.x86_64'
6
+
7
+ let(:host_inventory) { nil }
8
+ ret = Specinfra::HostInventory::Kernel.new(host_inventory).parse_uname(str)
9
+ example "name" do
10
+ expect(ret["name"]).to eq("Linux")
11
+ end
12
+ example "release" do
13
+ expect(ret["release"]).to eq("2.6.32-504.30.3.el6.x86_64")
14
+ end
15
+ example "version" do
16
+ expect(ret["version"]).to eq("2.6.32")
17
+ end
18
+ example "major" do
19
+ expect(ret["version_major"]).to eq("2.6")
20
+ end
21
+ end
22
+
23
+ describe 'Example of unparseable output' do
24
+ str = 'unparseable output'
25
+
26
+ let(:host_inventory) { nil }
27
+ ret = Specinfra::HostInventory::Kernel.new(host_inventory).parse_uname(str)
28
+
29
+ example 'is nil' do
30
+ expect(ret).to be(nil)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,145 @@
1
+ require 'spec_helper'
2
+
3
+ str = <<-EOH
4
+ MemTotal: 1019392 kB
5
+ MemFree: 88248 kB
6
+ Buffers: 26016 kB
7
+ Cached: 312856 kB
8
+ SwapCached: 87708 kB
9
+ Active: 396664 kB
10
+ Inactive: 444580 kB
11
+ Active(anon): 242816 kB
12
+ Inactive(anon): 308412 kB
13
+ Active(file): 153848 kB
14
+ Inactive(file): 136168 kB
15
+ Unevictable: 16 kB
16
+ Mlocked: 16 kB
17
+ HighTotal: 131912 kB
18
+ HighFree: 312 kB
19
+ LowTotal: 887480 kB
20
+ LowFree: 87936 kB
21
+ SwapTotal: 2064380 kB
22
+ SwapFree: 1760500 kB
23
+ Dirty: 0 kB
24
+ Writeback: 0 kB
25
+ AnonPages: 473868 kB
26
+ Mapped: 68192 kB
27
+ Shmem: 48856 kB
28
+ Slab: 57696 kB
29
+ SReclaimable: 14152 kB
30
+ SUnreclaim: 43544 kB
31
+ KernelStack: 3240 kB
32
+ PageTables: 12144 kB
33
+ NFS_Unstable: 0 kB
34
+ Bounce: 0 kB
35
+ WritebackTmp: 0 kB
36
+ CommitLimit: 2574076 kB
37
+ Committed_AS: 2517964 kB
38
+ VmallocTotal: 122880 kB
39
+ VmallocUsed: 11204 kB
40
+ VmallocChunk: 95432 kB
41
+ AnonHugePages: 92160 kB
42
+ HugePages_Total: 189440
43
+ HugePages_Free: 189440
44
+ HugePages_Rsvd: 0
45
+ HugePages_Surp: 0
46
+ Hugepagesize: 2048 kB
47
+ DirectMap4k: 907256 kB
48
+ DirectMap2M: 0 kB
49
+ EOH
50
+
51
+
52
+ describe Specinfra::HostInventory::Memory do
53
+ let(:host_inventory) { nil }
54
+ describe 'Example of CentOS 6.6 Kernel version 2.6.32-504.23.4.el6.i686' do
55
+ ret = Specinfra::HostInventory::Memory.new(host_inventory).parse(str)
56
+ example "active" do
57
+ expect(ret["active"]).to include("396664kB")
58
+ end
59
+ example "anon_pages" do
60
+ expect(ret["anon_pages"]).to include("473868kB")
61
+ end
62
+ example "bounce" do
63
+ expect(ret["bounce"]).to include("0kB")
64
+ end
65
+ example "buffers" do
66
+ expect(ret["buffers"]).to include("26016kB")
67
+ end
68
+ example "cached" do
69
+ expect(ret["cached"]).to include("312856kB")
70
+ end
71
+ example "commited_as" do
72
+ expect(ret["committed_as"]).to include("2517964kB")
73
+ end
74
+ example "commit_limit" do
75
+ expect(ret["commit_limit"]).to include("2574076kB")
76
+ end
77
+ example "dirty" do
78
+ expect(ret["dirty"]).to include("0kB")
79
+ end
80
+ example "free" do
81
+ expect(ret["free"]).to include("88248kB")
82
+ end
83
+ example "inactive" do
84
+ expect(ret["inactive"]).to include("444580kB")
85
+ end
86
+ example "mapped" do
87
+ expect(ret["mapped"]).to include("68192kB")
88
+ end
89
+ example "nfs_unstable" do
90
+ expect(ret["nfs_unstable"]).to include("0kB")
91
+ end
92
+ example "page_tables" do
93
+ expect(ret["page_tables"]).to include("12144kB")
94
+ end
95
+ example "slab" do
96
+ expect(ret["slab"]).to include("57696kB")
97
+ end
98
+ example "slab_reclaimable" do
99
+ expect(ret["slab_reclaimable"]).to include("14152kB")
100
+ end
101
+ example "slab_unreclaim" do
102
+ expect(ret["slab_unreclaim"]).to include("43544kB")
103
+ end
104
+ example "swap" do
105
+ expect(ret["swap"]).to include(
106
+ "free" => "1760500kB",
107
+ "total" => "2064380kB",
108
+ "cached" => "87708kB"
109
+ )
110
+ end
111
+ example "total" do
112
+ expect(ret["total"]).to include("1019392kB")
113
+ end
114
+ example "vmalloc_chunk" do
115
+ expect(ret["vmalloc_chunk"]).to include("95432kB")
116
+ end
117
+ example "vmalloc_total" do
118
+ expect(ret["vmalloc_total"]).to include("122880kB")
119
+ end
120
+ example "vmalloc_used" do
121
+ expect(ret["vmalloc_used"]).to include("11204kB")
122
+ end
123
+ example "writeback" do
124
+ expect(ret["writeback"]).to include("0kB")
125
+ end
126
+ example "annon_huge_pages" do
127
+ expect(ret["annon_huge_pages"]).to include("92160kB")
128
+ end
129
+ example "huge_pages_total" do
130
+ expect(ret["huge_pages_total"]).to include("189440")
131
+ end
132
+ example "huge_pages_free" do
133
+ expect(ret["huge_pages_free"]).to include("189440")
134
+ end
135
+ example "huge_pages_rsvd" do
136
+ expect(ret["huge_pages_rsvd"]).to include("0")
137
+ end
138
+ example "huge_pages_surp" do
139
+ expect(ret["huge_pages_surp"]).to include("0")
140
+ end
141
+ example "huge_page_size" do
142
+ expect(ret["huge_page_size"]).to include("2048kB")
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,134 @@
1
+ require 'spec_helper'
2
+
3
+ str = <<-EOH
4
+ # dmidecode 2.12
5
+ SMBIOS 2.4 present.
6
+ 10 structures occupying 326 bytes.
7
+ Table at 0x000F1EF0.
8
+
9
+ Handle 0x0000, DMI type 0, 24 bytes
10
+ BIOS Information
11
+ Vendor: Seabios
12
+ Version: 0.5.1
13
+ Release Date: 01/01/2011
14
+ Address: 0xE8000
15
+ Runtime Size: 96 kB
16
+ ROM Size: 64 kB
17
+ Characteristics:
18
+ BIOS characteristics not supported
19
+ Targeted content distribution is supported
20
+ BIOS Revision: 1.0
21
+
22
+ Handle 0x0100, DMI type 1, 27 bytes
23
+ System Information
24
+ Manufacturer: Red Hat
25
+ Product Name: KVM
26
+ Version: RHEL 7.0.0 PC (i440FX + PIIX, 1996)
27
+ Serial Number: Not Specified
28
+ UUID: 5E317344-67C8-42D1-BD62-8587C8532251
29
+ Wake-up Type: Power Switch
30
+ SKU Number: Not Specified
31
+ Family: Red Hat Enterprise Linux
32
+
33
+ Handle 0x0300, DMI type 3, 20 bytes
34
+ Chassis Information
35
+ Manufacturer: Bochs
36
+ Type: Other
37
+ Lock: Not Present
38
+ Version: Not Specified
39
+ Serial Number: Not Specified
40
+ Asset Tag: Not Specified
41
+ Boot-up State: Safe
42
+ Power Supply State: Safe
43
+ Thermal State: Safe
44
+ Security Status: Unknown
45
+ OEM Information: 0x00000000
46
+ Height: Unspecified
47
+ Number Of Power Cords: Unspecified
48
+
49
+ Handle 0x0401, DMI type 4, 32 bytes
50
+ Processor Information
51
+ Socket Designation: CPU 1
52
+ Type: Central Processor
53
+ Family: Other
54
+ Manufacturer: Bochs
55
+ ID: D3 06 00 00 FD FB 8B 07
56
+ Version: Not Specified
57
+ Voltage: Unknown
58
+ External Clock: Unknown
59
+ Max Speed: 2000 MHz
60
+ Current Speed: 2000 MHz
61
+ Status: Populated, Enabled
62
+ Upgrade: Other
63
+ L1 Cache Handle: Not Provided
64
+ L2 Cache Handle: Not Provided
65
+ L3 Cache Handle: Not Provided
66
+
67
+ Handle 0x1000, DMI type 16, 15 bytes
68
+ Physical Memory Array
69
+ Location: Other
70
+ Use: System Memory
71
+ Error Correction Type: Multi-bit ECC
72
+ Maximum Capacity: 512 MB
73
+ Error Information Handle: Not Provided
74
+ Number Of Devices: 1
75
+
76
+ Handle 0x1100, DMI type 17, 21 bytes
77
+ Memory Device
78
+ Array Handle: 0x1000
79
+ Error Information Handle: 0x0000
80
+ Total Width: 64 bits
81
+ Data Width: 64 bits
82
+ Size: 512 MB
83
+ Form Factor: DIMM
84
+ Set: None
85
+ Locator: DIMM 0
86
+ Bank Locator: Not Specified
87
+ Type: RAM
88
+ Type Detail: None
89
+
90
+ Handle 0x1300, DMI type 19, 15 bytes
91
+ Memory Array Mapped Address
92
+ Starting Address: 0x00000000000
93
+ Ending Address: 0x0001FFFFFFF
94
+ Range Size: 512 MB
95
+ Physical Array Handle: 0x1000
96
+ Partition Width: 1
97
+
98
+ Handle 0x1400, DMI type 20, 19 bytes
99
+ Memory Device Mapped Address
100
+ Starting Address: 0x00000000000
101
+ Ending Address: 0x0001FFFFFFF
102
+ Range Size: 512 MB
103
+ Physical Device Handle: 0x1100
104
+ Memory Array Mapped Address Handle: 0x1300
105
+ Partition Row Position: 1
106
+
107
+ Handle 0x2000, DMI type 32, 11 bytes
108
+ System Boot Information
109
+ Status: No errors detected
110
+
111
+ Handle 0x7F00, DMI type 127, 4 bytes
112
+ End Of Table
113
+ EOH
114
+
115
+ describe Specinfra::HostInventory::Virtualization do
116
+ virt = Specinfra::HostInventory::Virtualization.new(host_inventory)
117
+ let(:host_inventory) { nil }
118
+ it 'Docker Image should return :system => "docker"' do
119
+ allow(virt.backend).to receive(:run_command).with('ls /.dockerinit') do
120
+ CommandResult.new(:stdout => '/.dockerinit', :exit_status => 0)
121
+ end
122
+ # although there is most likely no dmidecode on a docker image
123
+ # this is to make sure the code is only reporting docker
124
+ allow(virt.backend).to receive(:run_command).with('ls /usr/sbin/dmidecode') do
125
+ CommandResult.new(:stdout => '/usr/sbin/dmidecode', :exit_status => 0)
126
+ end
127
+ allow(virt.backend).to receive(:run_command).with('dmidecode') do
128
+ CommandResult.new(:stdout => str, :exit_status => 0)
129
+ end
130
+ expect(virt.get).to include(
131
+ :system => 'docker'
132
+ )
133
+ end
134
+ end