puppet 5.4.0 → 5.5.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/Gemfile +3 -3
- data/MAINTAINERS +0 -19
- data/README.md +5 -5
- data/Rakefile +26 -0
- data/conf/auth.conf +5 -0
- data/ext/project_data.yaml +1 -0
- data/ext/regexp_nodes/regexp_nodes.rb +3 -4
- data/lib/puppet/application/apply.rb +1 -1
- data/lib/puppet/application/cert.rb +3 -1
- data/lib/puppet/application/device.rb +100 -13
- data/lib/puppet/application/facts.rb +5 -0
- data/lib/puppet/application/lookup.rb +12 -2
- data/lib/puppet/configurer.rb +37 -17
- data/lib/puppet/confine.rb +4 -1
- data/lib/puppet/datatypes.rb +1 -1
- data/lib/puppet/environments.rb +1 -1
- data/lib/puppet/error.rb +6 -3
- data/lib/puppet/external/dot.rb +0 -7
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/face/config.rb +92 -10
- data/lib/puppet/face/epp.rb +31 -6
- data/lib/puppet/face/facts.rb +49 -0
- data/lib/puppet/face/help.rb +33 -35
- data/lib/puppet/face/help/action.erb +1 -1
- data/lib/puppet/face/help/face.erb +1 -1
- data/lib/puppet/face/man.rb +55 -12
- data/lib/puppet/face/parser.rb +30 -3
- data/lib/puppet/file_bucket/file.rb +0 -2
- data/lib/puppet/file_serving/base.rb +10 -10
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/functions.rb +1 -3
- data/lib/puppet/functions/alert.rb +1 -1
- data/lib/puppet/functions/all.rb +6 -6
- data/lib/puppet/functions/annotate.rb +10 -10
- data/lib/puppet/functions/any.rb +6 -6
- data/lib/puppet/functions/assert_type.rb +4 -4
- data/lib/puppet/functions/binary_file.rb +14 -2
- data/lib/puppet/functions/break.rb +31 -2
- data/lib/puppet/functions/call.rb +4 -4
- data/lib/puppet/functions/contain.rb +19 -3
- data/lib/puppet/functions/convert_to.rb +6 -5
- data/lib/puppet/functions/crit.rb +1 -1
- data/lib/puppet/functions/debug.rb +1 -1
- data/lib/puppet/functions/defined.rb +11 -9
- data/lib/puppet/functions/dig.rb +26 -2
- data/lib/puppet/functions/each.rb +8 -8
- data/lib/puppet/functions/emerg.rb +1 -1
- data/lib/puppet/functions/empty.rb +79 -0
- data/lib/puppet/functions/err.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +3 -1
- data/lib/puppet/functions/filter.rb +7 -7
- data/lib/puppet/functions/find_file.rb +15 -1
- data/lib/puppet/functions/flatten.rb +64 -0
- data/lib/puppet/functions/hiera.rb +6 -6
- data/lib/puppet/functions/hiera_array.rb +6 -6
- data/lib/puppet/functions/hiera_hash.rb +6 -6
- data/lib/puppet/functions/hiera_include.rb +8 -8
- data/lib/puppet/functions/include.rb +28 -2
- data/lib/puppet/functions/info.rb +1 -1
- data/lib/puppet/functions/inline_epp.rb +2 -2
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +2 -2
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +39 -1
- data/lib/puppet/functions/lookup.rb +2 -1
- data/lib/puppet/functions/map.rb +10 -9
- data/lib/puppet/functions/match.rb +6 -6
- data/lib/puppet/functions/new.rb +995 -2
- data/lib/puppet/functions/next.rb +1 -1
- data/lib/puppet/functions/notice.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -6
- data/lib/puppet/functions/regsubst.rb +9 -3
- data/lib/puppet/functions/require.rb +36 -2
- data/lib/puppet/functions/return.rb +1 -1
- data/lib/puppet/functions/reverse_each.rb +71 -2
- data/lib/puppet/functions/slice.rb +23 -9
- data/lib/puppet/functions/split.rb +12 -10
- data/lib/puppet/functions/step.rb +73 -1
- data/lib/puppet/functions/strftime.rb +176 -2
- data/lib/puppet/functions/then.rb +65 -2
- data/lib/puppet/functions/tree_each.rb +19 -19
- data/lib/puppet/functions/type.rb +42 -1
- data/lib/puppet/functions/unique.rb +13 -13
- data/lib/puppet/functions/unwrap.rb +8 -4
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +1 -1
- data/lib/puppet/functions/warning.rb +1 -1
- data/lib/puppet/functions/with.rb +6 -4
- data/lib/puppet/functions/yaml_data.rb +3 -1
- data/lib/puppet/indirector/certificate_status/file.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +1 -3
- data/lib/puppet/indirector/facts/rest.rb +21 -0
- data/lib/puppet/indirector/facts/yaml.rb +0 -4
- data/lib/puppet/indirector/rest.rb +2 -2
- data/lib/puppet/module.rb +3 -3
- data/lib/puppet/module/task.rb +2 -3
- data/lib/puppet/module_tool/applications/application.rb +4 -4
- data/lib/puppet/module_tool/applications/builder.rb +2 -2
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +3 -3
- data/lib/puppet/network/authconfig.rb +1 -1
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +5 -7
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
- data/lib/puppet/network/http/api/master/v3/environment.rb +2 -2
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
- data/lib/puppet/network/http/error.rb +3 -3
- data/lib/puppet/network/resolver.rb +1 -2
- data/lib/puppet/parser/compiler.rb +12 -5
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +15 -4
- data/lib/puppet/parser/functions/new.rb +31 -46
- data/lib/puppet/parser/parser_factory.rb +1 -1
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +11 -11
- data/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +5 -2
- data/lib/puppet/pops/functions/dispatch.rb +1 -1
- data/lib/puppet/pops/issue_reporter.rb +18 -1
- data/lib/puppet/pops/issues.rb +6 -3
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/task_instantiator.rb +5 -5
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -1
- data/lib/puppet/pops/loaders.rb +18 -7
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +55 -6
- data/lib/puppet/pops/model/factory.rb +6 -3
- data/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
- data/lib/puppet/pops/model/pn_transformer.rb +400 -0
- data/lib/puppet/pops/parser/egrammar.ra +1 -1
- data/lib/puppet/pops/parser/eparser.rb +1 -1
- data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
- data/lib/puppet/pops/parser/lexer_support.rb +3 -2
- data/lib/puppet/pops/parser/locator.rb +0 -2
- data/lib/puppet/pops/parser/pn_parser.rb +316 -0
- data/lib/puppet/pops/pcore.rb +17 -17
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/serialization/json.rb +7 -7
- data/lib/puppet/pops/types/class_loader.rb +6 -3
- data/lib/puppet/pops/types/implementation_registry.rb +28 -35
- data/lib/puppet/pops/types/p_object_type.rb +3 -3
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +24 -1
- data/lib/puppet/pops/types/ruby_generator.rb +3 -4
- data/lib/puppet/pops/types/type_calculator.rb +1 -1
- data/lib/puppet/pops/types/type_factory.rb +0 -4
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +14 -7
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/pops/utils.rb +2 -2
- data/lib/puppet/pops/validation/checker4_0.rb +6 -2
- data/lib/puppet/provider/group/groupadd.rb +3 -1
- data/lib/puppet/provider/group/windows_adsi.rb +4 -7
- data/lib/puppet/provider/nameservice.rb +3 -3
- data/lib/puppet/provider/package/pacman.rb +4 -4
- data/lib/puppet/provider/package/pip.rb +3 -3
- data/lib/puppet/provider/package/pkgdmg.rb +3 -3
- data/lib/puppet/provider/package/pkgutil.rb +2 -2
- data/lib/puppet/provider/package/portage.rb +9 -9
- data/lib/puppet/provider/package/zypper.rb +2 -2
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +3 -2
- data/lib/puppet/provider/service/systemd.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +6 -2
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +20 -9
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/type.rb +11 -11
- data/lib/puppet/resource.rb +1 -1
- data/lib/puppet/resource/capability_finder.rb +5 -5
- data/lib/puppet/resource/catalog.rb +6 -3
- data/lib/puppet/resource/status.rb +9 -2
- data/lib/puppet/resource/type.rb +1 -1
- data/lib/puppet/settings.rb +31 -19
- data/lib/puppet/settings/base_setting.rb +5 -0
- data/lib/puppet/settings/config_file.rb +1 -1
- data/lib/puppet/settings/ttl_setting.rb +5 -0
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/certificate_request.rb +0 -2
- data/lib/puppet/syntax_checkers/json.rb +1 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +18 -12
- data/lib/puppet/type.rb +9 -13
- data/lib/puppet/type/augeas.rb +2 -2
- data/lib/puppet/type/cron.rb +11 -6
- data/lib/puppet/type/exec.rb +1 -1
- data/lib/puppet/type/file.rb +4 -5
- data/lib/puppet/type/host.rb +1 -1
- data/lib/puppet/type/k5login.rb +30 -54
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/schedule.rb +12 -12
- data/lib/puppet/type/scheduled_task.rb +2 -2
- data/lib/puppet/type/ssh_authorized_key.rb +5 -5
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/type/yumrepo.rb +26 -5
- data/lib/puppet/util.rb +0 -4
- data/lib/puppet/util/backups.rb +1 -1
- data/lib/puppet/util/inifile.rb +3 -4
- data/lib/puppet/util/json.rb +68 -0
- data/lib/puppet/util/json_lockfile.rb +3 -3
- data/lib/puppet/util/log.rb +2 -5
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -8
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +0 -2
- data/lib/puppet/util/windows/adsi.rb +15 -18
- data/lib/puppet/util/windows/com.rb +2 -1
- data/lib/puppet/util/windows/file.rb +2 -2
- data/lib/puppet/util/windows/principal.rb +7 -6
- data/lib/puppet/util/windows/sid.rb +60 -7
- data/lib/puppet/util/windows/taskscheduler.rb +0 -9
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +53 -48
- data/locales/ja/puppet.po +1357 -912
- data/locales/puppet.pot +549 -466
- data/man/man5/puppet.conf.5 +103 -20
- data/man/man8/puppet-agent.8 +6 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.8 +1 -1
- data/man/man8/puppet-config.8 +35 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +33 -11
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +34 -12
- data/man/man8/puppet-facts.8 +50 -1
- data/man/man8/puppet-filebucket.8 +38 -11
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +10 -4
- data/man/man8/puppet-master.8 +1 -1
- data/man/man8/puppet-module.8 +15 -6
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +31 -8
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +67 -0
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +3 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
- data/spec/integration/application/apply_spec.rb +15 -15
- data/spec/integration/application/lookup_spec.rb +21 -0
- data/spec/integration/faces/config_spec.rb +16 -4
- data/spec/integration/network/http/api/indirected_routes_spec.rb +5 -5
- data/spec/integration/parser/catalog_spec.rb +1 -1
- data/spec/integration/parser/collection_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +17 -18
- data/spec/integration/parser/pcore_resource_spec.rb +2 -2
- data/spec/integration/parser/scope_spec.rb +2 -2
- data/spec/integration/ssl/certificate_authority_spec.rb +7 -7
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/key_spec.rb +1 -1
- data/spec/integration/transaction/report_spec.rb +3 -3
- data/spec/integration/transaction_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +10 -11
- data/spec/integration/type_spec.rb +1 -2
- data/spec/integration/util/windows/adsi_spec.rb +86 -1
- data/spec/integration/util/windows/principal_spec.rb +11 -2
- data/spec/integration/util/windows/security_spec.rb +2 -2
- data/spec/lib/matchers/json.rb +4 -4
- data/spec/lib/puppet_spec/language.rb +34 -35
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/shared_behaviours/file_server_terminus.rb +0 -2
- data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/application/cert_spec.rb +21 -9
- data/spec/unit/application/device_spec.rb +96 -2
- data/spec/unit/application/face_base_spec.rb +2 -2
- data/spec/unit/application/lookup_spec.rb +0 -1
- data/spec/unit/configurer_spec.rb +14 -0
- data/spec/unit/confine_spec.rb +16 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
- data/spec/unit/datatypes_spec.rb +49 -0
- data/spec/unit/environments_spec.rb +7 -0
- data/spec/unit/face/config_spec.rb +116 -12
- data/spec/unit/face/epp_face_spec.rb +53 -2
- data/spec/unit/face/facts_spec.rb +53 -0
- data/spec/unit/face/help_spec.rb +62 -69
- data/spec/unit/face/man_spec.rb +26 -0
- data/spec/unit/face/module/list_spec.rb +0 -1
- data/spec/unit/face/parser_spec.rb +78 -0
- data/spec/unit/file_bucket/dipper_spec.rb +0 -4
- data/spec/unit/file_serving/content_spec.rb +0 -1
- data/spec/unit/file_serving/fileset_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
- data/spec/unit/forge_spec.rb +1 -2
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +77 -0
- data/spec/unit/functions/epp_spec.rb +1 -1
- data/spec/unit/functions/flatten_spec.rb +31 -0
- data/spec/unit/functions/include_spec.rb +2 -2
- data/spec/unit/functions/inline_epp_spec.rb +1 -1
- data/spec/unit/functions/join_spec.rb +33 -0
- data/spec/unit/functions/keys_spec.rb +31 -0
- data/spec/unit/functions/length_spec.rb +50 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
- data/spec/unit/functions/lookup_spec.rb +52 -0
- data/spec/unit/functions/shared.rb +1 -1
- data/spec/unit/functions/values_spec.rb +30 -0
- data/spec/unit/functions/versioncmp_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +30 -32
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +2 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +0 -15
- data/spec/unit/indirector/facts/rest_spec.rb +45 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +6 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +2 -2
- data/spec/unit/indirector/indirection_spec.rb +1 -1
- data/spec/unit/indirector/node/ldap_spec.rb +2 -2
- data/spec/unit/indirector/request_spec.rb +0 -2
- data/spec/unit/indirector/rest_spec.rb +2 -2
- data/spec/unit/indirector_spec.rb +0 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_manager_spec.rb +1 -1
- data/spec/unit/interface/action_spec.rb +1 -1
- data/spec/unit/module_spec.rb +0 -5
- data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
- data/spec/unit/network/formats_spec.rb +5 -13
- data/spec/unit/network/http/api/indirected_routes_spec.rb +6 -2
- data/spec/unit/network/http/connection_spec.rb +1 -1
- data/spec/unit/network/http/handler_spec.rb +3 -2
- data/spec/unit/node/environment_spec.rb +1 -1
- data/spec/unit/node_spec.rb +3 -3
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/environment_compiler_spec.rb +8 -8
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -1
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
- data/spec/unit/parser/functions/realize_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +0 -1
- data/spec/unit/parser/scope_spec.rb +3 -3
- data/spec/unit/parser/type_loader_spec.rb +1 -1
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -3
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -4
- data/spec/unit/pops/factory_rspec_helper.rb +1 -1
- data/spec/unit/pops/factory_spec.rb +5 -5
- data/spec/unit/pops/issues_spec.rb +23 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +24 -2
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +14 -5
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +9 -9
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
- data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
- data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
- data/spec/unit/pops/pn_spec.rb +148 -0
- data/spec/unit/pops/types/iterable_spec.rb +1 -1
- data/spec/unit/pops/types/p_object_type_spec.rb +5 -5
- data/spec/unit/pops/types/p_timespan_type_spec.rb +11 -4
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +9 -2
- data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
- data/spec/unit/pops/types/ruby_generator_spec.rb +3 -8
- data/spec/unit/pops/types/string_converter_spec.rb +3 -3
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +3 -1
- data/spec/unit/property_spec.rb +2 -2
- data/spec/unit/provider/aixobject_spec.rb +1 -1
- data/spec/unit/provider/cron/crontab_spec.rb +3 -3
- data/spec/unit/provider/exec/posix_spec.rb +6 -6
- data/spec/unit/provider/group/groupadd_spec.rb +4 -4
- data/spec/unit/provider/group/windows_adsi_spec.rb +79 -22
- data/spec/unit/provider/ldap_spec.rb +0 -1
- data/spec/unit/provider/nameservice_spec.rb +5 -5
- data/spec/unit/provider/package/rpm_spec.rb +3 -4
- data/spec/unit/provider/package/yum_spec.rb +6 -2
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/init_spec.rb +2 -2
- data/spec/unit/provider/service/openrc_spec.rb +2 -2
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/smf_spec.rb +2 -0
- data/spec/unit/provider/service/systemd_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_spec.rb +7 -7
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -4
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +15 -9
- data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
- data/spec/unit/provider/yumrepo/inifile_spec.rb +76 -0
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/resource/catalog_spec.rb +8 -3
- data/spec/unit/resource/status_spec.rb +15 -4
- data/spec/unit/resource/type_spec.rb +2 -3
- data/spec/unit/settings_spec.rb +9 -4
- data/spec/unit/ssl/certificate_authority_spec.rb +1 -9
- data/spec/unit/ssl/certificate_request_spec.rb +1 -2
- data/spec/unit/transaction/report_spec.rb +41 -0
- data/spec/unit/transaction_spec.rb +1 -1
- data/spec/unit/type/exec_spec.rb +7 -9
- data/spec/unit/type/file/selinux_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +4 -3
- data/spec/unit/type/k5login_spec.rb +79 -10
- data/spec/unit/type/mount_spec.rb +1 -1
- data/spec/unit/type/nagios_spec.rb +6 -6
- data/spec/unit/type/user_spec.rb +1 -1
- data/spec/unit/type/yumrepo_spec.rb +18 -0
- data/spec/unit/type/zfs_spec.rb +1 -1
- data/spec/unit/type_spec.rb +14 -15
- data/spec/unit/util/docs_spec.rb +1 -1
- data/spec/unit/util/execution_spec.rb +0 -1
- data/spec/unit/util/inifile_spec.rb +35 -4
- data/spec/unit/util/log/destinations_spec.rb +2 -2
- data/spec/unit/util/log_spec.rb +6 -5
- data/spec/unit/util/network_device/cisco/device_spec.rb +2 -2
- data/spec/unit/util/plist_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +2 -2
- data/spec/unit/util/tagging_spec.rb +1 -7
- data/spec/unit/util/windows/adsi_spec.rb +31 -27
- data/spec/unit/util/windows/sid_spec.rb +86 -15
- data/spec/unit/util_spec.rb +2 -2
- data/spec/watchr.rb +0 -1
- data/tasks/benchmark.rake +37 -0
- data/tasks/manpages.rake +1 -1
- metadata +71 -11
- checksums.yaml +0 -7
@@ -227,7 +227,7 @@ describe 'when pcore described resources types are in use' do
|
|
227
227
|
pending "assertion of parameter types not yet implemented"
|
228
228
|
genface.types
|
229
229
|
expect {
|
230
|
-
|
230
|
+
compile_to_catalog(<<-MANIFEST)
|
231
231
|
test2 { 'b':
|
232
232
|
color => 'white is not a color'
|
233
233
|
}
|
@@ -237,7 +237,7 @@ describe 'when pcore described resources types are in use' do
|
|
237
237
|
end
|
238
238
|
|
239
239
|
def find_resource_type(scope, name)
|
240
|
-
|
240
|
+
Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, name)
|
241
241
|
end
|
242
242
|
|
243
243
|
def generate_and_in_a_compilers_context(&block)
|
@@ -20,7 +20,7 @@ describe "Two step scoping for variables" do
|
|
20
20
|
describe "using unsupported operators" do
|
21
21
|
it "issues an error for +=" do
|
22
22
|
expect do
|
23
|
-
|
23
|
+
compile_to_catalog(<<-MANIFEST)
|
24
24
|
$var = ["top_msg"]
|
25
25
|
node default {
|
26
26
|
$var += ["override"]
|
@@ -31,7 +31,7 @@ describe "Two step scoping for variables" do
|
|
31
31
|
|
32
32
|
it "issues an error for -=" do
|
33
33
|
expect do
|
34
|
-
|
34
|
+
compile_to_catalog(<<-MANIFEST)
|
35
35
|
$var = ["top_msg"]
|
36
36
|
node default {
|
37
37
|
$var -= ["top_msg"]
|
@@ -36,7 +36,7 @@ describe Puppet::SSL::CertificateAuthority, :unless => Puppet.features.microsoft
|
|
36
36
|
|
37
37
|
describe "when signing certificates" do
|
38
38
|
it "should save the signed certificate" do
|
39
|
-
|
39
|
+
certificate_request_for("luke.madstop.com")
|
40
40
|
|
41
41
|
ca.sign("luke.madstop.com")
|
42
42
|
|
@@ -44,8 +44,8 @@ describe Puppet::SSL::CertificateAuthority, :unless => Puppet.features.microsoft
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should be able to sign multiple certificates" do
|
47
|
-
|
48
|
-
|
47
|
+
certificate_request_for("luke.madstop.com")
|
48
|
+
certificate_request_for("other.madstop.com")
|
49
49
|
|
50
50
|
ca.sign("luke.madstop.com")
|
51
51
|
ca.sign("other.madstop.com")
|
@@ -55,7 +55,7 @@ describe Puppet::SSL::CertificateAuthority, :unless => Puppet.features.microsoft
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it "should save the signed certificate to the :signeddir" do
|
58
|
-
|
58
|
+
certificate_request_for("luke.madstop.com")
|
59
59
|
|
60
60
|
ca.sign("luke.madstop.com")
|
61
61
|
|
@@ -64,16 +64,16 @@ describe Puppet::SSL::CertificateAuthority, :unless => Puppet.features.microsoft
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "should save valid certificates" do
|
67
|
-
|
67
|
+
certificate_request_for("luke.madstop.com")
|
68
68
|
|
69
69
|
ca.sign("luke.madstop.com")
|
70
70
|
|
71
|
-
unless
|
71
|
+
unless Puppet::Util::which('openssl')
|
72
72
|
pending "No ssl available"
|
73
73
|
else
|
74
74
|
ca_cert = Puppet[:cacert]
|
75
75
|
client_cert = File.join(Puppet[:signeddir], "luke.madstop.com.pem")
|
76
|
-
|
76
|
+
%x{openssl verify -CAfile #{ca_cert} #{client_cert}}
|
77
77
|
expect($CHILD_STATUS).to eq(0)
|
78
78
|
end
|
79
79
|
end
|
@@ -24,7 +24,7 @@ describe Puppet::SSL::CertificateRevocationList do
|
|
24
24
|
}
|
25
25
|
|
26
26
|
it "should be able to read in written out CRLs with no revoked certificates" do
|
27
|
-
|
27
|
+
Puppet::SSL::CertificateAuthority.new
|
28
28
|
|
29
29
|
raise "CRL not created" unless Puppet::FileSystem.exist?(Puppet[:hostcrl])
|
30
30
|
|
@@ -84,7 +84,7 @@ describe Puppet::SSL::Key do
|
|
84
84
|
# note incorrect password is an error
|
85
85
|
expect do
|
86
86
|
Puppet::FileSystem.open(pem_path, nil, 'r:ASCII') do |f|
|
87
|
-
|
87
|
+
OpenSSL::PKey::RSA.new(f.read, 'invalid_password')
|
88
88
|
end
|
89
89
|
end.to raise_error(OpenSSL::PKey::RSAError)
|
90
90
|
|
@@ -87,7 +87,7 @@ describe Puppet::Transaction::Report do
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def get_cc_count(report)
|
90
|
-
|
90
|
+
report.metrics["resources"].values.each do |v|
|
91
91
|
if v[0] == "corrective_change"
|
92
92
|
return v[2]
|
93
93
|
end
|
@@ -298,8 +298,8 @@ describe Puppet::Transaction::Report do
|
|
298
298
|
:content => "mystuff1"),
|
299
299
|
Puppet::Type.type(:file).new(:title => file,
|
300
300
|
:content => "mystuff2")) do
|
301
|
-
File.open(file, 'w') do |
|
302
|
-
|
301
|
+
File.open(file, 'w') do |f|
|
302
|
+
f.write "some content"
|
303
303
|
end
|
304
304
|
end
|
305
305
|
|
@@ -146,7 +146,6 @@ describe Puppet::Transaction do
|
|
146
146
|
# Verify that one component requiring another causes the contained
|
147
147
|
# resources in the requiring component to get refreshed.
|
148
148
|
it "should propagate events from a contained resource through its container to its dependent container's contained resources" do
|
149
|
-
transaction = nil
|
150
149
|
file = Puppet::Type.type(:file).new :path => tmpfile("event_propagation"), :ensure => :present
|
151
150
|
execfile = File.join(tmpdir("exec_event"), "exectestingness2")
|
152
151
|
exec = Puppet::Type.type(:exec).new :command => touch(execfile), :path => ENV['PATH']
|
@@ -292,13 +292,14 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
292
292
|
Puppet::FileSystem.symlink(link_target, link)
|
293
293
|
end
|
294
294
|
|
295
|
-
it "should not set the executable bit on the link
|
295
|
+
it "should not set the executable bit on the link target" do
|
296
296
|
catalog.add_resource described_class.new(:path => link, :ensure => :link, :mode => '0666', :target => link_target, :links => :manage)
|
297
297
|
|
298
298
|
catalog.apply
|
299
299
|
|
300
|
-
|
301
|
-
|
300
|
+
expected_target_permissions = Puppet::Util::Platform.windows? ? 0700 : 0444
|
301
|
+
|
302
|
+
expect(Puppet::FileSystem.stat(link_target).mode & 07777).to eq(expected_target_permissions)
|
302
303
|
end
|
303
304
|
|
304
305
|
it "should ignore dangling symlinks (#6856)" do
|
@@ -541,8 +542,6 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
541
542
|
File.open(dest1, "w") { |f| f.puts "whatever" }
|
542
543
|
Puppet::FileSystem.symlink(dest1, link)
|
543
544
|
|
544
|
-
d = filebucket_digest.call(File.read(file[:path]))
|
545
|
-
|
546
545
|
catalog.apply
|
547
546
|
|
548
547
|
expect(Puppet::FileSystem.readlink(link)).to eq(dest2)
|
@@ -662,13 +661,13 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
662
661
|
catalog.apply
|
663
662
|
|
664
663
|
expect(@dirs).not_to be_empty
|
665
|
-
@dirs.each do |
|
666
|
-
expect(get_mode(
|
664
|
+
@dirs.each do |dir|
|
665
|
+
expect(get_mode(dir) & 007777).to eq(0755)
|
667
666
|
end
|
668
667
|
|
669
668
|
expect(@files).not_to be_empty
|
670
|
-
@files.each do |
|
671
|
-
expect(get_mode(
|
669
|
+
@files.each do |dir|
|
670
|
+
expect(get_mode(dir) & 007777).to eq(0644)
|
672
671
|
end
|
673
672
|
end
|
674
673
|
|
@@ -1030,8 +1029,8 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
1030
1029
|
before do
|
1031
1030
|
source = tmpdir("generating_in_catalog_source")
|
1032
1031
|
|
1033
|
-
|
1034
|
-
|
1032
|
+
file_in_dir_with_contents(source, "one", "uno")
|
1033
|
+
file_in_dir_with_contents(source, "two", "dos")
|
1035
1034
|
|
1036
1035
|
@file = described_class.new(
|
1037
1036
|
:name => path,
|
@@ -21,8 +21,7 @@ describe Puppet::Type do
|
|
21
21
|
|
22
22
|
it "should not lose its provider parameter when it is reloaded" do
|
23
23
|
type = Puppet::Type.newtype(:reload_test_type)
|
24
|
-
|
25
|
-
provider = type.provide(:test_provider)
|
24
|
+
type.provide(:test_provider)
|
26
25
|
|
27
26
|
# reload it
|
28
27
|
type = Puppet::Type.newtype(:reload_test_type)
|
@@ -81,6 +81,91 @@ describe Puppet::Util::Windows::ADSI::Group,
|
|
81
81
|
end
|
82
82
|
|
83
83
|
describe '.members' do
|
84
|
+
it 'should return a list of members resolvable with Puppet::Util::Windows::ADSI::Group.name_sid_hash' do
|
85
|
+
temp_groupname = "g#{SecureRandom.uuid}"
|
86
|
+
temp_username = "u#{SecureRandom.uuid}"[0..12]
|
87
|
+
|
88
|
+
# select a virtual account that requires an authority to be able to resolve to SID
|
89
|
+
# the Dhcp service is chosen for no particular reason aside from it's a service available on all Windows versions
|
90
|
+
dhcp_virtualaccount = Puppet::Util::Windows::SID.name_to_principal('NT SERVICE\Dhcp')
|
91
|
+
|
92
|
+
# adding :SidTypeGroup as a group member will cause error in IAdsUser::Add
|
93
|
+
# adding :SidTypeDomain (such as S-1-5-80 / NT SERVICE or computer name) won't error
|
94
|
+
# but also won't be returned as a group member
|
95
|
+
# uncertain how to obtain :SidTypeComputer (perhaps AD? the local machine is :SidTypeDomain)
|
96
|
+
users = [
|
97
|
+
# Use sid_to_name to get localized names of SIDs - BUILTIN, SYSTEM, NT AUTHORITY, Everyone are all localized
|
98
|
+
# :SidTypeWellKnownGroup
|
99
|
+
# SYSTEM is prefixed with the NT Authority authority, resolveable with or without authority
|
100
|
+
{ :sid => 'S-1-5-18', :name => Puppet::Util::Windows::SID.sid_to_name('S-1-5-18') },
|
101
|
+
# Everyone is not prefixed with an authority, resolveable with or without NT AUTHORITY authority
|
102
|
+
{ :sid => 'S-1-1-0', :name => Puppet::Util::Windows::SID.sid_to_name('S-1-1-0') },
|
103
|
+
# Dhcp service account is prefixed with NT SERVICE authority, requires authority to resolve SID
|
104
|
+
# behavior is similar to IIS APPPOOL\DefaultAppPool
|
105
|
+
{ :sid => dhcp_virtualaccount.sid, :name => dhcp_virtualaccount.domain_account },
|
106
|
+
|
107
|
+
# :SidTypeAlias with authority component
|
108
|
+
# Administrators group is prefixed with BUILTIN authority, can be resolved with or without authority
|
109
|
+
{ :sid => 'S-1-5-32-544', :name => Puppet::Util::Windows::SID.sid_to_name('S-1-5-32-544') },
|
110
|
+
]
|
111
|
+
|
112
|
+
begin
|
113
|
+
# :SidTypeUser as user on localhost, can be resolved with or without authority prefix
|
114
|
+
user = Puppet::Util::Windows::ADSI::User.create(temp_username)
|
115
|
+
user.commit()
|
116
|
+
users.push({ :sid => user.sid.sid, :name => Puppet::Util::Windows::ADSI.computer_name + '\\' + temp_username })
|
117
|
+
|
118
|
+
# create a test group and add above 5 members by SID
|
119
|
+
group = described_class.create(temp_groupname)
|
120
|
+
group.commit()
|
121
|
+
group.set_members(users.map { |u| u[:sid]} )
|
122
|
+
|
123
|
+
# most importantly make sure that all name are convertible to SIDs
|
124
|
+
expect { described_class.name_sid_hash(group.members) }.to_not raise_error
|
125
|
+
|
126
|
+
# also verify the names returned are as expected
|
127
|
+
expected_usernames = users.map { |u| u[:name] }
|
128
|
+
expect(group.members.map(&:domain_account)).to eq(expected_usernames)
|
129
|
+
ensure
|
130
|
+
described_class.delete(temp_groupname) if described_class.exists?(temp_groupname)
|
131
|
+
Puppet::Util::Windows::ADSI::User.delete(temp_username) if Puppet::Util::Windows::ADSI::User.exists?(temp_username)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'should return a list of Principal objects even with unresolvable SIDs' do
|
136
|
+
members = [
|
137
|
+
# NULL SID is not localized
|
138
|
+
stub('WIN32OLE', {
|
139
|
+
:objectSID => [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
140
|
+
:Name => 'NULL SID',
|
141
|
+
:ole_respond_to? => true,
|
142
|
+
}),
|
143
|
+
# unresolvable SID is a different story altogether
|
144
|
+
stub('WIN32OLE', {
|
145
|
+
# completely valid SID, but Name is just a stringified version
|
146
|
+
:objectSID => [1, 5, 0, 0, 0, 0, 0, 5, 21, 0, 0, 0, 5, 113, 65, 218, 15, 127, 9, 57, 219, 4, 84, 126, 88, 4, 0, 0],
|
147
|
+
:Name => 'S-1-5-21-3661721861-956923663-2119435483-1112',
|
148
|
+
:ole_respond_to? => true,
|
149
|
+
})
|
150
|
+
]
|
151
|
+
|
152
|
+
admins_name = Puppet::Util::Windows::SID.sid_to_name('S-1-5-32-544')
|
153
|
+
admins = Puppet::Util::Windows::ADSI::Group.new(admins_name)
|
154
|
+
|
155
|
+
# touch the native_group member to have it lazily loaded, so COM objects can be stubbed
|
156
|
+
admins.native_group
|
157
|
+
admins.native_group.stubs(:Members).returns(members)
|
158
|
+
|
159
|
+
# well-known NULL SID
|
160
|
+
expect(admins.members[0].sid).to eq('S-1-0-0')
|
161
|
+
expect(admins.members[0].account_type).to eq(:SidTypeWellKnownGroup)
|
162
|
+
|
163
|
+
# unresolvable SID
|
164
|
+
expect(admins.members[1].sid).to eq('S-1-5-21-3661721861-956923663-2119435483-1112')
|
165
|
+
expect(admins.members[1].account).to eq('S-1-5-21-3661721861-956923663-2119435483-1112 (unresolvable)')
|
166
|
+
expect(admins.members[1].account_type).to eq(:SidTypeUnknown)
|
167
|
+
end
|
168
|
+
|
84
169
|
it 'should return a list of members with UTF-8 names' do
|
85
170
|
begin
|
86
171
|
original_codepage = Encoding.default_external
|
@@ -88,7 +173,7 @@ describe Puppet::Util::Windows::ADSI::Group,
|
|
88
173
|
|
89
174
|
# lookup by English name Administrators is not OK on localized Windows
|
90
175
|
admins = Puppet::Util::Windows::ADSI::Group.new(administrators_principal.account)
|
91
|
-
admins.members.each do |name|
|
176
|
+
admins.members.map(&:domain_account).each do |name|
|
92
177
|
expect(name.encoding).to be(Encoding::UTF_8)
|
93
178
|
end
|
94
179
|
ensure
|
@@ -6,9 +6,9 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
6
6
|
|
7
7
|
let (:current_user_sid) { Puppet::Util::Windows::ADSI::User.current_user_sid }
|
8
8
|
let (:system_bytes) { [1, 1, 0, 0, 0, 0, 0, 5, 18, 0, 0, 0] }
|
9
|
-
let (:null_sid_bytes) {
|
9
|
+
let (:null_sid_bytes) { [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }
|
10
10
|
let (:administrator_bytes) { [1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 32, 2, 0, 0] }
|
11
|
-
let (:computer_sid) { Puppet::Util::Windows::SID.
|
11
|
+
let (:computer_sid) { Puppet::Util::Windows::SID.name_to_principal(Puppet::Util::Windows::ADSI.computer_name) }
|
12
12
|
# BUILTIN is localized on German Windows, but not French
|
13
13
|
# looking this up like this dilutes the values of the tests as we're comparing two mechanisms
|
14
14
|
# for returning the same values, rather than to a known good
|
@@ -23,6 +23,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
23
23
|
expect(principal.domain).to eq('')
|
24
24
|
expect(principal.domain_account).to eq('NULL SID')
|
25
25
|
expect(principal.account_type).to eq(:SidTypeWellKnownGroup)
|
26
|
+
expect(principal.to_s).to eq('NULL SID')
|
26
27
|
end
|
27
28
|
|
28
29
|
it "should create an instance from a well-known account prefixed with NT AUTHORITY" do
|
@@ -39,6 +40,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
39
40
|
expect(principal.account).to eq('SYSTEM')
|
40
41
|
expect(principal.domain).to eq('NT AUTHORITY')
|
41
42
|
expect(principal.domain_account).to eq('NT AUTHORITY\\SYSTEM')
|
43
|
+
expect(principal.to_s).to eq('NT AUTHORITY\\SYSTEM')
|
42
44
|
end
|
43
45
|
|
44
46
|
# Windows API LookupAccountSid behaves differently if current user is SYSTEM
|
@@ -87,6 +89,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
87
89
|
expect(principal.domain).to eq(domain)
|
88
90
|
expect(principal.domain_account).to eq(qualified_name)
|
89
91
|
expect(principal.account_type).to eq(:SidTypeAlias)
|
92
|
+
expect(principal.to_s).to eq(qualified_name)
|
90
93
|
end
|
91
94
|
|
92
95
|
it "should raise an error when trying to lookup an account that doesn't exist" do
|
@@ -106,6 +109,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
106
109
|
expect(principal.account).to eq(builtin_localized)
|
107
110
|
expect(principal.domain).to eq(builtin_localized)
|
108
111
|
expect(principal.domain_account).to eq(builtin_localized)
|
112
|
+
expect(principal.to_s).to eq(builtin_localized)
|
109
113
|
end
|
110
114
|
|
111
115
|
it "should return a BUILTIN domain principal for BUILTIN account names" do
|
@@ -115,6 +119,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
115
119
|
expect(principal.account).to eq(builtin_localized)
|
116
120
|
expect(principal.domain).to eq(builtin_localized)
|
117
121
|
expect(principal.domain_account).to eq(builtin_localized)
|
122
|
+
expect(principal.to_s).to eq(builtin_localized)
|
118
123
|
end
|
119
124
|
|
120
125
|
end
|
@@ -135,6 +140,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
135
140
|
expect(principal.domain).to eq(computer_sid.domain)
|
136
141
|
expect(principal.domain_account).to eq(guest_name)
|
137
142
|
expect(principal.account_type).to eq(:SidTypeUser)
|
143
|
+
expect(principal.to_s).to eq(guest_name)
|
138
144
|
end
|
139
145
|
|
140
146
|
it "should create an instance from a well-known group SID" do
|
@@ -145,6 +151,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
145
151
|
expect(principal.domain).to eq('')
|
146
152
|
expect(principal.domain_account).to eq('NULL SID')
|
147
153
|
expect(principal.account_type).to eq(:SidTypeWellKnownGroup)
|
154
|
+
expect(principal.to_s).to eq('NULL SID')
|
148
155
|
end
|
149
156
|
|
150
157
|
it "should create an instance from a well-known BUILTIN Alias SID" do
|
@@ -160,6 +167,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
160
167
|
expect(principal.domain).to eq(domain)
|
161
168
|
expect(principal.domain_account).to eq(qualified_name)
|
162
169
|
expect(principal.account_type).to eq(:SidTypeAlias)
|
170
|
+
expect(principal.to_s).to eq(qualified_name)
|
163
171
|
end
|
164
172
|
|
165
173
|
it "should raise an error when trying to lookup nil" do
|
@@ -214,6 +222,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet.features.microsoft
|
|
214
222
|
expect(principal.account).to eq(builtin_localized)
|
215
223
|
expect(principal.domain).to eq(builtin_localized)
|
216
224
|
expect(principal.domain_account).to eq(builtin_localized)
|
225
|
+
expect(principal.to_s).to eq(builtin_localized)
|
217
226
|
end
|
218
227
|
end
|
219
228
|
|
@@ -734,11 +734,11 @@ describe "Puppet::Util::Windows::Security", :if => Puppet.features.microsoft_win
|
|
734
734
|
let (:explorer) { File.join(Dir::WINDOWS, "explorer.exe") }
|
735
735
|
|
736
736
|
it "should get the owner" do
|
737
|
-
expect(winsec.get_owner(explorer)).to match
|
737
|
+
expect(winsec.get_owner(explorer)).to match(/^S-1-5-/)
|
738
738
|
end
|
739
739
|
|
740
740
|
it "should get the group" do
|
741
|
-
expect(winsec.get_group(explorer)).to match
|
741
|
+
expect(winsec.get_group(explorer)).to match(/^S-1-5-/)
|
742
742
|
end
|
743
743
|
|
744
744
|
it "should get the mode" do
|
data/spec/lib/matchers/json.rb
CHANGED
@@ -9,7 +9,7 @@ module JSONMatchers
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def json(instance)
|
12
|
-
|
12
|
+
Puppet::Util::Json.load(instance.to_json)
|
13
13
|
end
|
14
14
|
|
15
15
|
def attr_value(attrs, instance)
|
@@ -102,11 +102,11 @@ module JSONMatchers
|
|
102
102
|
end
|
103
103
|
|
104
104
|
if !Puppet.features.microsoft_windows?
|
105
|
-
require 'json'
|
105
|
+
require 'puppet/util/json'
|
106
106
|
require 'json-schema'
|
107
107
|
|
108
108
|
class SchemaMatcher
|
109
|
-
JSON_META_SCHEMA =
|
109
|
+
JSON_META_SCHEMA = Puppet::Util::Json.load(File.read('api/schemas/json-meta-schema.json'))
|
110
110
|
|
111
111
|
def initialize(schema)
|
112
112
|
@schema = schema
|
@@ -123,7 +123,7 @@ module JSONMatchers
|
|
123
123
|
if Puppet.features.microsoft_windows?
|
124
124
|
pending("Schema checks cannot be done on windows because of json-schema problems")
|
125
125
|
else
|
126
|
-
schema =
|
126
|
+
schema = Puppet::Util::Json.load(File.read(schema_file))
|
127
127
|
SchemaMatcher.new(schema)
|
128
128
|
end
|
129
129
|
end
|
@@ -9,50 +9,49 @@ module PuppetSpec::Language
|
|
9
9
|
expectations.each do |manifest, resources|
|
10
10
|
it "evaluates #{manifest} to produce #{resources}" do
|
11
11
|
begin
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
case resources
|
13
|
+
when String
|
14
|
+
node = Puppet::Node.new('specification')
|
15
|
+
Puppet[:code] = manifest
|
16
|
+
compiler = Puppet::Parser::Compiler.new(node)
|
17
|
+
evaluator = Puppet::Pops::Parser::EvaluatingParser.new()
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
# see lib/puppet/indirector/catalog/compiler.rb#filter
|
20
|
+
catalog = compiler.compile.filter { |r| r.virtual? }
|
21
21
|
|
22
|
-
|
22
|
+
compiler.send(:instance_variable_set, :@catalog, catalog)
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
Puppet.override(:loaders => compiler.loaders) do
|
25
|
+
expect(evaluator.evaluate_string(compiler.topscope, resources)).to eq(true)
|
26
|
+
end
|
27
|
+
when Array
|
28
|
+
catalog = PuppetSpec::Compiler.compile_to_catalog(manifest)
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
30
|
+
if resources.empty?
|
31
|
+
base_resources = ["Class[Settings]", "Class[main]", "Stage[main]"]
|
32
|
+
expect(catalog.resources.collect(&:ref) - base_resources).to eq([])
|
33
|
+
else
|
34
|
+
resources.each do |reference|
|
35
|
+
if reference.is_a?(Array)
|
36
|
+
matcher = Matchers::Resource.have_resource(reference[0])
|
37
|
+
reference[1].each do |name, value|
|
38
|
+
matcher = matcher.with_parameter(name, value)
|
39
|
+
end
|
40
|
+
else
|
41
|
+
matcher = Matchers::Resource.have_resource(reference)
|
39
42
|
end
|
40
|
-
else
|
41
|
-
matcher = Matchers::Resource.have_resource(reference)
|
42
|
-
end
|
43
43
|
|
44
|
-
|
44
|
+
expect(catalog).to matcher
|
45
|
+
end
|
45
46
|
end
|
47
|
+
else
|
48
|
+
raise "Unsupported creates specification: #{resources.inspect}"
|
46
49
|
end
|
47
|
-
|
48
|
-
|
50
|
+
rescue Puppet::Error, RSpec::Expectations::ExpectationNotMetError => e
|
51
|
+
# provide the backtrace from the caller, or it is close to impossible to find some originators
|
52
|
+
e.set_backtrace(calledFrom)
|
53
|
+
raise
|
49
54
|
end
|
50
|
-
rescue Puppet::Error, RSpec::Expectations::ExpectationNotMetError => e
|
51
|
-
# provide the backtrace from the caller, or it is close to impossible to find some originators
|
52
|
-
e.set_backtrace(calledFrom)
|
53
|
-
raise
|
54
|
-
end
|
55
|
-
|
56
55
|
end
|
57
56
|
end
|
58
57
|
end
|