Sha256: cfef44d79acf14efbf80e151126535bd8d1992555443088baec5520d31d7bd0e

Contents?: true

Size: 1.49 KB

Versions: 28

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

module Puppet
  Puppet::Type.type(:file).newproperty(:owner) do
    include Puppet::Util::Warnings

    desc <<-EOT
      The user to whom the file should belong.  Argument can be a user name or a
      user ID.

      On Windows, a group (such as "Administrators") can be set as a file's owner
      and a user (such as "Administrator") can be set as a file's group; however,
      a file's owner and group shouldn't be the same. (If the owner is also
      the group, files with modes like `"0640"` will cause log churn, as they
      will always appear out of sync.)
    EOT

    def insync?(current)
      # We don't want to validate/munge users until we actually start to
      # evaluate this property, because they might be added during the catalog
      # apply.
      @should.map! do |val|
        uid = provider.name2uid(val)
        if uid
          uid
        elsif provider.resource.noop?
          return false
        else
          raise "Could not find user #{val}"
        end
      end

      return true if @should.include?(current)

      unless Puppet.features.root?
        warnonce "Cannot manage ownership unless running as root"
        return true
      end

      false
    end

    # We want to print names, not numbers
    def is_to_s(currentvalue) # rubocop:disable Naming/PredicateName
      super(provider.uid2name(currentvalue) || currentvalue)
    end

    def should_to_s(newvalue)
      super(provider.uid2name(newvalue) || newvalue)
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
puppet-8.10.0 lib/puppet/type/file/owner.rb
puppet-8.10.0-x86-mingw32 lib/puppet/type/file/owner.rb
puppet-8.10.0-x64-mingw32 lib/puppet/type/file/owner.rb
puppet-8.10.0-universal-darwin lib/puppet/type/file/owner.rb
puppet-8.9.0 lib/puppet/type/file/owner.rb
puppet-8.9.0-x86-mingw32 lib/puppet/type/file/owner.rb
puppet-8.9.0-x64-mingw32 lib/puppet/type/file/owner.rb
puppet-8.9.0-universal-darwin lib/puppet/type/file/owner.rb
puppet-8.8.1 lib/puppet/type/file/owner.rb
puppet-8.8.1-x86-mingw32 lib/puppet/type/file/owner.rb
puppet-8.8.1-x64-mingw32 lib/puppet/type/file/owner.rb
puppet-8.8.1-universal-darwin lib/puppet/type/file/owner.rb
puppet-8.7.0 lib/puppet/type/file/owner.rb
puppet-8.7.0-x86-mingw32 lib/puppet/type/file/owner.rb
puppet-8.7.0-x64-mingw32 lib/puppet/type/file/owner.rb
puppet-8.7.0-universal-darwin lib/puppet/type/file/owner.rb
puppet-8.6.0 lib/puppet/type/file/owner.rb
puppet-8.6.0-x86-mingw32 lib/puppet/type/file/owner.rb
puppet-8.6.0-x64-mingw32 lib/puppet/type/file/owner.rb
puppet-8.6.0-universal-darwin lib/puppet/type/file/owner.rb