specinfra-cisco 2.40.2

Sign up to get free protection for your applications and to get access to all the features.
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