inspec 4.3.2 → 4.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +36 -38
  3. data/README.md +37 -21
  4. data/etc/deprecations.json +10 -0
  5. data/etc/plugin_filters.json +8 -0
  6. data/inspec.gemspec +38 -39
  7. data/lib/bundles/inspec-compliance/api.rb +1 -1
  8. data/lib/bundles/inspec-compliance/configuration.rb +1 -1
  9. data/lib/bundles/inspec-compliance/http.rb +1 -1
  10. data/lib/bundles/inspec-compliance/support.rb +1 -1
  11. data/lib/bundles/inspec-compliance/target.rb +1 -1
  12. data/lib/bundles/inspec-supermarket.rb +3 -7
  13. data/lib/bundles/inspec-supermarket/api.rb +10 -13
  14. data/lib/bundles/inspec-supermarket/cli.rb +12 -15
  15. data/lib/bundles/inspec-supermarket/target.rb +7 -11
  16. data/lib/fetchers/git.rb +14 -15
  17. data/lib/fetchers/local.rb +6 -10
  18. data/lib/fetchers/mock.rb +3 -5
  19. data/lib/fetchers/url.rb +42 -44
  20. data/lib/inspec.rb +23 -24
  21. data/lib/inspec/archive/tar.rb +2 -6
  22. data/lib/inspec/archive/zip.rb +3 -7
  23. data/lib/inspec/backend.rb +8 -9
  24. data/lib/inspec/base_cli.rb +64 -65
  25. data/lib/inspec/cached_fetcher.rb +2 -3
  26. data/lib/inspec/cli.rb +136 -97
  27. data/lib/inspec/config.rb +71 -61
  28. data/lib/inspec/control_eval_context.rb +22 -18
  29. data/lib/inspec/dependencies/cache.rb +2 -3
  30. data/lib/inspec/dependencies/dependency_set.rb +2 -3
  31. data/lib/inspec/dependencies/lockfile.rb +8 -9
  32. data/lib/inspec/dependencies/requirement.rb +7 -8
  33. data/lib/inspec/dependencies/resolver.rb +5 -7
  34. data/lib/inspec/describe.rb +2 -6
  35. data/lib/inspec/dist.rb +20 -0
  36. data/lib/inspec/dsl.rb +4 -7
  37. data/lib/inspec/dsl_shared.rb +1 -2
  38. data/lib/inspec/env_printer.rb +11 -12
  39. data/lib/inspec/errors.rb +0 -4
  40. data/lib/inspec/exceptions.rb +0 -1
  41. data/lib/inspec/expect.rb +5 -8
  42. data/lib/inspec/fetcher.rb +7 -10
  43. data/lib/inspec/file_provider.rb +24 -24
  44. data/lib/inspec/formatters.rb +3 -3
  45. data/lib/inspec/formatters/base.rb +8 -8
  46. data/lib/inspec/globals.rb +2 -2
  47. data/lib/inspec/impact.rb +5 -7
  48. data/lib/inspec/input_registry.rb +84 -33
  49. data/lib/inspec/library_eval_context.rb +3 -6
  50. data/lib/inspec/log.rb +1 -5
  51. data/lib/inspec/metadata.rb +17 -16
  52. data/lib/inspec/method_source.rb +5 -9
  53. data/lib/inspec/objects.rb +10 -12
  54. data/lib/inspec/objects/control.rb +7 -9
  55. data/lib/inspec/objects/describe.rb +9 -11
  56. data/lib/inspec/objects/each_loop.rb +1 -3
  57. data/lib/inspec/objects/input.rb +24 -26
  58. data/lib/inspec/objects/list.rb +4 -6
  59. data/lib/inspec/objects/or_test.rb +2 -4
  60. data/lib/inspec/objects/ruby_helper.rb +3 -5
  61. data/lib/inspec/objects/tag.rb +0 -2
  62. data/lib/inspec/objects/test.rb +9 -11
  63. data/lib/inspec/objects/value.rb +3 -5
  64. data/lib/inspec/plugin/v1.rb +2 -2
  65. data/lib/inspec/plugin/v1/plugin_types/cli.rb +1 -5
  66. data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +2 -5
  67. data/lib/inspec/plugin/v1/plugin_types/resource.rb +4 -6
  68. data/lib/inspec/plugin/v1/plugin_types/secret.rb +1 -5
  69. data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +1 -5
  70. data/lib/inspec/plugin/v1/plugins.rb +15 -19
  71. data/lib/inspec/plugin/v1/registry.rb +0 -4
  72. data/lib/inspec/plugin/v2.rb +8 -8
  73. data/lib/inspec/plugin/v2/activator.rb +1 -1
  74. data/lib/inspec/plugin/v2/config_file.rb +6 -6
  75. data/lib/inspec/plugin/v2/filter.rb +13 -13
  76. data/lib/inspec/plugin/v2/installer.rb +36 -24
  77. data/lib/inspec/plugin/v2/loader.rb +28 -28
  78. data/lib/inspec/plugin/v2/plugin_base.rb +15 -2
  79. data/lib/inspec/plugin/v2/plugin_types/cli.rb +5 -5
  80. data/lib/inspec/plugin/v2/plugin_types/input.rb +34 -0
  81. data/lib/inspec/plugin/v2/plugin_types/mock.rb +1 -1
  82. data/lib/inspec/plugin/v2/registry.rb +7 -7
  83. data/lib/inspec/polyfill.rb +0 -3
  84. data/lib/inspec/profile.rb +55 -63
  85. data/lib/inspec/profile_context.rb +27 -30
  86. data/lib/inspec/profile_vendor.rb +6 -9
  87. data/lib/inspec/reporters.rb +24 -24
  88. data/lib/inspec/reporters/automate.rb +17 -19
  89. data/lib/inspec/reporters/base.rb +1 -1
  90. data/lib/inspec/reporters/cli.rb +88 -91
  91. data/lib/inspec/reporters/json.rb +2 -4
  92. data/lib/inspec/reporters/json_automate.rb +1 -3
  93. data/lib/inspec/reporters/json_min.rb +1 -3
  94. data/lib/inspec/reporters/junit.rb +26 -28
  95. data/lib/inspec/reporters/yaml.rb +1 -3
  96. data/lib/inspec/require_loader.rb +0 -4
  97. data/lib/inspec/resource.rb +4 -125
  98. data/lib/inspec/resources.rb +121 -0
  99. data/lib/{resources → inspec/resources}/aide_conf.rb +24 -25
  100. data/lib/{resources → inspec/resources}/apache.rb +13 -14
  101. data/lib/{resources → inspec/resources}/apache_conf.rb +16 -17
  102. data/lib/{resources → inspec/resources}/apt.rb +17 -17
  103. data/lib/{resources → inspec/resources}/audit_policy.rb +7 -6
  104. data/lib/{resources → inspec/resources}/auditd.rb +62 -64
  105. data/lib/{resources → inspec/resources}/auditd_conf.rb +7 -8
  106. data/lib/{resources → inspec/resources}/bash.rb +6 -8
  107. data/lib/{resources → inspec/resources}/bond.rb +15 -14
  108. data/lib/{resources → inspec/resources}/bridge.rb +8 -8
  109. data/lib/{resources → inspec/resources}/chocolatey_package.rb +10 -8
  110. data/lib/{resources → inspec/resources}/command.rb +11 -10
  111. data/lib/{resources → inspec/resources}/cpan.rb +12 -12
  112. data/lib/{resources → inspec/resources}/cran.rb +9 -9
  113. data/lib/{resources → inspec/resources}/crontab.rb +47 -48
  114. data/lib/{resources → inspec/resources}/csv.rb +5 -5
  115. data/lib/{resources → inspec/resources}/dh_params.rb +5 -7
  116. data/lib/{resources → inspec/resources}/directory.rb +5 -7
  117. data/lib/{resources → inspec/resources}/docker.rb +63 -63
  118. data/lib/{resources → inspec/resources}/docker_container.rb +6 -6
  119. data/lib/{resources → inspec/resources}/docker_image.rb +9 -9
  120. data/lib/{resources → inspec/resources}/docker_object.rb +8 -13
  121. data/lib/{resources → inspec/resources}/docker_plugin.rb +6 -6
  122. data/lib/{resources → inspec/resources}/docker_service.rb +7 -7
  123. data/lib/{resources → inspec/resources}/elasticsearch.rb +40 -42
  124. data/lib/{resources → inspec/resources}/etc_fstab.rb +23 -24
  125. data/lib/{resources → inspec/resources}/etc_group.rb +26 -27
  126. data/lib/{resources → inspec/resources}/etc_hosts.rb +11 -13
  127. data/lib/{resources → inspec/resources}/etc_hosts_allow_deny.rb +25 -27
  128. data/lib/{resources → inspec/resources}/file.rb +80 -79
  129. data/lib/{resources → inspec/resources}/filesystem.rb +20 -15
  130. data/lib/{resources → inspec/resources}/firewalld.rb +26 -26
  131. data/lib/{resources → inspec/resources}/gem.rb +12 -12
  132. data/lib/{resources → inspec/resources}/groups.rb +28 -27
  133. data/lib/{resources → inspec/resources}/grub_conf.rb +46 -48
  134. data/lib/{resources → inspec/resources}/host.rb +31 -29
  135. data/lib/{resources → inspec/resources}/http.rb +24 -24
  136. data/lib/{resources → inspec/resources}/iis_app.rb +6 -7
  137. data/lib/{resources → inspec/resources}/iis_app_pool.rb +21 -19
  138. data/lib/{resources → inspec/resources}/iis_site.rb +17 -15
  139. data/lib/{resources → inspec/resources}/inetd_conf.rb +9 -10
  140. data/lib/{resources → inspec/resources}/ini.rb +7 -8
  141. data/lib/{resources → inspec/resources}/interface.rb +30 -30
  142. data/lib/{resources → inspec/resources}/iptables.rb +8 -8
  143. data/lib/{resources → inspec/resources}/json.rb +8 -10
  144. data/lib/{resources → inspec/resources}/kernel_module.rb +15 -15
  145. data/lib/{resources → inspec/resources}/kernel_parameter.rb +8 -8
  146. data/lib/{resources → inspec/resources}/key_rsa.rb +8 -10
  147. data/lib/{resources → inspec/resources}/ksh.rb +6 -8
  148. data/lib/{resources → inspec/resources}/limits_conf.rb +8 -9
  149. data/lib/{resources/login_def.rb → inspec/resources/login_defs.rb} +9 -10
  150. data/lib/{resources → inspec/resources}/mount.rb +6 -8
  151. data/lib/{resources → inspec/resources}/mssql_session.rb +16 -18
  152. data/lib/inspec/resources/mysql.rb +81 -0
  153. data/lib/{resources → inspec/resources}/mysql_conf.rb +13 -14
  154. data/lib/{resources → inspec/resources}/mysql_session.rb +16 -16
  155. data/lib/{resources → inspec/resources}/nginx.rb +16 -17
  156. data/lib/{resources → inspec/resources}/nginx_conf.rb +26 -27
  157. data/lib/{resources → inspec/resources}/npm.rb +9 -10
  158. data/lib/{resources → inspec/resources}/ntp_conf.rb +9 -10
  159. data/lib/{resources → inspec/resources}/oneget.rb +8 -8
  160. data/lib/{resources → inspec/resources}/oracledb_session.rb +33 -34
  161. data/lib/{resources → inspec/resources}/os.rb +6 -8
  162. data/lib/{resources → inspec/resources}/os_env.rb +11 -12
  163. data/lib/{resources → inspec/resources}/package.rb +66 -65
  164. data/lib/{resources → inspec/resources}/packages.rb +13 -13
  165. data/lib/{resources → inspec/resources}/parse_config.rb +8 -8
  166. data/lib/{resources → inspec/resources}/passwd.rb +18 -19
  167. data/lib/{resources → inspec/resources}/pip.rb +19 -19
  168. data/lib/{resources → inspec/resources}/platform.rb +9 -11
  169. data/lib/{resources → inspec/resources}/port.rb +134 -136
  170. data/lib/{resources → inspec/resources}/postgres.rb +40 -32
  171. data/lib/{resources → inspec/resources}/postgres_conf.rb +17 -17
  172. data/lib/{resources → inspec/resources}/postgres_hba_conf.rb +21 -23
  173. data/lib/{resources → inspec/resources}/postgres_ident_conf.rb +12 -14
  174. data/lib/{resources → inspec/resources}/postgres_session.rb +8 -9
  175. data/lib/{resources → inspec/resources}/powershell.rb +17 -13
  176. data/lib/{resources → inspec/resources}/processes.rb +29 -29
  177. data/lib/{resources/rabbitmq_conf.rb → inspec/resources/rabbitmq_config.rb} +10 -11
  178. data/lib/{resources → inspec/resources}/registry_key.rb +14 -14
  179. data/lib/inspec/resources/script.rb +1 -0
  180. data/lib/{resources → inspec/resources}/security_identifier.rb +11 -10
  181. data/lib/{resources → inspec/resources}/security_policy.rb +59 -58
  182. data/lib/{resources → inspec/resources}/service.rb +74 -75
  183. data/lib/{resources → inspec/resources}/shadow.rb +44 -45
  184. data/lib/{resources/ssh_conf.rb → inspec/resources/ssh_config.rb} +16 -17
  185. data/lib/{resources → inspec/resources}/ssl.rb +28 -29
  186. data/lib/inspec/resources/sys_info.rb +30 -0
  187. data/lib/{resources → inspec/resources}/toml.rb +5 -7
  188. data/lib/{resources → inspec/resources}/users.rb +65 -65
  189. data/lib/{resources → inspec/resources}/vbscript.rb +8 -9
  190. data/lib/{resources → inspec/resources}/virtualization.rb +60 -62
  191. data/lib/{resources → inspec/resources}/windows_feature.rb +9 -9
  192. data/lib/{resources → inspec/resources}/windows_hotfix.rb +5 -5
  193. data/lib/{resources → inspec/resources}/windows_task.rb +16 -15
  194. data/lib/{resources → inspec/resources}/wmi.rb +7 -8
  195. data/lib/{resources → inspec/resources}/x509_certificate.rb +9 -11
  196. data/lib/{resources/xinetd.rb → inspec/resources/xinetd_conf.rb} +27 -29
  197. data/lib/{resources → inspec/resources}/xml.rb +7 -7
  198. data/lib/{resources → inspec/resources}/yaml.rb +5 -6
  199. data/lib/{resources → inspec/resources}/yum.rb +10 -10
  200. data/lib/{resources → inspec/resources}/zfs_dataset.rb +6 -6
  201. data/lib/{resources → inspec/resources}/zfs_pool.rb +4 -4
  202. data/lib/inspec/rspec_extensions.rb +24 -8
  203. data/lib/inspec/rule.rb +14 -15
  204. data/lib/inspec/runner.rb +28 -28
  205. data/lib/inspec/runner_mock.rb +1 -5
  206. data/lib/inspec/runner_rspec.rb +18 -20
  207. data/lib/inspec/runtime_profile.rb +2 -5
  208. data/lib/inspec/schema.rb +142 -143
  209. data/lib/inspec/secrets.rb +3 -7
  210. data/lib/inspec/secrets/yaml.rb +3 -5
  211. data/lib/inspec/shell.rb +11 -15
  212. data/lib/inspec/shell_detector.rb +6 -7
  213. data/lib/inspec/source_reader.rb +4 -8
  214. data/lib/inspec/ui.rb +33 -39
  215. data/lib/inspec/ui_table_helper.rb +12 -0
  216. data/lib/{utils → inspec/utils}/command_wrapper.rb +4 -8
  217. data/lib/{utils → inspec/utils}/convert.rb +0 -4
  218. data/lib/{utils → inspec/utils}/database_helpers.rb +4 -8
  219. data/lib/inspec/utils/deprecation.rb +6 -0
  220. data/lib/{utils → inspec/utils}/deprecation/config_file.rb +19 -19
  221. data/lib/{utils → inspec/utils}/deprecation/deprecator.rb +12 -12
  222. data/lib/{utils → inspec/utils}/deprecation/errors.rb +1 -1
  223. data/lib/{utils → inspec/utils}/deprecation/global_method.rb +2 -2
  224. data/lib/{utils → inspec/utils}/enumerable_delegation.rb +0 -2
  225. data/lib/{utils → inspec/utils}/erlang_parser.rb +61 -65
  226. data/lib/{utils → inspec/utils}/file_reader.rb +1 -2
  227. data/lib/{utils → inspec/utils}/filter.rb +30 -33
  228. data/lib/{utils → inspec/utils}/filter_array.rb +0 -2
  229. data/lib/{utils → inspec/utils}/find_files.rb +9 -12
  230. data/lib/{utils → inspec/utils}/hash.rb +1 -5
  231. data/lib/inspec/utils/json_log.rb +15 -0
  232. data/lib/inspec/utils/latest_version.rb +13 -0
  233. data/lib/{utils → inspec/utils}/modulator.rb +0 -3
  234. data/lib/{utils → inspec/utils}/nginx_parser.rb +31 -35
  235. data/lib/{utils → inspec/utils}/object_traversal.rb +0 -3
  236. data/lib/{utils → inspec/utils}/parser.rb +45 -45
  237. data/lib/{utils → inspec/utils}/pkey_reader.rb +4 -2
  238. data/lib/{utils → inspec/utils}/simpleconfig.rb +8 -10
  239. data/lib/{utils → inspec/utils}/spdx.rb +1 -4
  240. data/lib/{utils → inspec/utils}/spdx.txt +0 -0
  241. data/lib/inspec/utils/telemetry.rb +3 -3
  242. data/lib/inspec/utils/telemetry/collector.rb +30 -9
  243. data/lib/inspec/utils/telemetry/data_series.rb +3 -1
  244. data/lib/inspec/utils/telemetry/global_methods.rb +1 -1
  245. data/lib/inspec/version.rb +1 -1
  246. data/lib/matchers/matchers.rb +22 -25
  247. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +1 -1
  248. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +52 -45
  249. data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +18 -16
  250. data/lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb +12 -11
  251. data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +1 -1
  252. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +73 -73
  253. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +66 -62
  254. data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +59 -57
  255. data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +11 -11
  256. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +20 -22
  257. data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +2 -4
  258. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +30 -27
  259. data/lib/plugins/inspec-compliance/test/functional/inspec_compliance_test.rb +12 -14
  260. data/lib/plugins/inspec-compliance/test/integration/default/cli.rb +39 -41
  261. data/lib/plugins/inspec-compliance/test/unit/api/login_test.rb +64 -64
  262. data/lib/plugins/inspec-compliance/test/unit/api_test.rb +157 -156
  263. data/lib/plugins/inspec-compliance/test/unit/target_test.rb +85 -85
  264. data/lib/plugins/inspec-habitat/Berksfile +2 -2
  265. data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +1 -1
  266. data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +15 -13
  267. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +64 -63
  268. data/lib/plugins/inspec-habitat/templates/habitat/hooks/run.erb +3 -3
  269. data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +11 -11
  270. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/Berksfile +1 -1
  271. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/metadata.rb +8 -8
  272. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/recipes/default.rb +17 -17
  273. data/lib/plugins/inspec-habitat/test/functional/inspec_habitat_test.rb +9 -8
  274. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/controls/inspec_habitat.rb +14 -14
  275. data/lib/plugins/inspec-habitat/test/support/example_profile/controls/example.rb +4 -4
  276. data/lib/plugins/inspec-habitat/test/unit/profile_test.rb +42 -41
  277. data/lib/plugins/inspec-init/lib/inspec-init.rb +1 -1
  278. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +6 -8
  279. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +72 -74
  280. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +9 -11
  281. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +4 -4
  282. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -1
  283. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +0 -2
  284. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -2
  285. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -2
  286. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -2
  287. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -2
  288. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/inspec_plugin_template_test.rb +5 -5
  289. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/helper.rb +1 -3
  290. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb +2 -2
  291. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb +2 -2
  292. data/lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb +10 -11
  293. data/lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb +4 -5
  294. data/lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb +10 -11
  295. data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +6 -7
  296. data/lib/plugins/inspec-init/test/functional/inspec_init_plugin_test.rb +51 -50
  297. data/lib/plugins/inspec-init/test/functional/inspec_init_profile_test.rb +35 -33
  298. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +1 -2
  299. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +72 -70
  300. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +1 -1
  301. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name.rb +1 -1
  302. data/lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb +281 -271
  303. data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +41 -41
  304. data/lib/plugins/inspec-plugin-manager-cli/test/unit/plugin_def_test.rb +25 -6
  305. data/lib/plugins/shared/core_plugin_test_helper.rb +43 -38
  306. data/lib/resource_support/aws.rb +67 -67
  307. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +4 -1
  308. data/lib/resource_support/aws/aws_resource_mixin.rb +4 -3
  309. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +4 -1
  310. data/lib/resources/aws/aws_billing_report.rb +15 -8
  311. data/lib/resources/aws/aws_billing_reports.rb +10 -7
  312. data/lib/resources/aws/aws_cloudtrail_trail.rb +9 -5
  313. data/lib/resources/aws/aws_cloudtrail_trails.rb +9 -5
  314. data/lib/resources/aws/aws_cloudwatch_alarm.rb +9 -5
  315. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +12 -8
  316. data/lib/resources/aws/aws_config_delivery_channel.rb +13 -9
  317. data/lib/resources/aws/aws_config_recorder.rb +10 -6
  318. data/lib/resources/aws/aws_ebs_volume.rb +12 -8
  319. data/lib/resources/aws/aws_ebs_volumes.rb +9 -5
  320. data/lib/resources/aws/aws_ec2_instance.rb +14 -11
  321. data/lib/resources/aws/aws_ec2_instances.rb +9 -5
  322. data/lib/resources/aws/aws_ecs_cluster.rb +11 -7
  323. data/lib/resources/aws/aws_eks_cluster.rb +13 -9
  324. data/lib/resources/aws/aws_elb.rb +9 -5
  325. data/lib/resources/aws/aws_elbs.rb +9 -5
  326. data/lib/resources/aws/aws_flow_log.rb +17 -13
  327. data/lib/resources/aws/aws_iam_access_key.rb +15 -11
  328. data/lib/resources/aws/aws_iam_access_keys.rb +19 -15
  329. data/lib/resources/aws/aws_iam_group.rb +9 -5
  330. data/lib/resources/aws/aws_iam_groups.rb +9 -5
  331. data/lib/resources/aws/aws_iam_password_policy.rb +13 -10
  332. data/lib/resources/aws/aws_iam_policies.rb +9 -5
  333. data/lib/resources/aws/aws_iam_policy.rb +16 -12
  334. data/lib/resources/aws/aws_iam_role.rb +9 -5
  335. data/lib/resources/aws/aws_iam_root_user.rb +12 -8
  336. data/lib/resources/aws/aws_iam_user.rb +12 -12
  337. data/lib/resources/aws/aws_iam_users.rb +10 -10
  338. data/lib/resources/aws/aws_kms_key.rb +12 -8
  339. data/lib/resources/aws/aws_kms_keys.rb +9 -5
  340. data/lib/resources/aws/aws_rds_instance.rb +11 -8
  341. data/lib/resources/aws/aws_route_table.rb +11 -7
  342. data/lib/resources/aws/aws_route_tables.rb +10 -6
  343. data/lib/resources/aws/aws_s3_bucket.rb +14 -11
  344. data/lib/resources/aws/aws_s3_bucket_object.rb +12 -9
  345. data/lib/resources/aws/aws_s3_buckets.rb +9 -7
  346. data/lib/resources/aws/aws_security_group.rb +16 -12
  347. data/lib/resources/aws/aws_security_groups.rb +12 -8
  348. data/lib/resources/aws/aws_sns_subscription.rb +15 -11
  349. data/lib/resources/aws/aws_sns_topic.rb +10 -6
  350. data/lib/resources/aws/aws_sns_topics.rb +9 -5
  351. data/lib/resources/aws/aws_sqs_queue.rb +18 -14
  352. data/lib/resources/aws/aws_subnet.rb +11 -7
  353. data/lib/resources/aws/aws_subnets.rb +9 -5
  354. data/lib/resources/aws/aws_vpc.rb +10 -6
  355. data/lib/resources/aws/aws_vpcs.rb +9 -5
  356. data/lib/resources/azure/azure_backend.rb +20 -18
  357. data/lib/resources/azure/azure_generic_resource.rb +13 -15
  358. data/lib/resources/azure/azure_resource_group.rb +17 -19
  359. data/lib/resources/azure/azure_virtual_machine.rb +6 -8
  360. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +6 -8
  361. data/lib/source_readers/flat.rb +6 -10
  362. data/lib/source_readers/inspec.rb +8 -12
  363. metadata +141 -142
  364. data/lib/resources/mysql.rb +0 -82
  365. data/lib/resources/sys_info.rb +0 -28
  366. data/lib/utils/deprecation.rb +0 -6
  367. data/lib/utils/json_log.rb +0 -18
  368. data/lib/utils/latest_version.rb +0 -22
