Sha256: fc6586878d029824e3bc4af4e4dd732b6b4f07b8fd1051e1e2e6e40d623a359d
Contents?: true
Size: 1.42 KB
Versions: 196
Compression:
Stored size: 1.42 KB
Contents
require_relative "data_handler_base" require_relative "../../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) key == "name" end def chef_class Chef::ApiClient end # There is no Ruby API for Chef::ApiClient end end end end
Version data entries
196 entries across 196 versions & 1 rubygems