inspec 4.18.51 → 4.18.85

Sign up to get free protection for your applications and to get access to all the features.
Files changed (371) hide show
  1. checksums.yaml +4 -4
  2. data/inspec.gemspec +15 -37
  3. data/lib/resource_support/aws/aws_resource_mixin.rb +1 -1
  4. metadata +22 -709
  5. data/Gemfile +0 -61
  6. data/LICENSE +0 -14
  7. data/README.md +0 -474
  8. data/etc/deprecations.json +0 -125
  9. data/etc/plugin_filters.json +0 -45
  10. data/lib/bundles/README.md +0 -3
  11. data/lib/bundles/inspec-compliance/api.rb +0 -7
  12. data/lib/bundles/inspec-compliance/configuration.rb +0 -7
  13. data/lib/bundles/inspec-compliance/http.rb +0 -7
  14. data/lib/bundles/inspec-compliance/support.rb +0 -7
  15. data/lib/bundles/inspec-compliance/target.rb +0 -7
  16. data/lib/bundles/inspec-supermarket.rb +0 -9
  17. data/lib/bundles/inspec-supermarket/README.md +0 -45
  18. data/lib/bundles/inspec-supermarket/api.rb +0 -87
  19. data/lib/bundles/inspec-supermarket/cli.rb +0 -71
  20. data/lib/bundles/inspec-supermarket/target.rb +0 -31
  21. data/lib/inspec.rb +0 -30
  22. data/lib/inspec/archive/tar.rb +0 -25
  23. data/lib/inspec/archive/zip.rb +0 -15
  24. data/lib/inspec/backend.rb +0 -101
  25. data/lib/inspec/base_cli.rb +0 -318
  26. data/lib/inspec/cached_fetcher.rb +0 -65
  27. data/lib/inspec/cli.rb +0 -469
  28. data/lib/inspec/completions/bash.sh.erb +0 -45
  29. data/lib/inspec/completions/fish.sh.erb +0 -34
  30. data/lib/inspec/completions/zsh.sh.erb +0 -61
  31. data/lib/inspec/config.rb +0 -511
  32. data/lib/inspec/control_eval_context.rb +0 -248
  33. data/lib/inspec/dependencies/cache.rb +0 -74
  34. data/lib/inspec/dependencies/dependency_set.rb +0 -93
  35. data/lib/inspec/dependencies/lockfile.rb +0 -115
  36. data/lib/inspec/dependencies/requirement.rb +0 -135
  37. data/lib/inspec/dependencies/resolver.rb +0 -86
  38. data/lib/inspec/describe_base.rb +0 -53
  39. data/lib/inspec/dist.rb +0 -20
  40. data/lib/inspec/dsl.rb +0 -115
  41. data/lib/inspec/dsl_shared.rb +0 -32
  42. data/lib/inspec/env_printer.rb +0 -156
  43. data/lib/inspec/errors.rb +0 -18
  44. data/lib/inspec/exceptions.rb +0 -11
  45. data/lib/inspec/expect.rb +0 -42
  46. data/lib/inspec/fetcher.rb +0 -48
  47. data/lib/inspec/fetcher/git.rb +0 -211
  48. data/lib/inspec/fetcher/local.rb +0 -116
  49. data/lib/inspec/fetcher/mock.rb +0 -34
  50. data/lib/inspec/fetcher/url.rb +0 -281
  51. data/lib/inspec/file_provider.rb +0 -318
  52. data/lib/inspec/formatters.rb +0 -3
  53. data/lib/inspec/formatters/base.rb +0 -269
  54. data/lib/inspec/formatters/json_rspec.rb +0 -20
  55. data/lib/inspec/formatters/show_progress.rb +0 -12
  56. data/lib/inspec/globals.rb +0 -9
  57. data/lib/inspec/impact.rb +0 -36
  58. data/lib/inspec/input.rb +0 -421
  59. data/lib/inspec/input_dsl_helpers.rb +0 -26
  60. data/lib/inspec/input_registry.rb +0 -315
  61. data/lib/inspec/library_eval_context.rb +0 -55
  62. data/lib/inspec/log.rb +0 -7
  63. data/lib/inspec/metadata.rb +0 -253
  64. data/lib/inspec/method_source.rb +0 -20
  65. data/lib/inspec/objects.rb +0 -14
  66. data/lib/inspec/objects/control.rb +0 -85
  67. data/lib/inspec/objects/describe.rb +0 -106
  68. data/lib/inspec/objects/each_loop.rb +0 -41
  69. data/lib/inspec/objects/input.rb +0 -49
  70. data/lib/inspec/objects/list.rb +0 -15
  71. data/lib/inspec/objects/or_test.rb +0 -45
  72. data/lib/inspec/objects/ruby_helper.rb +0 -13
  73. data/lib/inspec/objects/tag.rb +0 -32
  74. data/lib/inspec/objects/test.rb +0 -94
  75. data/lib/inspec/objects/value.rb +0 -32
  76. data/lib/inspec/plugin/v1.rb +0 -2
  77. data/lib/inspec/plugin/v1/plugin_types/cli.rb +0 -22
  78. data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +0 -83
  79. data/lib/inspec/plugin/v1/plugin_types/resource.rb +0 -176
  80. data/lib/inspec/plugin/v1/plugin_types/secret.rb +0 -11
  81. data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +0 -36
  82. data/lib/inspec/plugin/v1/plugins.rb +0 -59
  83. data/lib/inspec/plugin/v1/registry.rb +0 -90
  84. data/lib/inspec/plugin/v2.rb +0 -46
  85. data/lib/inspec/plugin/v2/activator.rb +0 -40
  86. data/lib/inspec/plugin/v2/config_file.rb +0 -151
  87. data/lib/inspec/plugin/v2/filter.rb +0 -96
  88. data/lib/inspec/plugin/v2/installer.rb +0 -512
  89. data/lib/inspec/plugin/v2/loader.rb +0 -321
  90. data/lib/inspec/plugin/v2/plugin_base.rb +0 -112
  91. data/lib/inspec/plugin/v2/plugin_types/cli.rb +0 -49
  92. data/lib/inspec/plugin/v2/plugin_types/dsl.rb +0 -11
  93. data/lib/inspec/plugin/v2/plugin_types/input.rb +0 -34
  94. data/lib/inspec/plugin/v2/plugin_types/mock.rb +0 -12
  95. data/lib/inspec/plugin/v2/registry.rb +0 -98
  96. data/lib/inspec/plugin/v2/status.rb +0 -29
  97. data/lib/inspec/profile.rb +0 -658
  98. data/lib/inspec/profile_context.rb +0 -203
  99. data/lib/inspec/profile_vendor.rb +0 -84
  100. data/lib/inspec/reporters.rb +0 -73
  101. data/lib/inspec/reporters/automate.rb +0 -78
  102. data/lib/inspec/reporters/base.rb +0 -25
  103. data/lib/inspec/reporters/cli.rb +0 -370
  104. data/lib/inspec/reporters/json.rb +0 -113
  105. data/lib/inspec/reporters/json_automate.rb +0 -80
  106. data/lib/inspec/reporters/json_min.rb +0 -48
  107. data/lib/inspec/reporters/junit.rb +0 -77
  108. data/lib/inspec/reporters/yaml.rb +0 -20
  109. data/lib/inspec/require_loader.rb +0 -29
  110. data/lib/inspec/resource.rb +0 -114
  111. data/lib/inspec/resources.rb +0 -130
  112. data/lib/inspec/resources/aide_conf.rb +0 -153
  113. data/lib/inspec/resources/apache.rb +0 -47
  114. data/lib/inspec/resources/apache_conf.rb +0 -156
  115. data/lib/inspec/resources/apt.rb +0 -151
  116. data/lib/inspec/resources/audit_policy.rb +0 -64
  117. data/lib/inspec/resources/auditd.rb +0 -251
  118. data/lib/inspec/resources/auditd_conf.rb +0 -45
  119. data/lib/inspec/resources/bash.rb +0 -33
  120. data/lib/inspec/resources/bond.rb +0 -70
  121. data/lib/inspec/resources/bridge.rb +0 -125
  122. data/lib/inspec/resources/bsd_service.rb +0 -2
  123. data/lib/inspec/resources/chocolatey_package.rb +0 -82
  124. data/lib/inspec/resources/command.rb +0 -91
  125. data/lib/inspec/resources/cpan.rb +0 -58
  126. data/lib/inspec/resources/cran.rb +0 -64
  127. data/lib/inspec/resources/crontab.rb +0 -173
  128. data/lib/inspec/resources/csv.rb +0 -56
  129. data/lib/inspec/resources/dh_params.rb +0 -83
  130. data/lib/inspec/resources/directory.rb +0 -23
  131. data/lib/inspec/resources/docker.rb +0 -274
  132. data/lib/inspec/resources/docker_container.rb +0 -91
  133. data/lib/inspec/resources/docker_image.rb +0 -84
  134. data/lib/inspec/resources/docker_object.rb +0 -52
  135. data/lib/inspec/resources/docker_plugin.rb +0 -64
  136. data/lib/inspec/resources/docker_service.rb +0 -91
  137. data/lib/inspec/resources/elasticsearch.rb +0 -165
  138. data/lib/inspec/resources/etc_fstab.rb +0 -96
  139. data/lib/inspec/resources/etc_group.rb +0 -157
  140. data/lib/inspec/resources/etc_hosts.rb +0 -68
  141. data/lib/inspec/resources/etc_hosts_allow.rb +0 -2
  142. data/lib/inspec/resources/etc_hosts_allow_deny.rb +0 -114
  143. data/lib/inspec/resources/etc_hosts_deny.rb +0 -2
  144. data/lib/inspec/resources/file.rb +0 -339
  145. data/lib/inspec/resources/filesystem.rb +0 -139
  146. data/lib/inspec/resources/firewalld.rb +0 -148
  147. data/lib/inspec/resources/gem.rb +0 -80
  148. data/lib/inspec/resources/group.rb +0 -2
  149. data/lib/inspec/resources/groups.rb +0 -241
  150. data/lib/inspec/resources/grub_conf.rb +0 -230
  151. data/lib/inspec/resources/host.rb +0 -310
  152. data/lib/inspec/resources/http.rb +0 -275
  153. data/lib/inspec/resources/iis_app.rb +0 -101
  154. data/lib/inspec/resources/iis_app_pool.rb +0 -127
  155. data/lib/inspec/resources/iis_site.rb +0 -148
  156. data/lib/inspec/resources/iis_website.rb +0 -2
  157. data/lib/inspec/resources/inetd_conf.rb +0 -53
  158. data/lib/inspec/resources/ini.rb +0 -28
  159. data/lib/inspec/resources/interface.rb +0 -204
  160. data/lib/inspec/resources/ip6tables.rb +0 -79
  161. data/lib/inspec/resources/iptables.rb +0 -80
  162. data/lib/inspec/resources/json.rb +0 -116
  163. data/lib/inspec/resources/kernel_module.rb +0 -106
  164. data/lib/inspec/resources/kernel_parameter.rb +0 -54
  165. data/lib/inspec/resources/key_rsa.rb +0 -66
  166. data/lib/inspec/resources/ksh.rb +0 -33
  167. data/lib/inspec/resources/launchd_service.rb +0 -2
  168. data/lib/inspec/resources/limits_conf.rb +0 -45
  169. data/lib/inspec/resources/linux_kernel_parameter.rb +0 -2
  170. data/lib/inspec/resources/login_defs.rb +0 -56
  171. data/lib/inspec/resources/mount.rb +0 -88
  172. data/lib/inspec/resources/mssql_session.rb +0 -117
  173. data/lib/inspec/resources/mysql.rb +0 -81
  174. data/lib/inspec/resources/mysql_conf.rb +0 -128
  175. data/lib/inspec/resources/mysql_session.rb +0 -88
  176. data/lib/inspec/resources/nginx.rb +0 -96
  177. data/lib/inspec/resources/nginx_conf.rb +0 -232
  178. data/lib/inspec/resources/noop.rb +0 -9
  179. data/lib/inspec/resources/npm.rb +0 -68
  180. data/lib/inspec/resources/ntp_conf.rb +0 -51
  181. data/lib/inspec/resources/oneget.rb +0 -71
  182. data/lib/inspec/resources/oracledb_session.rb +0 -149
  183. data/lib/inspec/resources/os.rb +0 -34
  184. data/lib/inspec/resources/os_env.rb +0 -86
  185. data/lib/inspec/resources/package.rb +0 -391
  186. data/lib/inspec/resources/packages.rb +0 -111
  187. data/lib/inspec/resources/parse_config.rb +0 -112
  188. data/lib/inspec/resources/parse_config_file.rb +0 -2
  189. data/lib/inspec/resources/passwd.rb +0 -73
  190. data/lib/inspec/resources/pip.rb +0 -132
  191. data/lib/inspec/resources/platform.rb +0 -112
  192. data/lib/inspec/resources/port.rb +0 -791
  193. data/lib/inspec/resources/postfix_conf.rb +0 -35
  194. data/lib/inspec/resources/postgres.rb +0 -152
  195. data/lib/inspec/resources/postgres_conf.rb +0 -116
  196. data/lib/inspec/resources/postgres_hba_conf.rb +0 -86
  197. data/lib/inspec/resources/postgres_ident_conf.rb +0 -75
  198. data/lib/inspec/resources/postgres_session.rb +0 -70
  199. data/lib/inspec/resources/powershell.rb +0 -67
  200. data/lib/inspec/resources/ppa.rb +0 -2
  201. data/lib/inspec/resources/processes.rb +0 -219
  202. data/lib/inspec/resources/rabbitmq_conf.rb +0 -2
  203. data/lib/inspec/resources/rabbitmq_config.rb +0 -52
  204. data/lib/inspec/resources/registry_key.rb +0 -296
  205. data/lib/inspec/resources/runit_service.rb +0 -2
  206. data/lib/inspec/resources/script.rb +0 -1
  207. data/lib/inspec/resources/security_identifier.rb +0 -91
  208. data/lib/inspec/resources/security_policy.rb +0 -182
  209. data/lib/inspec/resources/service.rb +0 -820
  210. data/lib/inspec/resources/shadow.rb +0 -150
  211. data/lib/inspec/resources/ssh_config.rb +0 -98
  212. data/lib/inspec/resources/sshd_config.rb +0 -2
  213. data/lib/inspec/resources/ssl.rb +0 -99
  214. data/lib/inspec/resources/sys_info.rb +0 -119
  215. data/lib/inspec/resources/systemd_service.rb +0 -2
  216. data/lib/inspec/resources/sysv_service.rb +0 -2
  217. data/lib/inspec/resources/toml.rb +0 -30
  218. data/lib/inspec/resources/upstart_service.rb +0 -2
  219. data/lib/inspec/resources/user.rb +0 -1
  220. data/lib/inspec/resources/users.rb +0 -742
  221. data/lib/inspec/resources/vbscript.rb +0 -67
  222. data/lib/inspec/resources/virtualization.rb +0 -255
  223. data/lib/inspec/resources/windows_feature.rb +0 -126
  224. data/lib/inspec/resources/windows_hotfix.rb +0 -37
  225. data/lib/inspec/resources/windows_registry_key.rb +0 -2
  226. data/lib/inspec/resources/windows_task.rb +0 -112
  227. data/lib/inspec/resources/wmi.rb +0 -109
  228. data/lib/inspec/resources/x509_certificate.rb +0 -143
  229. data/lib/inspec/resources/xinetd_conf.rb +0 -103
  230. data/lib/inspec/resources/xml.rb +0 -48
  231. data/lib/inspec/resources/yaml.rb +0 -42
  232. data/lib/inspec/resources/yum.rb +0 -162
  233. data/lib/inspec/resources/zfs_dataset.rb +0 -62
  234. data/lib/inspec/resources/zfs_pool.rb +0 -50
  235. data/lib/inspec/rspec_extensions.rb +0 -116
  236. data/lib/inspec/rule.rb +0 -389
  237. data/lib/inspec/runner.rb +0 -333
  238. data/lib/inspec/runner_mock.rb +0 -37
  239. data/lib/inspec/runner_rspec.rb +0 -184
  240. data/lib/inspec/runtime_profile.rb +0 -23
  241. data/lib/inspec/schema.rb +0 -245
  242. data/lib/inspec/secrets.rb +0 -15
  243. data/lib/inspec/secrets/yaml.rb +0 -29
  244. data/lib/inspec/shell.rb +0 -211
  245. data/lib/inspec/shell_detector.rb +0 -89
  246. data/lib/inspec/source_reader.rb +0 -26
  247. data/lib/inspec/ui.rb +0 -213
  248. data/lib/inspec/ui_table_helper.rb +0 -12
  249. data/lib/inspec/utils/command_wrapper.rb +0 -23
  250. data/lib/inspec/utils/convert.rb +0 -8
  251. data/lib/inspec/utils/database_helpers.rb +0 -75
  252. data/lib/inspec/utils/deprecation.rb +0 -6
  253. data/lib/inspec/utils/deprecation/config_file.rb +0 -109
  254. data/lib/inspec/utils/deprecation/deprecator.rb +0 -118
  255. data/lib/inspec/utils/deprecation/errors.rb +0 -14
  256. data/lib/inspec/utils/deprecation/global_method.rb +0 -9
  257. data/lib/inspec/utils/enumerable_delegation.rb +0 -7
  258. data/lib/inspec/utils/erlang_parser.rb +0 -190
  259. data/lib/inspec/utils/file_reader.rb +0 -24
  260. data/lib/inspec/utils/filter.rb +0 -461
  261. data/lib/inspec/utils/filter_array.rb +0 -25
  262. data/lib/inspec/utils/find_files.rb +0 -44
  263. data/lib/inspec/utils/hash.rb +0 -37
  264. data/lib/inspec/utils/json_log.rb +0 -15
  265. data/lib/inspec/utils/modulator.rb +0 -9
  266. data/lib/inspec/utils/nginx_parser.rb +0 -101
  267. data/lib/inspec/utils/object_traversal.rb +0 -47
  268. data/lib/inspec/utils/parser.rb +0 -277
  269. data/lib/inspec/utils/pkey_reader.rb +0 -17
  270. data/lib/inspec/utils/simpleconfig.rb +0 -121
  271. data/lib/inspec/utils/spdx.rb +0 -10
  272. data/lib/inspec/utils/spdx.txt +0 -383
  273. data/lib/inspec/utils/telemetry.rb +0 -3
  274. data/lib/inspec/utils/telemetry/collector.rb +0 -81
  275. data/lib/inspec/utils/telemetry/data_series.rb +0 -44
  276. data/lib/inspec/utils/telemetry/global_methods.rb +0 -22
  277. data/lib/inspec/version.rb +0 -3
  278. data/lib/matchers/matchers.rb +0 -341
  279. data/lib/plugins/README.md +0 -16
  280. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +0 -12
  281. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +0 -170
  282. data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +0 -116
  283. data/lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb +0 -50
  284. data/lib/plugins/inspec-compliance/README.md +0 -207
  285. data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +0 -12
  286. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +0 -362
  287. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +0 -198
  288. data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +0 -269
  289. data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +0 -103
  290. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +0 -117
  291. data/lib/plugins/inspec-compliance/lib/inspec-compliance/images/cc-token.png +0 -0
  292. data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +0 -34
  293. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +0 -146
  294. data/lib/plugins/inspec-compliance/test/functional/inspec_compliance_test.rb +0 -53
  295. data/lib/plugins/inspec-compliance/test/integration/default/cli.rb +0 -91
  296. data/lib/plugins/inspec-compliance/test/unit/api/login_test.rb +0 -190
  297. data/lib/plugins/inspec-compliance/test/unit/api_test.rb +0 -386
  298. data/lib/plugins/inspec-compliance/test/unit/target_test.rb +0 -155
  299. data/lib/plugins/inspec-habitat/Berksfile +0 -5
  300. data/lib/plugins/inspec-habitat/README.md +0 -150
  301. data/lib/plugins/inspec-habitat/kitchen.yml +0 -28
  302. data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +0 -11
  303. data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +0 -41
  304. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +0 -265
  305. data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +0 -6
  306. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/Berksfile +0 -2
  307. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/README.md +0 -3
  308. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/files/hab_setup.exp +0 -28
  309. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/metadata.rb +0 -9
  310. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/recipes/default.rb +0 -61
  311. data/lib/plugins/inspec-habitat/test/functional/inspec_habitat_test.rb +0 -34
  312. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/README.md +0 -3
  313. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/controls/inspec_habitat.rb +0 -40
  314. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/inspec.yml +0 -10
  315. data/lib/plugins/inspec-habitat/test/support/example_profile/README.md +0 -3
  316. data/lib/plugins/inspec-habitat/test/support/example_profile/controls/example.rb +0 -7
  317. data/lib/plugins/inspec-habitat/test/support/example_profile/inspec.yml +0 -10
  318. data/lib/plugins/inspec-habitat/test/unit/profile_test.rb +0 -242
  319. data/lib/plugins/inspec-init/README.md +0 -31
  320. data/lib/plugins/inspec-init/lib/inspec-init.rb +0 -12
  321. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +0 -15
  322. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +0 -243
  323. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +0 -47
  324. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +0 -97
  325. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -11
  326. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/LICENSE +0 -2
  327. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/README.md +0 -28
  328. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Rakefile +0 -40
  329. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -14
  330. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -62
  331. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -53
  332. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -8
  333. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/fixtures/README.md +0 -24
  334. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/README.md +0 -12
  335. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/inspec_plugin_template_test.rb +0 -110
  336. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/helper.rb +0 -24
  337. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/README.md +0 -17
  338. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb +0 -67
  339. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb +0 -51
  340. data/lib/plugins/inspec-init/templates/profiles/aws/libraries/.gitkeep +0 -0
  341. data/lib/plugins/inspec-init/templates/profiles/azure/libraries/.gitkeep +0 -0
  342. data/lib/plugins/inspec-init/templates/profiles/gcp/libraries/.gitkeep +0 -0
  343. data/lib/plugins/inspec-init/templates/profiles/os/README.md +0 -3
  344. data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +0 -18
  345. data/lib/plugins/inspec-init/templates/profiles/os/inspec.yml +0 -10
  346. data/lib/plugins/inspec-init/templates/profiles/os/libraries/.gitkeep +0 -0
  347. data/lib/plugins/inspec-init/test/functional/inspec_init_plugin_test.rb +0 -184
  348. data/lib/plugins/inspec-init/test/functional/inspec_init_profile_test.rb +0 -121
  349. data/lib/plugins/inspec-plugin-manager-cli/README.md +0 -6
  350. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +0 -17
  351. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +0 -518
  352. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +0 -12
  353. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/config_dirs/empty/.gitkeep +0 -0
  354. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/inspec-egg-white-omelette/lib/inspec-egg-white-omelette.rb +0 -2
  355. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/inspec-egg-white-omelette/lib/inspec-egg-white-omelette/.gitkeep +0 -0
  356. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/inspec-wrong-structure/.gitkeep +0 -0
  357. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name.rb +0 -1
  358. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name/.gitkeep +0 -0
  359. data/lib/plugins/inspec-plugin-manager-cli/test/functional/help_test.rb +0 -23
  360. data/lib/plugins/inspec-plugin-manager-cli/test/functional/helper.rb +0 -62
  361. data/lib/plugins/inspec-plugin-manager-cli/test/functional/install_test.rb +0 -368
  362. data/lib/plugins/inspec-plugin-manager-cli/test/functional/list_test.rb +0 -101
  363. data/lib/plugins/inspec-plugin-manager-cli/test/functional/search_test.rb +0 -129
  364. data/lib/plugins/inspec-plugin-manager-cli/test/functional/uninstall_test.rb +0 -63
  365. data/lib/plugins/inspec-plugin-manager-cli/test/functional/update_test.rb +0 -84
  366. data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +0 -77
  367. data/lib/plugins/inspec-plugin-manager-cli/test/unit/plugin_def_test.rb +0 -39
  368. data/lib/plugins/shared/core_plugin_test_helper.rb +0 -153
  369. data/lib/plugins/things-for-train-integration.rb +0 -14
  370. data/lib/source_readers/flat.rb +0 -36
  371. data/lib/source_readers/inspec.rb +0 -66