@@ -1,13 +1,9 @@
1
- # encoding: utf-8
2
- # author: Christoph Hartmann
3
- # author: Dominik Richter
4
-
5
1
  libdir = File.dirname(__FILE__)
6
2
  $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
7
3
 
8
4
  module Supermarket
9
- autoload :API, 'inspec-supermarket/api'
5
+ autoload :API, "inspec-supermarket/api"
10
6
  end
11
7
 
12
- require 'inspec-supermarket/cli'
13
- require 'inspec-supermarket/target'
8
+ require "inspec-supermarket/cli"
9
+ require "inspec-supermarket/target"
@@ -1,26 +1,23 @@
1
- # encoding: utf-8
2
1
  # frozen_string_literal: true
3
- # author: Christoph Hartmann
4
- # author: Dominik Richter
5
2
 
6
- require 'net/http'
7
- require 'addressable/uri'
3
+ require "net/http"
4
+ require "addressable/uri"
8
5
 
9
6
  module Supermarket
10
7
  class API
11
- SUPERMARKET_URL = 'https://supermarket.chef.io'
8
+ SUPERMARKET_URL = "https://supermarket.chef.io"
12
9
 
13
10
  # displays a list of profiles
14
11
  def self.profiles(supermarket_url = SUPERMARKET_URL)
