puppet 6.0.10 → 6.1.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.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +31 -27
- data/Guardfile.example +76 -0
- data/LICENSE +189 -4
- data/MAINTAINERS +47 -0
- data/README.md +3 -3
- data/lib/hiera/scope.rb +0 -7
- data/lib/puppet.rb +6 -5
- data/lib/puppet/application.rb +3 -3
- data/lib/puppet/application/cert.rb +2 -2
- data/lib/puppet/application/device.rb +83 -109
- data/lib/puppet/application/filebucket.rb +1 -10
- data/lib/puppet/application/ssl.rb +0 -2
- data/lib/puppet/configurer.rb +9 -10
- data/lib/puppet/confine/false.rb +1 -7
- data/lib/puppet/confine/true.rb +1 -7
- data/lib/puppet/defaults.rb +39 -51
- data/lib/puppet/forge.rb +1 -4
- data/lib/puppet/functions/abs.rb +1 -1
- data/lib/puppet/functions/call.rb +1 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/indirector/request.rb +15 -26
- data/lib/puppet/network/http/connection.rb +12 -32
- data/lib/puppet/network/http/factory.rb +0 -5
- data/lib/puppet/pal/catalog_compiler.rb +96 -0
- data/lib/puppet/pal/compiler.rb +221 -0
- data/lib/puppet/pal/function_signature.rb +52 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
- data/lib/puppet/pal/pal_api.rb +15 -0
- data/lib/puppet/pal/pal_impl.rb +523 -0
- data/lib/puppet/pal/plan_signature.rb +71 -0
- data/lib/puppet/pal/script_compiler.rb +71 -0
- data/lib/puppet/pal/task_signature.rb +58 -0
- data/lib/puppet/parser/functions/generate.rb +7 -6
- data/lib/puppet/plugins/configuration.rb +5 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
- data/lib/puppet/pops/issues.rb +0 -4
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
- data/lib/puppet/pops/model/factory.rb +4 -38
- data/lib/puppet/pops/model/pn_transformer.rb +0 -5
- data/lib/puppet/pops/parser/egrammar.ra +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
- data/lib/puppet/pops/parser/lexer2.rb +1 -6
- data/lib/puppet/pops/parser/locator.rb +86 -106
- data/lib/puppet/pops/parser/parser_support.rb +2 -11
- data/lib/puppet/pops/types/string_converter.rb +7 -2
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/types.rb +3 -5
- data/lib/puppet/pops/validation/checker4_0.rb +13 -0
- data/lib/puppet/provider.rb +2 -1
- data/lib/puppet/provider/exec.rb +6 -1
- data/lib/puppet/provider/file/windows.rb +1 -49
- data/lib/puppet/provider/group/windows_adsi.rb +1 -4
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/dpkg.rb +2 -15
- data/lib/puppet/provider/package/gem.rb +42 -102
- data/lib/puppet/provider/package/pip.rb +111 -135
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +37 -21
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +16 -27
- data/lib/puppet/provider/package/windows.rb +1 -5
- data/lib/puppet/provider/package/yum.rb +1 -2
- data/lib/puppet/provider/service/systemd.rb +17 -0
- data/lib/puppet/provider/service/upstart.rb +5 -17
- data/lib/puppet/provider/service/windows.rb +8 -3
- data/lib/puppet/provider/user/directoryservice.rb +4 -16
- data/lib/puppet/provider/user/useradd.rb +13 -16
- data/lib/puppet/resource.rb +3 -1
- data/lib/puppet/rest/client.rb +83 -0
- data/lib/puppet/rest/route.rb +1 -1
- data/lib/puppet/settings.rb +5 -10
- data/lib/puppet/settings/server_list_setting.rb +0 -9
- data/lib/puppet/ssl/host.rb +11 -0
- data/lib/puppet/ssl/validator/default_validator.rb +0 -31
- data/lib/puppet/syntax_checkers/epp.rb +34 -0
- data/lib/puppet/syntax_checkers/pp.rb +34 -0
- data/lib/puppet/transaction.rb +7 -12
- data/lib/puppet/transaction/event_manager.rb +5 -1
- data/lib/puppet/transaction/resource_harness.rb +0 -1
- data/lib/puppet/type.rb +6 -0
- data/lib/puppet/type/exec.rb +5 -27
- data/lib/puppet/type/file/mode.rb +1 -6
- data/lib/puppet/type/file/source.rb +1 -0
- data/lib/puppet/type/filebucket.rb +8 -12
- data/lib/puppet/type/package.rb +11 -44
- data/lib/puppet/type/schedule.rb +0 -4
- data/lib/puppet/type/service.rb +12 -0
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -5
- data/lib/puppet/util/connection.rb +6 -15
- data/lib/puppet/util/http_proxy.rb +2 -3
- data/lib/puppet/util/log.rb +2 -7
- data/lib/puppet/util/pidlock.rb +1 -15
- data/lib/puppet/util/windows/process.rb +5 -73
- data/lib/puppet/util/windows/registry.rb +1 -7
- data/lib/puppet/util/windows/security.rb +8 -29
- data/lib/puppet/util/windows/service.rb +33 -27
- data/lib/puppet/util/windows/user.rb +4 -14
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +5 -1132
- data/locales/ja/puppet.po +297 -363
- data/locales/puppet.pot +445 -517
- data/man/man5/puppet.conf.5 +12 -20
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +2 -6
- 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 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
- data/spec/integration/agent/logging_spec.rb +7 -5
- data/spec/integration/application/apply_spec.rb +16 -18
- data/spec/integration/application/doc_spec.rb +2 -1
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +6 -5
- data/spec/integration/defaults_spec.rb +6 -5
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/config_spec.rb +4 -3
- data/spec/integration/faces/documentation_spec.rb +1 -0
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +4 -2
- data/spec/integration/file_serving/content_spec.rb +1 -0
- data/spec/integration/file_serving/fileset_spec.rb +1 -0
- data/spec/integration/file_serving/metadata_spec.rb +1 -0
- data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +5 -4
- data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
- data/spec/integration/network/authconfig_spec.rb +24 -23
- data/spec/integration/network/formats_spec.rb +1 -0
- data/spec/integration/node/environment_spec.rb +1 -0
- data/spec/integration/node/facts_spec.rb +10 -9
- data/spec/integration/node_spec.rb +7 -6
- data/spec/integration/parser/catalog_spec.rb +5 -1
- data/spec/integration/parser/collection_spec.rb +2 -1
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/service/init_spec.rb +5 -4
- data/spec/integration/provider/service/systemd_spec.rb +2 -0
- data/spec/integration/provider/service/windows_spec.rb +2 -1
- data/spec/integration/reference/providers_spec.rb +2 -1
- data/spec/integration/reports_spec.rb +2 -1
- data/spec/integration/resource/catalog_spec.rb +17 -14
- data/spec/integration/resource/type_collection_spec.rb +5 -4
- data/spec/integration/ssl/certificate_request_spec.rb +1 -0
- data/spec/integration/ssl/host_spec.rb +2 -1
- data/spec/integration/ssl/key_spec.rb +1 -0
- data/spec/integration/test/test_helper_spec.rb +1 -0
- data/spec/integration/transaction/report_spec.rb +11 -6
- data/spec/integration/transaction_spec.rb +19 -18
- data/spec/integration/type/exec_spec.rb +1 -0
- data/spec/integration/type/file_spec.rb +33 -13
- data/spec/integration/type/package_spec.rb +24 -20
- data/spec/integration/type/tidy_spec.rb +2 -1
- data/spec/integration/type_spec.rb +1 -0
- data/spec/integration/util/autoload_spec.rb +2 -1
- data/spec/integration/util/rdoc/parser_spec.rb +1 -0
- data/spec/integration/util/settings_spec.rb +1 -0
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/principal_spec.rb +1 -0
- data/spec/integration/util/windows/process_spec.rb +6 -4
- data/spec/integration/util/windows/registry_spec.rb +51 -93
- data/spec/integration/util/windows/security_spec.rb +4 -2
- data/spec/integration/util/windows/user_spec.rb +20 -37
- data/spec/integration/util_spec.rb +7 -4
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +1 -0
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +2 -1
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +9 -8
- data/spec/shared_behaviours/file_serving.rb +8 -6
- data/spec/shared_behaviours/file_serving_model.rb +5 -3
- data/spec/shared_behaviours/hiera_indirections.rb +4 -3
- data/spec/shared_behaviours/iterative_functions.rb +1 -0
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +70 -112
- data/spec/spec_helper.rb +2 -11
- data/spec/unit/agent/disabler_spec.rb +5 -4
- data/spec/unit/agent/locker_spec.rb +13 -12
- data/spec/unit/agent_spec.rb +85 -80
- data/spec/unit/application/agent_spec.rb +93 -88
- data/spec/unit/application/apply_spec.rb +83 -82
- data/spec/unit/application/config_spec.rb +1 -0
- data/spec/unit/application/describe_spec.rb +7 -6
- data/spec/unit/application/device_spec.rb +419 -395
- data/spec/unit/application/doc_spec.rb +46 -44
- data/spec/unit/application/face_base_spec.rb +62 -61
- data/spec/unit/application/facts_spec.rb +4 -3
- data/spec/unit/application/filebucket_spec.rb +74 -66
- data/spec/unit/application/indirection_base_spec.rb +6 -8
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/resource_spec.rb +48 -42
- data/spec/unit/application/ssl_spec.rb +3 -8
- data/spec/unit/application_spec.rb +98 -86
- data/spec/unit/capability_spec.rb +6 -6
- data/spec/unit/certificate_factory_spec.rb +5 -3
- data/spec/unit/configurer/downloader_spec.rb +21 -20
- data/spec/unit/configurer/fact_handler_spec.rb +3 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
- data/spec/unit/configurer_spec.rb +198 -194
- data/spec/unit/confine/exists_spec.rb +15 -17
- data/spec/unit/confine/false_spec.rb +6 -32
- data/spec/unit/confine/feature_spec.rb +5 -7
- data/spec/unit/confine/true_spec.rb +6 -32
- data/spec/unit/confine/variable_spec.rb +15 -14
- data/spec/unit/confine_collection_spec.rb +29 -28
- data/spec/unit/confine_spec.rb +14 -13
- data/spec/unit/confiner_spec.rb +11 -10
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +36 -35
- data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
- data/spec/unit/datatypes_spec.rb +4 -3
- data/spec/unit/defaults_spec.rb +27 -18
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +32 -30
- data/spec/unit/external/pson_spec.rb +1 -0
- data/spec/unit/face/catalog_spec.rb +1 -0
- data/spec/unit/face/config_spec.rb +35 -31
- data/spec/unit/face/epp_face_spec.rb +4 -3
- data/spec/unit/face/facts_spec.rb +6 -5
- data/spec/unit/face/generate_spec.rb +5 -4
- data/spec/unit/face/help_spec.rb +8 -7
- data/spec/unit/face/key_spec.rb +1 -0
- data/spec/unit/face/man_spec.rb +2 -1
- data/spec/unit/face/module/install_spec.rb +5 -3
- data/spec/unit/face/module/list_spec.rb +12 -2
- data/spec/unit/face/module/search_spec.rb +9 -11
- data/spec/unit/face/module/uninstall_spec.rb +8 -4
- data/spec/unit/face/node_spec.rb +24 -23
- data/spec/unit/face/parser_spec.rb +18 -3
- data/spec/unit/face/plugin_spec.rb +9 -36
- data/spec/unit/face/status_spec.rb +1 -0
- data/spec/unit/file_bucket/dipper_spec.rb +20 -24
- data/spec/unit/file_bucket/file_spec.rb +2 -0
- data/spec/unit/file_serving/base_spec.rb +15 -14
- data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
- data/spec/unit/file_serving/configuration_spec.rb +66 -63
- data/spec/unit/file_serving/content_spec.rb +11 -10
- data/spec/unit/file_serving/fileset_spec.rb +58 -63
- data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +32 -31
- data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
- data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
- data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
- data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
- data/spec/unit/file_serving/mount_spec.rb +1 -0
- data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
- data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
- data/spec/unit/file_system/uniquefile_spec.rb +4 -4
- data/spec/unit/file_system_spec.rb +2 -2
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +16 -17
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +30 -29
- data/spec/unit/forge_spec.rb +11 -15
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +2 -0
- data/spec/unit/functions/defined_spec.rb +1 -0
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/include_spec.rb +4 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +2 -1
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/new_spec.rb +0 -15
- data/spec/unit/functions/require_spec.rb +3 -0
- data/spec/unit/functions/shared.rb +8 -5
- data/spec/unit/functions/versioncmp_spec.rb +2 -1
- data/spec/unit/functions4_spec.rb +10 -9
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
- data/spec/unit/graph/relationship_graph_spec.rb +2 -1
- data/spec/unit/graph/simple_graph_spec.rb +10 -9
- data/spec/unit/hiera/scope_spec.rb +0 -7
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
- data/spec/unit/indirector/catalog/json_spec.rb +2 -1
- data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
- data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
- data/spec/unit/indirector/certificate/file_spec.rb +1 -0
- data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
- data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
- data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
- data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
- data/spec/unit/indirector/envelope_spec.rb +2 -1
- data/spec/unit/indirector/exec_spec.rb +5 -4
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +43 -37
- data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
- data/spec/unit/indirector/facts/rest_spec.rb +8 -7
- data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
- data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_content/file_spec.rb +1 -0
- data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
- data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_server_spec.rb +87 -87
- data/spec/unit/indirector/indirection_spec.rb +226 -242
- data/spec/unit/indirector/json_spec.rb +9 -7
- data/spec/unit/indirector/key/file_spec.rb +22 -21
- data/spec/unit/indirector/memory_spec.rb +7 -6
- data/spec/unit/indirector/msgpack_spec.rb +9 -7
- data/spec/unit/indirector/node/exec_spec.rb +3 -2
- data/spec/unit/indirector/node/memory_spec.rb +4 -2
- data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/node/plain_spec.rb +4 -2
- data/spec/unit/indirector/node/rest_spec.rb +1 -0
- data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/node/yaml_spec.rb +1 -0
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +8 -7
- data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/report/processor_spec.rb +22 -21
- data/spec/unit/indirector/report/rest_spec.rb +12 -11
- data/spec/unit/indirector/report/yaml_spec.rb +1 -0
- data/spec/unit/indirector/request_spec.rb +12 -11
- data/spec/unit/indirector/resource/ral_spec.rb +54 -47
- data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/rest_spec.rb +110 -113
- data/spec/unit/indirector/ssl_file_spec.rb +65 -64
- data/spec/unit/indirector/status/local_spec.rb +1 -0
- data/spec/unit/indirector/status/rest_spec.rb +1 -0
- data/spec/unit/indirector/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/terminus_spec.rb +27 -27
- data/spec/unit/indirector/yaml_spec.rb +6 -5
- data/spec/unit/indirector_spec.rb +2 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_builder_spec.rb +1 -0
- data/spec/unit/interface/action_manager_spec.rb +1 -0
- data/spec/unit/interface/action_spec.rb +3 -2
- data/spec/unit/interface/documentation_spec.rb +1 -0
- data/spec/unit/interface/face_collection_spec.rb +12 -19
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +4 -3
- data/spec/unit/module_spec.rb +51 -46
- data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
- data/spec/unit/module_tool/install_directory_spec.rb +8 -8
- data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
- data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
- data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
- data/spec/unit/module_tool/tar_spec.rb +13 -12
- data/spec/unit/module_tool_spec.rb +12 -7
- data/spec/unit/network/auth_config_parser_spec.rb +13 -11
- data/spec/unit/network/authconfig_spec.rb +18 -17
- data/spec/unit/network/authorization_spec.rb +5 -4
- data/spec/unit/network/authstore_spec.rb +1 -0
- data/spec/unit/network/format_handler_spec.rb +1 -0
- data/spec/unit/network/format_spec.rb +10 -9
- data/spec/unit/network/format_support_spec.rb +29 -28
- data/spec/unit/network/formats_spec.rb +5 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
- data/spec/unit/network/http/api_spec.rb +2 -0
- data/spec/unit/network/http/compression_spec.rb +22 -21
- data/spec/unit/network/http/connection_spec.rb +121 -30
- data/spec/unit/network/http/factory_spec.rb +6 -11
- data/spec/unit/network/http/handler_spec.rb +18 -9
- data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
- data/spec/unit/network/http/pool_spec.rb +29 -28
- data/spec/unit/network/http/request_spec.rb +2 -0
- data/spec/unit/network/http/response_spec.rb +13 -11
- data/spec/unit/network/http/route_spec.rb +1 -0
- data/spec/unit/network/http/session_spec.rb +2 -1
- data/spec/unit/network/http/site_spec.rb +1 -0
- data/spec/unit/network/http_pool_spec.rb +9 -18
- data/spec/unit/network/http_spec.rb +1 -0
- data/spec/unit/network/resolver_spec.rb +26 -25
- data/spec/unit/network/rights_spec.rb +53 -52
- data/spec/unit/node/environment_spec.rb +15 -14
- data/spec/unit/node/facts_spec.rb +7 -5
- data/spec/unit/node_spec.rb +10 -4
- data/spec/unit/other/selinux_spec.rb +1 -0
- data/spec/unit/parameter/boolean_spec.rb +2 -1
- data/spec/unit/parameter/package_options_spec.rb +2 -1
- data/spec/unit/parameter/path_spec.rb +1 -0
- data/spec/unit/parameter/value_collection_spec.rb +1 -0
- data/spec/unit/parameter/value_spec.rb +1 -0
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
- data/spec/unit/parser/ast/leaf_spec.rb +21 -20
- data/spec/unit/parser/compiler_spec.rb +96 -84
- data/spec/unit/parser/environment_compiler_spec.rb +8 -7
- data/spec/unit/parser/files_spec.rb +1 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +1 -0
- data/spec/unit/parser/functions/fail_spec.rb +2 -1
- data/spec/unit/parser/functions/file_spec.rb +14 -13
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
- data/spec/unit/parser/functions/generate_spec.rb +8 -7
- data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
- data/spec/unit/parser/functions/scanf_spec.rb +1 -0
- data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
- data/spec/unit/parser/functions/split_spec.rb +1 -0
- data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
- data/spec/unit/parser/functions/tag_spec.rb +2 -1
- data/spec/unit/parser/functions/tagged_spec.rb +3 -2
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
- data/spec/unit/parser/functions_spec.rb +7 -6
- data/spec/unit/parser/relationship_spec.rb +1 -0
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +35 -39
- data/spec/unit/parser/templatewrapper_spec.rb +12 -11
- data/spec/unit/parser/type_loader_spec.rb +19 -17
- data/spec/unit/pops/adaptable_spec.rb +1 -0
- data/spec/unit/pops/benchmark_spec.rb +1 -0
- data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
- data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
- data/spec/unit/pops/factory_spec.rb +4 -3
- data/spec/unit/pops/issues_spec.rb +20 -19
- data/spec/unit/pops/loaders/loader_spec.rb +4 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
- data/spec/unit/pops/lookup/context_spec.rb +1 -0
- data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
- data/spec/unit/pops/merge_strategy_spec.rb +1 -0
- data/spec/unit/pops/migration_spec.rb +5 -3
- data/spec/unit/pops/model/model_spec.rb +1 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
- data/spec/unit/pops/parser/locator_spec.rb +6 -48
- data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
- data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
- data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
- data/spec/unit/pops/pn_spec.rb +1 -0
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/string_converter_spec.rb +5 -1
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +2 -1
- data/spec/unit/pops/visitor_spec.rb +1 -0
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +1 -0
- data/spec/unit/property/keyvalue_spec.rb +34 -32
- data/spec/unit/property/list_spec.rb +27 -26
- data/spec/unit/property/ordered_list_spec.rb +14 -10
- data/spec/unit/property_spec.rb +43 -42
- data/spec/unit/provider/aix_object_spec.rb +45 -47
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +31 -6
- data/spec/unit/provider/exec/shell_spec.rb +1 -0
- data/spec/unit/provider/exec/windows_spec.rb +4 -2
- data/spec/unit/provider/exec_spec.rb +1 -0
- data/spec/unit/provider/file/posix_spec.rb +24 -22
- data/spec/unit/provider/file/windows_spec.rb +17 -15
- data/spec/unit/provider/group/aix_spec.rb +2 -3
- data/spec/unit/provider/group/groupadd_spec.rb +26 -30
- data/spec/unit/provider/group/ldap_spec.rb +18 -18
- data/spec/unit/provider/group/pw_spec.rb +11 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
- data/spec/unit/provider/ldap_spec.rb +62 -61
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
- data/spec/unit/provider/nameservice_spec.rb +40 -38
- data/spec/unit/provider/package/aix_spec.rb +15 -15
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +27 -44
- data/spec/unit/provider/package/aptitude_spec.rb +7 -6
- data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +20 -18
- data/spec/unit/provider/package/dpkg_spec.rb +53 -70
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +55 -132
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +42 -46
- data/spec/unit/provider/package/nim_spec.rb +39 -30
- data/spec/unit/provider/package/openbsd_spec.rb +39 -36
- data/spec/unit/provider/package/opkg_spec.rb +26 -23
- data/spec/unit/provider/package/pacman_spec.rb +118 -97
- data/spec/unit/provider/package/pip3_spec.rb +0 -17
- data/spec/unit/provider/package/pip_spec.rb +106 -95
- data/spec/unit/provider/package/pkg_spec.rb +109 -109
- data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
- data/spec/unit/provider/package/pkgin_spec.rb +8 -10
- data/spec/unit/provider/package/pkgng_spec.rb +31 -22
- data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
- data/spec/unit/provider/package/portage_spec.rb +74 -70
- data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
- data/spec/unit/provider/package/rpm_spec.rb +76 -154
- data/spec/unit/provider/package/sun_spec.rb +18 -16
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +4 -2
- data/spec/unit/provider/package/urpmi_spec.rb +17 -15
- data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
- data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
- data/spec/unit/provider/package/windows/package_spec.rb +42 -37
- data/spec/unit/provider/package/windows_spec.rb +32 -47
- data/spec/unit/provider/package/yum_spec.rb +7 -7
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +45 -44
- data/spec/unit/provider/service/base_spec.rb +5 -4
- data/spec/unit/provider/service/bsd_spec.rb +29 -27
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +38 -38
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +55 -50
- data/spec/unit/provider/service/init_spec.rb +52 -53
- data/spec/unit/provider/service/launchd_spec.rb +116 -138
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +45 -43
- data/spec/unit/provider/service/openwrt_spec.rb +31 -26
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +43 -45
- data/spec/unit/provider/service/runit_spec.rb +27 -29
- data/spec/unit/provider/service/smf_spec.rb +66 -74
- data/spec/unit/provider/service/src_spec.rb +47 -46
- data/spec/unit/provider/service/systemd_spec.rb +136 -109
- data/spec/unit/provider/service/upstart_spec.rb +93 -77
- data/spec/unit/provider/service/windows_spec.rb +41 -33
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
- data/spec/unit/provider/user/hpux_spec.rb +16 -16
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +12 -10
- data/spec/unit/provider/user/pw_spec.rb +35 -37
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +92 -93
- data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
- data/spec/unit/provider_spec.rb +35 -35
- data/spec/unit/puppet_pal_2pec.rb +5 -4
- data/spec/unit/puppet_pal_spec.rb +1 -0
- data/spec/unit/puppet_spec.rb +7 -6
- data/spec/unit/relationship_spec.rb +1 -0
- data/spec/unit/reports/http_spec.rb +23 -21
- data/spec/unit/reports/store_spec.rb +4 -3
- data/spec/unit/reports_spec.rb +14 -12
- data/spec/unit/resource/capability_finder_spec.rb +17 -15
- data/spec/unit/resource/catalog_spec.rb +68 -72
- data/spec/unit/resource/status_spec.rb +8 -6
- data/spec/unit/resource/type_collection_spec.rb +18 -17
- data/spec/unit/resource/type_spec.rb +35 -34
- data/spec/unit/resource_spec.rb +63 -36
- data/spec/unit/rest/client_spec.rb +135 -0
- data/spec/unit/rest/route_spec.rb +6 -6
- data/spec/unit/scheduler/job_spec.rb +1 -0
- data/spec/unit/scheduler/scheduler_spec.rb +1 -0
- data/spec/unit/scheduler/splay_job_spec.rb +2 -1
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +1 -0
- data/spec/unit/settings/directory_setting_spec.rb +7 -2
- data/spec/unit/settings/duration_setting_spec.rb +2 -1
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +6 -4
- data/spec/unit/settings/file_setting_spec.rb +46 -44
- data/spec/unit/settings/path_setting_spec.rb +2 -1
- data/spec/unit/settings/priority_setting_spec.rb +2 -1
- data/spec/unit/settings/string_setting_spec.rb +15 -14
- data/spec/unit/settings/terminus_setting_spec.rb +2 -1
- data/spec/unit/settings/value_translator_spec.rb +1 -0
- data/spec/unit/settings_spec.rb +224 -253
- data/spec/unit/ssl/base_spec.rb +15 -14
- data/spec/unit/ssl/certificate_request_spec.rb +58 -62
- data/spec/unit/ssl/certificate_spec.rb +25 -23
- data/spec/unit/ssl/digest_spec.rb +1 -0
- data/spec/unit/ssl/host_spec.rb +149 -166
- data/spec/unit/ssl/key_spec.rb +31 -30
- data/spec/unit/ssl/validator_spec.rb +39 -40
- data/spec/unit/task_spec.rb +45 -44
- data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
- data/spec/unit/transaction/event_manager_spec.rb +88 -87
- data/spec/unit/transaction/event_spec.rb +15 -16
- data/spec/unit/transaction/persistence_spec.rb +17 -16
- data/spec/unit/transaction/report_spec.rb +12 -11
- data/spec/unit/transaction/resource_harness_spec.rb +31 -52
- data/spec/unit/transaction_spec.rb +87 -140
- data/spec/unit/type/component_spec.rb +1 -0
- data/spec/unit/type/exec_spec.rb +50 -101
- data/spec/unit/type/file/checksum_spec.rb +10 -9
- data/spec/unit/type/file/checksum_value_spec.rb +32 -31
- data/spec/unit/type/file/content_spec.rb +61 -58
- data/spec/unit/type/file/ctime_spec.rb +1 -0
- data/spec/unit/type/file/ensure_spec.rb +13 -12
- data/spec/unit/type/file/group_spec.rb +7 -5
- data/spec/unit/type/file/mode_spec.rb +6 -4
- data/spec/unit/type/file/mtime_spec.rb +1 -0
- data/spec/unit/type/file/owner_spec.rb +8 -6
- data/spec/unit/type/file/selinux_spec.rb +19 -17
- data/spec/unit/type/file/source_spec.rb +101 -104
- data/spec/unit/type/file/type_spec.rb +1 -0
- data/spec/unit/type/file_spec.rb +185 -195
- data/spec/unit/type/filebucket_spec.rb +10 -11
- data/spec/unit/type/group_spec.rb +8 -6
- data/spec/unit/type/noop_metaparam_spec.rb +2 -1
- data/spec/unit/type/package/package_settings_spec.rb +23 -44
- data/spec/unit/type/package_spec.rb +57 -56
- data/spec/unit/type/resources_spec.rb +74 -72
- data/spec/unit/type/schedule_spec.rb +26 -24
- data/spec/unit/type/service_spec.rb +75 -49
- data/spec/unit/type/stage_spec.rb +1 -0
- data/spec/unit/type/tidy_spec.rb +62 -61
- data/spec/unit/type/user_spec.rb +25 -24
- data/spec/unit/type/whit_spec.rb +1 -0
- data/spec/unit/type_spec.rb +54 -55
- data/spec/unit/util/at_fork_spec.rb +19 -18
- data/spec/unit/util/autoload_spec.rb +56 -55
- data/spec/unit/util/backups_spec.rb +35 -34
- data/spec/unit/util/character_encoding_spec.rb +5 -5
- data/spec/unit/util/checksums_spec.rb +39 -38
- data/spec/unit/util/colors_spec.rb +2 -1
- data/spec/unit/util/command_line_spec.rb +20 -40
- data/spec/unit/util/constant_inflector_spec.rb +1 -0
- data/spec/unit/util/diff_spec.rb +8 -7
- data/spec/unit/util/errors_spec.rb +1 -0
- data/spec/unit/util/execution_spec.rb +163 -187
- data/spec/unit/util/execution_stub_spec.rb +1 -0
- data/spec/unit/util/feature_spec.rb +14 -21
- data/spec/unit/util/filetype_spec.rb +49 -49
- data/spec/unit/util/http_proxy_spec.rb +12 -12
- data/spec/unit/util/inifile_spec.rb +31 -26
- data/spec/unit/util/json_lockfile_spec.rb +5 -3
- data/spec/unit/util/ldap/connection_spec.rb +25 -26
- data/spec/unit/util/ldap/generator_spec.rb +1 -0
- data/spec/unit/util/ldap/manager_spec.rb +101 -102
- data/spec/unit/util/lockfile_spec.rb +1 -0
- data/spec/unit/util/log/destinations_spec.rb +33 -30
- data/spec/unit/util/log_spec.rb +34 -48
- data/spec/unit/util/logging_spec.rb +72 -58
- data/spec/unit/util/metric_spec.rb +1 -0
- data/spec/unit/util/monkey_patches_spec.rb +9 -7
- data/spec/unit/util/multi_match_spec.rb +1 -0
- data/spec/unit/util/network_device/config_spec.rb +1 -0
- data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
- data/spec/unit/util/network_device_spec.rb +9 -7
- data/spec/unit/util/package_spec.rb +1 -0
- data/spec/unit/util/pidlock_spec.rb +15 -60
- data/spec/unit/util/plist_spec.rb +33 -40
- data/spec/unit/util/posix_spec.rb +51 -54
- data/spec/unit/util/rdoc_spec.rb +10 -9
- data/spec/unit/util/reference_spec.rb +1 -0
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +8 -7
- data/spec/unit/util/rubygems_spec.rb +8 -7
- data/spec/unit/util/run_mode_spec.rb +4 -3
- data/spec/unit/util/selinux_spec.rb +72 -79
- data/spec/unit/util/splayer_spec.rb +9 -8
- data/spec/unit/util/ssl_spec.rb +1 -0
- data/spec/unit/util/storage_spec.rb +23 -22
- data/spec/unit/util/suidmanager_spec.rb +54 -45
- data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
- data/spec/unit/util/tag_set_spec.rb +1 -0
- data/spec/unit/util/tagging_spec.rb +1 -0
- data/spec/unit/util/terminal_spec.rb +10 -9
- data/spec/unit/util/user_attr_spec.rb +2 -1
- data/spec/unit/util/warnings_spec.rb +4 -3
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +21 -51
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
- data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
- data/spec/unit/util/windows/adsi_spec.rb +138 -136
- data/spec/unit/util/windows/api_types_spec.rb +1 -0
- data/spec/unit/util/windows/eventlog_spec.rb +12 -9
- data/spec/unit/util/windows/file_spec.rb +1 -0
- data/spec/unit/util/windows/root_certs_spec.rb +1 -0
- data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
- data/spec/unit/util/windows/service_spec.rb +103 -100
- data/spec/unit/util/windows/sid_spec.rb +13 -11
- data/spec/unit/util/windows/string_spec.rb +1 -0
- data/spec/unit/util_spec.rb +57 -55
- data/spec/unit/version_spec.rb +6 -6
- metadata +20 -32
- data/CODEOWNERS +0 -30
- data/ext/autotest/Rakefile +0 -8
- data/ext/autotest/config +0 -43
- data/ext/autotest/readme.rst +0 -16
- data/lib/puppet/confine/boolean.rb +0 -45
- data/lib/puppet/provider/package_targetable.rb +0 -68
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
- data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
- data/spec/integration/network/http_pool_spec.rb +0 -120
- data/spec/integration/provider/file/windows_spec.rb +0 -162
- data/spec/lib/puppet_spec/https.rb +0 -166
- data/spec/unit/settings/server_list_setting_spec.rb +0 -21
- data/spec/watchr.rb +0 -137
data/lib/puppet/provider/exec.rb
CHANGED
@@ -15,7 +15,7 @@ class Puppet::Provider::Exec < Puppet::Provider
|
|
15
15
|
|
16
16
|
envlist = [envlist] unless envlist.is_a? Array
|
17
17
|
envlist.each do |setting|
|
18
|
-
unless (match = /^(\w+)=((.|\n)
|
18
|
+
unless (match = /^(\w+)=((.|\n)*)$/.match(setting))
|
19
19
|
warning _("Cannot understand environment setting %{setting}") % { setting: setting.inspect }
|
20
20
|
next
|
21
21
|
end
|
@@ -26,6 +26,11 @@ class Puppet::Provider::Exec < Puppet::Provider
|
|
26
26
|
warning _("Overriding environment setting '%{var}' with '%{value}'") % { var: var, value: value }
|
27
27
|
end
|
28
28
|
|
29
|
+
if value.nil? || value.empty?
|
30
|
+
msg = _("Empty environment setting '%{var}'") % {var: var}
|
31
|
+
Puppet.warn_once('undefined_variables', "empty_env_var_#{var}", msg, resource.file, resource.line)
|
32
|
+
end
|
33
|
+
|
29
34
|
env[var] = value
|
30
35
|
end
|
31
36
|
|
@@ -71,9 +71,7 @@ Puppet::Type.type(:file).provide :windows do
|
|
71
71
|
|
72
72
|
def mode=(value)
|
73
73
|
begin
|
74
|
-
|
75
|
-
managing_group = !resource[:group].nil?
|
76
|
-
set_mode(value.to_i(8), resource[:path], true, managing_owner, managing_group)
|
74
|
+
set_mode(value.to_i(8), resource[:path])
|
77
75
|
rescue => detail
|
78
76
|
error = Puppet::Error.new(_("failed to set mode %{mode} on %{path}: %{message}") % { mode: mode, path: resource[:path], message: detail.message })
|
79
77
|
error.set_backtrace detail.backtrace
|
@@ -88,52 +86,6 @@ Puppet::Type.type(:file).provide :windows do
|
|
88
86
|
end
|
89
87
|
end
|
90
88
|
|
91
|
-
# munge the windows group permissions if the user or group are set to SYSTEM
|
92
|
-
#
|
93
|
-
# when SYSTEM user is the group or user and the resoure is not managing them then treat
|
94
|
-
# the resource as insync if System has FullControl access.
|
95
|
-
#
|
96
|
-
# @param [String] current - the current mode returned by the resource
|
97
|
-
# @param [String] should - what the mode should be
|
98
|
-
#
|
99
|
-
# @return [String, nil] munged mode or nil if the resource should be out of sync
|
100
|
-
def munge_windows_system_group(current, should)
|
101
|
-
[
|
102
|
-
{
|
103
|
-
'type' => 'group',
|
104
|
-
'resource' => resource[:group],
|
105
|
-
'set_to_user' => group,
|
106
|
-
'fullcontrol' => "070".to_i(8),
|
107
|
-
'remove_mask' => "707".to_i(8),
|
108
|
-
'should_mask' => (should[0].to_i(8) & "070".to_i(8)),
|
109
|
-
},
|
110
|
-
{
|
111
|
-
'type' => 'owner',
|
112
|
-
'resource' => resource[:owner],
|
113
|
-
'set_to_user' => owner,
|
114
|
-
'fullcontrol' => "700".to_i(8),
|
115
|
-
'remove_mask' => "077".to_i(8),
|
116
|
-
'should_mask' => (should[0].to_i(8) & "700".to_i(8)),
|
117
|
-
}
|
118
|
-
].each do |mode_part|
|
119
|
-
if mode_part['resource'].nil? && (mode_part['set_to_user'] == Puppet::Util::Windows::SID::LocalSystem)
|
120
|
-
if (current.to_i(8) & mode_part['fullcontrol']) == mode_part['fullcontrol']
|
121
|
-
# Since the group is LocalSystem, and the permissions are FullControl,
|
122
|
-
# replace the value returned with the value expected. This will treat
|
123
|
-
# this specific situation as "insync"
|
124
|
-
current = ( (current.to_i(8) & mode_part['remove_mask']) | mode_part['should_mask'] ).to_s(8).rjust(4, '0')
|
125
|
-
else
|
126
|
-
# If the SYSTEM account does _not_ have FullControl in this scenario, we should
|
127
|
-
# force the resource out of sync no matter what.
|
128
|
-
#TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
|
129
|
-
Puppet.debug _("%{resource_name}: %{mode_part_type} set to SYSTEM. SYSTEM permissions cannot be set below FullControl ('7')") % { resource_name: resource[:name], mode_part_type: mode_part['type']}
|
130
|
-
return nil
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
current
|
135
|
-
end
|
136
|
-
|
137
89
|
attr_reader :file
|
138
90
|
private
|
139
91
|
def file
|
@@ -67,10 +67,7 @@ Puppet::Type.type(:group).provide :windows_adsi do
|
|
67
67
|
|
68
68
|
def members
|
69
69
|
@members ||= Puppet::Util::Windows::ADSI::Group.name_sid_hash(group.members)
|
70
|
-
|
71
|
-
# @members.keys returns an array of SIDs. We need to convert those SIDs into
|
72
|
-
# names so that `puppet resource` prints the right output.
|
73
|
-
members_to_s(@members.keys).split(',')
|
70
|
+
@members.keys
|
74
71
|
end
|
75
72
|
|
76
73
|
def members=(members)
|
@@ -81,6 +81,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
|
|
81
81
|
unless file = @resource[:source]
|
82
82
|
raise ArgumentError, _("You cannot install dpkg packages without a source")
|
83
83
|
end
|
84
|
+
|
84
85
|
args = []
|
85
86
|
|
86
87
|
# We always unhold when installing to remove any prior hold.
|
@@ -145,9 +146,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
|
|
145
146
|
end
|
146
147
|
|
147
148
|
def hold
|
148
|
-
|
149
|
-
self.install
|
150
|
-
end
|
149
|
+
self.install
|
151
150
|
Tempfile.open('puppet_dpkg_set_selection') do |tmpfile|
|
152
151
|
tmpfile.write("#{@resource[:name]} hold\n")
|
153
152
|
tmpfile.flush
|
@@ -163,16 +162,4 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
|
|
163
162
|
end
|
164
163
|
end
|
165
164
|
|
166
|
-
def package_not_installed?(name)
|
167
|
-
if !name.nil? && !name.empty?
|
168
|
-
begin
|
169
|
-
dpkgquery("-W", "--showformat", self.class::DPKG_QUERY_FORMAT_STRING, name)
|
170
|
-
rescue Puppet::ExecutionFailure
|
171
|
-
# return true if exception is generated because package is not found
|
172
|
-
return true
|
173
|
-
end
|
174
|
-
return false
|
175
|
-
end
|
176
|
-
raise ArgumentError.new("Package name is nil or empty")
|
177
|
-
end
|
178
165
|
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require 'puppet/provider/
|
1
|
+
require 'puppet/provider/package'
|
2
2
|
require 'uri'
|
3
3
|
|
4
4
|
# Ruby gems support.
|
5
|
-
Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package
|
5
|
+
Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package do
|
6
6
|
desc "Ruby Gem support. If a URL is passed via `source`, then that URL is
|
7
7
|
appended to the list of remote gem repositories; to ensure that only the
|
8
8
|
specified source is used, also pass `--clear-sources` via `install_options`.
|
@@ -15,79 +15,27 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
|
|
15
15
|
These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
|
16
16
|
or an array where each element is either a string or a hash."
|
17
17
|
|
18
|
-
has_feature :versionable, :install_options, :uninstall_options
|
18
|
+
has_feature :versionable, :install_options, :uninstall_options
|
19
19
|
|
20
|
-
|
21
|
-
def self.specificity
|
22
|
-
match = default_match
|
23
|
-
length = match ? match.length : 0
|
24
|
-
|
25
|
-
return 1 if length == 0
|
26
|
-
|
27
|
-
super
|
28
|
-
end
|
29
|
-
|
30
|
-
# Define the default provider package command name when the provider is targetable.
|
31
|
-
# Required by Puppet::Provider::Package::Targetable::resource_or_provider_command
|
32
|
-
|
33
|
-
def self.provider_command
|
34
|
-
command(:gemcmd)
|
35
|
-
end
|
36
|
-
|
37
|
-
# Define the default provider package command as optional when the provider is targetable.
|
38
|
-
# Doing do defers the evaluation of provider suitability until all commands are evaluated.
|
39
|
-
|
40
|
-
has_command(:gemcmd, 'gem') do
|
41
|
-
is_optional
|
42
|
-
end
|
43
|
-
|
44
|
-
# CommandDefiner in provider.rb creates convenience execution methods that set failonfail, combine, and optionally, environment.
|
45
|
-
# And when a child provider defines its own command via commands() or has_command(), the provider-specific path is always returned by command().
|
46
|
-
# But when the convenience execution method is invoked, the last convenience method to be defined is executed.
|
47
|
-
# This makes invoking those convenience execution methods unsuitable for inherited providers.
|
48
|
-
#
|
49
|
-
# In this case, causing the puppet_gem provider to inherit the parent gem provider's convenience gemcmd() methods, with the wrong path.
|
50
|
-
|
51
|
-
def self.execute_gem_command(command, command_options)
|
52
|
-
validate_command(command)
|
53
|
-
cmd = [command] << command_options
|
54
|
-
|
55
|
-
execute(cmd, {:failonfail => true, :combine => true, :custom_environment => {"HOME"=>ENV["HOME"]}})
|
56
|
-
end
|
57
|
-
|
58
|
-
def self.instances(target_command = nil)
|
59
|
-
if target_command
|
60
|
-
command = target_command
|
61
|
-
else
|
62
|
-
command = provider_command
|
63
|
-
# The default provider package command is optional.
|
64
|
-
return [] unless command
|
65
|
-
end
|
66
|
-
|
67
|
-
gemlist(:command => command, :local => true).collect do |pkg|
|
68
|
-
# Track the command when the provider is targetable.
|
69
|
-
pkg[:command] = command
|
70
|
-
new(pkg)
|
71
|
-
end
|
72
|
-
end
|
20
|
+
commands :gemcmd => "gem"
|
73
21
|
|
74
22
|
def self.gemlist(options)
|
75
|
-
|
23
|
+
gem_list_command = [command(:gemcmd), "list"]
|
76
24
|
|
77
25
|
if options[:local]
|
78
|
-
|
26
|
+
gem_list_command << "--local"
|
79
27
|
else
|
80
|
-
|
28
|
+
gem_list_command << "--remote"
|
81
29
|
end
|
82
30
|
if options[:source]
|
83
|
-
|
31
|
+
gem_list_command << "--source" << options[:source]
|
84
32
|
end
|
85
33
|
if name = options[:justme]
|
86
|
-
|
34
|
+
gem_list_command << '\A' + name + '\z'
|
87
35
|
end
|
88
36
|
|
89
37
|
begin
|
90
|
-
list =
|
38
|
+
list = execute(gem_list_command, {:failonfail => true, :combine => true, :custom_environment => {"HOME"=>ENV["HOME"]}}).lines.
|
91
39
|
map {|set| gemsplit(set) }.
|
92
40
|
reject {|x| x.nil? }
|
93
41
|
rescue Puppet::ExecutionFailure => detail
|
@@ -122,6 +70,12 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
|
|
122
70
|
end
|
123
71
|
end
|
124
72
|
|
73
|
+
def self.instances(justme = false)
|
74
|
+
gemlist(:local => true).collect do |hash|
|
75
|
+
new(hash)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
125
79
|
def insync?(is)
|
126
80
|
return false unless is && is != :absent
|
127
81
|
|
@@ -138,27 +92,14 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
|
|
138
92
|
is.any? { |version| dependency.match?('', version) }
|
139
93
|
end
|
140
94
|
|
141
|
-
def rubygem_version(command)
|
142
|
-
command_options = ["--version"]
|
143
|
-
self.class.execute_gem_command(command, command_options)
|
144
|
-
end
|
145
|
-
|
146
95
|
def install(useversion = true)
|
147
|
-
command =
|
148
|
-
|
149
|
-
command_options += install_options if resource[:install_options]
|
150
|
-
|
96
|
+
command = [command(:gemcmd), "install"]
|
97
|
+
command += install_options if resource[:install_options]
|
151
98
|
if Puppet::Util::Platform.windows?
|
152
99
|
version = resource[:ensure]
|
153
|
-
|
154
|
-
else
|
155
|
-
command_options << "-v" << resource[:ensure] if (! resource[:ensure].is_a? Symbol) and useversion
|
156
|
-
end
|
157
|
-
|
158
|
-
if Puppet::Util::Package.versioncmp(rubygem_version(command), '2.0.0') == -1
|
159
|
-
command_options << "--no-rdoc" << "--no-ri"
|
100
|
+
command << "-v" << %Q["#{version}"] if (! resource[:ensure].is_a? Symbol) and useversion
|
160
101
|
else
|
161
|
-
|
102
|
+
command << "-v" << resource[:ensure] if (! resource[:ensure].is_a? Symbol) and useversion
|
162
103
|
end
|
163
104
|
|
164
105
|
if source = resource[:source]
|
@@ -171,53 +112,52 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
|
|
171
112
|
case uri.scheme
|
172
113
|
when nil
|
173
114
|
# no URI scheme => interpret the source as a local file
|
174
|
-
|
115
|
+
command << source
|
175
116
|
when /file/i
|
176
|
-
|
117
|
+
command << uri.path
|
177
118
|
when 'puppet'
|
178
119
|
# we don't support puppet:// URLs (yet)
|
179
120
|
raise Puppet::Error.new(_("puppet:// URLs are not supported as gem sources"))
|
180
121
|
else
|
181
122
|
# check whether it's an absolute file path to help Windows out
|
182
123
|
if Puppet::Util.absolute_path?(source)
|
183
|
-
|
124
|
+
command << source
|
184
125
|
else
|
185
126
|
# interpret it as a gem repository
|
186
|
-
|
127
|
+
command << "--source" << "#{source}" << resource[:name]
|
187
128
|
end
|
188
129
|
end
|
189
130
|
else
|
190
|
-
|
131
|
+
command << "--no-rdoc" << "--no-ri" << resource[:name]
|
191
132
|
end
|
192
133
|
|
193
|
-
output =
|
194
|
-
# Apparently some gem versions don't exit non-0 on failure
|
134
|
+
output = execute(command, {:failonfail => true, :combine => true, :custom_environment => {"HOME"=>ENV["HOME"]}})
|
135
|
+
# Apparently some stupid gem versions don't exit non-0 on failure
|
195
136
|
self.fail _("Could not install: %{output}") % { output: output.chomp } if output.include?("ERROR")
|
196
137
|
end
|
197
138
|
|
198
139
|
def latest
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
140
|
+
# This always gets the latest version available.
|
141
|
+
gemlist_options = {:justme => resource[:name]}
|
142
|
+
gemlist_options.merge!({:source => resource[:source]}) unless resource[:source].nil?
|
143
|
+
hash = self.class.gemlist(gemlist_options)
|
144
|
+
|
145
|
+
hash[:ensure][0]
|
204
146
|
end
|
205
147
|
|
206
148
|
def query
|
207
|
-
|
208
|
-
options = { :command => command, :justme => resource[:name], :local => true }
|
209
|
-
pkg = self.class.gemlist(options)
|
210
|
-
pkg[:command] = command unless pkg.nil?
|
211
|
-
pkg
|
149
|
+
self.class.gemlist(:justme => resource[:name], :local => true)
|
212
150
|
end
|
213
151
|
|
214
152
|
def uninstall
|
215
|
-
command =
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
153
|
+
command = [command(:gemcmd), "uninstall"]
|
154
|
+
command << "--executables" << "--all" << resource[:name]
|
155
|
+
|
156
|
+
command += uninstall_options if resource[:uninstall_options]
|
157
|
+
|
158
|
+
output = execute(command, {:failonfail => true, :combine => true, :custom_environment => {"HOME"=>ENV["HOME"]}})
|
159
|
+
|
160
|
+
# Apparently some stupid gem versions don't exit non-0 on failure
|
221
161
|
self.fail _("Could not uninstall: %{output}") % { output: output.chomp } if output.include?("ERROR")
|
222
162
|
end
|
223
163
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
# Puppet package provider for Python's `pip` package management frontend.
|
2
2
|
# <http://pip.pypa.io/>
|
3
3
|
|
4
|
-
require 'puppet/provider/
|
4
|
+
require 'puppet/provider/package'
|
5
5
|
require 'puppet/util/http_proxy'
|
6
6
|
|
7
|
-
Puppet::Type.type(:package).provide :pip,
|
7
|
+
Puppet::Type.type(:package).provide :pip,
|
8
|
+
:parent => ::Puppet::Provider::Package do
|
8
9
|
|
9
10
|
desc "Python packages via `pip`.
|
10
11
|
|
@@ -12,24 +13,43 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
12
13
|
These options should be specified as a string (e.g. '--flag'), a hash (e.g. {'--flag' => 'value'}),
|
13
14
|
or an array where each element is either a string or a hash."
|
14
15
|
|
15
|
-
has_feature :installable, :uninstallable, :upgradeable, :versionable, :install_options
|
16
|
+
has_feature :installable, :uninstallable, :upgradeable, :versionable, :install_options
|
16
17
|
|
17
|
-
#
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
# Parse lines of output from `pip freeze`, which are structured as
|
19
|
+
# _package_==_version_.
|
20
|
+
def self.parse(line)
|
21
|
+
if line.chomp =~ /^([^=]+)==([^=]+)$/
|
22
|
+
{:ensure => $2, :name => $1, :provider => name}
|
23
|
+
else
|
24
|
+
nil
|
25
|
+
end
|
25
26
|
end
|
26
27
|
|
27
|
-
#
|
28
|
-
#
|
28
|
+
# Return an array of structured information about every installed package
|
29
|
+
# that's managed by `pip` or an empty array if `pip` is not available.
|
30
|
+
def self.instances
|
31
|
+
packages = []
|
32
|
+
pip_cmd = self.pip_cmd
|
33
|
+
return [] unless pip_cmd
|
34
|
+
command = [pip_cmd, 'freeze']
|
35
|
+
if Puppet::Util::Package.versioncmp(self.pip_version, '8.1.0') >= 0 # a >= b
|
36
|
+
command << '--all'
|
37
|
+
end
|
38
|
+
execpipe command do |process|
|
39
|
+
process.collect do |line|
|
40
|
+
next unless options = parse(line)
|
41
|
+
packages << new(options)
|
42
|
+
end
|
43
|
+
end
|
29
44
|
|
30
|
-
|
31
|
-
#
|
32
|
-
|
45
|
+
# Pip can also upgrade pip, but it's not listed in freeze so need to special case it
|
46
|
+
# Pip list would also show pip installed version, but "pip list" doesn't exist for older versions of pip (E.G v1.0)
|
47
|
+
# Not needed when "pip freeze --all" is available
|
48
|
+
if Puppet::Util::Package.versioncmp(self.pip_version, '8.1.0') == -1 && version = self.pip_version
|
49
|
+
packages << new({:ensure => version, :name => File.basename(pip_cmd), :provider => name})
|
50
|
+
end
|
51
|
+
|
52
|
+
packages
|
33
53
|
end
|
34
54
|
|
35
55
|
def self.cmd
|
@@ -40,94 +60,104 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
40
60
|
end
|
41
61
|
end
|
42
62
|
|
43
|
-
def self.
|
44
|
-
|
45
|
-
process.collect do |line|
|
46
|
-
return line.strip.match(/^pip (\d+\.\d+\.?\d*).*$/)[1]
|
47
|
-
end
|
48
|
-
end
|
63
|
+
def self.pip_cmd
|
64
|
+
self.cmd.map { |c| which(c) }.find { |c| c != nil }
|
49
65
|
end
|
50
66
|
|
51
|
-
|
52
|
-
|
67
|
+
def self.pip_version
|
68
|
+
pip_cmd = self.pip_cmd
|
69
|
+
return nil unless pip_cmd
|
53
70
|
|
54
|
-
|
55
|
-
if target_command
|
56
|
-
command = target_command
|
57
|
-
self.validate_command(command)
|
58
|
-
else
|
59
|
-
command = provider_command
|
60
|
-
end
|
61
|
-
|
62
|
-
packages = []
|
63
|
-
return packages unless command
|
64
|
-
|
65
|
-
command_options = ['freeze']
|
66
|
-
command_version = self.pip_version(command)
|
67
|
-
if Puppet::Util::Package.versioncmp(command_version, '8.1.0') >= 0
|
68
|
-
command_options << '--all'
|
69
|
-
end
|
70
|
-
|
71
|
-
execpipe [command, command_options] do |process|
|
71
|
+
execpipe [pip_cmd, '--version'] do |process|
|
72
72
|
process.collect do |line|
|
73
|
-
|
74
|
-
pkg[:command] = command
|
75
|
-
packages << new(pkg)
|
73
|
+
return line.strip.match(/^pip (\d+\.\d+\.?\d*).*$/)[1]
|
76
74
|
end
|
77
75
|
end
|
76
|
+
end
|
78
77
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
78
|
+
# Return structured information about a particular package or `nil` if
|
79
|
+
# it is not installed or `pip` itself is not available.
|
80
|
+
def query
|
81
|
+
self.class.instances.each do |provider_pip|
|
82
|
+
return provider_pip.properties if @resource[:name].downcase == provider_pip.name.downcase
|
84
83
|
end
|
85
|
-
|
86
|
-
packages
|
84
|
+
return nil
|
87
85
|
end
|
88
86
|
|
89
|
-
#
|
90
|
-
|
91
|
-
|
92
|
-
if
|
93
|
-
|
87
|
+
# Use pip CLI to look up versions from PyPI repositories, honoring local pip config such as custom repositories
|
88
|
+
def latest
|
89
|
+
return nil unless self.class.pip_cmd
|
90
|
+
if Puppet::Util::Package.versioncmp(self.class.pip_version, '1.5.4') == -1 # a < b
|
91
|
+
return latest_with_old_pip
|
94
92
|
end
|
93
|
+
latest_with_new_pip
|
95
94
|
end
|
96
95
|
|
97
|
-
#
|
98
|
-
#
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
96
|
+
# Install a package. The ensure parameter may specify installed,
|
97
|
+
# latest, a version number, or, in conjunction with the source
|
98
|
+
# parameter, an SCM revision. In that case, the source parameter
|
99
|
+
# gives the fully-qualified URL to the repository.
|
100
|
+
def install
|
101
|
+
args = %w{install -q}
|
102
|
+
args += install_options if @resource[:install_options]
|
103
|
+
if @resource[:source]
|
104
|
+
if String === @resource[:ensure]
|
105
|
+
args << "#{@resource[:source]}@#{@resource[:ensure]}#egg=#{
|
106
|
+
@resource[:name]}"
|
107
|
+
else
|
108
|
+
args << "#{@resource[:source]}#egg=#{@resource[:name]}"
|
109
|
+
end
|
110
|
+
else
|
111
|
+
case @resource[:ensure]
|
112
|
+
when String
|
113
|
+
args << "#{@resource[:name]}==#{@resource[:ensure]}"
|
114
|
+
when :latest
|
115
|
+
args << "--upgrade" << @resource[:name]
|
116
|
+
else
|
117
|
+
args << @resource[:name]
|
118
|
+
end
|
106
119
|
end
|
107
|
-
|
120
|
+
lazy_pip(*args)
|
108
121
|
end
|
109
122
|
|
110
|
-
#
|
111
|
-
#
|
123
|
+
# Uninstall a package. Uninstall won't work reliably on Debian/Ubuntu
|
124
|
+
# unless this issue gets fixed.
|
125
|
+
# <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562544>
|
126
|
+
def uninstall
|
127
|
+
lazy_pip "uninstall", "-y", "-q", @resource[:name]
|
128
|
+
end
|
112
129
|
|
113
|
-
def
|
114
|
-
|
115
|
-
|
130
|
+
def update
|
131
|
+
install
|
132
|
+
end
|
116
133
|
|
117
|
-
|
118
|
-
|
119
|
-
|
134
|
+
# Execute a `pip` command. If Puppet doesn't yet know how to do so,
|
135
|
+
# try to teach it and if even that fails, raise the error.
|
136
|
+
private
|
137
|
+
def lazy_pip(*args)
|
138
|
+
pip(*args)
|
139
|
+
rescue NoMethodError => e
|
140
|
+
# Ensure pip can upgrade pip, which usually puts pip into a new path /usr/local/bin/pip (compared to /usr/bin/pip)
|
141
|
+
# The path to pip needs to be looked up again in the subsequent request. Using the preferred approach as noted
|
142
|
+
# in provider.rb ensures this (copied below for reference)
|
143
|
+
#
|
144
|
+
# @note From provider.rb; It is preferred if the commands are not entered with absolute paths as this allows puppet
|
145
|
+
# to search for them using the PATH variable.
|
146
|
+
if pathname = self.class.cmd.map { |c| which(c) }.find { |c| c != nil }
|
147
|
+
self.class.commands :pip => File.basename(pathname)
|
148
|
+
pip(*args)
|
120
149
|
else
|
121
|
-
|
150
|
+
raise e, "Could not locate command #{self.class.cmd.join(' and ')}.", e.backtrace
|
122
151
|
end
|
123
152
|
end
|
124
153
|
|
125
|
-
def
|
126
|
-
|
127
|
-
|
154
|
+
def install_options
|
155
|
+
join_options(@resource[:install_options])
|
156
|
+
end
|
128
157
|
|
158
|
+
def latest_with_new_pip
|
129
159
|
# Less resource intensive approach for pip version 1.5.4 and above
|
130
|
-
execpipe [
|
160
|
+
execpipe ["#{self.class.pip_cmd}", "install", "#{@resource[:name]}==versionplease"] do |process|
|
131
161
|
process.collect do |line|
|
132
162
|
# PIP OUTPUT: Could not find a version that satisfies the requirement Django==versionplease (from versions: 1.1.3, 1.8rc1)
|
133
163
|
if line =~ /from versions: /
|
@@ -143,11 +173,8 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
143
173
|
end
|
144
174
|
|
145
175
|
def latest_with_old_pip
|
146
|
-
command = resource_or_provider_command
|
147
|
-
self.class.validate_command(command)
|
148
|
-
|
149
176
|
Dir.mktmpdir("puppet_pip") do |dir|
|
150
|
-
execpipe [
|
177
|
+
execpipe ["#{self.class.pip_cmd}", "install", "#{@resource[:name]}", "-d", "#{dir}", "-v"] do |process|
|
151
178
|
process.collect do |line|
|
152
179
|
# PIP OUTPUT: Using version 0.10.1 (newest of versions: 0.10.1, 0.10, 0.9, 0.8.1, 0.8, 0.7.2, 0.7.1, 0.7, 0.6.1, 0.6, 0.5.2, 0.5.1, 0.5, 0.4, 0.3.1, 0.3, 0.2, 0.1)
|
153
180
|
if line =~ /Using version (.+?) \(newest of versions/
|
@@ -158,55 +185,4 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
158
185
|
end
|
159
186
|
end
|
160
187
|
end
|
161
|
-
|
162
|
-
# Install a package. The ensure parameter may specify installed,
|
163
|
-
# latest, a version number, or, in conjunction with the source
|
164
|
-
# parameter, an SCM revision. In that case, the source parameter
|
165
|
-
# gives the fully-qualified URL to the repository.
|
166
|
-
|
167
|
-
def install
|
168
|
-
command = resource_or_provider_command
|
169
|
-
self.class.validate_command(command)
|
170
|
-
|
171
|
-
command_options = %w{install -q}
|
172
|
-
command_options += install_options if @resource[:install_options]
|
173
|
-
if @resource[:source]
|
174
|
-
if String === @resource[:ensure]
|
175
|
-
command_options << "#{@resource[:source]}@#{@resource[:ensure]}#egg=#{@resource[:name]}"
|
176
|
-
else
|
177
|
-
command_options << "#{@resource[:source]}#egg=#{@resource[:name]}"
|
178
|
-
end
|
179
|
-
else
|
180
|
-
case @resource[:ensure]
|
181
|
-
when String
|
182
|
-
command_options << "#{@resource[:name]}==#{@resource[:ensure]}"
|
183
|
-
when :latest
|
184
|
-
command_options << "--upgrade" << @resource[:name]
|
185
|
-
else
|
186
|
-
command_options << @resource[:name]
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
execute([command, command_options])
|
191
|
-
end
|
192
|
-
|
193
|
-
# Uninstall a package. Uninstall won't work reliably on Debian/Ubuntu unless this issue gets fixed.
|
194
|
-
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562544
|
195
|
-
|
196
|
-
def uninstall
|
197
|
-
command = resource_or_provider_command
|
198
|
-
self.class.validate_command(command)
|
199
|
-
|
200
|
-
command_options = ["uninstall", "-y", "-q", @resource[:name]]
|
201
|
-
|
202
|
-
execute([command, command_options])
|
203
|
-
end
|
204
|
-
|
205
|
-
def update
|
206
|
-
install
|
207
|
-
end
|
208
|
-
|
209
|
-
def install_options
|
210
|
-
join_options(@resource[:install_options])
|
211
|
-
end
|
212
188
|
end
|