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.
- checksums.yaml +4 -4
- data/Gemfile +36 -38
- data/README.md +37 -21
- data/etc/deprecations.json +10 -0
- data/etc/plugin_filters.json +8 -0
- data/inspec.gemspec +38 -39
- data/lib/bundles/inspec-compliance/api.rb +1 -1
- data/lib/bundles/inspec-compliance/configuration.rb +1 -1
- data/lib/bundles/inspec-compliance/http.rb +1 -1
- data/lib/bundles/inspec-compliance/support.rb +1 -1
- data/lib/bundles/inspec-compliance/target.rb +1 -1
- data/lib/bundles/inspec-supermarket.rb +3 -7
- data/lib/bundles/inspec-supermarket/api.rb +10 -13
- data/lib/bundles/inspec-supermarket/cli.rb +12 -15
- data/lib/bundles/inspec-supermarket/target.rb +7 -11
- data/lib/fetchers/git.rb +14 -15
- data/lib/fetchers/local.rb +6 -10
- data/lib/fetchers/mock.rb +3 -5
- data/lib/fetchers/url.rb +42 -44
- data/lib/inspec.rb +23 -24
- data/lib/inspec/archive/tar.rb +2 -6
- data/lib/inspec/archive/zip.rb +3 -7
- data/lib/inspec/backend.rb +8 -9
- data/lib/inspec/base_cli.rb +64 -65
- data/lib/inspec/cached_fetcher.rb +2 -3
- data/lib/inspec/cli.rb +136 -97
- data/lib/inspec/config.rb +71 -61
- data/lib/inspec/control_eval_context.rb +22 -18
- data/lib/inspec/dependencies/cache.rb +2 -3
- data/lib/inspec/dependencies/dependency_set.rb +2 -3
- data/lib/inspec/dependencies/lockfile.rb +8 -9
- data/lib/inspec/dependencies/requirement.rb +7 -8
- data/lib/inspec/dependencies/resolver.rb +5 -7
- data/lib/inspec/describe.rb +2 -6
- data/lib/inspec/dist.rb +20 -0
- data/lib/inspec/dsl.rb +4 -7
- data/lib/inspec/dsl_shared.rb +1 -2
- data/lib/inspec/env_printer.rb +11 -12
- data/lib/inspec/errors.rb +0 -4
- data/lib/inspec/exceptions.rb +0 -1
- data/lib/inspec/expect.rb +5 -8
- data/lib/inspec/fetcher.rb +7 -10
- data/lib/inspec/file_provider.rb +24 -24
- data/lib/inspec/formatters.rb +3 -3
- data/lib/inspec/formatters/base.rb +8 -8
- data/lib/inspec/globals.rb +2 -2
- data/lib/inspec/impact.rb +5 -7
- data/lib/inspec/input_registry.rb +84 -33
- data/lib/inspec/library_eval_context.rb +3 -6
- data/lib/inspec/log.rb +1 -5
- data/lib/inspec/metadata.rb +17 -16
- data/lib/inspec/method_source.rb +5 -9
- data/lib/inspec/objects.rb +10 -12
- data/lib/inspec/objects/control.rb +7 -9
- data/lib/inspec/objects/describe.rb +9 -11
- data/lib/inspec/objects/each_loop.rb +1 -3
- data/lib/inspec/objects/input.rb +24 -26
- data/lib/inspec/objects/list.rb +4 -6
- data/lib/inspec/objects/or_test.rb +2 -4
- data/lib/inspec/objects/ruby_helper.rb +3 -5
- data/lib/inspec/objects/tag.rb +0 -2
- data/lib/inspec/objects/test.rb +9 -11
- data/lib/inspec/objects/value.rb +3 -5
- data/lib/inspec/plugin/v1.rb +2 -2
- data/lib/inspec/plugin/v1/plugin_types/cli.rb +1 -5
- data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +2 -5
- data/lib/inspec/plugin/v1/plugin_types/resource.rb +4 -6
- data/lib/inspec/plugin/v1/plugin_types/secret.rb +1 -5
- data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +1 -5
- data/lib/inspec/plugin/v1/plugins.rb +15 -19
- data/lib/inspec/plugin/v1/registry.rb +0 -4
- data/lib/inspec/plugin/v2.rb +8 -8
- data/lib/inspec/plugin/v2/activator.rb +1 -1
- data/lib/inspec/plugin/v2/config_file.rb +6 -6
- data/lib/inspec/plugin/v2/filter.rb +13 -13
- data/lib/inspec/plugin/v2/installer.rb +36 -24
- data/lib/inspec/plugin/v2/loader.rb +28 -28
- data/lib/inspec/plugin/v2/plugin_base.rb +15 -2
- data/lib/inspec/plugin/v2/plugin_types/cli.rb +5 -5
- data/lib/inspec/plugin/v2/plugin_types/input.rb +34 -0
- data/lib/inspec/plugin/v2/plugin_types/mock.rb +1 -1
- data/lib/inspec/plugin/v2/registry.rb +7 -7
- data/lib/inspec/polyfill.rb +0 -3
- data/lib/inspec/profile.rb +55 -63
- data/lib/inspec/profile_context.rb +27 -30
- data/lib/inspec/profile_vendor.rb +6 -9
- data/lib/inspec/reporters.rb +24 -24
- data/lib/inspec/reporters/automate.rb +17 -19
- data/lib/inspec/reporters/base.rb +1 -1
- data/lib/inspec/reporters/cli.rb +88 -91
- data/lib/inspec/reporters/json.rb +2 -4
- data/lib/inspec/reporters/json_automate.rb +1 -3
- data/lib/inspec/reporters/json_min.rb +1 -3
- data/lib/inspec/reporters/junit.rb +26 -28
- data/lib/inspec/reporters/yaml.rb +1 -3
- data/lib/inspec/require_loader.rb +0 -4
- data/lib/inspec/resource.rb +4 -125
- data/lib/inspec/resources.rb +121 -0
- data/lib/{resources → inspec/resources}/aide_conf.rb +24 -25
- data/lib/{resources → inspec/resources}/apache.rb +13 -14
- data/lib/{resources → inspec/resources}/apache_conf.rb +16 -17
- data/lib/{resources → inspec/resources}/apt.rb +17 -17
- data/lib/{resources → inspec/resources}/audit_policy.rb +7 -6
- data/lib/{resources → inspec/resources}/auditd.rb +62 -64
- data/lib/{resources → inspec/resources}/auditd_conf.rb +7 -8
- data/lib/{resources → inspec/resources}/bash.rb +6 -8
- data/lib/{resources → inspec/resources}/bond.rb +15 -14
- data/lib/{resources → inspec/resources}/bridge.rb +8 -8
- data/lib/{resources → inspec/resources}/chocolatey_package.rb +10 -8
- data/lib/{resources → inspec/resources}/command.rb +11 -10
- data/lib/{resources → inspec/resources}/cpan.rb +12 -12
- data/lib/{resources → inspec/resources}/cran.rb +9 -9
- data/lib/{resources → inspec/resources}/crontab.rb +47 -48
- data/lib/{resources → inspec/resources}/csv.rb +5 -5
- data/lib/{resources → inspec/resources}/dh_params.rb +5 -7
- data/lib/{resources → inspec/resources}/directory.rb +5 -7
- data/lib/{resources → inspec/resources}/docker.rb +63 -63
- data/lib/{resources → inspec/resources}/docker_container.rb +6 -6
- data/lib/{resources → inspec/resources}/docker_image.rb +9 -9
- data/lib/{resources → inspec/resources}/docker_object.rb +8 -13
- data/lib/{resources → inspec/resources}/docker_plugin.rb +6 -6
- data/lib/{resources → inspec/resources}/docker_service.rb +7 -7
- data/lib/{resources → inspec/resources}/elasticsearch.rb +40 -42
- data/lib/{resources → inspec/resources}/etc_fstab.rb +23 -24
- data/lib/{resources → inspec/resources}/etc_group.rb +26 -27
- data/lib/{resources → inspec/resources}/etc_hosts.rb +11 -13
- data/lib/{resources → inspec/resources}/etc_hosts_allow_deny.rb +25 -27
- data/lib/{resources → inspec/resources}/file.rb +80 -79
- data/lib/{resources → inspec/resources}/filesystem.rb +20 -15
- data/lib/{resources → inspec/resources}/firewalld.rb +26 -26
- data/lib/{resources → inspec/resources}/gem.rb +12 -12
- data/lib/{resources → inspec/resources}/groups.rb +28 -27
- data/lib/{resources → inspec/resources}/grub_conf.rb +46 -48
- data/lib/{resources → inspec/resources}/host.rb +31 -29
- data/lib/{resources → inspec/resources}/http.rb +24 -24
- data/lib/{resources → inspec/resources}/iis_app.rb +6 -7
- data/lib/{resources → inspec/resources}/iis_app_pool.rb +21 -19
- data/lib/{resources → inspec/resources}/iis_site.rb +17 -15
- data/lib/{resources → inspec/resources}/inetd_conf.rb +9 -10
- data/lib/{resources → inspec/resources}/ini.rb +7 -8
- data/lib/{resources → inspec/resources}/interface.rb +30 -30
- data/lib/{resources → inspec/resources}/iptables.rb +8 -8
- data/lib/{resources → inspec/resources}/json.rb +8 -10
- data/lib/{resources → inspec/resources}/kernel_module.rb +15 -15
- data/lib/{resources → inspec/resources}/kernel_parameter.rb +8 -8
- data/lib/{resources → inspec/resources}/key_rsa.rb +8 -10
- data/lib/{resources → inspec/resources}/ksh.rb +6 -8
- data/lib/{resources → inspec/resources}/limits_conf.rb +8 -9
- data/lib/{resources/login_def.rb → inspec/resources/login_defs.rb} +9 -10
- data/lib/{resources → inspec/resources}/mount.rb +6 -8
- data/lib/{resources → inspec/resources}/mssql_session.rb +16 -18
- data/lib/inspec/resources/mysql.rb +81 -0
- data/lib/{resources → inspec/resources}/mysql_conf.rb +13 -14
- data/lib/{resources → inspec/resources}/mysql_session.rb +16 -16
- data/lib/{resources → inspec/resources}/nginx.rb +16 -17
- data/lib/{resources → inspec/resources}/nginx_conf.rb +26 -27
- data/lib/{resources → inspec/resources}/npm.rb +9 -10
- data/lib/{resources → inspec/resources}/ntp_conf.rb +9 -10
- data/lib/{resources → inspec/resources}/oneget.rb +8 -8
- data/lib/{resources → inspec/resources}/oracledb_session.rb +33 -34
- data/lib/{resources → inspec/resources}/os.rb +6 -8
- data/lib/{resources → inspec/resources}/os_env.rb +11 -12
- data/lib/{resources → inspec/resources}/package.rb +66 -65
- data/lib/{resources → inspec/resources}/packages.rb +13 -13
- data/lib/{resources → inspec/resources}/parse_config.rb +8 -8
- data/lib/{resources → inspec/resources}/passwd.rb +18 -19
- data/lib/{resources → inspec/resources}/pip.rb +19 -19
- data/lib/{resources → inspec/resources}/platform.rb +9 -11
- data/lib/{resources → inspec/resources}/port.rb +134 -136
- data/lib/{resources → inspec/resources}/postgres.rb +40 -32
- data/lib/{resources → inspec/resources}/postgres_conf.rb +17 -17
- data/lib/{resources → inspec/resources}/postgres_hba_conf.rb +21 -23
- data/lib/{resources → inspec/resources}/postgres_ident_conf.rb +12 -14
- data/lib/{resources → inspec/resources}/postgres_session.rb +8 -9
- data/lib/{resources → inspec/resources}/powershell.rb +17 -13
- data/lib/{resources → inspec/resources}/processes.rb +29 -29
- data/lib/{resources/rabbitmq_conf.rb → inspec/resources/rabbitmq_config.rb} +10 -11
- data/lib/{resources → inspec/resources}/registry_key.rb +14 -14
- data/lib/inspec/resources/script.rb +1 -0
- data/lib/{resources → inspec/resources}/security_identifier.rb +11 -10
- data/lib/{resources → inspec/resources}/security_policy.rb +59 -58
- data/lib/{resources → inspec/resources}/service.rb +74 -75
- data/lib/{resources → inspec/resources}/shadow.rb +44 -45
- data/lib/{resources/ssh_conf.rb → inspec/resources/ssh_config.rb} +16 -17
- data/lib/{resources → inspec/resources}/ssl.rb +28 -29
- data/lib/inspec/resources/sys_info.rb +30 -0
- data/lib/{resources → inspec/resources}/toml.rb +5 -7
- data/lib/{resources → inspec/resources}/users.rb +65 -65
- data/lib/{resources → inspec/resources}/vbscript.rb +8 -9
- data/lib/{resources → inspec/resources}/virtualization.rb +60 -62
- data/lib/{resources → inspec/resources}/windows_feature.rb +9 -9
- data/lib/{resources → inspec/resources}/windows_hotfix.rb +5 -5
- data/lib/{resources → inspec/resources}/windows_task.rb +16 -15
- data/lib/{resources → inspec/resources}/wmi.rb +7 -8
- data/lib/{resources → inspec/resources}/x509_certificate.rb +9 -11
- data/lib/{resources/xinetd.rb → inspec/resources/xinetd_conf.rb} +27 -29
- data/lib/{resources → inspec/resources}/xml.rb +7 -7
- data/lib/{resources → inspec/resources}/yaml.rb +5 -6
- data/lib/{resources → inspec/resources}/yum.rb +10 -10
- data/lib/{resources → inspec/resources}/zfs_dataset.rb +6 -6
- data/lib/{resources → inspec/resources}/zfs_pool.rb +4 -4
- data/lib/inspec/rspec_extensions.rb +24 -8
- data/lib/inspec/rule.rb +14 -15
- data/lib/inspec/runner.rb +28 -28
- data/lib/inspec/runner_mock.rb +1 -5
- data/lib/inspec/runner_rspec.rb +18 -20
- data/lib/inspec/runtime_profile.rb +2 -5
- data/lib/inspec/schema.rb +142 -143
- data/lib/inspec/secrets.rb +3 -7
- data/lib/inspec/secrets/yaml.rb +3 -5
- data/lib/inspec/shell.rb +11 -15
- data/lib/inspec/shell_detector.rb +6 -7
- data/lib/inspec/source_reader.rb +4 -8
- data/lib/inspec/ui.rb +33 -39
- data/lib/inspec/ui_table_helper.rb +12 -0
- data/lib/{utils → inspec/utils}/command_wrapper.rb +4 -8
- data/lib/{utils → inspec/utils}/convert.rb +0 -4
- data/lib/{utils → inspec/utils}/database_helpers.rb +4 -8
- data/lib/inspec/utils/deprecation.rb +6 -0
- data/lib/{utils → inspec/utils}/deprecation/config_file.rb +19 -19
- data/lib/{utils → inspec/utils}/deprecation/deprecator.rb +12 -12
- data/lib/{utils → inspec/utils}/deprecation/errors.rb +1 -1
- data/lib/{utils → inspec/utils}/deprecation/global_method.rb +2 -2
- data/lib/{utils → inspec/utils}/enumerable_delegation.rb +0 -2
- data/lib/{utils → inspec/utils}/erlang_parser.rb +61 -65
- data/lib/{utils → inspec/utils}/file_reader.rb +1 -2
- data/lib/{utils → inspec/utils}/filter.rb +30 -33
- data/lib/{utils → inspec/utils}/filter_array.rb +0 -2
- data/lib/{utils → inspec/utils}/find_files.rb +9 -12
- data/lib/{utils → inspec/utils}/hash.rb +1 -5
- data/lib/inspec/utils/json_log.rb +15 -0
- data/lib/inspec/utils/latest_version.rb +13 -0
- data/lib/{utils → inspec/utils}/modulator.rb +0 -3
- data/lib/{utils → inspec/utils}/nginx_parser.rb +31 -35
- data/lib/{utils → inspec/utils}/object_traversal.rb +0 -3
- data/lib/{utils → inspec/utils}/parser.rb +45 -45
- data/lib/{utils → inspec/utils}/pkey_reader.rb +4 -2
- data/lib/{utils → inspec/utils}/simpleconfig.rb +8 -10
- data/lib/{utils → inspec/utils}/spdx.rb +1 -4
- data/lib/{utils → inspec/utils}/spdx.txt +0 -0
- data/lib/inspec/utils/telemetry.rb +3 -3
- data/lib/inspec/utils/telemetry/collector.rb +30 -9
- data/lib/inspec/utils/telemetry/data_series.rb +3 -1
- data/lib/inspec/utils/telemetry/global_methods.rb +1 -1
- data/lib/inspec/version.rb +1 -1
- data/lib/matchers/matchers.rb +22 -25
- data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +1 -1
- data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +52 -45
- data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +18 -16
- data/lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb +12 -11
- data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +1 -1
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +73 -73
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +66 -62
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +59 -57
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +11 -11
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +20 -22
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +2 -4
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +30 -27
- data/lib/plugins/inspec-compliance/test/functional/inspec_compliance_test.rb +12 -14
- data/lib/plugins/inspec-compliance/test/integration/default/cli.rb +39 -41
- data/lib/plugins/inspec-compliance/test/unit/api/login_test.rb +64 -64
- data/lib/plugins/inspec-compliance/test/unit/api_test.rb +157 -156
- data/lib/plugins/inspec-compliance/test/unit/target_test.rb +85 -85
- data/lib/plugins/inspec-habitat/Berksfile +2 -2
- data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +1 -1
- data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +15 -13
- data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +64 -63
- data/lib/plugins/inspec-habitat/templates/habitat/hooks/run.erb +3 -3
- data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +11 -11
- data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/Berksfile +1 -1
- data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/metadata.rb +8 -8
- data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/recipes/default.rb +17 -17
- data/lib/plugins/inspec-habitat/test/functional/inspec_habitat_test.rb +9 -8
- data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/controls/inspec_habitat.rb +14 -14
- data/lib/plugins/inspec-habitat/test/support/example_profile/controls/example.rb +4 -4
- data/lib/plugins/inspec-habitat/test/unit/profile_test.rb +42 -41
- data/lib/plugins/inspec-init/lib/inspec-init.rb +1 -1
- data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +6 -8
- data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +72 -74
- data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +9 -11
- data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +4 -4
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -1
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +0 -2
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -2
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -2
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -2
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -2
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/inspec_plugin_template_test.rb +5 -5
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/helper.rb +1 -3
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb +2 -2
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb +2 -2
- data/lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb +10 -11
- data/lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb +4 -5
- data/lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb +10 -11
- data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +6 -7
- data/lib/plugins/inspec-init/test/functional/inspec_init_plugin_test.rb +51 -50
- data/lib/plugins/inspec-init/test/functional/inspec_init_profile_test.rb +35 -33
- data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +1 -2
- data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +72 -70
- data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +1 -1
- data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name.rb +1 -1
- data/lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb +281 -271
- data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +41 -41
- data/lib/plugins/inspec-plugin-manager-cli/test/unit/plugin_def_test.rb +25 -6
- data/lib/plugins/shared/core_plugin_test_helper.rb +43 -38
- data/lib/resource_support/aws.rb +67 -67
- data/lib/resource_support/aws/aws_plural_resource_mixin.rb +4 -1
- data/lib/resource_support/aws/aws_resource_mixin.rb +4 -3
- data/lib/resource_support/aws/aws_singular_resource_mixin.rb +4 -1
- data/lib/resources/aws/aws_billing_report.rb +15 -8
- data/lib/resources/aws/aws_billing_reports.rb +10 -7
- data/lib/resources/aws/aws_cloudtrail_trail.rb +9 -5
- data/lib/resources/aws/aws_cloudtrail_trails.rb +9 -5
- data/lib/resources/aws/aws_cloudwatch_alarm.rb +9 -5
- data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +12 -8
- data/lib/resources/aws/aws_config_delivery_channel.rb +13 -9
- data/lib/resources/aws/aws_config_recorder.rb +10 -6
- data/lib/resources/aws/aws_ebs_volume.rb +12 -8
- data/lib/resources/aws/aws_ebs_volumes.rb +9 -5
- data/lib/resources/aws/aws_ec2_instance.rb +14 -11
- data/lib/resources/aws/aws_ec2_instances.rb +9 -5
- data/lib/resources/aws/aws_ecs_cluster.rb +11 -7
- data/lib/resources/aws/aws_eks_cluster.rb +13 -9
- data/lib/resources/aws/aws_elb.rb +9 -5
- data/lib/resources/aws/aws_elbs.rb +9 -5
- data/lib/resources/aws/aws_flow_log.rb +17 -13
- data/lib/resources/aws/aws_iam_access_key.rb +15 -11
- data/lib/resources/aws/aws_iam_access_keys.rb +19 -15
- data/lib/resources/aws/aws_iam_group.rb +9 -5
- data/lib/resources/aws/aws_iam_groups.rb +9 -5
- data/lib/resources/aws/aws_iam_password_policy.rb +13 -10
- data/lib/resources/aws/aws_iam_policies.rb +9 -5
- data/lib/resources/aws/aws_iam_policy.rb +16 -12
- data/lib/resources/aws/aws_iam_role.rb +9 -5
- data/lib/resources/aws/aws_iam_root_user.rb +12 -8
- data/lib/resources/aws/aws_iam_user.rb +12 -12
- data/lib/resources/aws/aws_iam_users.rb +10 -10
- data/lib/resources/aws/aws_kms_key.rb +12 -8
- data/lib/resources/aws/aws_kms_keys.rb +9 -5
- data/lib/resources/aws/aws_rds_instance.rb +11 -8
- data/lib/resources/aws/aws_route_table.rb +11 -7
- data/lib/resources/aws/aws_route_tables.rb +10 -6
- data/lib/resources/aws/aws_s3_bucket.rb +14 -11
- data/lib/resources/aws/aws_s3_bucket_object.rb +12 -9
- data/lib/resources/aws/aws_s3_buckets.rb +9 -7
- data/lib/resources/aws/aws_security_group.rb +16 -12
- data/lib/resources/aws/aws_security_groups.rb +12 -8
- data/lib/resources/aws/aws_sns_subscription.rb +15 -11
- data/lib/resources/aws/aws_sns_topic.rb +10 -6
- data/lib/resources/aws/aws_sns_topics.rb +9 -5
- data/lib/resources/aws/aws_sqs_queue.rb +18 -14
- data/lib/resources/aws/aws_subnet.rb +11 -7
- data/lib/resources/aws/aws_subnets.rb +9 -5
- data/lib/resources/aws/aws_vpc.rb +10 -6
- data/lib/resources/aws/aws_vpcs.rb +9 -5
- data/lib/resources/azure/azure_backend.rb +20 -18
- data/lib/resources/azure/azure_generic_resource.rb +13 -15
- data/lib/resources/azure/azure_resource_group.rb +17 -19
- data/lib/resources/azure/azure_virtual_machine.rb +6 -8
- data/lib/resources/azure/azure_virtual_machine_data_disk.rb +6 -8
- data/lib/source_readers/flat.rb +6 -10
- data/lib/source_readers/inspec.rb +8 -12
- metadata +141 -142
- data/lib/resources/mysql.rb +0 -82
- data/lib/resources/sys_info.rb +0 -28
- data/lib/utils/deprecation.rb +0 -6
- data/lib/utils/json_log.rb +0 -18
- data/lib/utils/latest_version.rb +0 -22
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "inspec/utils/deprecation/config_file"
|
|
2
|
+
require "inspec/log"
|
|
3
3
|
|
|
4
4
|
module Inspec
|
|
5
5
|
module Deprecation
|
|
@@ -17,7 +17,7 @@ module Inspec
|
|
|
17
17
|
assembled_message = assemble_message(message, group, opts)
|
|
18
18
|
|
|
19
19
|
action = group[:action] || :warn
|
|
20
|
-
action_method = (
|
|
20
|
+
action_method = ("handle_" + action.to_s + "_action").to_sym
|
|
21
21
|
send(action_method, group_name.to_sym, assembled_message, group)
|
|
22
22
|
end
|
|
23
23
|
|
|
@@ -44,24 +44,24 @@ module Inspec
|
|
|
44
44
|
# rspec-core surrounds these.
|
|
45
45
|
|
|
46
46
|
# First, purge the deprecation system frames
|
|
47
|
-
stack.reject! { |frame| frame.path && frame.path =~ %r{lib/utils/deprecation} }
|
|
47
|
+
stack.reject! { |frame| frame.path && frame.path =~ %r{lib/inspec/utils/deprecation} }
|
|
48
48
|
# Next, purge all RSpec entries (at least rspec-core, rspec-support, rspec-its).
|
|
49
49
|
stack.reject! { |frame| frame.path && frame.path =~ %r{rspec-.+/lib/rspec} }
|
|
50
50
|
# Now look for the frame that includes load_with_context.
|
|
51
|
-
used_at ||= stack.detect { |frame| frame.label.include?
|
|
51
|
+
used_at ||= stack.detect { |frame| frame.label.include? "load_with_context" }
|
|
52
52
|
|
|
53
53
|
opts[:used_at_stack_frame] = used_at if used_at
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def assemble_message(message, group, opts)
|
|
57
|
-
prefix = group.prefix ||
|
|
58
|
-
suffix = group.suffix ||
|
|
59
|
-
prefix +=
|
|
60
|
-
suffix =
|
|
57
|
+
prefix = group.prefix || ""
|
|
58
|
+
suffix = group.suffix || ""
|
|
59
|
+
prefix += " " unless prefix.empty?
|
|
60
|
+
suffix = " " + suffix unless suffix.empty?
|
|
61
61
|
|
|
62
|
-
suffix += (
|
|
62
|
+
suffix += (" (used at " + opts[:used_at_stack_frame].path + ":" + opts[:used_at_stack_frame].lineno.to_s + ")") if opts.key?(:used_at_stack_frame)
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
"DEPRECATION: " + prefix + message + suffix
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def called_from_control?
|
|
@@ -70,7 +70,7 @@ module Inspec
|
|
|
70
70
|
|
|
71
71
|
# Within a control block, that is actually an RSpec:ExampleGroup
|
|
72
72
|
stack.each do |frame|
|
|
73
|
-
return true if frame.path.end_with?(
|
|
73
|
+
return true if frame.path.end_with?("rspec/core/example_group.rb")
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
false
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "inspec/utils/deprecation/deprecator"
|
|
2
2
|
|
|
3
3
|
module Inspec
|
|
4
|
-
def self.deprecate(group, msg =
|
|
4
|
+
def self.deprecate(group, msg = "", opts = {})
|
|
5
5
|
config_io = opts.delete(:config_io)
|
|
6
6
|
deprecator = Inspec::Deprecation::Deprecator.new(config_io: config_io)
|
|
7
7
|
deprecator.handle_deprecation(group, msg, opts)
|
|
@@ -1,109 +1,105 @@
|
|
|
1
|
-
|
|
2
|
-
# author: Dominik Richter
|
|
3
|
-
# author: Christoph Hartmann
|
|
4
|
-
|
|
5
|
-
require 'parslet'
|
|
1
|
+
require "parslet"
|
|
6
2
|
|
|
7
3
|
class ErlangParser < Parslet::Parser
|
|
8
4
|
root :outermost
|
|
9
5
|
# only designed for rabbitmq config files for now:
|
|
10
6
|
rule(:outermost) { filler? >> array.maybe >> dot.maybe }
|
|
11
7
|
|
|
12
|
-
rule(:exp)
|
|
8
|
+
rule(:exp) do
|
|
13
9
|
(tuple | array | binary | string | bool | identifier | float | integer) >> filler?
|
|
14
|
-
|
|
10
|
+
end
|
|
15
11
|
|
|
16
|
-
rule(:array)
|
|
17
|
-
str(
|
|
12
|
+
rule(:array) do
|
|
13
|
+
str("[") >> filler? >> (
|
|
18
14
|
exp.repeat(1) >>
|
|
19
15
|
(comma >> exp).repeat
|
|
20
|
-
).maybe.as(:array) >> str(
|
|
21
|
-
|
|
16
|
+
).maybe.as(:array) >> str("]") >> filler?
|
|
17
|
+
end
|
|
22
18
|
|
|
23
|
-
rule(:tuple)
|
|
24
|
-
str(
|
|
19
|
+
rule(:tuple) do
|
|
20
|
+
str("{") >> filler? >> (
|
|
25
21
|
exp.repeat(1) >> filler? >>
|
|
26
22
|
(comma >> exp).repeat
|
|
27
|
-
).maybe.as(:tuple) >> str(
|
|
28
|
-
|
|
23
|
+
).maybe.as(:tuple) >> str("}") >> filler?
|
|
24
|
+
end
|
|
29
25
|
|
|
30
26
|
rule(:filler?) { space.repeat }
|
|
31
27
|
rule(:space) { match('\s+') | match["\n"] | comment }
|
|
32
28
|
|
|
33
|
-
rule(:comment) { str(
|
|
34
|
-
rule(:comma) { str(
|
|
35
|
-
rule(:dot) { str(
|
|
36
|
-
rule(:bool) { str(
|
|
29
|
+
rule(:comment) { str("%") >> (match["\n\r"].absent? >> any).repeat }
|
|
30
|
+
rule(:comma) { str(",") >> filler? }
|
|
31
|
+
rule(:dot) { str(".") >> filler? }
|
|
32
|
+
rule(:bool) { str("true").as(:bool) | str("false").as(:bool) }
|
|
37
33
|
|
|
38
|
-
rule(:identifier)
|
|
39
|
-
(match(
|
|
40
|
-
|
|
34
|
+
rule(:identifier) do
|
|
35
|
+
(match("[a-zA-Z]") >> match("[a-zA-Z0-9_]").repeat).as(:identifier) >> filler?
|
|
36
|
+
end
|
|
41
37
|
|
|
42
|
-
rule(:float)
|
|
38
|
+
rule(:float) do
|
|
43
39
|
(
|
|
44
40
|
integer >> (
|
|
45
|
-
str(
|
|
46
|
-
str(
|
|
41
|
+
str(".") >> match("[0-9]").repeat(1) |
|
|
42
|
+
str("e") >> match("[0-9]").repeat(1)
|
|
47
43
|
).as(:e)
|
|
48
44
|
).as(:float) >> filler?
|
|
49
|
-
|
|
45
|
+
end
|
|
50
46
|
|
|
51
|
-
rule(:integer)
|
|
52
|
-
((str(
|
|
53
|
-
|
|
47
|
+
rule(:integer) do
|
|
48
|
+
((str("+") | str("-")).maybe >> match("[0-9]").repeat(1)).as(:integer) >> filler?
|
|
49
|
+
end
|
|
54
50
|
|
|
55
51
|
rule(:string) { stringS | stringD }
|
|
56
52
|
|
|
57
|
-
rule(:stringS)
|
|
53
|
+
rule(:stringS) do
|
|
58
54
|
str("'") >> (
|
|
59
55
|
str('\\') >> any | str("'").absent? >> any
|
|
60
56
|
).repeat.as(:string) >> str("'") >> filler?
|
|
61
|
-
|
|
57
|
+
end
|
|
62
58
|
|
|
63
|
-
rule(:stringD)
|
|
59
|
+
rule(:stringD) do
|
|
64
60
|
str('"') >> (
|
|
65
61
|
str('\\') >> any | str('"').absent? >> any
|
|
66
62
|
).repeat.as(:string) >> str('"') >> filler?
|
|
67
|
-
|
|
63
|
+
end
|
|
68
64
|
|
|
69
|
-
rule(:binary_item)
|
|
65
|
+
rule(:binary_item) do
|
|
70
66
|
(string | integer) >>
|
|
71
|
-
(str(
|
|
72
|
-
(str(
|
|
67
|
+
(str(":") >> integer).maybe.as(:size) >>
|
|
68
|
+
(str("/") >> identifier).maybe.as(:type) >>
|
|
73
69
|
filler?
|
|
74
|
-
|
|
70
|
+
end
|
|
75
71
|
|
|
76
|
-
rule(:binary)
|
|
77
|
-
str(
|
|
72
|
+
rule(:binary) do
|
|
73
|
+
str("<<") >> filler? >> (
|
|
78
74
|
binary_item.repeat(1) >>
|
|
79
75
|
(comma >> binary_item).repeat
|
|
80
|
-
).maybe.as(:binary) >> str(
|
|
81
|
-
|
|
76
|
+
).maybe.as(:binary) >> str(">>") >> filler?
|
|
77
|
+
end
|
|
82
78
|
end
|
|
83
79
|
|
|
84
80
|
class ErlangBitstream
|
|
85
81
|
def initialize
|
|
86
82
|
@data = [] # a stream of 8-bit numbers
|
|
87
|
-
@cur_bits =
|
|
83
|
+
@cur_bits = "" # a string of binary bits 10010010...
|
|
88
84
|
end
|
|
89
85
|
|
|
90
86
|
TYPES = {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
"integer" => 8,
|
|
88
|
+
"float" => 8 * 8,
|
|
89
|
+
"utf8" => 8,
|
|
90
|
+
"utf16" => 8 * 2,
|
|
91
|
+
"utf32" => 8 * 4,
|
|
96
92
|
}.freeze
|
|
97
93
|
|
|
98
94
|
def bit_size(size, type)
|
|
99
|
-
raise
|
|
95
|
+
raise "Cannot specify size and type at the same time." if !type.nil? && !size.nil?
|
|
100
96
|
return (size || 8).to_i if type.nil?
|
|
101
97
|
TYPES[type] || raise("Cannot handle binary-stream type #{type}")
|
|
102
98
|
end
|
|
103
99
|
|
|
104
100
|
def add(i)
|
|
105
101
|
if i[:integer].nil? && i[:string].nil?
|
|
106
|
-
raise
|
|
102
|
+
raise "No data provided, internal error for binary-stream processing!"
|
|
107
103
|
end
|
|
108
104
|
s = bit_size(i[:size], i[:type])
|
|
109
105
|
unless i[:string].nil?
|
|
@@ -112,17 +108,17 @@ class ErlangBitstream
|
|
|
112
108
|
add_int(i[:integer], s)
|
|
113
109
|
end
|
|
114
110
|
rescue RuntimeError => e
|
|
115
|
-
raise
|
|
111
|
+
raise "Error processing Erlang bit string "\
|
|
116
112
|
"'#{i[:string] || i[:integer]}:#{i[:size]}/#{i[:type]}'. #{e.message}"
|
|
117
113
|
end
|
|
118
114
|
|
|
119
115
|
def str2int(s, type)
|
|
120
116
|
case type
|
|
121
|
-
when
|
|
122
|
-
when
|
|
123
|
-
when
|
|
124
|
-
when
|
|
125
|
-
else s.split(
|
|
117
|
+
when "utf8" then s.encode("utf-8").unpack("C*")
|
|
118
|
+
when "utf16" then s.encode("utf-16").unpack("C*").drop(2)
|
|
119
|
+
when "utf32" then s.encode("utf-32").unpack("C*").drop(4)
|
|
120
|
+
when "integer", "float" then raise "Cannot handle bit string as type #{type}"
|
|
121
|
+
else s.split("").map { |x| x.ord & 0xff }
|
|
126
122
|
end
|
|
127
123
|
end
|
|
128
124
|
|
|
@@ -141,11 +137,11 @@ class ErlangBitstream
|
|
|
141
137
|
@cur_bits = b.last
|
|
142
138
|
end
|
|
143
139
|
|
|
144
|
-
def value(encoding =
|
|
140
|
+
def value(encoding = "utf-8")
|
|
145
141
|
# fill in the rest
|
|
146
|
-
rest =
|
|
142
|
+
rest = "0" * (8 - @cur_bits.length) + @cur_bits
|
|
147
143
|
arr = @data + [rest.to_i(2)]
|
|
148
|
-
s = arr.pack(
|
|
144
|
+
s = arr.pack("C*")
|
|
149
145
|
s.force_encoding(encoding) unless encoding.nil?
|
|
150
146
|
s
|
|
151
147
|
end
|
|
@@ -162,17 +158,17 @@ class ErlangTransform < Parslet::Transform
|
|
|
162
158
|
end
|
|
163
159
|
|
|
164
160
|
rule(string: simple(:x)) { x.to_s }
|
|
165
|
-
rule(string: []) {
|
|
161
|
+
rule(string: []) { "" }
|
|
166
162
|
rule(integer: simple(:x)) { x.to_i }
|
|
167
|
-
rule(float: { integer: simple(:a), e: simple(:b) }) { (a+b).to_f }
|
|
168
|
-
rule(bool:
|
|
169
|
-
rule(bool:
|
|
170
|
-
rule(binary: subtree(:x)) { x.nil? ?
|
|
163
|
+
rule(float: { integer: simple(:a), e: simple(:b) }) { (a + b).to_f }
|
|
164
|
+
rule(bool: "true") { true }
|
|
165
|
+
rule(bool: "false") { false }
|
|
166
|
+
rule(binary: subtree(:x)) { x.nil? ? "" : ErlangTransform.assemble_binary(x) }
|
|
171
167
|
rule(identifier: simple(:x)) { Identifier.new(x.to_s) }
|
|
172
168
|
rule(array: subtree(:x)) { Array(x) }
|
|
173
|
-
rule(tuple: subtree(:x))
|
|
169
|
+
rule(tuple: subtree(:x)) do
|
|
174
170
|
x.nil? ? Tuple.new : Tuple.new(x)
|
|
175
|
-
|
|
171
|
+
end
|
|
176
172
|
end
|
|
177
173
|
|
|
178
174
|
class ErlangConfigFile
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# author: Dominik Richter
|
|
3
|
-
# author: Stephan Renatus
|
|
4
|
-
# author: Christoph Hartmann
|
|
5
|
-
|
|
6
1
|
module FilterTable
|
|
7
2
|
# This is used as a sentinel value in custom property filtering
|
|
8
3
|
module NoCriteriaProvided; end
|
|
@@ -70,15 +65,15 @@ module FilterTable
|
|
|
70
65
|
|
|
71
66
|
def self.to_ruby(trace)
|
|
72
67
|
chain = trace.instance_variable_get(:@chain)
|
|
73
|
-
return
|
|
74
|
-
|
|
68
|
+
return "" if chain.empty?
|
|
69
|
+
" " + chain.map do |el|
|
|
75
70
|
m = el[0][0]
|
|
76
71
|
args = el[0].drop(1)
|
|
77
72
|
nxt = to_ruby(el[1])
|
|
78
73
|
next m.to_s + nxt if args.empty?
|
|
79
|
-
next m.to_s +
|
|
80
|
-
m.to_s +
|
|
81
|
-
end.join(
|
|
74
|
+
next m.to_s + " " + args[0].inspect + nxt if args.length == 1
|
|
75
|
+
m.to_s + "(" + args.map(&:inspect).join(", ") + ")" + nxt
|
|
76
|
+
end.join(" ")
|
|
82
77
|
end
|
|
83
78
|
end
|
|
84
79
|
|
|
@@ -117,7 +112,7 @@ module FilterTable
|
|
|
117
112
|
# against the struct.
|
|
118
113
|
if block_given?
|
|
119
114
|
# Perform the filtering.
|
|
120
|
-
filtered_raw_data = filtered_raw_data.find_all { |row_as_hash| create_eval_context_for_row(row_as_hash,
|
|
115
|
+
filtered_raw_data = filtered_raw_data.find_all { |row_as_hash| create_eval_context_for_row(row_as_hash, "").instance_eval(&block) }
|
|
121
116
|
# Try to interpret the block for updating the stringification.
|
|
122
117
|
src = Trace.new
|
|
123
118
|
# Swallow any exceptions raised here.
|
|
@@ -139,8 +134,8 @@ module FilterTable
|
|
|
139
134
|
|
|
140
135
|
def create_eval_context_for_row(*_)
|
|
141
136
|
raise "#{self.class} must not be used on its own. It must be inherited "\
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
"and the #create_eval_context_for_row method must be implemented. This is an internal "\
|
|
138
|
+
"error and should not happen."
|
|
144
139
|
end
|
|
145
140
|
|
|
146
141
|
def resource
|
|
@@ -153,7 +148,7 @@ module FilterTable
|
|
|
153
148
|
end
|
|
154
149
|
|
|
155
150
|
def entries
|
|
156
|
-
row_criteria_string = resource.to_s + criteria_string +
|
|
151
|
+
row_criteria_string = resource.to_s + criteria_string + " one entry"
|
|
157
152
|
raw_data.map do |row|
|
|
158
153
|
create_eval_context_for_row(row, row_criteria_string)
|
|
159
154
|
end
|
|
@@ -251,10 +246,10 @@ module FilterTable
|
|
|
251
246
|
return [] if current_raw_data.empty?
|
|
252
247
|
|
|
253
248
|
method_ref = case desired_value
|
|
254
|
-
when Float then
|
|
255
|
-
when Integer then
|
|
256
|
-
when Regexp then
|
|
257
|
-
else
|
|
249
|
+
when Float then :matches_float
|
|
250
|
+
when Integer then :matches_int
|
|
251
|
+
when Regexp then :matches_regex
|
|
252
|
+
else :matches
|
|
258
253
|
end
|
|
259
254
|
|
|
260
255
|
assume_symbolic_keyed_data = current_raw_data.first.keys.first.is_a? Symbol
|
|
@@ -262,14 +257,14 @@ module FilterTable
|
|
|
262
257
|
|
|
263
258
|
current_raw_data.find_all do |row|
|
|
264
259
|
next unless row.key?(field)
|
|
265
|
-
method_ref
|
|
260
|
+
send(method_ref, row[field], desired_value)
|
|
266
261
|
end
|
|
267
262
|
end
|
|
268
263
|
|
|
269
264
|
def decorate_symbols(thing)
|
|
270
265
|
return thing.map { |t| decorate_symbols(t) } if thing.is_a?(Array)
|
|
271
|
-
return
|
|
272
|
-
return thing +
|
|
266
|
+
return ":" + thing.to_s if thing.is_a? Symbol
|
|
267
|
+
return thing + " (String)" if thing.is_a? String
|
|
273
268
|
thing
|
|
274
269
|
end
|
|
275
270
|
end
|
|
@@ -289,13 +284,15 @@ module FilterTable
|
|
|
289
284
|
def install_filter_methods_on_resource(resource_class, raw_data_fetcher_method_name) # rubocop: disable Metrics/AbcSize, Metrics/MethodLength
|
|
290
285
|
# A context in which you can access the fields as accessors
|
|
291
286
|
non_block_struct_fields = @custom_properties.values.reject(&:block).map(&:field_name)
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
287
|
+
unless non_block_struct_fields.empty?
|
|
288
|
+
row_eval_context_type = Struct.new(*non_block_struct_fields.map(&:to_sym)) do
|
|
289
|
+
attr_accessor :criteria_string
|
|
290
|
+
attr_accessor :filter_table
|
|
291
|
+
def to_s
|
|
292
|
+
@criteria_string || super
|
|
293
|
+
end
|
|
297
294
|
end
|
|
298
|
-
end
|
|
295
|
+
end
|
|
299
296
|
|
|
300
297
|
properties_to_define = @custom_properties.map do |method_name, custom_property_structure|
|
|
301
298
|
{ method_name: method_name, method_body: create_custom_property_body(custom_property_structure) }
|
|
@@ -303,7 +300,7 @@ module FilterTable
|
|
|
303
300
|
|
|
304
301
|
# Define the filter table subclass
|
|
305
302
|
custom_properties = @custom_properties # We need a local var, not an instance var, for a closure below
|
|
306
|
-
table_class = Class.new(Table)
|
|
303
|
+
table_class = Class.new(Table) do
|
|
307
304
|
# Install each custom property onto the FilterTable subclass
|
|
308
305
|
properties_to_define.each do |property_info|
|
|
309
306
|
define_method property_info[:method_name], &property_info[:method_body]
|
|
@@ -314,14 +311,14 @@ module FilterTable
|
|
|
314
311
|
end
|
|
315
312
|
|
|
316
313
|
# Install a method that can wrap all the fields into a context with accessors
|
|
317
|
-
define_method :create_eval_context_for_row do |row_as_hash, criteria_string =
|
|
314
|
+
define_method :create_eval_context_for_row do |row_as_hash, criteria_string = ""|
|
|
318
315
|
return row_eval_context_type.new if row_as_hash.nil?
|
|
319
316
|
context = row_eval_context_type.new(*non_block_struct_fields.map { |field| row_as_hash[field] })
|
|
320
317
|
context.criteria_string = criteria_string
|
|
321
318
|
context.filter_table = self
|
|
322
319
|
context
|
|
323
320
|
end
|
|
324
|
-
|
|
321
|
+
end
|
|
325
322
|
|
|
326
323
|
# Now that the table class is defined and the row eval context struct is defined,
|
|
327
324
|
# extend the row eval context struct to support triggering population of lazy fields
|
|
@@ -356,11 +353,11 @@ module FilterTable
|
|
|
356
353
|
# the tests are run.
|
|
357
354
|
methods_to_install_on_resource_class = @filter_methods + @custom_properties.keys
|
|
358
355
|
methods_to_install_on_resource_class.each do |method_name|
|
|
359
|
-
resource_class.send(:define_method, method_name
|
|
356
|
+
resource_class.send(:define_method, method_name) do |*args, &block|
|
|
360
357
|
begin
|
|
361
358
|
# self here is the resource instance
|
|
362
|
-
filter_table_instance = table_class.new(self,
|
|
363
|
-
filter_table_instance.
|
|
359
|
+
filter_table_instance = table_class.new(self, send(raw_data_fetcher_method_name), " with")
|
|
360
|
+
filter_table_instance.send(method_name, *args, &block)
|
|
364
361
|
rescue Inspec::Exceptions::ResourceFailed, Inspec::Exceptions::ResourceSkipped => e
|
|
365
362
|
FilterTable::ExceptionCatcher.new(resource_class, e)
|
|
366
363
|
end
|