puppet 6.17.0-x64-mingw32 → 6.18.0-x64-mingw32
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.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -5
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +21 -3
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/pal/pal_impl.rb +27 -3
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/validation/checker4_0.rb +19 -15
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +34 -0
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +10 -3
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +1 -1
- data/lib/puppet/trusted_external.rb +2 -2
- data/lib/puppet/type.rb +4 -3
- data/lib/puppet/type/file.rb +2 -2
- data/lib/puppet/type/file/source.rb +27 -7
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/service.rb +4 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +26 -12
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +15 -1
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/user.rb +219 -0
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +78 -69
- data/man/man5/puppet.conf.5 +22 -3
- 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 +1 -1
- 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 +2 -2
- 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/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/integration/application/agent_spec.rb +29 -37
- data/spec/integration/application/apply_spec.rb +149 -149
- data/spec/integration/application/config_spec.rb +74 -0
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +65 -16
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +50 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/user_spec.rb +7 -0
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/unit/application/agent_spec.rb +3 -4
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +39 -10
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer_spec.rb +47 -31
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/face/config_spec.rb +3 -1
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/http/client_spec.rb +0 -1
- data/spec/unit/http/resolver_spec.rb +0 -1
- data/spec/unit/http/service/ca_spec.rb +0 -1
- data/spec/unit/http/service/compiler_spec.rb +0 -1
- data/spec/unit/http/service/file_server_spec.rb +0 -1
- data/spec/unit/http/service/report_spec.rb +0 -1
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +0 -1
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +70 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/init_spec.rb +41 -0
- data/spec/unit/provider/service/systemd_spec.rb +1 -6
- data/spec/unit/provider/service/windows_spec.rb +28 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/type/service_spec.rb +35 -2
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/command_line_spec.rb +11 -6
- metadata +21 -44
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/man_spec.rb +0 -31
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            require 'win32/dir/constants'
         | 
| 2 | 
            +
            require 'win32/dir/functions'
         | 
| 3 | 
            +
            require 'win32/dir/structs'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            class DirMonkeyPatched
         | 
| 6 | 
            +
              include ::Dir::Structs
         | 
| 7 | 
            +
              include ::Dir::Constants
         | 
| 8 | 
            +
              extend  ::Dir::Functions
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              path  = nil
         | 
| 11 | 
            +
              key   = :PERSONAL
         | 
| 12 | 
            +
              value = 0x0005
         | 
| 13 | 
            +
              buf   = 0.chr * 1024
         | 
| 14 | 
            +
              buf.encode!(Encoding::UTF_16LE)
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              if SHGetFolderPathW(0, value, 0, 0, buf) == 0 # Current path
         | 
| 17 | 
            +
                path = buf.strip
         | 
| 18 | 
            +
              elsif SHGetFolderPathW(0, value, 0, 1, buf) == 0 # Default path
         | 
| 19 | 
            +
                path = buf.strip
         | 
| 20 | 
            +
              else
         | 
| 21 | 
            +
                FFI::MemoryPointer.new(:long) do |ptr|
         | 
| 22 | 
            +
                  if SHGetFolderLocation(0, value, 0, 0, ptr) == 0
         | 
| 23 | 
            +
                    SHFILEINFO.new do |info|
         | 
| 24 | 
            +
                      flags = SHGFI_DISPLAYNAME | SHGFI_PIDL
         | 
| 25 | 
            +
                      if SHGetFileInfo(ptr.read_long, 0, info, info.size, flags) != 0
         | 
| 26 | 
            +
                        path = info[:szDisplayName].to_s
         | 
| 27 | 
            +
                      end
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              if path.nil?
         | 
| 34 | 
            +
                begin
         | 
| 35 | 
            +
                  Dir.const_set(key, ''.encode(Encoding.default_external))
         | 
| 36 | 
            +
                rescue Encoding::UndefinedConversionError
         | 
| 37 | 
            +
                  Dir.const_set(key, ''.encode(Encoding::UTF_8))
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
            end
         | 
| @@ -340,10 +340,10 @@ module Puppet::Util::Windows::Security | |
| 340 340 | 
             
                      Puppet.warning _("Setting control rights for %{path} owner SYSTEM to less than Full Control rights. Setting SYSTEM rights to less than Full Control may have unintented consequences for operations on this file") % { path: path }
         | 
| 341 341 | 
             
                    elsif managing_owner && isownergroup
         | 
| 342 342 | 
             
                      #TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
         | 
| 343 | 
            -
                      Puppet.debug _("%{path} owner and group both set to user SYSTEM, but group is not managed directly: SYSTEM user rights will be set to FullControl by group") % { path: path }
         | 
| 343 | 
            +
                      Puppet.debug { _("%{path} owner and group both set to user SYSTEM, but group is not managed directly: SYSTEM user rights will be set to FullControl by group") % { path: path } }
         | 
| 344 344 | 
             
                    else
         | 
| 345 345 | 
             
                      #TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
         | 