@@ -1,5 +0,0 @@
1
- source "https://supermarket.chef.io"
2
-
3
- group :integration do
4
- cookbook "inspec_habitat_fixture", path: "test/cookbooks/inspec_habitat_fixture/"
5
- end
@@ -1,150 +0,0 @@
1
- # InSpec Habitat Plugin
2
-
3
- ## Summary
4
-
5
- This plugin allows you to do the following:
6
- 1. Add Habitat configuration to a profile
7
- 2. Create/Upload a Habitat package from an InSpec profile
8
-
9
- Creating a [Habitat](https://www.habitat.sh/) package from an InSpec profile
10
- allows you to execute that profile as a service (via a Habitat Supervisor) on
11
- any Linux based platform.
12
-
13
- When running as a service, an InSpec report will be created in JSON format (by
14
- default at `/hab/svc/YOUR_SERVICE/logs/inspec_last_run.json`). Additionally, a
15
- log of the last run will be located at
16
- `/hab/svc/YOUR_SERVICE/logs/inspec_log.txt` and CLI output is viewable in
17
- the Supervisor logs by default. You can also configure this service to report
18
- to [Chef Automate](https://www.chef.io/automate/).
19
-
20
- See below for usage instructions.
21
-
22
- ## Plugin Usage
23
-
24
- ### Adding Habitat Configuration to an InSpec Profile
25
-
26
- Run the following command:
27
-
28
- ```
29
- inspec habitat profile setup PATH
30
- ```
31
-
32
- This will create the following files:
33
- - habitat/plan.sh (Provides build time instructions to Habitat)
34
- - habitat/default.toml (Used to configure the running Habitat service)
35
- - habitat/hooks/run (Shell script to execute this profile as a service)
36
- - habitat/config/inspec_exec_config.json (JSON for `inspec exec` CLI options)
37
-
38
- ### Creating a Habitat Package
39
-
40
- > This command requires Habitat to be installed and configured. For instructions
41
- on how to do that see [here](https://www.habitat.sh/docs/install-habitat/).
42
-
43
- Run the following command:
44
-
45
- ```
46
- inspec habitat profile create PATH
47
- ```
48
-
49
- This command will:
50
- - Create a Habitat artifact (`.hart` file).
51
-
52
- > NOTE: If you are fetching packages from Chef Automate see
53
- [below](#Integrating-with-Chef-Automate).
54
-
55
- ### Uploading a Habitat Package
56
-
57
- > This command requires Habitat to be installed and configured. For instructions
58
- on how to do that see [here](https://www.habitat.sh/docs/install-habitat/).
59
-
60
- Run the following command:
61
-
62
- ```
63
- inspec habitat profile upload PATH
64
- ```
65
-
66
- This command will:
67
- - Create a Habitat artifact (`.hart` file).
68
- - Upload the Habitat artifact to [bldr.habitat.sh](bldr.habitat.sh).
69
-
70
- > NOTE: If you are fetching packages from Chef Automate see
71
- [below](#Integrating-with-Chef-Automate).
72
-
73
- ## Habitat Package Usage
74
-
75
- > This command requires Habitat to be installed and configured. For instructions
76
- on how to do that see [here](https://www.habitat.sh/docs/install-habitat/).
77
-
78
- General usage instructions for using Habitat packages can be found
79
- [here](https://www.habitat.sh/docs/using-habitat/#Using-Habitat-Packages).
80
-
81
- Installing the package from a HART file:
82
-
83
- ```
84
- # See Habitat docs for more info. The below is for testing only.
85
- hab pkg install PATH_TO_CREATED_HART_FILE
86
- hab sup run YOUR_ORIGIN/inspec-profile-YOUR_PROFILE_NAME
87
- ```
88
-
89
- Installing the package from the Public Builder Depot:
90
-
91
- ```
92
- # See Habitat docs for more info. The below is for testing only.
93
- hab pkg install YOUR_ORIGIN/inspec-profile-YOUR_PROFILE_NAME
94
- hab sup run YOUR_ORIGIN/inspec-profile-YOUR_PROFILE_NAME
95
- ```
96
-
97
- ## Integrating with Chef Automate
98
-
99
- ### Fetching Profiles from Chef Automate During Build
100
-
101
- Fetching profiles from Chef Automate requires authentication.
102
-
103
- Run the following commands prior to creating/uploading your Habitat package:
104
-
105
- ```
106
- # Remove -k if you are not using a self-signed certificate
107
- inspec compliance login -k --user USER --token API_TOKEN https://AUTOMATE_FQDN
108
- export HAB_STUDIO_SECRET_COMPLIANCE_CREDS=$(cat ~/.inspec/compliance/config.json)
109
- ```
110
-
111
- ### Sending InSpec Reports to Chef Automate
112
-
113
- After running your Habitat package as a service you can configure it to report
114
- to Chef Automate via a
115
- [configuration update](https://www.habitat.sh/docs/using-habitat/#config-updates).
116
-
117
- For example, create a TOML file (config.toml) that matches the below:
118
-
119
- ```
120
- [automate]
121
- url = 'https://chef-automate.test'
122
- token = 'TOKEN'
123
- user = 'admin'
124
- ```
125
-
126
- Then apply it like so:
127
-
128
- ```
129
- # The '1' here is the config version (increment this with each change)
130
- hab config apply inspec-profile-PROFILE_NAME.default 1 /path/to/config.toml
131
- ```
132
-
133
- This will apply the configuration to all services in the service group. For
134
- more info on service groups see the
135
- [Habitat docs](https://www.habitat.sh/docs/using-habitat/#service-groups)
136
-
137
- ## Testing
138
-
139
- Lint, unit, and functional tests are ran from the root of the InSpec source:
140
-
141
- ```
142
- bundle exec rake test
143
- ```
144
-
145
- To execute the integration tests (Test Kitchen + Vagrant + VirtualBox) run the
146
- following from the directory containing this README.md:
147
-
148
- ```
149
- bundle exec kitchen test
150
- ```
@@ -1,28 +0,0 @@
1
- ---
2
- driver:
3
- name: vagrant
4
-
5
- provisioner:
6
- name: chef_solo
7
- sudo: true
8
-
9
- verifier:
10
- name: inspec
11
-
12
- platforms:
13
- - name: ubuntu-18.04
14
-
15
- lifecycle:
16
- # Build the InSpec gem so it is available to install during `kitchen converge`
17
- pre_create:
18
- - cd ../../../ && gem build inspec.gemspec
19
- - mv ../../../inspec-*.gem test/cookbooks/inspec_habitat_fixture/files/inspec-local.gem
20
- post_converge:
21
- - local: sleep 10 # Wait for Habitat to load/run hab service before `verify`
22
-
23
- suites:
24
- - name: default
25
- run_list:
26
- - recipe[inspec_habitat_fixture]
27
- attributes:
28
-
@@ -1,11 +0,0 @@
1
- module InspecPlugins
2
- module Habitat
3
- class Plugin < Inspec.plugin(2)
4
- plugin_name :'inspec-habitat'
5
- cli_command :habitat do
6
- require_relative "inspec-habitat/cli"
7
- InspecPlugins::Habitat::CLI
8
- end
9
- end
10
- end
11
- end
@@ -1,41 +0,0 @@
1
- require_relative "profile"
2
- require "inspec/dist"
3
-
4
- module InspecPlugins
5
- module Habitat
6
- class ProfileCLI < Inspec.plugin(2, :cli_command)
7
- # Override banner method to correct missing subcommand.
8
- # @see https://github.com/erikhuda/thor/issues/261
9
- def self.banner(command, _namespace = nil, _subcommand = false)
10
- "#{basename} habitat profile #{command.usage}"
11
- end
12
-
13
- desc "create PATH", "Create a Habitat artifact for the profile found at PATH"
14
- option :output_dir, type: :string, required: false,
15
- desc: "Output directory for the Habitat artifact. Default: current directory"
16
- def create(path = ".")
17
- InspecPlugins::Habitat::Profile.new(path, options).create
18
- end
19
-
20
- desc "setup PATH", "Configure the profile at PATH for Habitat, including a plan and hooks"
21
- def setup(path = ".")
22
- InspecPlugins::Habitat::Profile.new(path, options).setup
23
- end
24
-
25
- desc "upload PATH", "Create then upload a Habitat artifact for the profile found at PATH to the Habitat Builder Depot"
26
- def upload(path = ".")
27
- InspecPlugins::Habitat::Profile.new(path, options).upload
28
- end
29
- end
30
-
31
- class CLI < Inspec.plugin(2, :cli_command)
32
- include Inspec::Dist
33
-
34
- subcommand_desc "habitat SUBCOMMAND", "Manage Habitat with #{PRODUCT_NAME}"
35
- namespace "habitat"
36
-
37
- desc "profile", "Manage #{PRODUCT_NAME} profiles as Habitat artifacts"
38
- subcommand "profile", ProfileCLI
39
- end
40
- end
41
- end
@@ -1,265 +0,0 @@
1
- require "inspec/profile_vendor"
2
- require "mixlib/shellout"
3
- require "tomlrb"
4
- require "ostruct"
5
- require "inspec/dist"
6
-
7
- module InspecPlugins
8
- module Habitat
9
- class Profile
10
- include Inspec::Dist
11
-
12
- attr_reader :logger
13
- def initialize(path, options = {})
14
- @path = path
15
- @options = options
16
- @logger = Inspec::Log
17
- logger.level(options.fetch(:log_level, "info").to_sym)
18
- end
19
-
20
- def create
21
- logger.info("Creating a Habitat artifact for '#{@path}'...")
22
-
23
- # Need to create working directory first so `ensure` doesn't error
24
- working_dir = create_working_dir
25
-
26
- habitat_config = read_habitat_config
27
- verify_habitat_setup(habitat_config)
28
-
29
- output_dir = @options[:output_dir] || Dir.pwd
30
- unless File.directory?(output_dir)
31
- exit_with_error("Output directory #{output_dir} is not a directory " \
32
- "or does not exist.")
33
- end
34
-
35
- duplicated_profile = duplicate_profile(@path, working_dir)
36
- prepare_profile!(duplicated_profile)
37
-
38
- hart_file = build_hart(working_dir, habitat_config)
39
-
40
- logger.debug("Copying artifact to #{output_dir}...")
41
- destination = File.join(output_dir, File.basename(hart_file))
42
- FileUtils.cp(hart_file, destination)
43
-
44
- logger.info("Habitat artifact '#{@destination}' created.")
45
- destination
46
- rescue => e
47
- logger.debug(e.backtrace.join("\n"))
48
- exit_with_error("Unable to create Habitat artifact.")
49
- ensure
50
- if Dir.exist?(working_dir)
51
- logger.debug("Deleting working directory #{working_dir}")
52
- FileUtils.rm_rf(working_dir)
53
- end
54
- end
55
-
56
- def setup(profile = profile_from_path(@path))
57
- path = profile.root_path
58
- logger.debug("Setting up #{path} for Habitat...")
59
-
60
- plan_file = File.join(path, "habitat", "plan.sh")
61
- logger.info("Generating Habitat plan at #{plan_file}...")
62
- vars = {
63
- profile: profile,
64
- habitat_origin: read_habitat_config["origin"],
65
- }
66
- create_file_from_template(plan_file, "plan.sh.erb", vars)
67
- end
68
-
69
- def upload
70
- habitat_config = read_habitat_config
71
-
72
- if habitat_config["auth_token"].nil?
73
- exit_with_error(
74
- "Unable to determine Habitat auth token for uploading.",
75
- "Run `hab setup` or set the HAB_AUTH_TOKEN environment variable."
76
- )
77
- end
78
-
79
- # Run create command to create habitat artifact
80
- hart = create
81
-
82
- logger.info("Uploading Habitat artifact #{hart}...")
83
- upload_hart(hart, habitat_config)
84
- logger.info("Habitat artifact #{hart} uploaded.")
85
- rescue => e
86
- logger.debug(e.backtrace.join("\n"))
87
- exit_with_error("Unable to upload Habitat artifact.")
88
- end
89
-
90
- private
91
-
92
- def create_working_dir
93
- working_dir = Dir.mktmpdir
94
- logger.debug("Generated working directory #{working_dir}")
95
- working_dir
96
- end
97
-
98
- def duplicate_profile(path, working_dir)
99
- profile = profile_from_path(path)
100
- copy_profile_to_working_dir(profile, working_dir)
101
- profile_from_path(working_dir)
102
- end
103
-
104
- def prepare_profile!(profile)
105
- vendored_profile = vendor_profile_dependencies!(profile)
106
- verify_profile(vendored_profile)
107
- setup(vendored_profile)
108
- end
109
-
110
- def profile_from_path(path)
111
- Inspec::Profile.for_target(
112
- path,
113
- backend: Inspec::Backend.create(Inspec::Config.mock)
114
- )
115
- end
116
-
117
- def copy_profile_to_working_dir(profile, working_dir)
118
- logger.debug("Copying profile contents to the working directory...")
119
- profile.files.each do |profile_file|
120
- next if File.extname(profile_file) == ".hart"
121
-
122
- src = File.join(profile.root_path, profile_file)
123
- dst = File.join(working_dir, profile_file)
124
- if File.directory?(profile_file)
125
- logger.debug("Creating directory #{dst}")
126
- FileUtils.mkdir_p(dst)
127
- else
128
- logger.debug("Copying file #{src} to #{dst}")
129
- FileUtils.cp_r(src, dst)
130
- end
131
- end
132
- end
133
-
134
- def verify_profile(profile)
135
- logger.debug("Checking to see if the profile is valid...")
136
-
137
- unless profile.check[:summary][:valid]
138
- exit_with_error("Profile check failed. Please fix the profile " \
139
- "before creating a Habitat artifact.")
140
- end
141
-
142
- logger.debug("Profile is valid.")
143
- end
144
-
145
- def vendor_profile_dependencies!(profile)
146
- profile_vendor = Inspec::ProfileVendor.new(profile.root_path)
147
- if profile_vendor.lockfile.exist? && profile_vendor.cache_path.exist?
148
- logger.debug("Profile's dependencies are already vendored, skipping " \
149
- "vendor process.")
150
- else
151
- logger.debug("Vendoring the profile's dependencies...")
152
- profile_vendor.vendor!
153
-
154
- logger.debug("Ensuring all vendored content has read permissions...")
155
- profile_vendor.make_readable
156
- end
157
-
158
- # Return new profile since it has changed
159
- Inspec::Profile.for_target(
160
- profile.root_path,
161
- backend: Inspec::Backend.create(Inspec::Config.mock)
162
- )
163
- end
164
-
165
- def verify_habitat_setup(habitat_config)
166
- logger.debug("Checking to see if Habitat is installed...")
167
- cmd = Mixlib::ShellOut.new("hab --version")
168
- cmd.run_command
169
- if cmd.error?
170
- exit_with_error("Unable to run Habitat commands.", cmd.stderr)
171
- end
172
-
173
- if habitat_config["origin"].nil?
174
- exit_with_error(
175
- "Unable to determine Habitat origin name.",
176
- "Run `hab setup` or set the HAB_ORIGIN environment variable."
177
- )
178
- end
179
- end
180
-
181
- def create_file_from_template(file, template, vars = {})
182
- FileUtils.mkdir_p(File.dirname(file))
183
- template_path = File.join(__dir__, "../../templates/habitat", template)
184
- contents = ERB.new(File.read(template_path))
185
- .result(OpenStruct.new(vars).instance_eval { binding })
186
- File.write(file, contents)
187
- end
188
-
189
- def build_hart(working_dir, habitat_config)
190
- logger.debug("Building our Habitat artifact...")
191
-
192
- env = {
193
- "TERM" => "vt100",
194
- "HAB_ORIGIN" => habitat_config["origin"],
195
- "HAB_NONINTERACTIVE" => "true",
196
- }
197
-
198
- env["RUST_LOG"] = "debug" if logger.level == :debug
199
-
200
- # TODO: Would love to use Mixlib::ShellOut here, but it doesn't
201
- # seem to preserve the STDIN tty, and docker gets angry.
202
- Dir.chdir(working_dir) do
203
- unless system(env, "hab pkg build .")
204
- exit_with_error("Unable to build the Habitat artifact.")
205
- end
206
- end
207
-
208
- hart_files = Dir.glob(File.join(working_dir, "results", "*.hart"))
209
-
210
- if hart_files.length > 1
211
- exit_with_error("More than one Habitat artifact was created which " \
212
- "was not expected.")
213
- elsif hart_files.empty?
214
- exit_with_error("No Habitat artifact was created.")
215
- end
216
-
217
- hart_files.first
218
- end
219
-
220
- def upload_hart(hart_file, habitat_config)
221
- logger.debug("Uploading '#{hart_file}' to the Habitat Builder Depot...")
222
-
223
- config = habitat_config
224
-
225
- env = {
226
- "HAB_AUTH_TOKEN" => config["auth_token"],
227
- "HAB_NONINTERACTIVE" => "true",
228
- "HAB_ORIGIN" => config["origin"],
229
- "TERM" => "vt100",
230
- }
231
-
232
- env["HAB_DEPOT_URL"] = ENV["HAB_DEPOT_URL"] if ENV["HAB_DEPOT_URL"]
233
-
234
- cmd = Mixlib::ShellOut.new("hab pkg upload #{hart_file}", env: env)
235
- cmd.run_command
236
- if cmd.error?
237
- exit_with_error(
238
- "Unable to upload Habitat artifact to the Depot.",
239
- cmd.stdout,
240
- cmd.stderr
241
- )
242
- end
243
-
244
- logger.debug("Upload complete!")
245
- end
246
-
247
- def read_habitat_config
248
- cli_toml = File.join(ENV["HOME"], ".hab", "etc", "cli.toml")
249
- cli_toml = "/hab/etc/cli.toml" unless File.exist?(cli_toml)
250
- cli_config = File.exist?(cli_toml) ? Tomlrb.load_file(cli_toml) : {}
251
- cli_config["origin"] ||= ENV["HAB_ORIGIN"]
252
- cli_config["auth_token"] ||= ENV["HAB_AUTH_TOKEN"]
253
- cli_config
254
- end
255
-
256
- def exit_with_error(*errors)
257
- errors.each do |error_msg|
258
- logger.error(error_msg)
259
- end
260
-
261
- exit 1
262
- end
263
- end
264
- end
265
- end