Sha256: c071490dfdb85a44359d1a43a851416c1166e4186170da73630ea8e504f12719

Contents?: true

Size: 1.43 KB

Versions: 47

Compression:

Stored size: 1.43 KB

Contents

require 'chef/chef_fs/data_handler/data_handler_base'
require 'chef/api_client'

class Chef
  module ChefFS
    module DataHandler
      class GroupDataHandler < DataHandlerBase
        def normalize(group, entry)
          defaults = {
            'name' => remove_dot_json(entry.name),
            'groupname' => remove_dot_json(entry.name),
            'users' => [],
            'clients' => [],
            'groups' => [],
          }
          if entry.org
            defaults['orgname'] = entry.org
          end
          result = normalize_hash(group, defaults)
          if result['actors'] && result['actors'].sort.uniq == (result['users'] + result['clients']).sort.uniq
            result.delete('actors')
          end
          result
        end

        def normalize_for_put(group, entry)
          result = super(group, entry)
          result['actors'] = {
            'users' => result['users'],
            'clients' => result['clients'],
            'groups' => result['groups']
          }
          result.delete('users')
          result.delete('clients')
          result.delete('groups')
          result
        end

        def normalize_for_post(group, entry)
          normalize_for_put(group, entry)
        end

        def preserve_key?(key)
          return key == 'name'
        end

        def chef_class
          Chef::ApiClient
        end

        # There is no Ruby API for Chef::ApiClient
      end
    end
  end
end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
chef-12.6.0 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.6.0-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.5.1-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.5.1 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.3-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.3 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.2-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.2 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.5.0.alpha.1 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.1-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.1 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.0 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.0-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.0.rc.2 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.0.rc.2-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.0.rc.0 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.4.0.rc.0-universal-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-11.18.12-x86-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-11.18.12 lib/chef/chef_fs/data_handler/group_data_handler.rb
chef-12.3.0-x86-mingw32 lib/chef/chef_fs/data_handler/group_data_handler.rb