15
12
  url = "#{supermarket_url}/api/v1/tools-search"
16
- _success, data = get(url, { type: 'compliance_profile', items: 100 })
13
+ _success, data = get(url, { type: "compliance_profile", items: 100 })
17
14
  if !data.nil?
18
15
  profiles = JSON.parse(data)
19
- profiles['items'].map { |x|
20
- m = %r{^#{supermarket_url}/api/v1/tools/(?<slug>[\w-]+)(/)?$}.match(x['tool'])
21
- x['slug'] = m[:slug]
16
+ profiles["items"].map do |x|
17
+ m = %r{^#{supermarket_url}/api/v1/tools/(?<slug>[\w-]+)(/)?$}.match(x["tool"])
18
+ x["slug"] = m[:slug]
22
19
  x
23
- }
20
+ end
24
21
  else
25
22
  []
26
23
  end
@@ -54,7 +51,7 @@ module Supermarket
54
51
 
55
52
  # Tool name in Supermarket URL is downcased so we need to downcase
56
53
  tool = "#{supermarket_url}/api/v1/tools/#{tool_name.downcase}"
57
- supermarket_tool['tool_owner'] == tool_owner && supermarket_tool['tool'] == tool
54
+ supermarket_tool["tool_owner"] == tool_owner && supermarket_tool["tool"] == tool
58
55
  end
59
56
 
60
57
  def self.find(profile, supermarket_url = SUPERMARKET_URL)
@@ -80,7 +77,7 @@ module Supermarket
80
77
 
81
78
  def self.send_request(uri, req)
82
79
  # send request
83
- res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
80
+ res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http|
84
81
  http.request(req)
85
82
  end
86
83
  [res.is_a?(Net::HTTPSuccess), res.body]
@@ -1,11 +1,8 @@
1
- # encoding: utf-8
2
- # author: Christoph Hartmann
3
- # author: Dominik Richter
4
- require 'inspec/base_cli'
1
+ require "inspec/base_cli"
5
2
 
6
3
  module Supermarket
7
4
  class SupermarketCLI < Inspec::BaseCLI
8
- namespace 'supermarket'
5
+ namespace "supermarket"
9
6
 
10
7
  # TODO: find another solution, once https://github.com/erikhuda/thor/issues/261 is fixed
11
8
  def self.banner(command, _namespace = nil, _subcommand = false)
@@ -16,18 +13,18 @@ module Supermarket
16
13
  namespace
17
14
  end
18
15
 
19
- desc 'profiles', 'list all available profiles in Chef Supermarket'
16
+ desc "profiles", "list all available profiles in Chef Supermarket"
20
17
  def profiles
21
18
  # display profiles in format user/profile
22
19
  supermarket_profiles = Supermarket::API.profiles
23
20
 
24
- headline('Available profiles:')
25
- supermarket_profiles.each { |p|
21
+ headline("Available profiles:")
22
+ supermarket_profiles.each do |p|
26
23
  li("#{p['tool_name']} #{mark_text(p['tool_owner'] + '/' + p['slug'])}")
27
- }
24
+ end
28
25
  end
29
26
 
30
- desc 'exec PROFILE', 'execute a Supermarket profile'
27
+ desc "exec PROFILE", "execute a Supermarket profile"
31
28
  exec_options
32
29
  def exec(*tests)
33
30
  o = config
@@ -35,7 +32,7 @@ module Supermarket
35
32
  configure_logger(o)
36
33
 
37
34
  # iterate over tests and add compliance scheme
38
- tests = tests.map { |t| 'supermarket://' + t }
35
+ tests = tests.map { |t| "supermarket://" + t }
39
36
 
40
37
  runner = Inspec::Runner.new(o)
41
38
  tests.each { |target| runner.add_target(target) }
@@ -46,13 +43,13 @@ module Supermarket
46
43
  exit 1
47
44
  end
48
45
 
49
- desc 'info PROFILE', 'display Supermarket profile details'
46
+ desc "info PROFILE", "display Supermarket profile details"
50
47
  def info(profile)
51
48
  # check that the profile is available
52
49
  supermarket_profiles = Supermarket::API.profiles
53
- found = supermarket_profiles.select { |p|
50
+ found = supermarket_profiles.select do |p|
54
51
  profile == "#{p['tool_owner']}/#{p['slug']}"
55
- }
52
+ end
56
53
 
57
54
  if found.empty?
58
55
  puts "#{mark_text(profile)} is not available on Supermarket"
@@ -70,5 +67,5 @@ module Supermarket
70
67
  end
71
68
 
72
69
  # register the subcommand to InSpec CLI registry
73
- Inspec::Plugins::CLI.add_subcommand(SupermarketCLI, 'supermarket', 'supermarket SUBCOMMAND ...', 'Supermarket commands', {})
70
+ Inspec::Plugins::CLI.add_subcommand(SupermarketCLI, "supermarket", "supermarket SUBCOMMAND ...", "Supermarket commands", {})
74
71
  end
@@ -1,19 +1,15 @@
1
- # encoding: utf-8
2
- # author: Christoph Hartmann
3
- # author: Dominik Richter
4
-
5
- require 'uri'
6
- require 'inspec/fetcher'
7
- require 'fetchers/url'
1
+ require "uri"
2
+ require "inspec/fetcher"
3
+ require "fetchers/url"
8
4
 
9
5
  # InSpec Target Helper for Supermarket
10
6
  module Supermarket
11
7
  class Fetcher < Inspec.fetcher(1)
12
- name 'supermarket'
8
+ name "supermarket"
13
9
  priority 500
14
10
 
15
11
  def self.resolve(target, opts = {})
16
- supermarket_uri, supermarket_server = if target.is_a?(String) && URI(target).scheme == 'supermarket'
12
+ supermarket_uri, supermarket_server = if target.is_a?(String) && URI(target).scheme == "supermarket"
17
13
  [target, Supermarket::API::SUPERMARKET_URL]
18
14
  elsif target.respond_to?(:key?) && target.key?(:supermarket)
19
15
  supermarket_server = target[:supermarket_url] || Supermarket::API::SUPERMARKET_URL
@@ -22,13 +18,13 @@ module Supermarket
22
18
  return nil unless supermarket_uri
23
19
  return nil unless Supermarket::API.exist?(supermarket_uri, supermarket_server)
24
20
  tool_info = Supermarket::API.find(supermarket_uri, supermarket_server)
25
- resolve_next(tool_info['tool_source_url'], opts)
21
+ resolve_next(tool_info["tool_source_url"], opts)
26
22
  rescue URI::Error
27
23
  nil
28
24
  end
29
25
 
30
26
  def to_s
31
- 'Chef Compliance Profile Loader'
27
+ "Chef Compliance Profile Loader"
32
28
  end
33
29
  end
34
30
  end
@@ -1,8 +1,7 @@
1
- # encoding: utf-8
2
- require 'tmpdir'
3
- require 'fileutils'
4
- require 'mixlib/shellout'
5
- require 'inspec/log'
1
+ require "tmpdir"
2
+ require "fileutils"
3
+ require "mixlib/shellout"
4
+ require "inspec/log"
6
5
 
7
6
  module Fetchers
8
7
  #
@@ -25,12 +24,12 @@ module Fetchers
25
24
  # omnibus source for hints.
26
25
  #
27
26
  class Git < Inspec.fetcher(1)
28
- name 'git'
27
+ name "git"
29
28
  priority 200
30
29
 
31
30
  def self.resolve(target, opts = {})
32
31
  if target.is_a?(String)
33
- new(target, opts) if target.start_with?('git@') || target.end_with?('.git')
32
+ new(target, opts) if target.start_with?("git@") || target.end_with?(".git")
34
33
  elsif target.respond_to?(:has_key?) && target.key?(:git)
35
34
  new(target[:git], opts.merge(target))
36
35
  end
@@ -54,7 +53,7 @@ module Fetchers
54
53
  Dir.mktmpdir do |tmpdir|
55
54
  checkout(tmpdir)
56
55
  Inspec::Log.debug("Checkout of #{resolved_ref} successful. Moving checkout to #{dir}")
57
- FileUtils.cp_r(tmpdir + '/.', @repo_directory)
56
+ FileUtils.cp_r(tmpdir + "/.", @repo_directory)
58
57
  end
59
58
  end
60
59
  @repo_directory
@@ -82,7 +81,7 @@ module Fetchers
82
81
  elsif @tag
83
82
  resolve_ref(@tag)
84
83
  else
85
- resolve_ref('master')
84
+ resolve_ref("master")
86
85
  end
87
86
  end
88
87
 
@@ -130,7 +129,7 @@ module Fetchers
130
129
  end
131
130
 
132
131
  def cloned?
133
- File.directory?(File.join(@repo_directory, '.git'))
132
+ File.directory?(File.join(@repo_directory, ".git"))
134
133
  end
135
134
 
136
135
  def clone(dir = @repo_directory)
@@ -149,7 +148,7 @@ module Fetchers
149
148
  cmd.error!
150
149
  cmd.status
151
150
  rescue Errno::ENOENT
152
- raise 'To use git sources, you must have git installed.'
151
+ raise "To use git sources, you must have git installed."
153
152
  end
154
153
 
155
154
  def shellout(cmd, opts = {})
@@ -157,12 +156,12 @@ module Fetchers
157
156
  cmd = Mixlib::ShellOut.new(cmd, opts)
158
157
  cmd.run_command
159
158
  Inspec::Log.debug("External command: completed with exit status: #{cmd.exitstatus}")
160
- Inspec::Log.debug('External command: STDOUT BEGIN')
159
+ Inspec::Log.debug("External command: STDOUT BEGIN")
161
160
  Inspec::Log.debug(cmd.stdout)
162
- Inspec::Log.debug('External command: STDOUT END')
163
- Inspec::Log.debug('External command: STDERR BEGIN')
161
+ Inspec::Log.debug("External command: STDOUT END")
162
+ Inspec::Log.debug("External command: STDERR BEGIN")
164
163
  Inspec::Log.debug(cmd.stderr)
165
- Inspec::Log.debug('External command: STDERR END')
164
+ Inspec::Log.debug("External command: STDERR END")
166
165
  cmd
167
166
  end
168
167
  end
@@ -1,12 +1,8 @@
1
- # encoding: utf-8
2
- # author: Dominik Richter
3
- # author: Christoph Hartmann
4
-
5
- require 'openssl'
1
+ require "openssl"
6
2
 
7
3
  module Fetchers
8
4
  class Local < Inspec.fetcher(1)
9
- name 'local'
5
+ name "local"
10
6
  priority 0
11
7
 
12
8
  def self.resolve(target)
@@ -31,11 +27,11 @@ module Fetchers
31
27
 
32
28
  def self.resolve_from_string(target)
33
29
  # Support "urls" in the form of file://
34
- if target.start_with?('file://')
35
- target = target.gsub(%r{^file://}, '')
30
+ if target.start_with?("file://")
31
+ target = target.gsub(%r{^file://}, "")
36
32
  else
37
33
  # support for windows paths
38
- target = target.tr('\\', '/')
34
+ target = target.tr('\\', "/")
39
35
  end
40
36
 
41
37
  target if File.exist?(File.expand_path(target))
@@ -105,7 +101,7 @@ module Fetchers
105
101
  end
106
102
 
107
103
  def perform_shasum(target)
108
- @archive_shasum ||= OpenSSL::Digest::SHA256.digest(File.read(target)).unpack('H*')[0]
104
+ @archive_shasum ||= OpenSSL::Digest::SHA256.digest(File.read(target)).unpack("H*")[0]
109
105
  end
110
106
 
111
107
  def resolved_source
@@ -1,10 +1,8 @@
1
- # encoding: utf-8
2
- # author: Dominik Richter
3
- # author: Christoph Hartmann
1
+ require "inspec/fetcher"
4
2
 
5
3
  module Fetchers
6
4
  class Mock < Inspec.fetcher(1)
7
- name 'mock'
5
+ name "mock"
8
6
  priority 0
9
7
 
10
8
  def self.resolve(target)
@@ -29,7 +27,7 @@ module Fetchers
29
27
  end
30
28
 
31
29
  def cache_key
32
- ''
30
+ ""
33
31
  end
34
32
  end
35
33
  end
@@ -1,22 +1,18 @@
1
- # encoding: utf-8
2
- # author: Dominik Richter
3
- # author: Christoph Hartmann
4
-
5
- require 'uri'
6
- require 'openssl'
7
- require 'tempfile'
8
- require 'open-uri'
1
+ require "uri"
2
+ require "openssl"
3
+ require "tempfile"
4
+ require "open-uri"
9
5
 
10
6
  module Fetchers
11
7
  class Url < Inspec.fetcher(1)
12
8
  MIME_TYPES = {
13
- 'application/x-zip-compressed' => '.zip',
14
- 'application/zip' => '.zip',
15
- 'application/x-gzip' => '.tar.gz',
16
- 'application/gzip' => '.tar.gz',
9
+ "application/x-zip-compressed" => ".zip",
10
+ "application/zip" => ".zip",
11
+ "application/x-gzip" => ".tar.gz",
12
+ "application/gzip" => ".tar.gz",
17
13
  }.freeze
18
14
 
19
- name 'url'
15
+ name "url"
20
16
  priority 200
21
17
 
22
18
  def self.resolve(target, opts = {})
@@ -31,7 +27,7 @@ module Fetchers
31
27
 
32
28
  def self.resolve_from_string(target, opts, username = nil, password = nil)
33
29
  uri = URI.parse(target)
34
- return nil if uri.nil? or uri.scheme.nil?
30
+ return nil if uri.nil? || uri.scheme.nil?
35
31
  return nil unless %{ http https }.include? uri.scheme
36
32
  target = transform(target)
37
33
  opts[:username] = username if username
@@ -66,11 +62,11 @@ module Fetchers
66
62
  # https://bitbucket.org/username/repo/commits/95ce1f83d5bbe9eec34c5973f6894617e8d6d8cc is transformed to
67
63
  # https://bitbucket.org/username/repo/get/95ce1f83d5bbe9eec34c5973f6894617e8d6d8cc.tar.gz
68
64
 
69
- GITHUB_URL_REGEX = %r{^https?://(www\.)?github\.com/(?<user>[\w-]+)/(?<repo>[\w-]+)(\.git)?(/)?$}
70
- GITHUB_URL_WITH_TREE_REGEX = %r{^https?://(www\.)?github\.com/(?<user>[\w-]+)/(?<repo>[\w-]+)/tree/(?<commit>[\w\.]+)(/)?$}
71
- BITBUCKET_URL_REGEX = %r{^https?://(www\.)?bitbucket\.org/(?<user>[\w-]+)/(?<repo>[\w-]+)(\.git)?(/)?$}
72
- BITBUCKET_URL_BRANCH_REGEX = %r{^https?://(www\.)?bitbucket\.org/(?<user>[\w-]+)/(?<repo>[\w-]+)/branch/(?<branch>[\w\.]+)(/)?$}
73
- BITBUCKET_URL_COMMIT_REGEX = %r{^https?://(www\.)?bitbucket\.org/(?<user>[\w-]+)/(?<repo>[\w-]+)/commits/(?<commit>[\w\.]+)(/)?$}
65
+ GITHUB_URL_REGEX = %r{^https?://(www\.)?github\.com/(?<user>[\w-]+)/(?<repo>[\w.-]+?)(\.git)?(/)?$}.freeze
66
+ GITHUB_URL_WITH_TREE_REGEX = %r{^https?://(www\.)?github\.com/(?<user>[\w-]+)/(?<repo>[\w.-]+)/tree/(?<commit>[\w\.]+)(/)?$}.freeze
67
+ BITBUCKET_URL_REGEX = %r{^https?://(www\.)?bitbucket\.org/(?<user>[\w-]+)/(?<repo>[\w-]+)(\.git)?(/)?$}.freeze
68
+ BITBUCKET_URL_BRANCH_REGEX = %r{^https?://(www\.)?bitbucket\.org/(?<user>[\w-]+)/(?<repo>[\w-]+)/branch/(?<branch>[\w\.]+)(/)?$}.freeze
69
+ BITBUCKET_URL_COMMIT_REGEX = %r{^https?://(www\.)?bitbucket\.org/(?<user>[\w-]+)/(?<repo>[\w-]+)/commits/(?<commit>[\w\.]+)(/)?$}.freeze
74
70
 
75
71
  def self.transform(target)
76
72
  transformed_target = if m = GITHUB_URL_REGEX.match(target) # rubocop:disable Lint/AssignmentInCondition
@@ -98,8 +94,8 @@ module Fetchers
98
94
  def initialize(url, opts)
99
95
  @target = url.to_s
100
96
  @target_uri = url.is_a?(URI) ? url : parse_uri(url)
101
- @insecure = opts['insecure']
102
- @token = opts['token']
97
+ @insecure = opts["insecure"]
98
+ @token = opts["token"]
103
99
  @config = opts
104
100
  @archive_path = nil
105
101
  @temp_archive_path = nil
@@ -130,23 +126,23 @@ module Fetchers
130
126
 
131
127
  def sha256
132
128
  file = @archive_path || temp_archive_path
133
- OpenSSL::Digest::SHA256.digest(File.read(file)).unpack('H*')[0]
129
+ OpenSSL::Digest::SHA256.digest(File.read(file)).unpack("H*")[0]
134
130
  end
135
131
 
136
132
  def file_type_from_remote(remote)
137
- content_type = remote.meta['content-type']
133
+ content_type = remote.meta["content-type"]
138
134
  file_type = MIME_TYPES[content_type]
139
135
 
140
136
  if file_type.nil?
141
137
  Inspec::Log.warn("Unrecognized content type: #{content_type}. Assuming tar.gz")
142
- file_type = '.tar.gz'
138
+ file_type = ".tar.gz"
143
139
  end
144
140
 
145
141
  file_type
146
142
  end
147
143
 
148
144
  def temp_archive_path
149
- @temp_archive_path ||= if @config['server_type'] == 'automate2'
145
+ @temp_archive_path ||= if @config["server_type"] == "automate2"
150
146
  download_automate2_archive_to_temp
151
147
  else
152
148
  download_archive_to_temp
@@ -158,13 +154,13 @@ module Fetchers
158
154
 
159
155
  Inspec::Log.debug("Fetching URL: #{@target}")
160
156
  json = {
161
- owner: @config['profile'][0],
162
- name: @config['profile'][1],
163
- version: @config['profile'][2],
157
+ owner: @config["profile"][0],
158
+ name: @config["profile"][1],
159
+ version: @config["profile"][2],
164
160
  }.to_json
165
161
 
166
162
  opts = http_opts
167
- opts[:use_ssl] = @target_uri.scheme == 'https'
163
+ opts[:use_ssl] = @target_uri.scheme == "https"
168
164
 
169
165
  if @insecure
170
166
  opts[:verify_mode] = OpenSSL::SSL::VERIFY_NONE
@@ -177,12 +173,12 @@ module Fetchers
177
173
  req.add_field(key, value)
178
174
  end
179
175
  req.body = json
180
- res = Net::HTTP.start(@target_uri.host, @target_uri.port, opts) { |http|
176
+ res = Net::HTTP.start(@target_uri.host, @target_uri.port, opts) do |http|
181
177
  http.request(req)
182
- }
178
+ end
183
179
 
184
- @archive_type = '.tar.gz'
185
- archive = Tempfile.new(['inspec-dl-', @archive_type])
180
+ @archive_type = ".tar.gz"
181
+ archive = Tempfile.new(["inspec-dl-", @archive_type])
186
182
  archive.binmode
187
183
  archive.write(res.body)
188
184
  archive.rewind
@@ -197,7 +193,7 @@ module Fetchers
197
193
  Inspec::Log.debug("Fetching URL: #{@target}")
198
194
  remote = open_via_uri(@target)
199
195
  @archive_type = file_type_from_remote(remote) # side effect :(
200
- archive = Tempfile.new(['inspec-dl-', @archive_type])
196
+ archive = Tempfile.new(["inspec-dl-", @archive_type])
201
197
  archive.binmode
202
198
  archive.write(remote.read)
203
199
  archive.rewind
@@ -211,7 +207,7 @@ module Fetchers
211
207
 
212
208
  if opts[:http_basic_authentication]
213
209
  # OpenURI does not support userinfo so we need to remove it
214
- open(target.sub("#{@target_uri.userinfo}@", ''), opts)
210
+ open(target.sub("#{@target_uri.userinfo}@", ""), opts)
215
211
  else
216
212
  open(target, opts)
217
213
  end
@@ -231,16 +227,16 @@ module Fetchers
231
227
  opts = {}
232
228
  opts[:ssl_verify_mode] = OpenSSL::SSL::VERIFY_NONE if @insecure
233
229
 
234
- if @config['server_type'] =~ /automate/
235
- opts['chef-delivery-enterprise'] = @config['automate']['ent']
236
- if @config['automate']['token_type'] == 'dctoken'
237
- opts['x-data-collector-token'] = @config['token']
230
+ if @config["server_type"] =~ /automate/
231
+ opts["chef-delivery-enterprise"] = @config["automate"]["ent"]
232
+ if @config["automate"]["token_type"] == "dctoken"
233
+ opts["x-data-collector-token"] = @config["token"]
238
234
  else
239
- opts['chef-delivery-user'] = @config['user']
240
- opts['chef-delivery-token'] = @config['token']
235
+ opts["chef-delivery-user"] = @config["user"]
236
+ opts["chef-delivery-token"] = @config["token"]
241
237
  end
242
238
  elsif @token
243
- opts['Authorization'] = "Bearer #{@token}"
239
+ opts["Authorization"] = "Bearer #{@token}"
244
240
  end
245
241
 
246
242
  username = @config[:username] || @target_uri.user
@@ -264,8 +260,10 @@ module Fetchers
264
260
  true
265
261
  end
266
262
  end
267
- raise 'Unable to fetch profile - the following HTTP headers have no value: ' \
268
- "#{keys_missing_values.join(', ')}" unless keys_missing_values.empty?
263
+ unless keys_missing_values.empty?
264
+ raise "Unable to fetch profile - the following HTTP headers have no value: " \
265
+ "#{keys_missing_values.join(', ')}"
266
+ end
269
267
  end
270
268
  end
271
269
  end