puppet 4.2.0 → 4.3.0
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.
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +5 -7
- data/README.md +1 -1
- data/Rakefile +20 -0
- data/ext/debian/puppet.init +0 -1
- data/ext/debian/puppet.logrotate +14 -5
- data/ext/osx/puppet.plist +2 -4
- data/ext/project_data.yaml +1 -1
- data/ext/redhat/client.init +65 -12
- data/ext/redhat/logrotate +15 -3
- data/ext/redhat/puppet.spec.erb +5 -1
- data/ext/redhat/server.init +1 -1
- data/ext/solaris/smf/puppet +44 -0
- data/ext/solaris/smf/puppet.xml +44 -0
- data/ext/suse/client.init +27 -27
- data/ext/suse/server.init +2 -2
- data/ext/systemd/puppet.service +1 -0
- data/install.rb +21 -39
- data/lib/hiera/puppet_function.rb +5 -5
- data/lib/puppet/agent/locker.rb +11 -2
- data/lib/puppet/agent.rb +4 -4
- data/lib/puppet/application/agent.rb +28 -14
- data/lib/puppet/application/apply.rb +17 -4
- data/lib/puppet/application/cert.rb +16 -0
- data/lib/puppet/application/filebucket.rb +78 -4
- data/lib/puppet/application/lookup.rb +356 -0
- data/lib/puppet/application/master.rb +5 -1
- data/lib/puppet/configurer.rb +9 -5
- data/lib/puppet/context/trusted_information.rb +21 -1
- data/lib/puppet/context.rb +16 -1
- data/lib/puppet/daemon.rb +17 -13
- data/lib/puppet/data_binding.rb +4 -2
- data/lib/puppet/data_providers/data_adapter.rb +7 -68
- data/lib/puppet/data_providers/data_function_support.rb +5 -26
- data/lib/puppet/data_providers/function_env_data_provider.rb +0 -10
- data/lib/puppet/data_providers/function_module_data_provider.rb +0 -22
- data/lib/puppet/data_providers/hiera_config.rb +106 -0
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +18 -0
- data/lib/puppet/data_providers/hiera_interpolate.rb +97 -0
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +23 -0
- data/lib/puppet/data_providers/hiera_support.rb +37 -0
- data/lib/puppet/data_providers/json_data_provider_factory.rb +31 -0
- data/lib/puppet/data_providers/lookup_adapter.rb +200 -0
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +32 -0
- data/lib/puppet/data_providers.rb +12 -13
- data/lib/puppet/defaults.rb +14 -3
- data/lib/puppet/environments.rb +94 -6
- data/lib/puppet/error.rb +4 -0
- data/lib/puppet/face/module/changes.rb +2 -1
- data/lib/puppet/feature/cfacter.rb +1 -0
- data/lib/puppet/file_bucket/dipper.rb +58 -2
- data/lib/puppet/file_system/windows.rb +3 -1
- data/lib/puppet/functions/assert_type.rb +48 -12
- data/lib/puppet/functions/defined.rb +79 -48
- data/lib/puppet/functions/each.rb +85 -27
- data/lib/puppet/functions/epp.rb +29 -37
- data/lib/puppet/functions/filter.rb +60 -25
- data/lib/puppet/functions/hiera.rb +76 -3
- data/lib/puppet/functions/hiera_array.rb +65 -3
- data/lib/puppet/functions/hiera_hash.rb +74 -2
- data/lib/puppet/functions/hiera_include.rb +77 -4
- data/lib/puppet/functions/inline_epp.rb +44 -71
- data/lib/puppet/functions/lookup.rb +19 -17
- data/lib/puppet/functions/map.rb +56 -21
- data/lib/puppet/functions/match.rb +29 -12
- data/lib/puppet/functions/reduce.rb +95 -58
- data/lib/puppet/functions/versioncmp.rb +36 -0
- data/lib/puppet/functions/with.rb +15 -7
- data/lib/puppet/functions.rb +2 -4
- data/lib/puppet/indirector/catalog/compiler.rb +3 -3
- data/lib/puppet/indirector/catalog/static_compiler.rb +46 -30
- data/lib/puppet/indirector/data_binding/none.rb +4 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +58 -1
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +6 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/request.rb +7 -8
- data/lib/puppet/indirector/resource_type/parser.rb +5 -3
- data/lib/puppet/info_service/class_information_service.rb +111 -0
- data/lib/puppet/info_service.rb +7 -0
- data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
- data/lib/puppet/module_tool/metadata.rb +32 -9
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +25 -18
- data/lib/puppet/network/authconfig.rb +21 -1
- data/lib/puppet/network/authorization.rb +8 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +59 -0
- data/lib/puppet/network/http/api/master/v3.rb +7 -1
- data/lib/puppet/node/environment.rb +9 -2
- data/lib/puppet/node.rb +11 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +39 -1
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +38 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
- data/lib/puppet/parser/compiler.rb +300 -12
- data/lib/puppet/parser/environment_compiler.rb +165 -0
- data/lib/puppet/parser/functions/assert_type.rb +46 -16
- data/lib/puppet/parser/functions/defined.rb +105 -68
- data/lib/puppet/parser/functions/each.rb +85 -27
- data/lib/puppet/parser/functions/epp.rb +29 -37
- data/lib/puppet/parser/functions/filter.rb +59 -23
- data/lib/puppet/parser/functions/hiera.rb +83 -27
- data/lib/puppet/parser/functions/hiera_array.rb +71 -28
- data/lib/puppet/parser/functions/hiera_hash.rb +81 -30
- data/lib/puppet/parser/functions/hiera_include.rb +81 -40
- data/lib/puppet/parser/functions/inline_epp.rb +35 -60
- data/lib/puppet/parser/functions/inline_template.rb +2 -2
- data/lib/puppet/parser/functions/map.rb +55 -20
- data/lib/puppet/parser/functions/match.rb +27 -12
- data/lib/puppet/parser/functions/reduce.rb +97 -60
- data/lib/puppet/parser/functions/with.rb +16 -8
- data/lib/puppet/parser/resource.rb +103 -21
- data/lib/puppet/parser.rb +3 -0
- data/lib/puppet/plugins/configuration.rb +3 -2
- data/lib/puppet/plugins/data_providers/data_provider.rb +283 -0
- data/lib/puppet/plugins/data_providers/registry.rb +84 -0
- data/lib/puppet/plugins/data_providers.rb +12 -60
- data/lib/puppet/pops/adapters.rb +12 -0
- data/lib/puppet/pops/binder/binder.rb +2 -2
- data/lib/puppet/pops/binder/bindings_checker.rb +1 -1
- data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
- data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
- data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
- data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
- data/lib/puppet/pops/binder/injector.rb +4 -4
- data/lib/puppet/pops/binder/key_factory.rb +3 -9
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
- data/lib/puppet/pops/evaluator/access_operator.rb +27 -60
- data/lib/puppet/pops/evaluator/closure.rb +8 -8
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +10 -6
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +7 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/issues.rb +11 -3
- data/lib/puppet/pops/label_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +402 -0
- data/lib/puppet/pops/lookup/invocation.rb +117 -0
- data/lib/puppet/pops/lookup.rb +25 -47
- data/lib/puppet/pops/merge_strategy.rb +73 -5
- data/lib/puppet/pops/model/factory.rb +38 -3
- data/lib/puppet/pops/model/model_label_provider.rb +10 -1
- data/lib/puppet/pops/model/model_meta.rb +19 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +18 -0
- data/lib/puppet/pops/parser/code_merger.rb +13 -1
- data/lib/puppet/pops/parser/egrammar.ra +65 -2
- data/lib/puppet/pops/parser/eparser.rb +1569 -1241
- data/lib/puppet/pops/parser/lexer2.rb +32 -1
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +25 -13
- data/lib/puppet/pops/patterns.rb +3 -0
- data/lib/puppet/pops/types/enumeration.rb +1 -2
- data/lib/puppet/pops/types/type_asserter.rb +16 -15
- data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
- data/lib/puppet/pops/types/type_calculator.rb +171 -1020
- data/lib/puppet/pops/types/type_factory.rb +87 -148
- data/lib/puppet/pops/types/type_mismatch_describer.rb +743 -0
- data/lib/puppet/pops/types/type_parser.rb +118 -129
- data/lib/puppet/pops/types/types.rb +1394 -255
- data/lib/puppet/pops/types/types_meta.rb +0 -234
- data/lib/puppet/pops/validation/checker4_0.rb +49 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +3 -1
- data/lib/puppet/pops/validation.rb +7 -2
- data/lib/puppet/pops.rb +19 -17
- data/lib/puppet/provider/augeas/augeas.rb +50 -0
- data/lib/puppet/provider/exec.rb +6 -1
- data/lib/puppet/provider/group/directoryservice.rb +10 -0
- data/lib/puppet/provider/package/dnf.rb +41 -0
- data/lib/puppet/provider/package/gem.rb +7 -2
- data/lib/puppet/provider/package/nim.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +1 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +10 -8
- data/lib/puppet/provider/package/windows/msi_package.rb +4 -3
- data/lib/puppet/provider/package/windows/package.rb +9 -1
- data/lib/puppet/provider/package/yum.rb +20 -9
- data/lib/puppet/provider/service/bsd.rb +1 -1
- data/lib/puppet/provider/service/debian.rb +21 -0
- data/lib/puppet/provider/service/init.rb +6 -0
- data/lib/puppet/provider/service/launchd.rb +36 -7
- data/lib/puppet/provider/service/rcng.rb +51 -0
- data/lib/puppet/provider/service/redhat.rb +2 -1
- data/lib/puppet/provider/service/smf.rb +43 -2
- data/lib/puppet/provider/service/src.rb +27 -0
- data/lib/puppet/provider/service/systemd.rb +25 -5
- data/lib/puppet/provider/sshkey/parsed.rb +19 -9
- data/lib/puppet/provider/zone/solaris.rb +2 -2
- data/lib/puppet/reference/configuration.rb +10 -4
- data/lib/puppet/reference/report.rb +9 -12
- data/lib/puppet/reports.rb +5 -1
- data/lib/puppet/resource/capability_finder.rb +95 -0
- data/lib/puppet/resource/catalog.rb +47 -7
- data/lib/puppet/resource/status.rb +0 -2
- data/lib/puppet/resource/type.rb +238 -44
- data/lib/puppet/resource/type_collection.rb +60 -2
- data/lib/puppet/resource.rb +50 -73
- data/lib/puppet/settings/file_setting.rb +10 -9
- data/lib/puppet/settings.rb +2 -2
- data/lib/puppet/ssl/certificate_authority/interface.rb +2 -2
- data/lib/puppet/ssl/oids.rb +9 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +71 -8
- data/lib/puppet/transaction/resource_harness.rb +9 -4
- data/lib/puppet/transaction.rb +8 -1
- data/lib/puppet/type/augeas.rb +8 -0
- data/lib/puppet/type/file/source.rb +14 -12
- data/lib/puppet/type/package.rb +9 -6
- data/lib/puppet/type/user.rb +4 -2
- data/lib/puppet/type.rb +78 -7
- data/lib/puppet/util/command_line.rb +4 -0
- data/lib/puppet/util/execution.rb +18 -2
- data/lib/puppet/util/tagging.rb +7 -1
- data/lib/puppet/util/windows/adsi.rb +5 -2
- data/lib/puppet/util/windows/security.rb +4 -1
- data/lib/puppet/util/windows/taskscheduler.rb +1 -1
- data/lib/puppet/util.rb +9 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +12 -0
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +3 -0
- data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +46 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/hiera.yaml +8 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/metadata.json +9 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
- data/spec/integration/data_binding_spec.rb +229 -0
- data/spec/integration/file_bucket/file_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +30 -24
- data/spec/integration/parser/resource_expressions_spec.rb +4 -4
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/package_spec.rb +3 -1
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +0 -1
- data/spec/integration/type/package_spec.rb +2 -0
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/windows/security_spec.rb +18 -0
- data/spec/lib/matchers/include_in_order.rb +2 -2
- data/spec/shared_behaviours/iterative_functions.rb +8 -8
- data/spec/spec_helper.rb +7 -0
- data/spec/unit/agent/locker_spec.rb +4 -4
- data/spec/unit/agent_spec.rb +0 -8
- data/spec/unit/application/agent_spec.rb +5 -0
- data/spec/unit/application/apply_spec.rb +9 -1
- data/spec/unit/application/filebucket_spec.rb +88 -2
- data/spec/unit/application/lookup_spec.rb +195 -0
- data/spec/unit/application/master_spec.rb +2 -2
- data/spec/unit/application_spec.rb +3 -3
- data/spec/unit/appmgmt_spec.rb +657 -0
- data/spec/unit/capability_spec.rb +414 -0
- data/spec/unit/configurer_spec.rb +7 -1
- data/spec/unit/context/trusted_information_spec.rb +24 -1
- data/spec/unit/daemon_spec.rb +18 -8
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +201 -0
- data/spec/unit/environments_spec.rb +2 -0
- data/spec/unit/face/node_spec.rb +1 -1
- data/spec/unit/file_bucket/dipper_spec.rb +210 -1
- data/spec/unit/file_serving/configuration_spec.rb +1 -1
- data/spec/unit/file_system_spec.rb +20 -0
- data/spec/unit/functions/assert_type_spec.rb +5 -7
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/filter_spec.rb +18 -0
- data/spec/unit/functions/hiera_spec.rb +2 -2
- data/spec/unit/functions/lookup_spec.rb +200 -9
- data/spec/unit/functions/regsubst_spec.rb +17 -8
- data/spec/unit/functions/scanf_spec.rb +1 -1
- data/spec/unit/functions/split_spec.rb +2 -2
- data/spec/unit/functions/versioncmp_spec.rb +36 -0
- data/spec/unit/functions4_spec.rb +58 -72
- data/spec/unit/graph/sequential_prioritizer_spec.rb +1 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +28 -8
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
- data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +52 -1
- data/spec/unit/indirector/indirection_spec.rb +13 -2
- data/spec/unit/indirector/request_spec.rb +8 -8
- data/spec/unit/indirector/ssl_file_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +1 -1
- data/spec/unit/info_service_spec.rb +236 -0
- data/spec/unit/module_tool/application_spec.rb +1 -1
- data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
- data/spec/unit/module_tool/metadata_spec.rb +31 -2
- data/spec/unit/network/authconfig_spec.rb +62 -32
- data/spec/unit/network/authorization_spec.rb +30 -2
- data/spec/unit/network/authstore_spec.rb +1 -1
- data/spec/unit/network/http/compression_spec.rb +1 -1
- data/spec/unit/network/http/connection_spec.rb +14 -19
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/network/rights_spec.rb +3 -3
- data/spec/unit/node_spec.rb +27 -0
- data/spec/unit/parser/ast/leaf_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +86 -2
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +2 -20
- data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
- data/spec/unit/pops/binder/injector_spec.rb +3 -3
- data/spec/unit/pops/evaluator/access_ops_spec.rb +13 -11
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +20 -11
- data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
- data/spec/unit/pops/label_provider_spec.rb +5 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +39 -0
- data/spec/unit/pops/parser/parse_application_spec.rb +40 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +47 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +38 -0
- data/spec/unit/pops/parser/parser_rspec_helper.rb +5 -0
- data/spec/unit/pops/parser/parser_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +427 -444
- data/spec/unit/pops/types/type_factory_spec.rb +12 -12
- data/spec/unit/pops/types/type_parser_spec.rb +15 -12
- data/spec/unit/pops/validator/validator_spec.rb +68 -0
- data/spec/unit/property_spec.rb +1 -1
- data/spec/unit/provider/augeas/augeas_spec.rb +50 -0
- data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
- data/spec/unit/provider/group/windows_adsi_spec.rb +3 -0
- data/spec/unit/provider/package/dnf_spec.rb +92 -0
- data/spec/unit/provider/package/gem_spec.rb +7 -0
- data/spec/unit/provider/package/nim_spec.rb +6 -6
- data/spec/unit/provider/package/rpm_spec.rb +25 -2
- data/spec/unit/provider/package/windows/package_spec.rb +41 -0
- data/spec/unit/provider/package/yum_spec.rb +35 -12
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +10 -0
- data/spec/unit/provider/service/debian_spec.rb +28 -0
- data/spec/unit/provider/service/gentoo_spec.rb +1 -0
- data/spec/unit/provider/service/init_spec.rb +6 -0
- data/spec/unit/provider/service/launchd_spec.rb +85 -10
- data/spec/unit/provider/service/openrc_spec.rb +1 -0
- data/spec/unit/provider/service/rcng_spec.rb +41 -0
- data/spec/unit/provider/service/redhat_spec.rb +8 -1
- data/spec/unit/provider/service/smf_spec.rb +30 -5
- data/spec/unit/provider/service/src_spec.rb +20 -4
- data/spec/unit/provider/service/systemd_spec.rb +79 -29
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +1 -1
- data/spec/unit/provider/sshkey/parsed_spec.rb +23 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +2 -1
- data/spec/unit/provider/zone/solaris_spec.rb +19 -0
- data/spec/unit/reports_spec.rb +10 -0
- data/spec/unit/resource/capability_finder_spec.rb +56 -0
- data/spec/unit/resource/catalog_spec.rb +31 -8
- data/spec/unit/resource/type_collection_spec.rb +23 -2
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +23 -5
- data/spec/unit/settings/file_setting_spec.rb +31 -0
- data/spec/unit/settings_spec.rb +91 -2
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +4 -3
- data/spec/unit/ssl/certificate_authority_spec.rb +5 -3
- data/spec/unit/ssl/host_spec.rb +2 -2
- data/spec/unit/ssl/oids_spec.rb +8 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +78 -5
- data/spec/unit/transaction/report_spec.rb +24 -1
- data/spec/unit/transaction_spec.rb +7 -0
- data/spec/unit/type/exec_spec.rb +16 -8
- data/spec/unit/type/host_spec.rb +4 -4
- data/spec/unit/type/package_spec.rb +1 -0
- data/spec/unit/type/tidy_spec.rb +4 -4
- data/spec/unit/type/user_spec.rb +14 -7
- data/spec/unit/type/vlan_spec.rb +1 -1
- data/spec/unit/type_spec.rb +1 -1
- data/spec/unit/util/ldap/generator_spec.rb +1 -1
- data/spec/unit/util/network_device/cisco/device_spec.rb +1 -1
- data/spec/unit/util/network_device/transport/ssh_spec.rb +1 -1
- data/spec/unit/util/network_device_spec.rb +1 -1
- data/spec/unit/util/storage_spec.rb +5 -1
- data/spec/unit/util/windows/adsi_spec.rb +13 -0
- data/spec/unit/util_spec.rb +21 -2
- metadata +173 -7
- data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
- data/spec/integration/data_binding.rb +0 -104
|
@@ -11,9 +11,8 @@ class Puppet::Pops::Types::TypeParser
|
|
|
11
11
|
|
|
12
12
|
# @api public
|
|
13
13
|
def initialize
|
|
14
|
-
@parser = Puppet::Pops::Parser::Parser.new
|
|
15
|
-
@type_transformer = Puppet::Pops::Visitor.new(nil,
|
|
16
|
-
@undef_t = TYPES.undef
|
|
14
|
+
@parser = Puppet::Pops::Parser::Parser.new
|
|
15
|
+
@type_transformer = Puppet::Pops::Visitor.new(nil, 'interpret', 0, 0)
|
|
17
16
|
end
|
|
18
17
|
|
|
19
18
|
# Produces a *puppet type* based on the given string.
|
|
@@ -113,87 +112,87 @@ class Puppet::Pops::Types::TypeParser
|
|
|
113
112
|
# @api private
|
|
114
113
|
def interpret_QualifiedReference(name_ast)
|
|
115
114
|
case name_ast.value
|
|
116
|
-
when
|
|
115
|
+
when 'integer'
|
|
117
116
|
TYPES.integer
|
|
118
117
|
|
|
119
|
-
when
|
|
118
|
+
when 'float'
|
|
120
119
|
TYPES.float
|
|
121
120
|
|
|
122
|
-
when
|
|
121
|
+
when 'numeric'
|
|
123
122
|
TYPES.numeric
|
|
124
123
|
|
|
125
|
-
when
|
|
124
|
+
when 'string'
|
|
126
125
|
TYPES.string
|
|
127
126
|
|
|
128
|
-
when
|
|
127
|
+
when 'enum'
|
|
129
128
|
TYPES.enum
|
|
130
129
|
|
|
131
|
-
when
|
|
130
|
+
when 'boolean'
|
|
132
131
|
TYPES.boolean
|
|
133
132
|
|
|
134
|
-
when
|
|
133
|
+
when 'pattern'
|
|
135
134
|
TYPES.pattern
|
|
136
135
|
|
|
137
|
-
when
|
|
136
|
+
when 'regexp'
|
|
138
137
|
TYPES.regexp
|
|
139
138
|
|
|
140
|
-
when
|
|
139
|
+
when 'data'
|
|
141
140
|
TYPES.data
|
|
142
141
|
|
|
143
|
-
when
|
|
142
|
+
when 'array'
|
|
144
143
|
TYPES.array_of_data
|
|
145
144
|
|
|
146
|
-
when
|
|
145
|
+
when 'hash'
|
|
147
146
|
TYPES.hash_of_data
|
|
148
147
|
|
|
149
|
-
when
|
|
150
|
-
TYPES.host_class
|
|
148
|
+
when 'class'
|
|
149
|
+
TYPES.host_class
|
|
151
150
|
|
|
152
|
-
when
|
|
153
|
-
TYPES.resource
|
|
151
|
+
when 'resource'
|
|
152
|
+
TYPES.resource
|
|
154
153
|
|
|
155
|
-
when
|
|
156
|
-
TYPES.collection
|
|
154
|
+
when 'collection'
|
|
155
|
+
TYPES.collection
|
|
157
156
|
|
|
158
|
-
when
|
|
159
|
-
TYPES.scalar
|
|
157
|
+
when 'scalar'
|
|
158
|
+
TYPES.scalar
|
|
160
159
|
|
|
161
|
-
when
|
|
162
|
-
TYPES.catalog_entry
|
|
160
|
+
when 'catalogentry'
|
|
161
|
+
TYPES.catalog_entry
|
|
163
162
|
|
|
164
|
-
when
|
|
165
|
-
TYPES.undef
|
|
163
|
+
when 'undef'
|
|
164
|
+
TYPES.undef
|
|
166
165
|
|
|
167
|
-
when
|
|
166
|
+
when 'notundef'
|
|
168
167
|
TYPES.not_undef()
|
|
169
168
|
|
|
170
|
-
when
|
|
169
|
+
when 'default'
|
|
171
170
|
TYPES.default()
|
|
171
|
+
|
|
172
|
+
when 'any'
|
|
173
|
+
TYPES.any
|
|
172
174
|
|
|
173
|
-
when
|
|
174
|
-
TYPES.
|
|
175
|
+
when 'variant'
|
|
176
|
+
TYPES.variant
|
|
175
177
|
|
|
176
|
-
when
|
|
177
|
-
TYPES.
|
|
178
|
+
when 'optional'
|
|
179
|
+
TYPES.optional
|
|
178
180
|
|
|
179
|
-
when
|
|
180
|
-
TYPES.
|
|
181
|
+
when 'runtime'
|
|
182
|
+
TYPES.runtime
|
|
181
183
|
|
|
182
|
-
when
|
|
183
|
-
TYPES.
|
|
184
|
+
when 'type'
|
|
185
|
+
TYPES.type_type
|
|
184
186
|
|
|
185
|
-
when
|
|
186
|
-
TYPES.
|
|
187
|
+
when 'tuple'
|
|
188
|
+
TYPES.tuple
|
|
187
189
|
|
|
188
|
-
when
|
|
189
|
-
TYPES.
|
|
190
|
+
when 'struct'
|
|
191
|
+
TYPES.struct
|
|
190
192
|
|
|
191
|
-
when
|
|
192
|
-
TYPES.struct()
|
|
193
|
-
|
|
194
|
-
when "callable"
|
|
193
|
+
when 'callable'
|
|
195
194
|
# A generic callable as opposed to one that does not accept arguments
|
|
196
|
-
TYPES.all_callables
|
|
195
|
+
TYPES.all_callables
|
|
197
196
|
|
|
198
197
|
else
|
|
199
198
|
TYPES.resource(name_ast.value)
|
|
@@ -209,118 +208,112 @@ class Puppet::Pops::Types::TypeParser
|
|
|
209
208
|
end
|
|
210
209
|
|
|
211
210
|
case parameterized_ast.left_expr.value
|
|
212
|
-
when
|
|
211
|
+
when 'array'
|
|
213
212
|
case parameters.size
|
|
214
213
|
when 1
|
|
215
214
|
when 2
|
|
216
215
|
size_type =
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
216
|
+
if parameters[1].is_a?(Puppet::Pops::Types::PIntegerType)
|
|
217
|
+
parameters[1]
|
|
218
|
+
else
|
|
219
|
+
assert_range_parameter(parameters[1])
|
|
220
|
+
TYPES.range(parameters[1], :default)
|
|
221
|
+
end
|
|
223
222
|
when 3
|
|
224
223
|
assert_range_parameter(parameters[1])
|
|
225
224
|
assert_range_parameter(parameters[2])
|
|
226
225
|
size_type = TYPES.range(parameters[1], parameters[2])
|
|
227
226
|
else
|
|
228
|
-
raise_invalid_parameters_error(
|
|
227
|
+
raise_invalid_parameters_error('Array', '1 to 3', parameters.size)
|
|
229
228
|
end
|
|
230
229
|
assert_type(parameters[0])
|
|
231
|
-
|
|
232
|
-
t.size_type = size_type if size_type
|
|
233
|
-
t
|
|
230
|
+
TYPES.array_of(parameters[0], size_type)
|
|
234
231
|
|
|
235
|
-
when
|
|
236
|
-
|
|
232
|
+
when 'hash'
|
|
233
|
+
case parameters.size
|
|
237
234
|
when 2
|
|
238
235
|
assert_type(parameters[0])
|
|
239
236
|
assert_type(parameters[1])
|
|
240
237
|
TYPES.hash_of(parameters[1], parameters[0])
|
|
241
238
|
when 3
|
|
242
239
|
size_type =
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
240
|
+
if parameters[2].is_a?(Puppet::Pops::Types::PIntegerType)
|
|
241
|
+
parameters[2]
|
|
242
|
+
else
|
|
243
|
+
assert_range_parameter(parameters[2])
|
|
244
|
+
TYPES.range(parameters[2], :default)
|
|
245
|
+
end
|
|
249
246
|
assert_type(parameters[0])
|
|
250
247
|
assert_type(parameters[1])
|
|
251
|
-
TYPES.hash_of(parameters[1], parameters[0])
|
|
248
|
+
TYPES.hash_of(parameters[1], parameters[0], size_type)
|
|
252
249
|
when 4
|
|
253
250
|
assert_range_parameter(parameters[2])
|
|
254
251
|
assert_range_parameter(parameters[3])
|
|
255
|
-
size_type = TYPES.range(parameters[2], parameters[3])
|
|
256
252
|
assert_type(parameters[0])
|
|
257
253
|
assert_type(parameters[1])
|
|
258
|
-
TYPES.hash_of(parameters[1], parameters[0])
|
|
254
|
+
TYPES.hash_of(parameters[1], parameters[0], TYPES.range(parameters[2], parameters[3]))
|
|
259
255
|
else
|
|
260
|
-
raise_invalid_parameters_error(
|
|
256
|
+
raise_invalid_parameters_error('Hash', '2 to 4', parameters.size)
|
|
261
257
|
end
|
|
262
|
-
result.size_type = size_type if size_type
|
|
263
|
-
result
|
|
264
258
|
|
|
265
|
-
when
|
|
259
|
+
when 'collection'
|
|
266
260
|
size_type = case parameters.size
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
261
|
+
when 1
|
|
262
|
+
if parameters[0].is_a?(Puppet::Pops::Types::PIntegerType)
|
|
263
|
+
parameters[0]
|
|
264
|
+
else
|
|
265
|
+
assert_range_parameter(parameters[0])
|
|
266
|
+
TYPES.range(parameters[0], :default)
|
|
267
|
+
end
|
|
268
|
+
when 2
|
|
271
269
|
assert_range_parameter(parameters[0])
|
|
272
|
-
|
|
270
|
+
assert_range_parameter(parameters[1])
|
|
271
|
+
TYPES.range(parameters[0], parameters[1])
|
|
272
|
+
else
|
|
273
|
+
raise_invalid_parameters_error('Collection', '1 to 2', parameters.size)
|
|
273
274
|
end
|
|
274
|
-
|
|
275
|
-
assert_range_parameter(parameters[0])
|
|
276
|
-
assert_range_parameter(parameters[1])
|
|
277
|
-
TYPES.range(parameters[0], parameters[1])
|
|
278
|
-
else
|
|
279
|
-
raise_invalid_parameters_error("Collection", "1 to 2", parameters.size)
|
|
280
|
-
end
|
|
281
|
-
result = TYPES.collection
|
|
282
|
-
result.size_type = size_type
|
|
283
|
-
result
|
|
275
|
+
TYPES.collection(size_type)
|
|
284
276
|
|
|
285
|
-
when
|
|
277
|
+
when 'class'
|
|
286
278
|
if parameters.size != 1
|
|
287
|
-
raise_invalid_parameters_error(
|
|
279
|
+
raise_invalid_parameters_error('Class', 1, parameters.size)
|
|
288
280
|
end
|
|
289
281
|
TYPES.host_class(parameters[0])
|
|
290
282
|
|
|
291
|
-
when
|
|
283
|
+
when 'resource'
|
|
292
284
|
if parameters.size == 1
|
|
293
285
|
TYPES.resource(parameters[0])
|
|
294
286
|
elsif parameters.size != 2
|
|
295
|
-
raise_invalid_parameters_error(
|
|
287
|
+
raise_invalid_parameters_error('Resource', '1 or 2', parameters.size)
|
|
296
288
|
else
|
|
297
289
|
TYPES.resource(parameters[0], parameters[1])
|
|
298
290
|
end
|
|
299
291
|
|
|
300
|
-
when
|
|
292
|
+
when 'regexp'
|
|
301
293
|
# 1 parameter being a string, or regular expression
|
|
302
|
-
raise_invalid_parameters_error(
|
|
294
|
+
raise_invalid_parameters_error('Regexp', '1', parameters.size) unless parameters.size == 1
|
|
303
295
|
TYPES.regexp(parameters[0])
|
|
304
296
|
|
|
305
|
-
when
|
|
297
|
+
when 'enum'
|
|
306
298
|
# 1..m parameters being strings
|
|
307
|
-
raise_invalid_parameters_error(
|
|
299
|
+
raise_invalid_parameters_error('Enum', '1 or more', parameters.size) unless parameters.size >= 1
|
|
308
300
|
TYPES.enum(*parameters)
|
|
309
301
|
|
|
310
|
-
when
|
|
302
|
+
when 'pattern'
|
|
311
303
|
# 1..m parameters being strings or regular expressions
|
|
312
|
-
raise_invalid_parameters_error(
|
|
304
|
+
raise_invalid_parameters_error('Pattern', '1 or more', parameters.size) unless parameters.size >= 1
|
|
313
305
|
TYPES.pattern(*parameters)
|
|
314
306
|
|
|
315
|
-
when
|
|
307
|
+
when 'variant'
|
|
316
308
|
# 1..m parameters being strings or regular expressions
|
|
317
|
-
raise_invalid_parameters_error(
|
|
309
|
+
raise_invalid_parameters_error('Variant', '1 or more', parameters.size) unless parameters.size >= 1
|
|
318
310
|
TYPES.variant(*parameters)
|
|
319
311
|
|
|
320
|
-
when
|
|
312
|
+
when 'tuple'
|
|
321
313
|
# 1..m parameters being types (last two optionally integer or literal default
|
|
322
|
-
raise_invalid_parameters_error(
|
|
314
|
+
raise_invalid_parameters_error('Tuple', '1 or more', parameters.size) unless parameters.size >= 1
|
|
323
315
|
length = parameters.size
|
|
316
|
+
size_type = nil
|
|
324
317
|
if TYPES.is_range_parameter?(parameters[-2])
|
|
325
318
|
# min, max specification
|
|
326
319
|
min = parameters[-2]
|
|
@@ -329,63 +322,61 @@ class Puppet::Pops::Types::TypeParser
|
|
|
329
322
|
max = parameters[-1]
|
|
330
323
|
max = max == :default ? nil : max
|
|
331
324
|
parameters = parameters[0, length-2]
|
|
325
|
+
size_type = TYPES.range(min, max)
|
|
332
326
|
elsif TYPES.is_range_parameter?(parameters[-1])
|
|
333
327
|
min = parameters[-1]
|
|
334
328
|
min = (min == :default || min == 'default') ? 0 : min
|
|
335
329
|
max = nil
|
|
336
330
|
parameters = parameters[0, length-1]
|
|
331
|
+
size_type = TYPES.range(min, max)
|
|
337
332
|
end
|
|
338
|
-
|
|
339
|
-
if min || max
|
|
340
|
-
TYPES.constrain_size(t, min, max)
|
|
341
|
-
end
|
|
342
|
-
t
|
|
333
|
+
TYPES.tuple(parameters, size_type)
|
|
343
334
|
|
|
344
|
-
when
|
|
335
|
+
when 'callable'
|
|
345
336
|
# 1..m parameters being types (last three optionally integer or literal default, and a callable)
|
|
346
337
|
TYPES.callable(*parameters)
|
|
347
338
|
|
|
348
|
-
when
|
|
339
|
+
when 'struct'
|
|
349
340
|
# 1..m parameters being types (last two optionally integer or literal default
|
|
350
|
-
raise_invalid_parameters_error(
|
|
341
|
+
raise_invalid_parameters_error('Struct', '1', parameters.size) unless parameters.size == 1
|
|
351
342
|
h = parameters[0]
|
|
352
343
|
raise_invalid_type_specification_error unless h.is_a?(Hash)
|
|
353
344
|
TYPES.struct(h)
|
|
354
345
|
|
|
355
|
-
when
|
|
346
|
+
when 'integer'
|
|
356
347
|
if parameters.size == 1
|
|
357
348
|
case parameters[0]
|
|
358
349
|
when Integer
|
|
359
|
-
TYPES.range(parameters[0],
|
|
350
|
+
TYPES.range(parameters[0], :default)
|
|
360
351
|
when :default
|
|
361
352
|
TYPES.integer # unbound
|
|
362
353
|
end
|
|
363
354
|
elsif parameters.size != 2
|
|
364
|
-
raise_invalid_parameters_error(
|
|
355
|
+
raise_invalid_parameters_error('Integer', '1 or 2', parameters.size)
|
|
365
356
|
else
|
|
366
357
|
TYPES.range(parameters[0] == :default ? nil : parameters[0], parameters[1] == :default ? nil : parameters[1])
|
|
367
358
|
end
|
|
368
359
|
|
|
369
|
-
when
|
|
360
|
+
when 'float'
|
|
370
361
|
if parameters.size == 1
|
|
371
362
|
case parameters[0]
|
|
372
363
|
when Integer, Float
|
|
373
|
-
TYPES.float_range(parameters[0],
|
|
364
|
+
TYPES.float_range(parameters[0], :default)
|
|
374
365
|
when :default
|
|
375
366
|
TYPES.float # unbound
|
|
376
367
|
end
|
|
377
368
|
elsif parameters.size != 2
|
|
378
|
-
raise_invalid_parameters_error(
|
|
369
|
+
raise_invalid_parameters_error('Float', '1 or 2', parameters.size)
|
|
379
370
|
else
|
|
380
371
|
TYPES.float_range(parameters[0] == :default ? nil : parameters[0], parameters[1] == :default ? nil : parameters[1])
|
|
381
372
|
end
|
|
382
373
|
|
|
383
|
-
when
|
|
374
|
+
when 'string'
|
|
384
375
|
size_type =
|
|
385
376
|
case parameters.size
|
|
386
377
|
when 1
|
|
387
378
|
if parameters[0].is_a?(Puppet::Pops::Types::PIntegerType)
|
|
388
|
-
parameters[0]
|
|
379
|
+
parameters[0]
|
|
389
380
|
else
|
|
390
381
|
assert_range_parameter(parameters[0])
|
|
391
382
|
TYPES.range(parameters[0], :default)
|
|
@@ -395,24 +386,22 @@ class Puppet::Pops::Types::TypeParser
|
|
|
395
386
|
assert_range_parameter(parameters[1])
|
|
396
387
|
TYPES.range(parameters[0], parameters[1])
|
|
397
388
|
else
|
|
398
|
-
raise_invalid_parameters_error(
|
|
389
|
+
raise_invalid_parameters_error('String', '1 to 2', parameters.size)
|
|
399
390
|
end
|
|
400
|
-
|
|
401
|
-
result.size_type = size_type
|
|
402
|
-
result
|
|
391
|
+
TYPES.string(size_type)
|
|
403
392
|
|
|
404
|
-
when
|
|
393
|
+
when 'optional'
|
|
405
394
|
if parameters.size != 1
|
|
406
|
-
raise_invalid_parameters_error(
|
|
395
|
+
raise_invalid_parameters_error('Optional', 1, parameters.size)
|
|
407
396
|
end
|
|
408
397
|
param = parameters[0]
|
|
409
398
|
assert_type(param) unless param.is_a?(String)
|
|
410
399
|
TYPES.optional(param)
|
|
411
400
|
|
|
412
|
-
when
|
|
401
|
+
when 'any', 'data', 'catalogentry', 'boolean', 'scalar', 'undef', 'numeric', 'default'
|
|
413
402
|
raise_unparameterized_type_error(parameterized_ast.left_expr)
|
|
414
403
|
|
|
415
|
-
when
|
|
404
|
+
when 'notundef'
|
|
416
405
|
case parameters.size
|
|
417
406
|
when 0
|
|
418
407
|
TYPES.not_undef
|
|
@@ -424,15 +413,15 @@ class Puppet::Pops::Types::TypeParser
|
|
|
424
413
|
raise_invalid_parameters_error("NotUndef", "0 to 1", parameters.size)
|
|
425
414
|
end
|
|
426
415
|
|
|
427
|
-
when
|
|
416
|
+
when 'type'
|
|
428
417
|
if parameters.size != 1
|
|
429
|
-
raise_invalid_parameters_error(
|
|
418
|
+
raise_invalid_parameters_error('Type', 1, parameters.size)
|
|
430
419
|
end
|
|
431
420
|
assert_type(parameters[0])
|
|
432
421
|
TYPES.type_type(parameters[0])
|
|
433
422
|
|
|
434
|
-
when
|
|
435
|
-
raise_invalid_parameters_error(
|
|
423
|
+
when 'runtime'
|
|
424
|
+
raise_invalid_parameters_error('Runtime', '2', parameters.size) unless parameters.size == 2
|
|
436
425
|
TYPES.runtime(*parameters)
|
|
437
426
|
|
|
438
427
|
else
|
|
@@ -476,6 +465,6 @@ class Puppet::Pops::Types::TypeParser
|
|
|
476
465
|
|
|
477
466
|
def original_text_of(ast)
|
|
478
467
|
position = Puppet::Pops::Adapters::SourcePosAdapter.adapt(ast)
|
|
479
|
-
position.extract_text
|
|
468
|
+
position.extract_text
|
|
480
469
|
end
|
|
481
470
|
end
|