| 346 | 
            -
                      Puppet.debug _("An attempt to set mode %{mode} on item %{path} would result in the owner, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path }
         | 
| 346 | 
            +
                      Puppet.debug { _("An attempt to set mode %{mode} on item %{path} would result in the owner, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path } }
         | 
| 347 347 | 
             
                      owner_allow = FILE::FILE_ALL_ACCESS
         | 
| 348 348 | 
             
                    end
         | 
| 349 349 | 
             
                  end
         | 
| @@ -356,10 +356,10 @@ module Puppet::Util::Windows::Security | |
| 356 356 | 
             
                      Puppet.warning _("Setting control rights for %{path} group SYSTEM to less than Full Control rights. Setting SYSTEM rights to less than Full Control may have unintented consequences for operations on this file") % { path: path }
         | 
| 357 357 | 
             
                    elsif managing_group && isownergroup
         | 
| 358 358 | 
             
                      #TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
         | 
| 359 | 
            -
                      Puppet.debug _("%{path} owner and group both set to user SYSTEM, but owner is not managed directly: SYSTEM user rights will be set to FullControl by owner") % { path: path }
         | 
| 359 | 
            +
                      Puppet.debug { _("%{path} owner and group both set to user SYSTEM, but owner is not managed directly: SYSTEM user rights will be set to FullControl by owner") % { path: path } }
         | 
| 360 360 | 
             
                    else
         | 
| 361 361 | 
             
                      #TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
         | 
| 362 | 
            -
                      Puppet.debug _("An attempt to set mode %{mode} on item %{path} would result in the group, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path }
         | 
| 362 | 
            +
                      Puppet.debug { _("An attempt to set mode %{mode} on item %{path} would result in the group, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path } }
         | 
| 363 363 | 
             
                      group_allow = FILE::FILE_ALL_ACCESS
         | 
| 364 364 | 
             
                    end
         | 
| 365 365 | 
             
                  end
         | 
| @@ -145,6 +145,125 @@ module Puppet::Util::Windows::User | |
| 145 145 | 
             
              end
         | 
| 146 146 | 
             
              module_function :load_profile
         | 
| 147 147 |  | 
| 148 | 
            +
              def get_rights(name)
         | 
| 149 | 
            +
                user_info = Puppet::Util::Windows::SID.name_to_principal(name.sub(/^\.\\/, "#{Puppet::Util::Windows::ADSI.computer_name}\\"))
         | 
| 150 | 
            +
                return "" unless user_info
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                rights = []
         | 
| 153 | 
            +
                rights_pointer = FFI::MemoryPointer.new(:pointer)
         | 
| 154 | 
            +
                number_of_rights = FFI::MemoryPointer.new(:ulong)
         | 
| 155 | 
            +
                sid_pointer = FFI::MemoryPointer.new(:byte, user_info.sid_bytes.length).write_array_of_uchar(user_info.sid_bytes)
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                new_lsa_policy_handle do |policy_handle|
         | 
| 158 | 
            +
                  result = LsaEnumerateAccountRights(policy_handle.read_pointer, sid_pointer, rights_pointer, number_of_rights)
         | 
| 159 | 
            +
                  check_lsa_nt_status_and_raise_failures(result, "LsaEnumerateAccountRights")
         | 
| 160 | 
            +
                end
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                number_of_rights.read_ulong.times do |index|
         | 
| 163 | 
            +
                  right = LSA_UNICODE_STRING.new(rights_pointer.read_pointer + index * LSA_UNICODE_STRING.size)
         | 
| 164 | 
            +
                  rights << right[:Buffer].read_arbitrary_wide_string_up_to
         | 
| 165 | 
            +
                end
         | 
| 166 | 
            +
             | 
| 167 | 
            +
                result = LsaFreeMemory(rights_pointer.read_pointer)
         | 
| 168 | 
            +
                check_lsa_nt_status_and_raise_failures(result, "LsaFreeMemory")
         | 
| 169 | 
            +
             | 
| 170 | 
            +
                rights.join(",")
         | 
| 171 | 
            +
              end
         | 
| 172 | 
            +
              module_function :get_rights
         | 
| 173 | 
            +
             | 
| 174 | 
            +
              def set_rights(name, rights)
         | 
| 175 | 
            +
                rights_pointer = new_lsa_unicode_strings_pointer(rights)
         | 
| 176 | 
            +
                user_info = Puppet::Util::Windows::SID.name_to_principal(name.sub(/^\.\\/, "#{Puppet::Util::Windows::ADSI.computer_name}\\"))
         | 
| 177 | 
            +
                sid_pointer = FFI::MemoryPointer.new(:byte, user_info.sid_bytes.length).write_array_of_uchar(user_info.sid_bytes)
         | 
| 178 | 
            +
             | 
| 179 | 
            +
                new_lsa_policy_handle do |policy_handle|
         | 
| 180 | 
            +
                  result = LsaAddAccountRights(policy_handle.read_pointer, sid_pointer, rights_pointer, rights.size)
         | 
| 181 | 
            +
                  check_lsa_nt_status_and_raise_failures(result, "LsaAddAccountRights")
         | 
| 182 | 
            +
                end
         | 
| 183 | 
            +
              end
         | 
| 184 | 
            +
              module_function :set_rights
         | 
| 185 | 
            +
             | 
| 186 | 
            +
              def remove_rights(name, rights)
         | 
| 187 | 
            +
                rights_pointer = new_lsa_unicode_strings_pointer(rights)
         | 
| 188 | 
            +
                user_info = Puppet::Util::Windows::SID.name_to_principal(name.sub(/^\.\\/, "#{Puppet::Util::Windows::ADSI.computer_name}\\"))
         | 
| 189 | 
            +
                sid_pointer = FFI::MemoryPointer.new(:byte, user_info.sid_bytes.length).write_array_of_uchar(user_info.sid_bytes)
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                new_lsa_policy_handle do |policy_handle|
         | 
| 192 | 
            +
                  result = LsaRemoveAccountRights(policy_handle.read_pointer, sid_pointer, false, rights_pointer, rights.size)
         | 
| 193 | 
            +
                  check_lsa_nt_status_and_raise_failures(result, "LsaRemoveAccountRights")
         | 
| 194 | 
            +
                end
         | 
| 195 | 
            +
              end
         | 
| 196 | 
            +
              module_function :remove_rights
         | 
| 197 | 
            +
             | 
| 198 | 
            +
              # ACCESS_MASK flags for Policy Objects
         | 
| 199 | 
            +
              # https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/b61b7268-987a-420b-84f9-6c75f8dc8558
         | 
| 200 | 
            +
              POLICY_VIEW_LOCAL_INFORMATION   = 0x00000001
         | 
| 201 | 
            +
              POLICY_VIEW_AUDIT_INFORMATION   = 0x00000002
         | 
| 202 | 
            +
              POLICY_GET_PRIVATE_INFORMATION  = 0x00000004
         | 
| 203 | 
            +
              POLICY_TRUST_ADMIN              = 0x00000008
         | 
| 204 | 
            +
              POLICY_CREATE_ACCOUNT           = 0x00000010
         | 
| 205 | 
            +
              POLICY_CREATE_SECRET            = 0x00000020
         | 
| 206 | 
            +
              POLICY_CREATE_PRIVILEGE         = 0x00000040
         | 
| 207 | 
            +
              POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080
         | 
| 208 | 
            +
              POLICY_SET_AUDIT_REQUIREMENTS   = 0x00000100
         | 
| 209 | 
            +
              POLICY_AUDIT_LOG_ADMIN          = 0x00000200
         | 
| 210 | 
            +
              POLICY_SERVER_ADMIN             = 0x00000400
         | 
| 211 | 
            +
              POLICY_LOOKUP_NAMES             = 0x00000800
         | 
| 212 | 
            +
              POLICY_NOTIFICATION             = 0x00001000
         | 
| 213 | 
            +
             | 
| 214 | 
            +
              def self.new_lsa_policy_handle
         | 
| 215 | 
            +
                access = 0
         | 
| 216 | 
            +
                access |= POLICY_LOOKUP_NAMES
         | 
| 217 | 
            +
                access |= POLICY_CREATE_ACCOUNT
         | 
| 218 | 
            +
                policy_handle = FFI::MemoryPointer.new(:pointer)
         | 
| 219 | 
            +
             | 
| 220 | 
            +
                result = LsaOpenPolicy(nil, LSA_OBJECT_ATTRIBUTES.new, access, policy_handle)
         | 
| 221 | 
            +
                check_lsa_nt_status_and_raise_failures(result, "LsaOpenPolicy")
         | 
| 222 | 
            +
             | 
| 223 | 
            +
                begin
         | 
| 224 | 
            +
                  yield policy_handle
         | 
| 225 | 
            +
                ensure
         | 
| 226 | 
            +
                  result = LsaClose(policy_handle.read_pointer)
         | 
| 227 | 
            +
                  check_lsa_nt_status_and_raise_failures(result, "LsaClose")
         | 
| 228 | 
            +
                end
         | 
| 229 | 
            +
              end
         | 
| 230 | 
            +
              private_class_method :new_lsa_policy_handle
         | 
| 231 | 
            +
             | 
| 232 | 
            +
              def self.new_lsa_unicode_strings_pointer(strings)
         | 
| 233 | 
            +
                lsa_unicode_strings_pointer = FFI::MemoryPointer.new(LSA_UNICODE_STRING, strings.size)
         | 
| 234 | 
            +
             | 
| 235 | 
            +
                strings.each_with_index do |string, index|
         | 
| 236 | 
            +
                  lsa_string = LSA_UNICODE_STRING.new(lsa_unicode_strings_pointer + index * LSA_UNICODE_STRING.size)
         | 
| 237 | 
            +
                  lsa_string[:Buffer] = FFI::MemoryPointer.from_string(wide_string(string))
         | 
| 238 | 
            +
                  lsa_string[:Length] = string.length * 2
         | 
| 239 | 
            +
                  lsa_string[:MaximumLength] = lsa_string[:Length] + 2
         | 
| 240 | 
            +
                end
         | 
| 241 | 
            +
             | 
| 242 | 
            +
                lsa_unicode_strings_pointer
         | 
| 243 | 
            +
              end
         | 
| 244 | 
            +
              private_class_method :new_lsa_unicode_strings_pointer
         | 
| 245 | 
            +
             | 
| 246 | 
            +
              # https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d
         | 
| 247 | 
            +
              def self.check_lsa_nt_status_and_raise_failures(status, method_name)
         | 
| 248 | 
            +
                error_code = LsaNtStatusToWinError(status)
         | 
| 249 | 
            +
             | 
| 250 | 
            +
                error_reason = case error_code.to_s(16)
         | 
| 251 | 
            +
                when '0' # ERROR_SUCCESS
         | 
| 252 | 
            +
                  return # Method call succeded
         | 
| 253 | 
            +
                when '2' # ERROR_FILE_NOT_FOUND
         | 
| 254 | 
            +
                  return # No rights/privilleges assigned to given user
         | 
| 255 | 
            +
                when '5' # ERROR_ACCESS_DENIED
         | 
| 256 | 
            +
                  "Access is denied. Please make sure that puppet is running as administrator."
         | 
| 257 | 
            +
                when '521' # ERROR_NO_SUCH_PRIVILEGE
         | 
| 258 | 
            +
                  "One or more of the given rights/privilleges are incorrect."
         | 
| 259 | 
            +
                when '6ba' # RPC_S_SERVER_UNAVAILABLE
         | 
| 260 | 
            +
                  "The RPC server is unavailable or given domain name is invalid."
         | 
| 261 | 
            +
                end
         | 
| 262 | 
            +
             | 
| 263 | 
            +
                raise Puppet::Error.new("Calling `#{method_name}` returned 'Win32 Error Code 0x%08X'. #{error_reason}" % error_code)
         | 
| 264 | 
            +
              end
         | 
| 265 | 
            +
              private_class_method :check_lsa_nt_status_and_raise_failures
         | 
| 266 | 
            +
             | 
| 148 267 | 
             
              ffi_convention :stdcall
         | 
| 149 268 |  | 
| 150 269 | 
             
              # https://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v=vs.85).aspx
         | 
| @@ -329,4 +448,104 @@ module Puppet::Util::Windows::User | |
| 329 448 | 
             
              ffi_lib :advapi32
         | 
| 330 449 | 
             
              attach_function_private :IsValidSid,
         | 
| 331 450 | 
             
                [:pointer], :win32_bool
         | 
| 451 | 
            +
             | 
| 452 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/lsalookup/ns-lsalookup-lsa_object_attributes
         | 
| 453 | 
            +
              # typedef struct _LSA_OBJECT_ATTRIBUTES {
         | 
| 454 | 
            +
              #   ULONG               Length;
         | 
| 455 | 
            +
              #   HANDLE              RootDirectory;
         | 
| 456 | 
            +
              #   PLSA_UNICODE_STRING ObjectName;
         | 
| 457 | 
            +
              #   ULONG               Attributes;
         | 
| 458 | 
            +
              #   PVOID               SecurityDescriptor;
         | 
| 459 | 
            +
              #   PVOID               SecurityQualityOfService;
         | 
| 460 | 
            +
              # } LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
         | 
| 461 | 
            +
              class LSA_OBJECT_ATTRIBUTES < FFI::Struct
         | 
| 462 | 
            +
                layout :Length, :ulong,
         | 
| 463 | 
            +
                  :RootDirectory, :handle,
         | 
| 464 | 
            +
                  :ObjectName, :plsa_unicode_string,
         | 
| 465 | 
            +
                  :Attributes, :ulong,
         | 
| 466 | 
            +
                  :SecurityDescriptor, :pvoid,
         | 
| 467 | 
            +
                  :SecurityQualityOfService, :pvoid
         | 
| 468 | 
            +
              end
         | 
| 469 | 
            +
             | 
| 470 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/lsalookup/ns-lsalookup-lsa_unicode_string
         | 
| 471 | 
            +
              # typedef struct _LSA_UNICODE_STRING {
         | 
| 472 | 
            +
              #   USHORT Length;
         | 
| 473 | 
            +
              #   USHORT MaximumLength;
         | 
| 474 | 
            +
              #   PWSTR  Buffer;
         | 
| 475 | 
            +
              # } LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
         | 
| 476 | 
            +
              class LSA_UNICODE_STRING < FFI::Struct
         | 
| 477 | 
            +
                layout :Length, :ushort,
         | 
| 478 | 
            +
                  :MaximumLength, :ushort,
         | 
| 479 | 
            +
                  :Buffer, :pwstr
         | 
| 480 | 
            +
              end
         | 
| 481 | 
            +
             | 
| 482 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-lsaenumerateaccountrights
         | 
| 483 | 
            +
              # https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment
         | 
| 484 | 
            +
              # NTSTATUS LsaEnumerateAccountRights(
         | 
| 485 | 
            +
              #   LSA_HANDLE          PolicyHandle,
         | 
| 486 | 
            +
              #   PSID                AccountSid,
         | 
| 487 | 
            +
              #   PLSA_UNICODE_STRING *UserRights,
         | 
| 488 | 
            +
              #   PULONG              CountOfRights
         | 
| 489 | 
            +
              # );
         | 
| 490 | 
            +
              ffi_lib :advapi32
         | 
| 491 | 
            +
              attach_function_private :LsaEnumerateAccountRights,
         | 
| 492 | 
            +
                [:lsa_handle, :psid, :plsa_unicode_string, :pulong], :ntstatus
         | 
| 493 | 
            +
             | 
| 494 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-lsaaddaccountrights
         | 
| 495 | 
            +
              # NTSTATUS LsaAddAccountRights(
         | 
| 496 | 
            +
              #   LSA_HANDLE          PolicyHandle,
         | 
| 497 | 
            +
              #   PSID                AccountSid,
         | 
| 498 | 
            +
              #   PLSA_UNICODE_STRING UserRights,
         | 
| 499 | 
            +
              #   ULONG               CountOfRights
         | 
| 500 | 
            +
              # );
         | 
| 501 | 
            +
              ffi_lib :advapi32
         | 
| 502 | 
            +
              attach_function_private :LsaAddAccountRights,
         | 
| 503 | 
            +
                [:lsa_handle, :psid, :plsa_unicode_string, :ulong], :ntstatus
         | 
| 504 | 
            +
             | 
| 505 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-lsaremoveaccountrights
         | 
| 506 | 
            +
              # NTSTATUS LsaRemoveAccountRights(
         | 
| 507 | 
            +
              #   LSA_HANDLE          PolicyHandle,
         | 
| 508 | 
            +
              #   PSID                AccountSid,
         | 
| 509 | 
            +
              #   BOOLEAN             AllRights,
         | 
| 510 | 
            +
              #   PLSA_UNICODE_STRING UserRights,
         | 
| 511 | 
            +
              #   ULONG               CountOfRights
         | 
| 512 | 
            +
              # );
         | 
| 513 | 
            +
              ffi_lib :advapi32
         | 
| 514 | 
            +
              attach_function_private :LsaRemoveAccountRights,
         | 
| 515 | 
            +
                [:lsa_handle, :psid, :bool, :plsa_unicode_string, :ulong], :ntstatus
         | 
| 516 | 
            +
             | 
| 517 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-lsaopenpolicy
         | 
| 518 | 
            +
              # NTSTATUS LsaOpenPolicy(
         | 
| 519 | 
            +
              #   PLSA_UNICODE_STRING    SystemName,
         | 
| 520 | 
            +
              #   PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
         | 
| 521 | 
            +
              #   ACCESS_MASK            DesiredAccess,
         | 
| 522 | 
            +
              #   PLSA_HANDLE            PolicyHandle
         | 
| 523 | 
            +
              # );
         | 
| 524 | 
            +
              ffi_lib :advapi32
         | 
| 525 | 
            +
              attach_function_private :LsaOpenPolicy,
         | 
| 526 | 
            +
                [:plsa_unicode_string, :plsa_object_attributes, :access_mask, :plsa_handle], :ntstatus
         | 
| 527 | 
            +
             | 
| 528 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-lsaclose
         | 
| 529 | 
            +
              # NTSTATUS LsaClose(
         | 
| 530 | 
            +
              #   LSA_HANDLE ObjectHandle
         | 
| 531 | 
            +
              # );
         | 
| 532 | 
            +
              ffi_lib :advapi32
         | 
| 533 | 
            +
              attach_function_private :LsaClose,
         | 
| 534 | 
            +
                [:lsa_handle], :ntstatus
         | 
| 535 | 
            +
             | 
| 536 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-lsafreememory
         | 
| 537 | 
            +
              # NTSTATUS LsaFreeMemory(
         | 
| 538 | 
            +
              #   PVOID Buffer
         | 
| 539 | 
            +
              # );
         | 
| 540 | 
            +
              ffi_lib :advapi32
         | 
| 541 | 
            +
              attach_function_private :LsaFreeMemory,
         | 
| 542 | 
            +
                [:pvoid], :ntstatus
         | 
| 543 | 
            +
             | 
| 544 | 
            +
              # https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-lsantstatustowinerror
         | 
| 545 | 
            +
              # ULONG LsaNtStatusToWinError(
         | 
| 546 | 
            +
              #   NTSTATUS Status
         | 
| 547 | 
            +
              # );
         | 
| 548 | 
            +
              ffi_lib :advapi32
         | 
| 549 | 
            +
              attach_function_private :LsaNtStatusToWinError,
         | 
| 550 | 
            +
                [:ntstatus], :ulong
         | 
| 332 551 | 
             
            end
         | 
    
        data/lib/puppet/version.rb
    CHANGED
    
    
    
        data/locales/puppet.pot
    CHANGED
    
    | @@ -6,11 +6,11 @@ | |
| 6 6 | 
             
            #, fuzzy
         | 
| 7 7 | 
             
            msgid ""
         | 
| 8 8 | 
             
            msgstr ""
         | 
| 9 | 
            -
            "Project-Id-Version: Puppet automation framework 6. | 
| 9 | 
            +
            "Project-Id-Version: Puppet automation framework 6.17.0-93-gddd91ef701\n"
         | 
| 10 10 | 
             
            "\n"
         | 
| 11 11 | 
             
            "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
         | 
| 12 | 
            -
            "POT-Creation-Date: 2020-07- | 
| 13 | 
            -
            "PO-Revision-Date: 2020-07- | 
| 12 | 
            +
            "POT-Creation-Date: 2020-07-30 16:49+0000\n"
         | 
| 13 | 
            +
            "PO-Revision-Date: 2020-07-30 16:49+0000\n"
         | 
| 14 14 | 
             
            "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
         | 
| 15 15 | 
             
            "Language-Team: LANGUAGE <LL@li.org>\n"
         | 
| 16 16 | 
             
            "Language: \n"
         | 
| @@ -44,7 +44,7 @@ msgstr "" | |
| 44 44 | 
             
            msgid "Please supply a parameter to perform a Hiera lookup"
         | 
| 45 45 | 
             
            msgstr ""
         | 
| 46 46 |  | 
| 47 | 
            -
            #: ../lib/hiera_puppet.rb:75 ../lib/puppet/indirector/hiera.rb: | 
| 47 | 
            +
            #: ../lib/hiera_puppet.rb:75 ../lib/puppet/indirector/hiera.rb:85
         | 
| 48 48 | 
             
            msgid "Config file %{hiera_config} not found, using Hiera defaults"
         | 
| 49 49 | 
             
            msgstr ""
         | 
| 50 50 |  | 
| @@ -216,7 +216,7 @@ msgstr "" | |
| 216 216 |  | 
| 217 217 | 
             
            #. TRANSLATORS "puppet apply" is a program command and should not be translated
         | 
| 218 218 | 
             
            #. TRANSLATORS "puppet apply" is a program command and should not be translated
         | 
| 219 | 
            -
            #: ../lib/puppet/application/apply.rb:207 ../lib/puppet/application/apply.rb: | 
| 219 | 
            +
            #: ../lib/puppet/application/apply.rb:207 ../lib/puppet/application/apply.rb:320
         | 
| 220 220 | 
             
            msgid "For puppet apply"
         | 
| 221 221 | 
             
            msgstr ""
         | 
| 222 222 |  | 
| @@ -224,27 +224,27 @@ msgstr "" | |
| 224 224 | 
             
            msgid "%{file} is not readable"
         | 
| 225 225 | 
             
            msgstr ""
         | 
| 226 226 |  | 
| 227 | 
            -
            #: ../lib/puppet/application/apply.rb: | 
| 227 | 
            +
            #: ../lib/puppet/application/apply.rb:286 ../lib/puppet/application/script.rb:239
         | 
| 228 228 | 
             
            msgid "Exiting"
         | 
| 229 229 | 
             
            msgstr ""
         | 
| 230 230 |  | 
| 231 | 
            -
            #: ../lib/puppet/application/apply.rb: | 
| 231 | 
            +
            #: ../lib/puppet/application/apply.rb:330
         | 
| 232 232 | 
             
            msgid "Could not deserialize catalog from %{format}: %{detail}"
         | 
| 233 233 | 
             
            msgstr ""
         | 
| 234 234 |  | 
| 235 | 
            -
            #: ../lib/puppet/application/apply.rb: | 
| 235 | 
            +
            #: ../lib/puppet/application/apply.rb:351 ../lib/puppet/application/script.rb:144
         | 
| 236 236 | 
             
            msgid "Could not find facts for %{node}"
         | 
| 237 237 | 
             
            msgstr ""
         | 
| 238 238 |  | 
| 239 | 
            -
            #: ../lib/puppet/application/apply.rb: | 
| 239 | 
            +
            #: ../lib/puppet/application/apply.rb:363 ../lib/puppet/application/script.rb:152
         | 
| 240 240 | 
             
            msgid "Could not find node %{node}"
         | 
| 241 241 | 
             
            msgstr ""
         | 
| 242 242 |  | 
| 243 | 
            -
            #: ../lib/puppet/application/apply.rb: | 
| 243 | 
            +
            #: ../lib/puppet/application/apply.rb:376 ../lib/puppet/application/script.rb:137
         | 
| 244 244 | 
             
            msgid "Could not find file %{manifest}"
         | 
| 245 245 | 
             
            msgstr ""
         | 
| 246 246 |  | 
| 247 | 
            -
            #: ../lib/puppet/application/apply.rb: | 
| 247 | 
            +
            #: ../lib/puppet/application/apply.rb:377
         | 
| 248 248 | 
             
            msgid "Only one file can be applied per run.  Skipping %{files}"
         | 
| 249 249 | 
             
            msgstr ""
         | 
| 250 250 |  | 
| @@ -638,7 +638,11 @@ msgstr "" | |
| 638 638 | 
             
            msgid "Retrieving %{name}"
         | 
| 639 639 | 
             
            msgstr ""
         | 
| 640 640 |  | 
| 641 | 
            -
            #: ../lib/puppet/configurer/downloader.rb: | 
| 641 | 
            +
            #: ../lib/puppet/configurer/downloader.rb:21
         | 
| 642 | 
            +
            msgid "Failed to retrieve %{name}: %{detail}"
         | 
| 643 | 
            +
            msgstr ""
         | 
| 644 | 
            +
             | 
| 645 | 
            +
            #: ../lib/puppet/configurer/downloader.rb:32
         | 
| 642 646 | 
             
            msgid "Could not retrieve %{name}: %{detail}"
         | 
| 643 647 | 
             
            msgstr ""
         | 
| 644 648 |  | 
| @@ -717,18 +721,23 @@ msgstr "" | |
| 717 721 | 
             
            msgid "Setting 'environment_data_provider' is deprecated."
         | 
| 718 722 | 
             
            msgstr ""
         | 
| 719 723 |  | 
| 720 | 
            -
            #: ../lib/puppet/defaults.rb: | 
| 724 | 
            +
            #: ../lib/puppet/defaults.rb:830
         | 
| 721 725 | 
             
            msgid "Certificate names must be lower case"
         | 
| 722 726 | 
             
            msgstr ""
         | 
| 723 727 |  | 
| 724 | 
            -
            #: ../lib/puppet/defaults.rb: | 
| 728 | 
            +
            #: ../lib/puppet/defaults.rb:1024
         | 
| 725 729 | 
             
            msgid "Setting 'ssl_client_ca_auth' is deprecated."
         | 
| 726 730 | 
             
            msgstr ""
         | 
| 727 731 |  | 
| 728 | 
            -
            #: ../lib/puppet/defaults.rb: | 
| 732 | 
            +
            #: ../lib/puppet/defaults.rb:1103 ../lib/puppet/settings/enum_setting.rb:13 ../lib/puppet/settings/symbolic_enum_setting.rb:14
         | 
| 729 733 | 
             
            msgid "Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'"
         | 
| 730 734 | 
             
            msgstr ""
         | 
| 731 735 |  | 
| 736 | 
            +
            #. TRANSLATORS 'pluginsync' is a setting and should not be translated
         | 
| 737 | 
            +
            #: ../lib/puppet/defaults.rb:1969
         | 
| 738 | 
            +
            msgid "Setting 'pluginsync' is deprecated."
         | 
| 739 | 
            +
            msgstr ""
         | 
| 740 | 
            +
             | 
| 732 741 | 
             
            #: ../lib/puppet/error.rb:77
         | 
| 733 742 | 
             
            msgid "Could not parse for environment %{environment}: %{message}"
         | 
| 734 743 | 
             
            msgstr ""
         | 
| @@ -1782,7 +1791,7 @@ msgstr "" | |
| 1782 1791 | 
             
            msgid "Timeout waiting for exclusive lock on %{path}"
         | 
| 1783 1792 | 
             
            msgstr ""
         | 
| 1784 1793 |  | 
| 1785 | 
            -
            #: ../lib/puppet/file_system/jruby.rb:18 ../lib/puppet/file_system/windows.rb:127 ../lib/puppet/util.rb: | 
| 1794 | 
            +
            #: ../lib/puppet/file_system/jruby.rb:18 ../lib/puppet/file_system/windows.rb:127 ../lib/puppet/util.rb:706
         | 
| 1786 1795 | 
             
            msgid "Is a directory: %{directory}"
         | 
| 1787 1796 | 
             
            msgstr ""
         | 
| 1788 1797 |  | 
| @@ -2608,12 +2617,12 @@ msgid "Could not find filesystem info for file '%{request}' in environment %{env | |
| 2608 2617 | 
             
            msgstr ""
         | 
| 2609 2618 |  | 
| 2610 2619 | 
             
            #. TRANSLATORS "Hiera" is the name of a code library and should not be translated
         | 
| 2611 | 
            -
            #: ../lib/puppet/indirector/hiera.rb: | 
| 2620 | 
            +
            #: ../lib/puppet/indirector/hiera.rb:12
         | 
| 2612 2621 | 
             
            msgid "Hiera terminus not supported without hiera library"
         | 
| 2613 2622 | 
             
            msgstr ""
         | 
| 2614 2623 |  | 
| 2615 2624 | 
             
            #. TRANSLATORS "merge" is a parameter name and should not be translated
         | 
| 2616 | 
            -
            #: ../lib/puppet/indirector/hiera.rb: | 
| 2625 | 
            +
            #: ../lib/puppet/indirector/hiera.rb:72
         | 
| 2617 2626 | 
             
            msgid "Unrecognized value for request 'merge' parameter: '%{merge}'"
         | 
| 2618 2627 | 
             
            msgstr ""
         | 
| 2619 2628 |  | 
| @@ -3207,11 +3216,11 @@ msgid "Loaded puppet/type/%{name} but no class was created" | |
| 3207 3216 | 
             
            msgstr ""
         | 
| 3208 3217 |  | 
| 3209 3218 | 
             
            #. TRANSLATORS 'metadata.json' is a specific file name and should not be translated.
         | 
| 3210 | 
            -
            #: ../lib/puppet/module.rb: | 
| 3219 | 
            +
            #: ../lib/puppet/module.rb:221
         | 
| 3211 3220 | 
             
            msgid "%{name} has an invalid and unparsable metadata.json file. The parse error: %{error}"
         | 
| 3212 3221 | 
             
            msgstr ""
         | 
| 3213 3222 |  | 
| 3214 | 
            -
            #: ../lib/puppet/module.rb: | 
| 3223 | 
            +
            #: ../lib/puppet/module.rb:467
         | 
| 3215 3224 | 
             
            msgid ""
         | 
| 3216 3225 | 
             
            "        Invalid module name '%{name}'; module names must match either:\n"
         | 
| 3217 3226 | 
             
            "        An installed module name (ex. modulename) matching the expression /^[a-z][a-z0-9_]*$/ -or-\n"
         | 
| @@ -4163,7 +4172,7 @@ msgstr "" | |
| 4163 4172 | 
             
            msgid "The 'disable_per_environment_manifest' setting is true, and the '%{env_name}' environment has an environment.conf manifest that conflicts with the 'default_manifest' setting."
         | 
| 4164 4173 | 
             
            msgstr ""
         | 
| 4165 4174 |  | 
| 4166 | 
            -
            #: ../lib/puppet/node/environment.rb: | 
| 4175 | 
            +
            #: ../lib/puppet/node/environment.rb:562 ../lib/puppet/pops/loaders.rb:301
         | 
| 4167 4176 | 
             
            msgid "Could not parse for environment %{env}: %{detail}"
         | 
| 4168 4177 | 
             
            msgstr ""
         | 
| 4169 4178 |  | 
| @@ -4579,15 +4588,15 @@ msgstr "" | |
| 4579 4588 | 
             
            msgid "Calling function_contain via the Scope class is deprecated. Use Scope#call_function instead"
         | 
| 4580 4589 | 
             
            msgstr ""
         | 
| 4581 4590 |  | 
| 4582 | 
            -
            #: ../lib/puppet/parser/functions/create_resources.rb: | 
| 4591 | 
            +
            #: ../lib/puppet/parser/functions/create_resources.rb:60
         | 
| 4583 4592 | 
             
            msgid "create_resources(): wrong number of arguments (%{count}; must be 2 or 3)"
         | 
| 4584 4593 | 
             
            msgstr ""
         | 
| 4585 4594 |  | 
| 4586 | 
            -
            #: ../lib/puppet/parser/functions/create_resources.rb: | 
| 4595 | 
            +
            #: ../lib/puppet/parser/functions/create_resources.rb:61
         | 
| 4587 4596 | 
             
            msgid "create_resources(): second argument must be a hash"
         | 
| 4588 4597 | 
             
            msgstr ""
         | 
| 4589 4598 |  | 
| 4590 | 
            -
            #: ../lib/puppet/parser/functions/create_resources.rb: | 
| 4599 | 
            +
            #: ../lib/puppet/parser/functions/create_resources.rb:63
         | 
| 4591 4600 | 
             
            msgid "create_resources(): third argument, if provided, must be a hash"
         | 
| 4592 4601 | 
             
            msgstr ""
         | 
| 4593 4602 |  | 
| @@ -5918,19 +5927,19 @@ msgstr "" | |
| 5918 5927 | 
             
            msgid "Attempt to redefine already initialized loaders for environment"
         | 
| 5919 5928 | 
             
            msgstr ""
         | 
| 5920 5929 |  | 
| 5921 | 
            -
            #: ../lib/puppet/pops/loaders.rb: | 
| 5930 | 
            +
            #: ../lib/puppet/pops/loaders.rb:177
         | 
| 5922 5931 | 
             
            msgid "Internal Error: Puppet Context ':loaders' missing"
         | 
| 5923 5932 | 
             
            msgstr ""
         | 
| 5924 5933 |  | 
| 5925 | 
            -
            #: ../lib/puppet/pops/loaders.rb: | 
| 5934 | 
            +
            #: ../lib/puppet/pops/loaders.rb:191
         | 
| 5926 5935 | 
             
            msgid "Unable to find loader named '%{loader_name}'"
         | 
| 5927 5936 | 
             
            msgstr ""
         | 
| 5928 5937 |  | 
| 5929 | 
            -
            #: ../lib/puppet/pops/loaders.rb: | 
| 5938 | 
            +
            #: ../lib/puppet/pops/loaders.rb:212
         | 
| 5930 5939 | 
             
            msgid "Internal Error: did not find public loader for module: '%{module_name}'"
         | 
| 5931 5940 | 
             
            msgstr ""
         | 
| 5932 5941 |  | 
| 5933 | 
            -
            #: ../lib/puppet/pops/loaders.rb: | 
| 5942 | 
            +
            #: ../lib/puppet/pops/loaders.rb:258
         | 
| 5934 5943 | 
             
            msgid "Internal Error: Attempt to redefine loader named '%{name}'"
         | 
| 5935 5944 | 
             
            msgstr ""
         | 
| 5936 5945 |  | 
| @@ -6794,19 +6803,19 @@ msgstr "" | |
| 6794 6803 | 
             
            msgid "Mac OS X packages must specify a package source"
         | 
| 6795 6804 | 
             
            msgstr ""
         | 
| 6796 6805 |  | 
| 6797 | 
            -
            #: ../lib/puppet/provider/package/apt.rb: | 
| 6806 | 
            +
            #: ../lib/puppet/provider/package/apt.rb:81
         | 
| 6798 6807 | 
             
            msgid "/etc/apt/sources.list contains a cdrom source; not installing.  Use 'allowcdrom' to override this failure."
         | 
| 6799 6808 | 
             
            msgstr ""
         | 
| 6800 6809 |  | 
| 6801 | 
            -
            #: ../lib/puppet/provider/package/apt.rb: | 
| 6810 | 
            +
            #: ../lib/puppet/provider/package/apt.rb:163 ../lib/puppet/provider/package/fink.rb:55
         | 
| 6802 6811 | 
             
            msgid "Could not find latest version"
         | 
| 6803 6812 | 
             
            msgstr ""
         | 
| 6804 6813 |  | 
| 6805 | 
            -
            #: ../lib/puppet/provider/package/apt.rb: | 
| 6814 | 
            +
            #: ../lib/puppet/provider/package/apt.rb:174 ../lib/puppet/provider/package/fink.rb:66
         | 
| 6806 6815 | 
             
            msgid "Preseeding %{response} to debconf-set-selections"
         | 
| 6807 6816 | 
             
            msgstr ""
         | 
| 6808 6817 |  | 
| 6809 | 
            -
            #: ../lib/puppet/provider/package/apt.rb: | 
| 6818 | 
            +
            #: ../lib/puppet/provider/package/apt.rb:178 ../lib/puppet/provider/package/fink.rb:70
         | 
| 6810 6819 | 
             
            msgid "No responsefile specified or non existent, not preseeding anything"
         | 
| 6811 6820 | 
             
            msgstr ""
         | 
| 6812 6821 |  | 
| @@ -6858,27 +6867,27 @@ msgstr "" | |
| 6858 6867 | 
             
            msgid "source is defined but does not have trailing slash, ignoring %{source}"
         | 
| 6859 6868 | 
             
            msgstr ""
         | 
| 6860 6869 |  | 
| 6861 | 
            -
            #: ../lib/puppet/provider/package/gem.rb: | 
| 6870 | 
            +
            #: ../lib/puppet/provider/package/gem.rb:102
         | 
| 6862 6871 | 
             
            msgid "Could not list gems: %{detail}"
         | 
| 6863 6872 | 
             
            msgstr ""
         | 
| 6864 6873 |  | 
| 6865 | 
            -
            #: ../lib/puppet/provider/package/gem.rb: | 
| 6874 | 
            +
            #: ../lib/puppet/provider/package/gem.rb:128
         | 
| 6866 6875 | 
             
            msgid "Could not match %{desc}"
         | 
| 6867 6876 | 
             
            msgstr ""
         | 
| 6868 6877 |  | 
| 6869 | 
            -
            #: ../lib/puppet/provider/package/gem.rb: | 
| 6878 | 
            +
            #: ../lib/puppet/provider/package/gem.rb:206
         | 
| 6870 6879 | 
             
            msgid "Invalid source '%{uri}': %{detail}"
         | 
| 6871 6880 | 
             
            msgstr ""
         | 
| 6872 6881 |  | 
| 6873 | 
            -
            #: ../lib/puppet/provider/package/gem.rb: | 
| 6882 | 
            +
            #: ../lib/puppet/provider/package/gem.rb:217
         | 
| 6874 6883 | 
             
            msgid "puppet:// URLs are not supported as gem sources"
         | 
| 6875 6884 | 
             
            msgstr ""
         | 
| 6876 6885 |  | 
| 6877 | 
            -
            #: ../lib/puppet/provider/package/gem.rb: | 
| 6886 | 
            +
            #: ../lib/puppet/provider/package/gem.rb:233
         | 
| 6878 6887 | 
             
            msgid "Could not install: %{output}"
         | 
| 6879 6888 | 
             
            msgstr ""
         | 
| 6880 6889 |  | 
| 6881 | 
            -
            #: ../lib/puppet/provider/package/gem.rb: | 
| 6890 | 
            +
            #: ../lib/puppet/provider/package/gem.rb:259
         | 
| 6882 6891 | 
             
            msgid "Could not uninstall: %{output}"
         | 
| 6883 6892 | 
             
            msgstr ""
         | 
| 6884 6893 |  | 
| @@ -8508,47 +8517,47 @@ msgstr "" | |
| 8508 8517 | 
             
            msgid "%{name} has no providers and has not overridden 'instances'"
         | 
| 8509 8518 | 
             
            msgstr ""
         | 
| 8510 8519 |  | 
| 8511 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8520 | 
            +
            #: ../lib/puppet/type.rb:1468
         | 
| 8512 8521 | 
             
            msgid "Cannot add aliases without a catalog"
         | 
| 8513 8522 | 
             
            msgstr ""
         | 
| 8514 8523 |  | 
| 8515 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8524 | 
            +
            #: ../lib/puppet/type.rb:1548
         | 
| 8516 8525 | 
             
            msgid "Could not find %{description} %{ref} for %{resource}"
         | 
| 8517 8526 | 
             
            msgstr ""
         | 
| 8518 8527 |  | 
| 8519 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8528 | 
            +
            #: ../lib/puppet/type.rb:1825
         | 
| 8520 8529 | 
             
            msgid "Found multiple default providers for %{name}: %{provider_list}; using %{selected_provider}"
         | 
| 8521 8530 | 
             
            msgstr ""
         | 
| 8522 8531 |  | 
| 8523 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8532 | 
            +
            #: ../lib/puppet/type.rb:1912
         | 
| 8524 8533 | 
             
            msgid "Could not find parent provider %{parent} of %{name}"
         | 
| 8525 8534 | 
             
            msgstr ""
         | 
| 8526 8535 |  | 
| 8527 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8536 | 
            +
            #: ../lib/puppet/type.rb:1986
         | 
| 8528 8537 | 
             
            msgid "Invalid %{resource} provider '%{provider_class}'"
         | 
| 8529 8538 | 
             
            msgstr ""
         | 
| 8530 8539 |  | 
| 8531 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8540 | 
            +
            #: ../lib/puppet/type.rb:2071
         | 
| 8532 8541 | 
             
            msgid "Could not find %{name} provider of %{provider}"
         | 
| 8533 8542 | 
             
            msgstr ""
         | 
| 8534 8543 |  | 
| 8535 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8544 | 
            +
            #: ../lib/puppet/type.rb:2189
         | 
| 8536 8545 | 
             
            msgid "You cannot add relationships without a catalog"
         | 
| 8537 8546 | 
             
            msgstr ""
         | 
| 8538 8547 |  | 
| 8539 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8548 | 
            +
            #: ../lib/puppet/type.rb:2492
         | 
| 8540 8549 | 
             
            msgid "Unable to mark '%{name}' as sensitive: %{name} is a parameter and not a property, and cannot be automatically redacted."
         | 
| 8541 8550 | 
             
            msgstr ""
         | 
| 8542 8551 |  | 
| 8543 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8552 | 
            +
            #: ../lib/puppet/type.rb:2495
         | 
| 8544 8553 | 
             
            msgid "Unable to mark '%{name}' as sensitive: the property itself was not assigned a value."
         | 
| 8545 8554 | 
             
            msgstr ""
         | 
| 8546 8555 |  | 
| 8547 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8556 | 
            +
            #: ../lib/puppet/type.rb:2497
         | 
| 8548 8557 | 
             
            msgid "Unable to mark '%{name}' as sensitive: the property itself is not defined on %{type}."
         | 
| 8549 8558 | 
             
            msgstr ""
         | 
| 8550 8559 |  | 
| 8551 | 
            -
            #: ../lib/puppet/type.rb: | 
| 8560 | 
            +
            #: ../lib/puppet/type.rb:2555
         | 
| 8552 8561 | 
             
            msgid "Could not set %{attribute} on %{class_name}: %{detail}"
         | 
| 8553 8562 | 
             
            msgstr ""
         | 
| 8554 8563 |  | 
| @@ -8746,7 +8755,7 @@ msgid "Not managing symlink mode" | |
| 8746 8755 | 
             
            msgstr ""
         | 
| 8747 8756 |  | 
| 8748 8757 | 
             
            #. TRANSLATORS "source_permissions" is a parameter name and should not be translated
         | 
| 8749 | 
            -
            #: ../lib/puppet/type/file/source.rb: | 
| 8758 | 
            +
            #: ../lib/puppet/type/file/source.rb:368
         | 
| 8750 8759 | 
             
            msgid "The `source_permissions` parameter is deprecated. Explicitly set `owner`, `group`, and `mode`."
         | 
| 8751 8760 | 
             
            msgstr ""
         | 
| 8752 8761 |  | 
| @@ -8979,70 +8988,70 @@ msgstr "" | |
| 8979 8988 | 
             
            msgid "Class name must be provided."
         | 
| 8980 8989 | 
             
            msgstr ""
         | 
| 8981 8990 |  | 
| 8982 | 
            -
            #: ../lib/puppet/util.rb: | 
| 8991 | 
            +
            #: ../lib/puppet/util.rb:64
         | 
| 8983 8992 | 
             
            msgid "Unable to retrieve the environment for mode %{mode}"
         | 
| 8984 8993 | 
             
            msgstr ""
         | 
| 8985 8994 |  | 
| 8986 | 
            -
            #: ../lib/puppet/util.rb: | 
| 8995 | 
            +
            #: ../lib/puppet/util.rb:81
         | 
| 8987 8996 | 
             
            msgid "Unable to clear the environment for mode %{mode}"
         | 
| 8988 8997 | 
             
            msgstr ""
         | 
| 8989 8998 |  | 
| 8990 | 
            -
            #: ../lib/puppet/util.rb: | 
| 8999 | 
            +
            #: ../lib/puppet/util.rb:97
         | 
| 8991 9000 | 
             
            msgid "Unable to set the environment variable %{name} for mode %{mode}"
         | 
| 8992 9001 | 
             
            msgstr ""
         | 
| 8993 9002 |  | 
| 8994 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9003 | 
            +
            #: ../lib/puppet/util.rb:114
         | 
| 8995 9004 | 
             
            msgid "Unable to merge given values into the current environment for mode %{mode}"
         | 
| 8996 9005 | 
             
            msgstr ""
         | 
| 8997 9006 |  | 
| 8998 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9007 | 
            +
            #: ../lib/puppet/util.rb:156
         | 
| 8999 9008 | 
             
            msgid "could not change to group %{group}: %{detail}"
         | 
| 9000 9009 | 
             
            msgstr ""
         | 
| 9001 9010 |  | 
| 9002 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9011 | 
            +
            #: ../lib/puppet/util.rb:157
         | 
| 9003 9012 | 
             
            msgid "could not change to group %{group}"
         | 
| 9004 9013 | 
             
            msgstr ""
         | 
| 9005 9014 |  | 
| 9006 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9015 | 
            +
            #: ../lib/puppet/util.rb:170
         | 
| 9007 9016 | 
             
            msgid "Could not change to user %{user}: %{detail}"
         | 
| 9008 9017 | 
             
            msgstr ""
         | 
| 9009 9018 |  | 
| 9010 9019 | 
             
            #. TRANSLATORS 'benchmark' is a method name and should not be translated
         | 
| 9011 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9020 | 
            +
            #: ../lib/puppet/util.rb:224
         | 
| 9012 9021 | 
             
            msgid "Failed to provide level to benchmark"
         | 
| 9013 9022 | 
             
            msgstr ""
         | 
| 9014 9023 |  | 
| 9015 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9024 | 
            +
            #: ../lib/puppet/util.rb:227
         | 
| 9016 9025 | 
             
            msgid "Benchmarked object does not respond to %{value}"
         | 
| 9017 9026 | 
             
            msgstr ""
         | 
| 9018 9027 |  | 
| 9019 9028 | 
             
            #. TRANSLATORS PATH and HOME are environment variables and should not be translated
         | 
| 9020 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9029 | 
            +
            #: ../lib/puppet/util.rb:267
         | 
| 9021 9030 | 
             
            msgid "PATH contains a ~ character, and HOME is not set; ignoring PATH element '%{dir}'."
         | 
| 9022 9031 | 
             
            msgstr ""
         | 
| 9023 9032 |  | 
| 9024 9033 | 
             
            #. TRANSLATORS PATH is an environment variable and should not be translated
         | 
| 9025 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9034 | 
            +
            #: ../lib/puppet/util.rb:271
         | 
| 9026 9035 | 
             
            msgid "Couldn't expand PATH containing a ~ character; ignoring PATH element '%{dir}'."
         | 
| 9027 9036 | 
             
            msgstr ""
         | 
| 9028 9037 |  | 
| 9029 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9038 | 
            +
            #: ../lib/puppet/util.rb:318
         | 
| 9030 9039 | 
             
            msgid "unknown platform %{platform} in absolute_path"
         | 
| 9031 9040 | 
             
            msgstr ""
         | 
| 9032 9041 |  | 
| 9033 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9042 | 
            +
            #: ../lib/puppet/util.rb:353
         | 
| 9034 9043 | 
             
            msgid "Failed to convert '%{path}' to URI: %{detail}"
         | 
| 9035 9044 | 
             
            msgstr ""
         | 
| 9036 9045 |  | 
| 9037 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9046 | 
            +
            #: ../lib/puppet/util.rb:453
         | 
| 9038 9047 | 
             
            msgid "path may not be nil"
         | 
| 9039 9048 | 
             
            msgstr ""
         | 
| 9040 9049 |  | 
| 9041 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9050 | 
            +
            #: ../lib/puppet/util.rb:621
         | 
| 9042 9051 | 
             
            msgid "replace_file requires a block"
         | 
| 9043 9052 | 
             
            msgstr ""
         | 
| 9044 9053 |  | 
| 9045 | 
            -
            #: ../lib/puppet/util.rb: | 
| 9054 | 
            +
            #: ../lib/puppet/util.rb:625
         | 
| 9046 9055 | 
             
            msgid "replace_file default_mode: %{default_mode} is invalid"
         | 
| 9047 9056 | 
             
            msgstr ""
         | 
| 9048 9057 |  | 
| @@ -9106,15 +9115,15 @@ msgstr "" | |
| 9106 9115 | 
             
            msgid "Filebucketed %{f} to %{filebucket} with sum %{sum}"
         | 
| 9107 9116 | 
             
            msgstr ""
         | 
| 9108 9117 |  | 
| 9109 | 
            -
            #: ../lib/puppet/util/character_encoding.rb: | 
| 9118 | 
            +
            #: ../lib/puppet/util/character_encoding.rb:23
         | 
| 9110 9119 | 
             
            msgid "%{value} is already labeled as UTF-8 but this encoding is invalid. It cannot be transcoded by Puppet."
         | 
| 9111 9120 | 
             
            msgstr ""
         | 
| 9112 9121 |  | 
| 9113 | 
            -
            #: ../lib/puppet/util/character_encoding.rb: | 
| 9122 | 
            +
            #: ../lib/puppet/util/character_encoding.rb:45
         | 
| 9114 9123 | 
             
            msgid "%{error}: %{value} cannot be transcoded by Puppet."
         | 
| 9115 9124 | 
             
            msgstr ""
         | 
| 9116 9125 |  | 
| 9117 | 
            -
            #: ../lib/puppet/util/character_encoding.rb: | 
| 9126 | 
            +
            #: ../lib/puppet/util/character_encoding.rb:73
         | 
| 9118 9127 | 
             
            msgid "%{value} is not valid UTF-8 and result of overriding encoding would be invalid."
         | 
| 9119 9128 | 
             
            msgstr ""
         | 
| 9120 9129 |  |