inspec 4.3.2 → 4.6.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -19,8 +19,6 @@ require 'inspec/plugin/v2'
|
|
19
19
|
# You can select from a number of test harnesses. Since InSpec uses Spec-style controls
|
20
20
|
# in profile code, you will probably want to use something like minitest/spec, which provides
|
21
21
|
# Spec-style tests.
|
22
|
-
require 'minitest/
|
23
|
-
require 'minitest/autorun'
|
22
|
+
require 'minitest/autorun' # loads all styles and runs tests automatically
|
24
23
|
|
25
24
|
# You might want to put some debugging tools here. We run tests to find bugs, after all.
|
26
|
-
require 'byebug'
|
data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb
CHANGED
@@ -7,7 +7,7 @@ require_relative '../helper'
|
|
7
7
|
# Load the class under test, the CliCommand definition.
|
8
8
|
require '<%= plugin_name %>/cli_command'
|
9
9
|
|
10
|
-
# Because InSpec is a Spec-style test suite, we're going to use
|
10
|
+
# Because InSpec is a Spec-style test suite, we're going to use Minitest::Spec
|
11
11
|
# here, for familiar look and feel. However, this isn't InSpec (or RSpec) code.
|
12
12
|
describe InspecPlugins::<%= module_name %>::CliCommand do
|
13
13
|
|
@@ -31,7 +31,7 @@ describe InspecPlugins::<%= module_name %>::CliCommand do
|
|
31
31
|
|
32
32
|
# Some tests through here use minitest Expectations, which attach to all
|
33
33
|
# Objects, and begin with 'must' (positive) or 'wont' (negative)
|
34
|
-
# See
|
34
|
+
# See http://docs.seattlerb.org/minitest/Minitest/Expectations.html
|
35
35
|
|
36
36
|
# Option count OK?
|
37
37
|
it "should take one option" do
|
data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb
CHANGED
@@ -7,7 +7,7 @@ require_relative '../helper'
|
|
7
7
|
# Load the class under test, the Plugin definition.
|
8
8
|
require '<%= plugin_name %>/plugin'
|
9
9
|
|
10
|
-
# Because InSpec is a Spec-style test suite, we're going to use
|
10
|
+
# Because InSpec is a Spec-style test suite, we're going to use Minitest::Spec
|
11
11
|
# here, for familiar look and feel. However, this isn't InSpec (or RSpec) code.
|
12
12
|
|
13
13
|
describe InspecPlugins::<%= module_name %>::Plugin do
|
@@ -36,7 +36,7 @@ describe InspecPlugins::<%= module_name %>::Plugin do
|
|
36
36
|
|
37
37
|
# Some tests through here use minitest Expectations, which attach to all
|
38
38
|
# Objects, and begin with 'must' (positive) or 'wont' (negative)
|
39
|
-
# See
|
39
|
+
# See http://docs.seattlerb.org/minitest/Minitest/Expectations.html
|
40
40
|
|
41
41
|
# The plugin system had an undocumented v1 API; this should be a v2 example.
|
42
42
|
it "should be an api-v2 plugin" do
|
@@ -1,32 +1,31 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# copyright: 2018, The Authors
|
3
2
|
|
4
|
-
title
|
3
|
+
title "Sample Section"
|
5
4
|
|
6
|
-
aws_vpc_id = attribute(
|
5
|
+
aws_vpc_id = attribute("aws_vpc_id", default: "", description: "Optional AWS VPC identifier.")
|
7
6
|
|
8
7
|
# You add controls here
|
9
|
-
control
|
10
|
-
only_if { aws_vpc_id !=
|
8
|
+
control "aws-single-vpc-exists-check" do # A unique ID for this control.
|
9
|
+
only_if { aws_vpc_id != "" } # Only run this control if the `aws_vpc_id` attribute is provided.
|
11
10
|
impact 1.0 # The criticality, if this control fails.
|
12
|
-
title
|
11
|
+
title "Check to see if custom VPC exists." # A human-readable title.
|
13
12
|
describe aws_vpc(aws_vpc_id) do # The test itself.
|
14
13
|
it { should exist }
|
15
14
|
end
|
16
15
|
end
|
17
16
|
|
18
17
|
# Plural resources can be inspected to check for specific resource details.
|
19
|
-
control
|
18
|
+
control "aws-vpcs-check" do
|
20
19
|
impact 1.0
|
21
|
-
title
|
20
|
+
title "Check in all the VPCs for default sg not allowing 22 inwards"
|
22
21
|
aws_vpcs.vpc_ids.each do |vpc_id|
|
23
|
-
describe aws_security_group(vpc_id: vpc_id, group_name:
|
22
|
+
describe aws_security_group(vpc_id: vpc_id, group_name: "default") do
|
24
23
|
it { should allow_in(port: 22) }
|
25
24
|
end
|
26
25
|
end
|
27
26
|
end
|
28
27
|
|
29
|
-
control
|
28
|
+
control "aws-vpcs-multi-region-status-check" do # A unique ID for this control.
|
30
29
|
impact 1.0 # The criticality, if this control fails.
|
31
30
|
title 'Check AWS VPCs in all regions have status "available"' # A human-readable title.
|
32
31
|
aws_regions.region_names.each do |region| # Loop over all available AWS regions
|
@@ -37,4 +36,4 @@ control 'aws-vpcs-multi-region-status-check' do # A
|
|
37
36
|
end
|
38
37
|
end
|
39
38
|
end
|
40
|
-
end
|
39
|
+
end
|
@@ -1,15 +1,14 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# copyright: 2018, The Authors
|
3
2
|
|
4
|
-
title
|
3
|
+
title "Sample Section"
|
5
4
|
|
6
5
|
# you add controls here
|
7
|
-
control
|
6
|
+
control "azure-virtual-machines-exist-check" do # A unique ID for this control.
|
8
7
|
impact 1.0 # The criticality, if this control fails.
|
9
|
-
title
|
8
|
+
title "Check resource groups to see if any VMs exist." # A human-readable title
|
10
9
|
azurerm_resource_groups.names.each do |resource_group_name| # Plural resources can be leveraged to loop across many resources
|
11
10
|
describe azurerm_virtual_machines(resource_group: resource_group_name) do
|
12
|
-
|
11
|
+
it { should exist } # The test itself.
|
13
12
|
end
|
14
13
|
end
|
15
14
|
end
|
@@ -1,25 +1,24 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# copyright: 2018, The Authors
|
3
2
|
|
4
|
-
title
|
3
|
+
title "Sample Section"
|
5
4
|
|
6
|
-
gcp_project_id = attribute(
|
5
|
+
gcp_project_id = attribute("gcp_project_id")
|
7
6
|
|
8
7
|
# you add controls here
|
9
|
-
control
|
8
|
+
control "gcp-single-region-1.0" do # A unique ID for this control
|
10
9
|
impact 1.0 # The criticality, if this control fails.
|
11
|
-
title
|
12
|
-
desc
|
13
|
-
describe google_compute_region(project: gcp_project_id, name:
|
14
|
-
its(
|
10
|
+
title "Ensure single region has the correct properties." # A human-readable title
|
11
|
+
desc "An optional description..."
|
12
|
+
describe google_compute_region(project: gcp_project_id, name: "europe-west2") do # The actual test
|
13
|
+
its("zone_names") { should include "europe-west2-a" }
|
15
14
|
end
|
16
15
|
end
|
17
16
|
|
18
17
|
# plural resources can be leveraged to loop across many resources
|
19
|
-
control
|
18
|
+
control "gcp-regions-loop-1.0" do # A unique ID for this control
|
20
19
|
impact 1.0 # The criticality, if this control fails.
|
21
|
-
title
|
22
|
-
desc
|
20
|
+
title "Ensure regions have the correct properties in bulk." # A human-readable title
|
21
|
+
desc "An optional description..."
|
23
22
|
google_compute_regions(project: gcp_project_id).region_names.each do |region_name| # Loop across all regions by name
|
24
23
|
describe google_compute_region(project: gcp_project_id, name: region_name) do # The test for a single region
|
25
24
|
it { should be_up }
|
@@ -1,19 +1,18 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# copyright: 2018, The Authors
|
3
2
|
|
4
|
-
title
|
3
|
+
title "sample section"
|
5
4
|
|
6
5
|
# you can also use plain tests
|
7
|
-
describe file(
|
6
|
+
describe file("/tmp") do
|
8
7
|
it { should be_directory }
|
9
8
|
end
|
10
9
|
|
11
10
|
# you add controls here
|
12
|
-
control
|
11
|
+
control "tmp-1.0" do # A unique ID for this control
|
13
12
|
impact 0.7 # The criticality, if this control fails.
|
14
|
-
title
|
15
|
-
desc
|
16
|
-
describe file(
|
13
|
+
title "Create /tmp directory" # A human-readable title
|
14
|
+
desc "An optional description..."
|
15
|
+
describe file("/tmp") do # The actual test
|
17
16
|
it { should be_directory }
|
18
17
|
end
|
19
18
|
end
|
@@ -1,45 +1,49 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative "../../../shared/core_plugin_test_helper.rb"
|
2
2
|
|
3
|
-
class InitPluginCli <
|
3
|
+
class InitPluginCli < Minitest::Test
|
4
4
|
include CorePluginFunctionalHelper
|
5
5
|
|
6
|
+
def setup
|
7
|
+
skip_windows!
|
8
|
+
end
|
9
|
+
|
6
10
|
def test_generating_inspec_plugin_correct_prefix_required
|
7
11
|
Dir.mktmpdir do |dir|
|
8
|
-
plugin =
|
12
|
+
plugin = "wacky-name"
|
9
13
|
run_result = run_inspec_process("init plugin --no-prompt #{plugin} ", prefix: "cd #{dir} &&")
|
10
14
|
assert_equal 1, run_result.exit_status
|
11
15
|
assert_empty run_result.stderr
|
12
|
-
assert_includes run_result.stdout,
|
13
|
-
assert_includes run_result.stdout,
|
16
|
+
assert_includes run_result.stdout, "ERROR"
|
17
|
+
assert_includes run_result.stdout, "Plugin names must begin with"
|
14
18
|
end
|
15
19
|
end
|
16
20
|
|
17
21
|
def test_generating_inspec_plugin_with_default_options
|
18
22
|
Dir.mktmpdir do |dir|
|
19
|
-
plugin =
|
20
|
-
snake_case = plugin.tr(
|
21
|
-
module_name = plugin.sub(/^inspec\-/,
|
23
|
+
plugin = "inspec-test-generated-plugin"
|
24
|
+
snake_case = plugin.tr("-", "_")
|
25
|
+
module_name = plugin.sub(/^inspec\-/, "").split("-").map(&:capitalize).join("")
|
22
26
|
|
23
27
|
run_result = run_inspec_process("init plugin --no-prompt #{plugin}", prefix: "cd #{dir} &&")
|
24
28
|
assert_empty run_result.stderr
|
25
29
|
|
26
30
|
assert_equal 0, run_result.exit_status
|
27
|
-
assert_includes run_result.stdout,
|
31
|
+
assert_includes run_result.stdout, "Creating new inspec plugin at"
|
28
32
|
assert_includes run_result.stdout, plugin
|
29
33
|
|
30
34
|
# Check generated files and contents.
|
31
35
|
# Each file must exist, and its contents must match each of the regexen given.
|
32
36
|
{
|
33
|
-
File.join(plugin,
|
37
|
+
File.join(plugin, "README.md") => [
|
34
38
|
/#{plugin}/
|
35
39
|
],
|
36
|
-
File.join(plugin,
|
40
|
+
File.join(plugin, "LICENSE") => [
|
37
41
|
/(?!opyright)/, # No copyright by default
|
38
42
|
/Apache License/,
|
39
43
|
],
|
40
|
-
File.join(plugin,
|
41
|
-
File.join(plugin,
|
42
|
-
File.join(plugin, plugin +
|
44
|
+
File.join(plugin, "Gemfile") => [], # No interpolation
|
45
|
+
File.join(plugin, "Rakefile") => [], # No interpolation
|
46
|
+
File.join(plugin, plugin + ".gemspec") => [
|
43
47
|
/require '#{plugin}\/version'/,
|
44
48
|
/spec\.name\s+=\s+'#{plugin}'/,
|
45
49
|
/spec\.version\s+=\s+InspecPlugins::#{module_name}::VERSION/,
|
@@ -51,10 +55,10 @@ class InitPluginCli < MiniTest::Test
|
|
51
55
|
/spec\.homepage\s+=\s+'https:\/\/github.com\/you\/#{plugin}'/,
|
52
56
|
/spec\.license\s+=\s+'Apache-2\.0'/,
|
53
57
|
],
|
54
|
-
File.join(plugin,
|
58
|
+
File.join(plugin, "lib", plugin + ".rb") => [
|
55
59
|
/require\s'#{plugin}\/plugin'/,
|
56
60
|
],
|
57
|
-
File.join(plugin,
|
61
|
+
File.join(plugin, "lib", plugin, "plugin.rb") => [
|
58
62
|
/require\s'#{plugin}\/version'/,
|
59
63
|
/\#\s#{plugin}\s=>\s#{module_name}/,
|
60
64
|
/module\s#{module_name}/,
|
@@ -64,10 +68,10 @@ class InitPluginCli < MiniTest::Test
|
|
64
68
|
/require\s'#{plugin}\/cli_command'/,
|
65
69
|
/InspecPlugins::#{module_name}::CliCommand/,
|
66
70
|
],
|
67
|
-
File.join(plugin,
|
71
|
+
File.join(plugin, "lib", plugin, "version.rb") => [
|
68
72
|
/module\s#{module_name}/,
|
69
73
|
],
|
70
|
-
File.join(plugin,
|
74
|
+
File.join(plugin, "lib", plugin, "cli_command.rb") => [
|
71
75
|
/module\sInspecPlugins::#{module_name}/,
|
72
76
|
/\#\smakes\s`inspec\smy-command\s\.\.\.`\swork\./,
|
73
77
|
/subcommand_desc\s'my_command\s\[COMMAND\]'/,
|
@@ -76,22 +80,22 @@ class InitPluginCli < MiniTest::Test
|
|
76
80
|
/\#\sruns\s`inspec\smy-command\sdo-something`./,
|
77
81
|
/Edit\slib\/#{plugin}\/cli_command\.rb\sto\smake\sit\sdo/,
|
78
82
|
],
|
79
|
-
File.join(plugin,
|
80
|
-
File.join(plugin,
|
81
|
-
File.join(plugin,
|
83
|
+
File.join(plugin, "test", "helper.rb") => [], # No interpolation
|
84
|
+
File.join(plugin, "test", "functional", "README.md") => [], # No interpolation
|
85
|
+
File.join(plugin, "test", "functional", snake_case + "_test.rb") => [
|
82
86
|
# Whatever goes here
|
83
87
|
],
|
84
|
-
File.join(plugin,
|
88
|
+
File.join(plugin, "test", "unit", "plugin_def_test.rb") => [
|
85
89
|
/require\s'#{plugin}\/plugin'/,
|
86
90
|
/describe InspecPlugins::#{module_name}::Plugin\sdo/,
|
87
91
|
/let\(:plugin_name\) \{ \:'#{plugin}\' \}/,
|
88
92
|
],
|
89
|
-
File.join(plugin,
|
93
|
+
File.join(plugin, "test", "unit", "cli_args_test.rb") => [
|
90
94
|
/require '#{plugin}\/cli_command'/,
|
91
95
|
/describe InspecPlugins::#{module_name}::CliCommand do/,
|
92
96
|
/let\(\:cli_class\) \{ InspecPlugins::#{module_name}::CliCommand \}/,
|
93
97
|
],
|
94
|
-
File.join(plugin,
|
98
|
+
File.join(plugin, "test", "unit", "README.md") => [
|
95
99
|
/cli_args_test\.rb/,
|
96
100
|
],
|
97
101
|
}.each do |path, regexen|
|
@@ -108,38 +112,37 @@ class InitPluginCli < MiniTest::Test
|
|
108
112
|
|
109
113
|
def test_generating_inspec_plugin_with_custom_options
|
110
114
|
Dir.mktmpdir do |dir|
|
111
|
-
plugin =
|
112
|
-
snake_case = plugin.tr(
|
113
|
-
camel_case = plugin.sub(/^inspec\-/, '').split('-').map(&:capitalize).join('')
|
115
|
+
plugin = "inspec-test-generated-plugin"
|
116
|
+
snake_case = plugin.tr("-", "_")
|
114
117
|
|
115
|
-
opts =
|
116
|
-
opts +=
|
117
|
-
opts +=
|
118
|
+
opts = ""
|
119
|
+
opts += " --author-email bob@example.com "
|
120
|
+
opts += " --author-name Bob "
|
118
121
|
opts += ' --copyright "Copyright © 2018 Bob" '
|
119
122
|
opts += ' --description "That you will really like" '
|
120
|
-
opts +=
|
123
|
+
opts += " --license-name BSD-3-Clause "
|
121
124
|
opts += ' --summary "A fantastic plugin" '
|
122
125
|
|
123
|
-
opts +=
|
124
|
-
opts +=
|
126
|
+
opts += " --homepage http://example.com "
|
127
|
+
opts += " --module_name FunPlugin"
|
125
128
|
|
126
129
|
run_result = run_inspec_process("init plugin #{plugin} --no-prompt #{opts}", prefix: "cd #{dir} &&")
|
127
130
|
assert_empty run_result.stderr
|
128
131
|
assert_equal 0, run_result.exit_status
|
129
|
-
assert_includes run_result.stdout,
|
132
|
+
assert_includes run_result.stdout, "Creating new inspec plugin at"
|
130
133
|
assert_includes run_result.stdout, plugin
|
131
134
|
|
132
135
|
# Check generated files and contents.
|
133
136
|
# Each file must exist, and its contents must match each of the regexen given.
|
134
137
|
{
|
135
|
-
File.join(plugin,
|
136
|
-
File.join(plugin,
|
138
|
+
File.join(plugin, "README.md") => [],
|
139
|
+
File.join(plugin, "LICENSE") => [
|
137
140
|
/Copyright © 2018 Bob/,
|
138
141
|
/used to endorse or promote/,
|
139
142
|
],
|
140
|
-
File.join(plugin,
|
141
|
-
File.join(plugin,
|
142
|
-
File.join(plugin, plugin +
|
143
|
+
File.join(plugin, "Gemfile") => [],
|
144
|
+
File.join(plugin, "Rakefile") => [],
|
145
|
+
File.join(plugin, plugin + ".gemspec") => [
|
143
146
|
/spec\.version\s+=\s+InspecPlugins::FunPlugin::VERSION/,
|
144
147
|
/spec\.authors\s+=\s+\['Bob'\]/,
|
145
148
|
/spec\.email\s+=\s+\['bob@example\.com'\]/,
|
@@ -148,14 +151,14 @@ class InitPluginCli < MiniTest::Test
|
|
148
151
|
/spec\.homepage\s+=\s+'http:\/\/example.com'/,
|
149
152
|
/spec\.license\s+=\s+'BSD-3-Clause'/,
|
150
153
|
],
|
151
|
-
File.join(plugin,
|
152
|
-
File.join(plugin,
|
153
|
-
File.join(plugin,
|
154
|
-
File.join(plugin,
|
155
|
-
File.join(plugin,
|
156
|
-
File.join(plugin,
|
157
|
-
File.join(plugin,
|
158
|
-
File.join(plugin,
|
154
|
+
File.join(plugin, "lib", plugin + ".rb") => [],
|
155
|
+
File.join(plugin, "lib", plugin, "plugin.rb") => [],
|
156
|
+
File.join(plugin, "lib", plugin, "version.rb") => [],
|
157
|
+
File.join(plugin, "lib", plugin, "cli_command.rb") => [],
|
158
|
+
File.join(plugin, "test", "helper.rb") => [],
|
159
|
+
File.join(plugin, "test", "functional", snake_case + "_test.rb") => [],
|
160
|
+
File.join(plugin, "test", "unit", "plugin_def_test.rb") => [],
|
161
|
+
File.join(plugin, "test", "unit", "cli_args_test.rb") => [],
|
159
162
|
}.each do |path, regexen|
|
160
163
|
full_path = File.join(dir, path)
|
161
164
|
assert(File.exist?(full_path), "#{path} should have been generated")
|
@@ -168,6 +171,4 @@ class InitPluginCli < MiniTest::Test
|
|
168
171
|
end
|
169
172
|
end
|
170
173
|
|
171
|
-
|
172
|
-
|
173
|
-
end
|
174
|
+
end
|
@@ -1,32 +1,34 @@
|
|
1
|
-
|
1
|
+
require "yaml"
|
2
|
+
require_relative "../../../shared/core_plugin_test_helper.rb"
|
2
3
|
|
3
|
-
|
4
|
-
require_relative '../../../shared/core_plugin_test_helper.rb'
|
5
|
-
|
6
|
-
class InitCli < MiniTest::Test
|
4
|
+
class InitCli < Minitest::Test
|
7
5
|
include CorePluginFunctionalHelper
|
8
6
|
|
7
|
+
def setup
|
8
|
+
skip_windows!
|
9
|
+
end
|
10
|
+
|
9
11
|
def test_generating_inspec_profile
|
10
12
|
Dir.mktmpdir do |dir|
|
11
|
-
profile = File.join(dir,
|
13
|
+
profile = File.join(dir, "test-profile")
|
12
14
|
out = run_inspec_process("init profile test-profile", prefix: "cd #{dir} &&")
|
13
15
|
assert_equal 0, out.exit_status
|
14
|
-
assert_includes out.stdout,
|
16
|
+
assert_includes out.stdout, "Creating new profile at"
|
15
17
|
assert_includes out.stdout, profile
|
16
|
-
assert_includes Dir.entries(profile).join,
|
17
|
-
assert_includes Dir.entries(profile).join,
|
18
|
+
assert_includes Dir.entries(profile).join, "inspec.yml"
|
19
|
+
assert_includes Dir.entries(profile).join, "README.md"
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
21
23
|
def test_generating_inspec_profile_with_explicit_platform
|
22
24
|
Dir.mktmpdir do |dir|
|
23
|
-
profile = File.join(dir,
|
25
|
+
profile = File.join(dir, "test-profile")
|
24
26
|
out = run_inspec_process("init profile --platform os test-profile", prefix: "cd #{dir} &&")
|
25
27
|
assert_equal 0, out.exit_status
|
26
|
-
assert_includes out.stdout,
|
28
|
+
assert_includes out.stdout, "Creating new profile at"
|
27
29
|
assert_includes out.stdout, profile
|
28
|
-
assert_includes Dir.entries(profile).join,
|
29
|
-
assert_includes Dir.entries(profile).join,
|
30
|
+
assert_includes Dir.entries(profile).join, "inspec.yml"
|
31
|
+
assert_includes Dir.entries(profile).join, "README.md"
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
@@ -34,67 +36,67 @@ class InitCli < MiniTest::Test
|
|
34
36
|
Dir.mktmpdir do |dir|
|
35
37
|
out = run_inspec_process("init profile --platform nonesuch test-profile", prefix: "cd #{dir} &&")
|
36
38
|
assert_equal 1, out.exit_status
|
37
|
-
assert_includes out.stdout,
|
39
|
+
assert_includes out.stdout, "Unable to generate profile"
|
38
40
|
assert_includes out.stdout, "No template available for platform 'nonesuch'"
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
42
44
|
def test_profile_with_slash_name
|
43
45
|
Dir.mktmpdir do |dir|
|
44
|
-
profile = dir +
|
46
|
+
profile = dir + "/test/deeper/profile"
|
45
47
|
out = run_inspec_process("init profile test/deeper/profile", prefix: "cd #{dir} &&")
|
46
48
|
assert_equal 0, out.exit_status
|
47
49
|
assert_equal true, File.exist?(profile)
|
48
50
|
profile = YAML.load_file("#{profile}/inspec.yml")
|
49
|
-
assert_equal
|
51
|
+
assert_equal "profile", profile["name"]
|
50
52
|
end
|
51
53
|
end
|
52
54
|
|
53
55
|
def test_generating_inspec_profile_gcp
|
54
56
|
Dir.mktmpdir do |dir|
|
55
|
-
profile = File.join(dir,
|
57
|
+
profile = File.join(dir, "test-gcp-profile")
|
56
58
|
out = run_inspec_process("init profile --platform gcp test-gcp-profile", prefix: "cd #{dir} &&")
|
57
59
|
assert_equal 0, out.exit_status
|
58
|
-
assert_includes out.stdout,
|
60
|
+
assert_includes out.stdout, "Creating new profile at"
|
59
61
|
assert_includes out.stdout, profile
|
60
|
-
assert_includes Dir.entries(profile).join,
|
61
|
-
assert_includes Dir.entries(profile).join,
|
62
|
+
assert_includes Dir.entries(profile).join, "inspec.yml"
|
63
|
+
assert_includes Dir.entries(profile).join, "README.md"
|
62
64
|
end
|
63
65
|
end
|
64
66
|
|
65
67
|
def test_generating_inspec_profile_aws
|
66
68
|
Dir.mktmpdir do |dir|
|
67
|
-
profile = File.join(dir,
|
69
|
+
profile = File.join(dir, "test-aws-profile")
|
68
70
|
out = run_inspec_process("init profile --platform aws test-aws-profile", prefix: "cd #{dir} &&")
|
69
71
|
assert_equal 0, out.exit_status
|
70
|
-
assert_includes out.stdout,
|
72
|
+
assert_includes out.stdout, "Creating new profile at"
|
71
73
|
assert_includes out.stdout, profile
|
72
|
-
assert_includes Dir.entries(profile).join,
|
73
|
-
assert_includes Dir.entries(profile).join,
|
74
|
+
assert_includes Dir.entries(profile).join, "inspec.yml"
|
75
|
+
assert_includes Dir.entries(profile).join, "README.md"
|
74
76
|
end
|
75
77
|
end
|
76
78
|
|
77
79
|
def test_generating_inspec_profile_azure
|
78
80
|
Dir.mktmpdir do |dir|
|
79
|
-
profile = File.join(dir,
|
81
|
+
profile = File.join(dir, "test-azure-profile")
|
80
82
|
out = run_inspec_process("init profile --platform azure test-azure-profile", prefix: "cd #{dir} &&")
|
81
83
|
assert_equal 0, out.exit_status
|
82
|
-
assert_includes out.stdout,
|
84
|
+
assert_includes out.stdout, "Creating new profile at"
|
83
85
|
assert_includes out.stdout, profile
|
84
|
-
assert_includes Dir.entries(profile).join,
|
85
|
-
assert_includes Dir.entries(profile).join,
|
86
|
+
assert_includes Dir.entries(profile).join, "inspec.yml"
|
87
|
+
assert_includes Dir.entries(profile).join, "README.md"
|
86
88
|
end
|
87
89
|
end
|
88
90
|
|
89
91
|
def test_generating_inspec_profile_os
|
90
92
|
Dir.mktmpdir do |dir|
|
91
|
-
profile = File.join(dir,
|
93
|
+
profile = File.join(dir, "test-os-profile")
|
92
94
|
out = run_inspec_process("init profile --platform os test-os-profile", prefix: "cd #{dir} &&")
|
93
95
|
assert_equal 0, out.exit_status
|
94
|
-
assert_includes out.stdout,
|
96
|
+
assert_includes out.stdout, "Creating new profile at"
|
95
97
|
assert_includes out.stdout, profile
|
96
|
-
assert_includes Dir.entries(profile).join,
|
97
|
-
assert_includes Dir.entries(profile).join,
|
98
|
+
assert_includes Dir.entries(profile).join, "inspec.yml"
|
99
|
+
assert_includes Dir.entries(profile).join, "README.md"
|
98
100
|
end
|
99
101
|
end
|
100
|
-
end
|
102
|
+
end
|