inspec 2.0.32 → 2.0.45
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/.rubocop.yml +101 -101
- data/CHANGELOG.md +2991 -2970
- data/Gemfile +55 -55
- data/LICENSE +14 -14
- data/MAINTAINERS.md +33 -33
- data/MAINTAINERS.toml +52 -52
- data/README.md +446 -437
- data/Rakefile +322 -322
- data/bin/inspec +12 -12
- data/docs/.gitignore +2 -2
- data/docs/README.md +40 -40
- data/docs/dsl_inspec.md +258 -258
- data/docs/dsl_resource.md +93 -93
- data/docs/glossary.md +99 -99
- data/docs/habitat.md +191 -191
- data/docs/inspec_and_friends.md +107 -107
- data/docs/matchers.md +169 -168
- data/docs/migration.md +293 -293
- data/docs/platforms.md +118 -118
- data/docs/plugin_kitchen_inspec.md +49 -49
- data/docs/profiles.md +370 -370
- data/docs/reporters.md +105 -105
- data/docs/resources/aide_conf.md.erb +75 -75
- data/docs/resources/apache.md.erb +67 -67
- data/docs/resources/apache_conf.md.erb +68 -68
- data/docs/resources/apt.md.erb +71 -71
- data/docs/resources/audit_policy.md.erb +47 -47
- data/docs/resources/auditd.md.erb +79 -79
- data/docs/resources/auditd_conf.md.erb +68 -68
- data/docs/resources/aws_cloudtrail_trail.md.erb +140 -140
- data/docs/resources/aws_cloudtrail_trails.md.erb +81 -81
- data/docs/resources/aws_cloudwatch_alarm.md.erb +86 -86
- data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +151 -151
- data/docs/resources/aws_config_recorder.md.erb +71 -71
- data/docs/resources/aws_ec2_instance.md.erb +106 -106
- data/docs/resources/aws_iam_access_key.md.erb +123 -123
- data/docs/resources/aws_iam_access_keys.md.erb +198 -198
- data/docs/resources/aws_iam_group.md.erb +46 -46
- data/docs/resources/aws_iam_groups.md.erb +43 -43
- data/docs/resources/aws_iam_password_policy.md.erb +76 -76
- data/docs/resources/aws_iam_policies.md.erb +82 -82
- data/docs/resources/aws_iam_policy.md.erb +144 -144
- data/docs/resources/aws_iam_role.md.erb +63 -63
- data/docs/resources/aws_iam_root_user.md.erb +58 -58
- data/docs/resources/aws_iam_user.md.erb +64 -64
- data/docs/resources/aws_iam_users.md.erb +89 -89
- data/docs/resources/aws_kms_keys.md.erb +84 -84
- data/docs/resources/aws_route_table.md.erb +47 -47
- data/docs/resources/aws_s3_bucket.md.erb +134 -134
- data/docs/resources/aws_security_group.md.erb +151 -151
- data/docs/resources/aws_security_groups.md.erb +91 -91
- data/docs/resources/aws_sns_topic.md.erb +63 -63
- data/docs/resources/aws_subnet.md.erb +133 -133
- data/docs/resources/aws_subnets.md.erb +126 -126
- data/docs/resources/aws_vpc.md.erb +120 -120
- data/docs/resources/aws_vpcs.md.erb +48 -48
- data/docs/resources/azure_generic_resource.md.erb +170 -170
- data/docs/resources/azure_resource_group.md.erb +284 -284
- data/docs/resources/azure_virtual_machine.md.erb +347 -347
- data/docs/resources/azure_virtual_machine_data_disk.md.erb +224 -224
- data/docs/resources/bash.md.erb +75 -75
- data/docs/resources/bond.md.erb +90 -90
- data/docs/resources/bridge.md.erb +57 -57
- data/docs/resources/bsd_service.md.erb +67 -67
- data/docs/resources/command.md.erb +138 -138
- data/docs/resources/cpan.md.erb +79 -79
- data/docs/resources/cran.md.erb +64 -64
- data/docs/resources/crontab.md.erb +89 -89
- data/docs/resources/csv.md.erb +54 -54
- data/docs/resources/dh_params.md.erb +205 -205
- data/docs/resources/directory.md.erb +30 -30
- data/docs/resources/docker.md.erb +219 -219
- data/docs/resources/docker_container.md.erb +104 -104
- data/docs/resources/docker_image.md.erb +94 -94
- data/docs/resources/docker_service.md.erb +114 -114
- data/docs/resources/elasticsearch.md.erb +242 -242
- data/docs/resources/etc_fstab.md.erb +125 -125
- data/docs/resources/etc_group.md.erb +75 -75
- data/docs/resources/etc_hosts.md.erb +78 -78
- data/docs/resources/etc_hosts_allow.md.erb +74 -74
- data/docs/resources/etc_hosts_deny.md.erb +74 -74
- data/docs/resources/file.md.erb +526 -515
- data/docs/resources/filesystem.md.erb +41 -41
- data/docs/resources/firewalld.md.erb +107 -107
- data/docs/resources/gem.md.erb +79 -79
- data/docs/resources/group.md.erb +61 -61
- data/docs/resources/grub_conf.md.erb +101 -101
- data/docs/resources/host.md.erb +86 -86
- data/docs/resources/http.md.erb +196 -196
- data/docs/resources/iis_app.md.erb +122 -122
- data/docs/resources/iis_site.md.erb +135 -135
- data/docs/resources/inetd_conf.md.erb +94 -94
- data/docs/resources/ini.md.erb +76 -76
- data/docs/resources/interface.md.erb +58 -58
- data/docs/resources/iptables.md.erb +64 -64
- data/docs/resources/json.md.erb +63 -63
- data/docs/resources/kernel_module.md.erb +120 -120
- data/docs/resources/kernel_parameter.md.erb +53 -53
- data/docs/resources/key_rsa.md.erb +85 -85
- data/docs/resources/launchd_service.md.erb +57 -57
- data/docs/resources/limits_conf.md.erb +75 -75
- data/docs/resources/login_def.md.erb +71 -71
- data/docs/resources/mount.md.erb +69 -69
- data/docs/resources/mssql_session.md.erb +60 -60
- data/docs/resources/mysql_conf.md.erb +99 -99
- data/docs/resources/mysql_session.md.erb +74 -74
- data/docs/resources/nginx.md.erb +79 -79
- data/docs/resources/nginx_conf.md.erb +128 -128
- data/docs/resources/npm.md.erb +60 -60
- data/docs/resources/ntp_conf.md.erb +60 -60
- data/docs/resources/oneget.md.erb +53 -53
- data/docs/resources/oracledb_session.md.erb +52 -52
- data/docs/resources/os.md.erb +141 -141
- data/docs/resources/os_env.md.erb +78 -78
- data/docs/resources/package.md.erb +120 -120
- data/docs/resources/packages.md.erb +67 -67
- data/docs/resources/parse_config.md.erb +103 -103
- data/docs/resources/parse_config_file.md.erb +138 -138
- data/docs/resources/passwd.md.erb +141 -141
- data/docs/resources/pip.md.erb +67 -67
- data/docs/resources/port.md.erb +137 -137
- data/docs/resources/postgres_conf.md.erb +79 -79
- data/docs/resources/postgres_hba_conf.md.erb +93 -93
- data/docs/resources/postgres_ident_conf.md.erb +76 -76
- data/docs/resources/postgres_session.md.erb +69 -69
- data/docs/resources/powershell.md.erb +102 -102
- data/docs/resources/processes.md.erb +109 -109
- data/docs/resources/rabbitmq_config.md.erb +41 -41
- data/docs/resources/registry_key.md.erb +158 -158
- data/docs/resources/runit_service.md.erb +57 -57
- data/docs/resources/security_policy.md.erb +47 -47
- data/docs/resources/service.md.erb +121 -121
- data/docs/resources/shadow.md.erb +146 -144
- data/docs/resources/ssh_config.md.erb +80 -80
- data/docs/resources/sshd_config.md.erb +83 -83
- data/docs/resources/ssl.md.erb +119 -119
- data/docs/resources/sys_info.md.erb +42 -42
- data/docs/resources/systemd_service.md.erb +57 -57
- data/docs/resources/sysv_service.md.erb +57 -57
- data/docs/resources/upstart_service.md.erb +57 -57
- data/docs/resources/user.md.erb +140 -140
- data/docs/resources/users.md.erb +127 -127
- data/docs/resources/vbscript.md.erb +55 -55
- data/docs/resources/virtualization.md.erb +57 -57
- data/docs/resources/windows_feature.md.erb +47 -47
- data/docs/resources/windows_hotfix.md.erb +53 -53
- data/docs/resources/windows_task.md.erb +95 -95
- data/docs/resources/wmi.md.erb +81 -81
- data/docs/resources/x509_certificate.md.erb +151 -151
- data/docs/resources/xinetd_conf.md.erb +156 -156
- data/docs/resources/xml.md.erb +85 -85
- data/docs/resources/yaml.md.erb +69 -69
- data/docs/resources/yum.md.erb +98 -98
- data/docs/resources/zfs_dataset.md.erb +53 -53
- data/docs/resources/zfs_pool.md.erb +47 -47
- data/docs/ruby_usage.md +203 -203
- data/docs/shared/matcher_be.md.erb +1 -1
- data/docs/shared/matcher_cmp.md.erb +43 -43
- data/docs/shared/matcher_eq.md.erb +3 -3
- data/docs/shared/matcher_include.md.erb +1 -1
- data/docs/shared/matcher_match.md.erb +1 -1
- data/docs/shell.md +215 -215
- data/examples/README.md +8 -8
- data/examples/inheritance/README.md +65 -65
- data/examples/inheritance/controls/example.rb +14 -14
- data/examples/inheritance/inspec.yml +15 -15
- data/examples/kitchen-ansible/.kitchen.yml +25 -25
- data/examples/kitchen-ansible/Gemfile +19 -19
- data/examples/kitchen-ansible/README.md +53 -53
- data/examples/kitchen-ansible/files/nginx.repo +6 -6
- data/examples/kitchen-ansible/tasks/main.yml +16 -16
- data/examples/kitchen-ansible/test/integration/default/default.yml +5 -5
- data/examples/kitchen-ansible/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-chef/.kitchen.yml +20 -20
- data/examples/kitchen-chef/Berksfile +3 -3
- data/examples/kitchen-chef/Gemfile +19 -19
- data/examples/kitchen-chef/README.md +27 -27
- data/examples/kitchen-chef/metadata.rb +7 -7
- data/examples/kitchen-chef/recipes/default.rb +6 -6
- data/examples/kitchen-chef/recipes/nginx.rb +30 -30
- data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-puppet/.kitchen.yml +22 -22
- data/examples/kitchen-puppet/Gemfile +20 -20
- data/examples/kitchen-puppet/Puppetfile +25 -25
- data/examples/kitchen-puppet/README.md +53 -53
- data/examples/kitchen-puppet/manifests/site.pp +33 -33
- data/examples/kitchen-puppet/metadata.json +11 -11
- data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -28
- data/examples/meta-profile/README.md +37 -37
- data/examples/meta-profile/controls/example.rb +13 -13
- data/examples/meta-profile/inspec.yml +13 -13
- data/examples/profile-attribute.yml +2 -2
- data/examples/profile-attribute/README.md +14 -14
- data/examples/profile-attribute/controls/example.rb +11 -11
- data/examples/profile-attribute/inspec.yml +8 -8
- data/examples/profile-aws/controls/iam_password_policy_expiration.rb +8 -8
- data/examples/profile-aws/controls/iam_password_policy_max_age.rb +8 -8
- data/examples/profile-aws/controls/iam_root_user_mfa.rb +8 -8
- data/examples/profile-aws/controls/iam_users_access_key_age.rb +8 -8
- data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +8 -8
- data/examples/profile-aws/inspec.yml +11 -11
- data/examples/profile-azure/controls/azure_resource_group_example.rb +24 -24
- data/examples/profile-azure/controls/azure_vm_example.rb +29 -29
- data/examples/profile-azure/inspec.yml +11 -11
- data/examples/profile-sensitive/README.md +29 -29
- data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -9
- data/examples/profile-sensitive/controls/sensitive.rb +9 -9
- data/examples/profile-sensitive/inspec.yml +8 -8
- data/examples/profile/README.md +48 -48
- data/examples/profile/controls/example.rb +23 -23
- data/examples/profile/controls/gordon.rb +36 -36
- data/examples/profile/controls/meta.rb +34 -34
- data/examples/profile/inspec.yml +10 -10
- data/examples/profile/libraries/gordon_config.rb +53 -53
- data/inspec.gemspec +47 -47
- data/lib/bundles/README.md +3 -3
- data/lib/bundles/inspec-artifact.rb +7 -7
- data/lib/bundles/inspec-artifact/README.md +1 -1
- data/lib/bundles/inspec-artifact/cli.rb +277 -277
- data/lib/bundles/inspec-compliance.rb +16 -16
- data/lib/bundles/inspec-compliance/.kitchen.yml +20 -20
- data/lib/bundles/inspec-compliance/README.md +185 -185
- data/lib/bundles/inspec-compliance/api.rb +316 -316
- data/lib/bundles/inspec-compliance/api/login.rb +152 -152
- data/lib/bundles/inspec-compliance/bootstrap.sh +41 -41
- data/lib/bundles/inspec-compliance/cli.rb +254 -254
- data/lib/bundles/inspec-compliance/configuration.rb +103 -103
- data/lib/bundles/inspec-compliance/http.rb +86 -86
- data/lib/bundles/inspec-compliance/support.rb +36 -36
- data/lib/bundles/inspec-compliance/target.rb +98 -98
- data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +93 -93
- data/lib/bundles/inspec-habitat.rb +12 -12
- data/lib/bundles/inspec-habitat/cli.rb +36 -36
- data/lib/bundles/inspec-habitat/log.rb +10 -10
- data/lib/bundles/inspec-habitat/profile.rb +390 -390
- data/lib/bundles/inspec-init.rb +8 -8
- data/lib/bundles/inspec-init/README.md +31 -31
- data/lib/bundles/inspec-init/cli.rb +97 -97
- data/lib/bundles/inspec-init/templates/profile/README.md +3 -3
- data/lib/bundles/inspec-init/templates/profile/controls/example.rb +19 -19
- data/lib/bundles/inspec-init/templates/profile/inspec.yml +8 -8
- data/lib/bundles/inspec-supermarket.rb +13 -13
- data/lib/bundles/inspec-supermarket/README.md +45 -45
- data/lib/bundles/inspec-supermarket/api.rb +84 -84
- data/lib/bundles/inspec-supermarket/cli.rb +73 -73
- data/lib/bundles/inspec-supermarket/target.rb +34 -34
- data/lib/fetchers/git.rb +163 -163
- data/lib/fetchers/local.rb +74 -74
- data/lib/fetchers/mock.rb +35 -35
- data/lib/fetchers/url.rb +204 -204
- data/lib/inspec.rb +24 -24
- data/lib/inspec/archive/tar.rb +29 -29
- data/lib/inspec/archive/zip.rb +19 -19
- data/lib/inspec/backend.rb +92 -92
- data/lib/inspec/base_cli.rb +355 -350
- data/lib/inspec/cached_fetcher.rb +66 -66
- data/lib/inspec/cli.rb +292 -292
- data/lib/inspec/completions/bash.sh.erb +45 -45
- data/lib/inspec/completions/fish.sh.erb +34 -34
- data/lib/inspec/completions/zsh.sh.erb +61 -61
- data/lib/inspec/control_eval_context.rb +179 -179
- data/lib/inspec/dependencies/cache.rb +72 -72
- data/lib/inspec/dependencies/dependency_set.rb +92 -92
- data/lib/inspec/dependencies/lockfile.rb +115 -115
- data/lib/inspec/dependencies/requirement.rb +123 -123
- data/lib/inspec/dependencies/resolver.rb +86 -86
- data/lib/inspec/describe.rb +27 -27
- data/lib/inspec/dsl.rb +66 -66
- data/lib/inspec/dsl_shared.rb +33 -33
- data/lib/inspec/env_printer.rb +157 -157
- data/lib/inspec/errors.rb +13 -13
- data/lib/inspec/exceptions.rb +12 -12
- data/lib/inspec/expect.rb +45 -45
- data/lib/inspec/fetcher.rb +45 -45
- data/lib/inspec/file_provider.rb +275 -275
- data/lib/inspec/formatters.rb +3 -3
- data/lib/inspec/formatters/base.rb +250 -250
- data/lib/inspec/formatters/json_rspec.rb +20 -20
- data/lib/inspec/formatters/show_progress.rb +12 -12
- data/lib/inspec/library_eval_context.rb +58 -58
- data/lib/inspec/log.rb +11 -11
- data/lib/inspec/metadata.rb +247 -247
- data/lib/inspec/method_source.rb +24 -24
- data/lib/inspec/objects.rb +14 -14
- data/lib/inspec/objects/attribute.rb +65 -65
- data/lib/inspec/objects/control.rb +61 -61
- data/lib/inspec/objects/describe.rb +92 -92
- data/lib/inspec/objects/each_loop.rb +36 -36
- data/lib/inspec/objects/list.rb +15 -15
- data/lib/inspec/objects/or_test.rb +40 -40
- data/lib/inspec/objects/ruby_helper.rb +15 -15
- data/lib/inspec/objects/tag.rb +27 -27
- data/lib/inspec/objects/test.rb +87 -87
- data/lib/inspec/objects/value.rb +27 -27
- data/lib/inspec/plugins.rb +60 -60
- data/lib/inspec/plugins/cli.rb +24 -24
- data/lib/inspec/plugins/fetcher.rb +86 -86
- data/lib/inspec/plugins/resource.rb +135 -135
- data/lib/inspec/plugins/secret.rb +15 -15
- data/lib/inspec/plugins/source_reader.rb +40 -40
- data/lib/inspec/polyfill.rb +12 -12
- data/lib/inspec/profile.rb +510 -510
- data/lib/inspec/profile_context.rb +207 -207
- data/lib/inspec/profile_vendor.rb +66 -66
- data/lib/inspec/reporters.rb +54 -50
- data/lib/inspec/reporters/base.rb +24 -24
- data/lib/inspec/reporters/cli.rb +356 -356
- data/lib/inspec/reporters/json.rb +116 -116
- data/lib/inspec/reporters/json_min.rb +48 -48
- data/lib/inspec/reporters/junit.rb +77 -77
- data/lib/inspec/require_loader.rb +33 -33
- data/lib/inspec/resource.rb +186 -186
- data/lib/inspec/rule.rb +266 -266
- data/lib/inspec/runner.rb +345 -345
- data/lib/inspec/runner_mock.rb +41 -41
- data/lib/inspec/runner_rspec.rb +175 -175
- data/lib/inspec/runtime_profile.rb +26 -26
- data/lib/inspec/schema.rb +213 -213
- data/lib/inspec/secrets.rb +19 -19
- data/lib/inspec/secrets/yaml.rb +30 -30
- data/lib/inspec/shell.rb +220 -220
- data/lib/inspec/shell_detector.rb +90 -90
- data/lib/inspec/source_reader.rb +29 -29
- data/lib/inspec/version.rb +8 -8
- data/lib/matchers/matchers.rb +339 -339
- data/lib/resource_support/aws.rb +41 -41
- data/lib/resource_support/aws/aws_backend_base.rb +12 -12
- data/lib/resource_support/aws/aws_backend_factory_mixin.rb +12 -12
- data/lib/resource_support/aws/aws_plural_resource_mixin.rb +21 -21
- data/lib/resource_support/aws/aws_resource_mixin.rb +66 -66
- data/lib/resource_support/aws/aws_singular_resource_mixin.rb +24 -24
- data/lib/resources/aide_conf.rb +159 -160
- data/lib/resources/apache.rb +48 -48
- data/lib/resources/apache_conf.rb +156 -156
- data/lib/resources/apt.rb +149 -149
- data/lib/resources/audit_policy.rb +63 -63
- data/lib/resources/auditd.rb +231 -231
- data/lib/resources/auditd_conf.rb +55 -55
- data/lib/resources/aws/aws_cloudtrail_trail.rb +77 -77
- data/lib/resources/aws/aws_cloudtrail_trails.rb +47 -47
- data/lib/resources/aws/aws_cloudwatch_alarm.rb +62 -62
- data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +100 -100
- data/lib/resources/aws/aws_config_recorder.rb +98 -98
- data/lib/resources/aws/aws_ec2_instance.rb +157 -157
- data/lib/resources/aws/aws_iam_access_key.rb +106 -106
- data/lib/resources/aws/aws_iam_access_keys.rb +149 -144
- data/lib/resources/aws/aws_iam_group.rb +56 -56
- data/lib/resources/aws/aws_iam_groups.rb +52 -45
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
- data/lib/resources/aws/aws_iam_policies.rb +53 -46
- data/lib/resources/aws/aws_iam_policy.rb +125 -119
- data/lib/resources/aws/aws_iam_role.rb +51 -51
- data/lib/resources/aws/aws_iam_root_user.rb +60 -60
- data/lib/resources/aws/aws_iam_user.rb +111 -111
- data/lib/resources/aws/aws_iam_users.rb +108 -96
- data/lib/resources/aws/aws_kms_keys.rb +53 -46
- data/lib/resources/aws/aws_route_table.rb +61 -61
- data/lib/resources/aws/aws_s3_bucket.rb +115 -115
- data/lib/resources/aws/aws_security_group.rb +93 -93
- data/lib/resources/aws/aws_security_groups.rb +68 -68
- data/lib/resources/aws/aws_sns_topic.rb +53 -53
- data/lib/resources/aws/aws_subnet.rb +88 -88
- data/lib/resources/aws/aws_subnets.rb +53 -53
- data/lib/resources/aws/aws_vpc.rb +69 -69
- data/lib/resources/aws/aws_vpcs.rb +45 -45
- data/lib/resources/azure/azure_backend.rb +377 -377
- data/lib/resources/azure/azure_generic_resource.rb +59 -59
- data/lib/resources/azure/azure_resource_group.rb +152 -152
- data/lib/resources/azure/azure_virtual_machine.rb +264 -264
- data/lib/resources/azure/azure_virtual_machine_data_disk.rb +136 -136
- data/lib/resources/bash.rb +35 -35
- data/lib/resources/bond.rb +68 -68
- data/lib/resources/bridge.rb +122 -122
- data/lib/resources/command.rb +73 -69
- data/lib/resources/cpan.rb +58 -58
- data/lib/resources/cran.rb +64 -64
- data/lib/resources/crontab.rb +169 -170
- data/lib/resources/csv.rb +60 -60
- data/lib/resources/dh_params.rb +82 -82
- data/lib/resources/directory.rb +25 -25
- data/lib/resources/docker.rb +236 -236
- data/lib/resources/docker_container.rb +89 -89
- data/lib/resources/docker_image.rb +83 -83
- data/lib/resources/docker_object.rb +57 -57
- data/lib/resources/docker_service.rb +90 -90
- data/lib/resources/elasticsearch.rb +169 -169
- data/lib/resources/etc_fstab.rb +101 -102
- data/lib/resources/etc_group.rb +152 -156
- data/lib/resources/etc_hosts.rb +82 -81
- data/lib/resources/etc_hosts_allow_deny.rb +122 -123
- data/lib/resources/file.rb +298 -298
- data/lib/resources/filesystem.rb +31 -31
- data/lib/resources/firewalld.rb +143 -144
- data/lib/resources/gem.rb +70 -70
- data/lib/resources/groups.rb +215 -215
- data/lib/resources/grub_conf.rb +237 -237
- data/lib/resources/host.rb +306 -300
- data/lib/resources/http.rb +251 -250
- data/lib/resources/iis_app.rb +101 -104
- data/lib/resources/iis_site.rb +148 -148
- data/lib/resources/inetd_conf.rb +62 -62
- data/lib/resources/ini.rb +29 -29
- data/lib/resources/interface.rb +129 -129
- data/lib/resources/iptables.rb +80 -69
- data/lib/resources/json.rb +117 -117
- data/lib/resources/kernel_module.rb +107 -107
- data/lib/resources/kernel_parameter.rb +58 -58
- data/lib/resources/key_rsa.rb +67 -67
- data/lib/resources/limits_conf.rb +55 -55
- data/lib/resources/login_def.rb +66 -66
- data/lib/resources/mount.rb +88 -88
- data/lib/resources/mssql_session.rb +101 -101
- data/lib/resources/mysql.rb +81 -81
- data/lib/resources/mysql_conf.rb +134 -134
- data/lib/resources/mysql_session.rb +71 -71
- data/lib/resources/nginx.rb +96 -96
- data/lib/resources/nginx_conf.rb +227 -227
- data/lib/resources/npm.rb +48 -48
- data/lib/resources/ntp_conf.rb +58 -58
- data/lib/resources/oneget.rb +71 -71
- data/lib/resources/oracledb_session.rb +139 -139
- data/lib/resources/os.rb +36 -36
- data/lib/resources/os_env.rb +76 -76
- data/lib/resources/package.rb +370 -370
- data/lib/resources/packages.rb +111 -111
- data/lib/resources/parse_config.rb +116 -116
- data/lib/resources/passwd.rb +74 -74
- data/lib/resources/pip.rb +89 -89
- data/lib/resources/platform.rb +109 -109
- data/lib/resources/port.rb +771 -771
- data/lib/resources/postgres.rb +130 -130
- data/lib/resources/postgres_conf.rb +121 -121
- data/lib/resources/postgres_hba_conf.rb +99 -100
- data/lib/resources/postgres_ident_conf.rb +76 -78
- data/lib/resources/postgres_session.rb +71 -71
- data/lib/resources/powershell.rb +53 -57
- data/lib/resources/processes.rb +204 -204
- data/lib/resources/rabbitmq_conf.rb +52 -52
- data/lib/resources/registry_key.rb +296 -296
- data/lib/resources/security_policy.rb +180 -180
- data/lib/resources/service.rb +789 -789
- data/lib/resources/shadow.rb +146 -140
- data/lib/resources/ssh_conf.rb +102 -102
- data/lib/resources/ssl.rb +99 -99
- data/lib/resources/sys_info.rb +28 -28
- data/lib/resources/toml.rb +32 -32
- data/lib/resources/users.rb +654 -654
- data/lib/resources/vbscript.rb +68 -69
- data/lib/resources/virtualization.rb +247 -247
- data/lib/resources/windows_feature.rb +84 -84
- data/lib/resources/windows_hotfix.rb +35 -35
- data/lib/resources/windows_task.rb +102 -105
- data/lib/resources/wmi.rb +110 -113
- data/lib/resources/x509_certificate.rb +143 -143
- data/lib/resources/xinetd.rb +111 -111
- data/lib/resources/xml.rb +46 -46
- data/lib/resources/yaml.rb +47 -47
- data/lib/resources/yum.rb +180 -180
- data/lib/resources/zfs_dataset.rb +60 -60
- data/lib/resources/zfs_pool.rb +49 -49
- data/lib/source_readers/flat.rb +39 -39
- data/lib/source_readers/inspec.rb +75 -75
- data/lib/utils/command_wrapper.rb +27 -27
- data/lib/utils/convert.rb +12 -12
- data/lib/utils/database_helpers.rb +77 -77
- data/lib/utils/erlang_parser.rb +192 -192
- data/lib/utils/filter.rb +272 -272
- data/lib/utils/filter_array.rb +27 -27
- data/lib/utils/find_files.rb +44 -44
- data/lib/utils/hash.rb +41 -41
- data/lib/utils/json_log.rb +18 -18
- data/lib/utils/latest_version.rb +22 -22
- data/lib/utils/modulator.rb +12 -12
- data/lib/utils/nginx_parser.rb +85 -85
- data/lib/utils/object_traversal.rb +49 -49
- data/lib/utils/parser.rb +274 -274
- data/lib/utils/plugin_registry.rb +93 -93
- data/lib/utils/simpleconfig.rb +120 -120
- data/lib/utils/spdx.rb +13 -13
- data/lib/utils/spdx.txt +343 -343
- metadata +2 -2
data/lib/inspec/runner_mock.rb
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# author: Dominik Richter
|
|
3
|
-
# author: Christoph Hartmann
|
|
4
|
-
|
|
5
|
-
module Inspec
|
|
6
|
-
class RunnerMock
|
|
7
|
-
attr_reader :tests, :profiles
|
|
8
|
-
attr_writer :backend
|
|
9
|
-
def initialize
|
|
10
|
-
reset
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def reset
|
|
14
|
-
@tests = []
|
|
15
|
-
@profiles = []
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def add_profile(profile)
|
|
19
|
-
@profiles.push(profile)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def add_test(example, _rule)
|
|
23
|
-
@tests.push(example)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def example_group(*in_args, &in_block)
|
|
27
|
-
Class.new do
|
|
28
|
-
define_method :args do
|
|
29
|
-
in_args
|
|
30
|
-
end
|
|
31
|
-
define_method :block do
|
|
32
|
-
in_block
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def run(_with = nil)
|
|
38
|
-
puts 'uhm.... nothing or something... dunno, ask your admin'
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Dominik Richter
|
|
3
|
+
# author: Christoph Hartmann
|
|
4
|
+
|
|
5
|
+
module Inspec
|
|
6
|
+
class RunnerMock
|
|
7
|
+
attr_reader :tests, :profiles
|
|
8
|
+
attr_writer :backend
|
|
9
|
+
def initialize
|
|
10
|
+
reset
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def reset
|
|
14
|
+
@tests = []
|
|
15
|
+
@profiles = []
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def add_profile(profile)
|
|
19
|
+
@profiles.push(profile)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def add_test(example, _rule)
|
|
23
|
+
@tests.push(example)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def example_group(*in_args, &in_block)
|
|
27
|
+
Class.new do
|
|
28
|
+
define_method :args do
|
|
29
|
+
in_args
|
|
30
|
+
end
|
|
31
|
+
define_method :block do
|
|
32
|
+
in_block
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def run(_with = nil)
|
|
38
|
+
puts 'uhm.... nothing or something... dunno, ask your admin'
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
data/lib/inspec/runner_rspec.rb
CHANGED
|
@@ -1,175 +1,175 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# author: Dominik Richter
|
|
3
|
-
# author: Christoph Hartmann
|
|
4
|
-
|
|
5
|
-
require 'rspec/core'
|
|
6
|
-
require 'rspec/its'
|
|
7
|
-
require 'inspec/formatters'
|
|
8
|
-
|
|
9
|
-
# There be dragons!! Or borgs, or something...
|
|
10
|
-
# This file and all its contents cannot be unit-tested. both test-suits
|
|
11
|
-
# collide and disable all unit tests that have been added.
|
|
12
|
-
|
|
13
|
-
module Inspec
|
|
14
|
-
class RunnerRspec
|
|
15
|
-
def initialize(conf)
|
|
16
|
-
@conf = conf
|
|
17
|
-
@formatter = nil
|
|
18
|
-
reset
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# Create a new RSpec example group from arguments and block.
|
|
22
|
-
#
|
|
23
|
-
# @param [Type] *args list of arguments for this example
|
|
24
|
-
# @param [Type] &block the block associated with this example group
|
|
25
|
-
# @return [RSpecExampleGroup]
|
|
26
|
-
def example_group(*args, &block)
|
|
27
|
-
RSpec::Core::ExampleGroup.describe(*args, &block)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Add a full profile to the runner. Only pulls in metadata
|
|
31
|
-
#
|
|
32
|
-
# @param [Inspec::Profile] profile
|
|
33
|
-
# @return [nil]
|
|
34
|
-
def add_profile(profile)
|
|
35
|
-
RSpec.configuration.formatters
|
|
36
|
-
.find_all { |c| c.is_a?(Inspec::Formatters::Base) }
|
|
37
|
-
.each do |fmt|
|
|
38
|
-
fmt.add_profile(profile)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
# Configure the backend of the runner.
|
|
43
|
-
#
|
|
44
|
-
# @param [Inspec::Backend] backend
|
|
45
|
-
# @return [nil]
|
|
46
|
-
def backend=(backend)
|
|
47
|
-
RSpec.configuration.formatters
|
|
48
|
-
.find_all { |c| c.is_a?(Inspec::Formatters::Base) }
|
|
49
|
-
.each do |fmt|
|
|
50
|
-
fmt.backend = backend
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
# Add an example group to the list of registered tests.
|
|
55
|
-
#
|
|
56
|
-
# @param [RSpecExampleGroup] example test
|
|
57
|
-
# @param [String] rule_id the ID associated with this check
|
|
58
|
-
# @return [nil]
|
|
59
|
-
def add_test(example, rule)
|
|
60
|
-
set_rspec_ids(example, rule)
|
|
61
|
-
@tests.example_groups.push(example)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# Retrieve the list of tests that have been added.
|
|
65
|
-
#
|
|
66
|
-
# @return [Array] full list of tests
|
|
67
|
-
def tests
|
|
68
|
-
@tests.ordered_example_groups
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
# Run all registered tests with an optional test runner.
|
|
72
|
-
#
|
|
73
|
-
# @param [RSpecRunner] with is an optional RSpecRunner
|
|
74
|
-
# @return [int] 0 if all went well; otherwise nonzero
|
|
75
|
-
def run(with = nil)
|
|
76
|
-
with ||= RSpec::Core::Runner.new(nil)
|
|
77
|
-
@rspec_exit_code = with.run_specs(tests)
|
|
78
|
-
@formatter.results
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# Return a proper exit code to the runner
|
|
82
|
-
#
|
|
83
|
-
# @return [int] exit code
|
|
84
|
-
def exit_code
|
|
85
|
-
return @rspec_exit_code if @formatter.results.empty?
|
|
86
|
-
stats = @formatter.results[:statistics][:controls]
|
|
87
|
-
if stats[:failed][:total] == 0 && stats[:skipped][:total] == 0
|
|
88
|
-
0
|
|
89
|
-
elsif stats[:failed][:total] > 0
|
|
90
|
-
100
|
|
91
|
-
elsif stats[:skipped][:total] > 0
|
|
92
|
-
101
|
|
93
|
-
else
|
|
94
|
-
@rspec_exit_code
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
# Empty the list of registered tests.
|
|
99
|
-
#
|
|
100
|
-
# @return [nil]
|
|
101
|
-
def reset
|
|
102
|
-
@tests = RSpec::Core::World.new
|
|
103
|
-
# resets "pending examples" in reporter
|
|
104
|
-
RSpec.configuration.reset
|
|
105
|
-
configure_output
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
private
|
|
109
|
-
|
|
110
|
-
# Set optional formatters and output
|
|
111
|
-
#
|
|
112
|
-
#
|
|
113
|
-
def set_optional_formatters
|
|
114
|
-
return if @conf['reporter'].nil?
|
|
115
|
-
if @conf['reporter'].key?('json-rspec')
|
|
116
|
-
# We cannot pass in a nil output path. Rspec only accepts a valid string or a IO object.
|
|
117
|
-
if @conf['reporter']['json-rspec']&.[]('file').nil?
|
|
118
|
-
RSpec.configuration.add_formatter(Inspec::Formatters::RspecJson)
|
|
119
|
-
else
|
|
120
|
-
RSpec.configuration.add_formatter(Inspec::Formatters::RspecJson, @conf[:reporter]['json-rspec']['file'])
|
|
121
|
-
end
|
|
122
|
-
@conf['reporter'].delete('json-rspec')
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
formats = @conf['reporter'].select { |k, _v| %w{documentation progress html}.include?(k) }
|
|
126
|
-
formats.each do |k, v|
|
|
127
|
-
# We cannot pass in a nil output path. Rspec only accepts a valid string or a IO object.
|
|
128
|
-
if v&.[]('file').nil?
|
|
129
|
-
RSpec.configuration.add_formatter(k.to_sym)
|
|
130
|
-
else
|
|
131
|
-
RSpec.configuration.add_formatter(k.to_sym, v['file'])
|
|
132
|
-
end
|
|
133
|
-
@conf['reporter'].delete(k)
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
# Configure the output formatter and stream to be used with RSpec.
|
|
138
|
-
#
|
|
139
|
-
# @return [nil]
|
|
140
|
-
def configure_output
|
|
141
|
-
RSpec.configuration.output_stream = $stdout
|
|
142
|
-
@formatter = RSpec.configuration.add_formatter(Inspec::Formatters::Base)
|
|
143
|
-
RSpec.configuration.add_formatter(Inspec::Formatters::ShowProgress, $stderr) if @conf[:show_progress]
|
|
144
|
-
set_optional_formatters
|
|
145
|
-
RSpec.configuration.color = @conf['color']
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
# Make sure that all RSpec example groups use the provided ID.
|
|
149
|
-
# At the time of creation, we didn't yet have full ID support in RSpec,
|
|
150
|
-
# which is why they were added to metadata directly. This is evaluated
|
|
151
|
-
# by the InSpec adjusted json formatter (rspec_json_formatter).
|
|
152
|
-
#
|
|
153
|
-
# @param [RSpecExampleGroup] example object which contains a check
|
|
154
|
-
# @return [Type] description of returned object
|
|
155
|
-
def set_rspec_ids(example, rule)
|
|
156
|
-
assign_rspec_ids(example.metadata, rule)
|
|
157
|
-
example.filtered_examples.each do |e|
|
|
158
|
-
assign_rspec_ids(e.metadata, rule)
|
|
159
|
-
end
|
|
160
|
-
example.children.each do |child|
|
|
161
|
-
set_rspec_ids(child, rule)
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
def assign_rspec_ids(metadata, rule)
|
|
166
|
-
metadata[:id] = ::Inspec::Rule.rule_id(rule)
|
|
167
|
-
metadata[:profile_id] = ::Inspec::Rule.profile_id(rule)
|
|
168
|
-
metadata[:impact] = rule.impact
|
|
169
|
-
metadata[:title] = rule.title
|
|
170
|
-
metadata[:desc] = rule.desc
|
|
171
|
-
metadata[:code] = rule.instance_variable_get(:@__code)
|
|
172
|
-
metadata[:source_location] = rule.instance_variable_get(:@__source_location)
|
|
173
|
-
end
|
|
174
|
-
end
|
|
175
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Dominik Richter
|
|
3
|
+
# author: Christoph Hartmann
|
|
4
|
+
|
|
5
|
+
require 'rspec/core'
|
|
6
|
+
require 'rspec/its'
|
|
7
|
+
require 'inspec/formatters'
|
|
8
|
+
|
|
9
|
+
# There be dragons!! Or borgs, or something...
|
|
10
|
+
# This file and all its contents cannot be unit-tested. both test-suits
|
|
11
|
+
# collide and disable all unit tests that have been added.
|
|
12
|
+
|
|
13
|
+
module Inspec
|
|
14
|
+
class RunnerRspec
|
|
15
|
+
def initialize(conf)
|
|
16
|
+
@conf = conf
|
|
17
|
+
@formatter = nil
|
|
18
|
+
reset
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Create a new RSpec example group from arguments and block.
|
|
22
|
+
#
|
|
23
|
+
# @param [Type] *args list of arguments for this example
|
|
24
|
+
# @param [Type] &block the block associated with this example group
|
|
25
|
+
# @return [RSpecExampleGroup]
|
|
26
|
+
def example_group(*args, &block)
|
|
27
|
+
RSpec::Core::ExampleGroup.describe(*args, &block)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Add a full profile to the runner. Only pulls in metadata
|
|
31
|
+
#
|
|
32
|
+
# @param [Inspec::Profile] profile
|
|
33
|
+
# @return [nil]
|
|
34
|
+
def add_profile(profile)
|
|
35
|
+
RSpec.configuration.formatters
|
|
36
|
+
.find_all { |c| c.is_a?(Inspec::Formatters::Base) }
|
|
37
|
+
.each do |fmt|
|
|
38
|
+
fmt.add_profile(profile)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Configure the backend of the runner.
|
|
43
|
+
#
|
|
44
|
+
# @param [Inspec::Backend] backend
|
|
45
|
+
# @return [nil]
|
|
46
|
+
def backend=(backend)
|
|
47
|
+
RSpec.configuration.formatters
|
|
48
|
+
.find_all { |c| c.is_a?(Inspec::Formatters::Base) }
|
|
49
|
+
.each do |fmt|
|
|
50
|
+
fmt.backend = backend
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Add an example group to the list of registered tests.
|
|
55
|
+
#
|
|
56
|
+
# @param [RSpecExampleGroup] example test
|
|
57
|
+
# @param [String] rule_id the ID associated with this check
|
|
58
|
+
# @return [nil]
|
|
59
|
+
def add_test(example, rule)
|
|
60
|
+
set_rspec_ids(example, rule)
|
|
61
|
+
@tests.example_groups.push(example)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Retrieve the list of tests that have been added.
|
|
65
|
+
#
|
|
66
|
+
# @return [Array] full list of tests
|
|
67
|
+
def tests
|
|
68
|
+
@tests.ordered_example_groups
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Run all registered tests with an optional test runner.
|
|
72
|
+
#
|
|
73
|
+
# @param [RSpecRunner] with is an optional RSpecRunner
|
|
74
|
+
# @return [int] 0 if all went well; otherwise nonzero
|
|
75
|
+
def run(with = nil)
|
|
76
|
+
with ||= RSpec::Core::Runner.new(nil)
|
|
77
|
+
@rspec_exit_code = with.run_specs(tests)
|
|
78
|
+
@formatter.results
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Return a proper exit code to the runner
|
|
82
|
+
#
|
|
83
|
+
# @return [int] exit code
|
|
84
|
+
def exit_code
|
|
85
|
+
return @rspec_exit_code if @formatter.results.empty?
|
|
86
|
+
stats = @formatter.results[:statistics][:controls]
|
|
87
|
+
if stats[:failed][:total] == 0 && stats[:skipped][:total] == 0
|
|
88
|
+
0
|
|
89
|
+
elsif stats[:failed][:total] > 0
|
|
90
|
+
100
|
|
91
|
+
elsif stats[:skipped][:total] > 0
|
|
92
|
+
101
|
|
93
|
+
else
|
|
94
|
+
@rspec_exit_code
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Empty the list of registered tests.
|
|
99
|
+
#
|
|
100
|
+
# @return [nil]
|
|
101
|
+
def reset
|
|
102
|
+
@tests = RSpec::Core::World.new
|
|
103
|
+
# resets "pending examples" in reporter
|
|
104
|
+
RSpec.configuration.reset
|
|
105
|
+
configure_output
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
private
|
|
109
|
+
|
|
110
|
+
# Set optional formatters and output
|
|
111
|
+
#
|
|
112
|
+
#
|
|
113
|
+
def set_optional_formatters
|
|
114
|
+
return if @conf['reporter'].nil?
|
|
115
|
+
if @conf['reporter'].key?('json-rspec')
|
|
116
|
+
# We cannot pass in a nil output path. Rspec only accepts a valid string or a IO object.
|
|
117
|
+
if @conf['reporter']['json-rspec']&.[]('file').nil?
|
|
118
|
+
RSpec.configuration.add_formatter(Inspec::Formatters::RspecJson)
|
|
119
|
+
else
|
|
120
|
+
RSpec.configuration.add_formatter(Inspec::Formatters::RspecJson, @conf[:reporter]['json-rspec']['file'])
|
|
121
|
+
end
|
|
122
|
+
@conf['reporter'].delete('json-rspec')
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
formats = @conf['reporter'].select { |k, _v| %w{documentation progress html}.include?(k) }
|
|
126
|
+
formats.each do |k, v|
|
|
127
|
+
# We cannot pass in a nil output path. Rspec only accepts a valid string or a IO object.
|
|
128
|
+
if v&.[]('file').nil?
|
|
129
|
+
RSpec.configuration.add_formatter(k.to_sym)
|
|
130
|
+
else
|
|
131
|
+
RSpec.configuration.add_formatter(k.to_sym, v['file'])
|
|
132
|
+
end
|
|
133
|
+
@conf['reporter'].delete(k)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# Configure the output formatter and stream to be used with RSpec.
|
|
138
|
+
#
|
|
139
|
+
# @return [nil]
|
|
140
|
+
def configure_output
|
|
141
|
+
RSpec.configuration.output_stream = $stdout
|
|
142
|
+
@formatter = RSpec.configuration.add_formatter(Inspec::Formatters::Base)
|
|
143
|
+
RSpec.configuration.add_formatter(Inspec::Formatters::ShowProgress, $stderr) if @conf[:show_progress]
|
|
144
|
+
set_optional_formatters
|
|
145
|
+
RSpec.configuration.color = @conf['color']
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Make sure that all RSpec example groups use the provided ID.
|
|
149
|
+
# At the time of creation, we didn't yet have full ID support in RSpec,
|
|
150
|
+
# which is why they were added to metadata directly. This is evaluated
|
|
151
|
+
# by the InSpec adjusted json formatter (rspec_json_formatter).
|
|
152
|
+
#
|
|
153
|
+
# @param [RSpecExampleGroup] example object which contains a check
|
|
154
|
+
# @return [Type] description of returned object
|
|
155
|
+
def set_rspec_ids(example, rule)
|
|
156
|
+
assign_rspec_ids(example.metadata, rule)
|
|
157
|
+
example.filtered_examples.each do |e|
|
|
158
|
+
assign_rspec_ids(e.metadata, rule)
|
|
159
|
+
end
|
|
160
|
+
example.children.each do |child|
|
|
161
|
+
set_rspec_ids(child, rule)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def assign_rspec_ids(metadata, rule)
|
|
166
|
+
metadata[:id] = ::Inspec::Rule.rule_id(rule)
|
|
167
|
+
metadata[:profile_id] = ::Inspec::Rule.profile_id(rule)
|
|
168
|
+
metadata[:impact] = rule.impact
|
|
169
|
+
metadata[:title] = rule.title
|
|
170
|
+
metadata[:desc] = rule.desc
|
|
171
|
+
metadata[:code] = rule.instance_variable_get(:@__code)
|
|
172
|
+
metadata[:source_location] = rule.instance_variable_get(:@__source_location)
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# Copyright 2017 Chef Software
|
|
3
|
-
# author: Dominik Richter
|
|
4
|
-
# author: Christoph Hartmann
|
|
5
|
-
|
|
6
|
-
module Inspec
|
|
7
|
-
class RuntimeProfile
|
|
8
|
-
attr_reader :files
|
|
9
|
-
|
|
10
|
-
def initialize(profile)
|
|
11
|
-
@src = profile.source_reader
|
|
12
|
-
@files = @src.data_files.keys.map do |k|
|
|
13
|
-
k.sub('files' + File::SEPARATOR, '')
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Retrieve a profile file's contents
|
|
18
|
-
#
|
|
19
|
-
# @param name [String] the name of the file
|
|
20
|
-
# @return [String] contents of the file of RuntimeError if missing
|
|
21
|
-
def file(name)
|
|
22
|
-
@src.data_files[File.join('files', name)] ||
|
|
23
|
-
raise("Cannot find file #{name} in profile.")
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# Copyright 2017 Chef Software
|
|
3
|
+
# author: Dominik Richter
|
|
4
|
+
# author: Christoph Hartmann
|
|
5
|
+
|
|
6
|
+
module Inspec
|
|
7
|
+
class RuntimeProfile
|
|
8
|
+
attr_reader :files
|
|
9
|
+
|
|
10
|
+
def initialize(profile)
|
|
11
|
+
@src = profile.source_reader
|
|
12
|
+
@files = @src.data_files.keys.map do |k|
|
|
13
|
+
k.sub('files' + File::SEPARATOR, '')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Retrieve a profile file's contents
|
|
18
|
+
#
|
|
19
|
+
# @param name [String] the name of the file
|
|
20
|
+
# @return [String] contents of the file of RuntimeError if missing
|
|
21
|
+
def file(name)
|
|
22
|
+
@src.data_files[File.join('files', name)] ||
|
|
23
|
+
raise("Cannot find file #{name} in profile.")
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|