lxd/config/map.go
func (m *Map) set(name string, value string, initial bool) (bool, error) {
	key, ok := m.schema[name]
	if !ok {
		return false, fmt.Errorf("unknown key")
	}

	err := key.validate(value)
	if err != nil {
		return false, err
	}

	// Normalize boolan values, so the comparison below works fine.
	current := m.GetRaw(name)
	if key.Type == Bool {
		value = normalizeBool(value)
		current = normalizeBool(current)
	}

	// Compare the new value with the current one, and return now if they
	// are equal.
	if value == current {
		return false, nil
	}

	// Trigger the Setter if this is not an initial load and the key's
	// schema has declared it.
	if !initial && key.Setter != nil {
		value, err = key.Setter(value)
		if err != nil {
			return false, err
		}
	}

	if value == "" {
		delete(m.values, name)
	} else {
		m.values[name] = value
	}

	return true, nil
}
func (m *Map) set(name string, value string, initial bool) (bool, error) {
	key, ok := m.schema[name]
	if !ok {
		return false, fmt.Errorf("unknown key")
	}

	err := key.validate(value)
	if err != nil {
		return false, err
	}

	// Normalize boolan values, so the comparison below works fine.
	current := m.GetRaw(name)
	if key.Type == Bool {
		value = normalizeBool(value)
		current = normalizeBool(current)
	}

	// Compare the new value with the current one, and return now if they
	// are equal.
	if value == current {
		return false, nil
	}

	// Trigger the Setter if this is not an initial load and the key's
	// schema has declared it.
	if !initial && key.Setter != nil {
		value, err = key.Setter(value)
		if err != nil {
			return false, err
		}
	}

	if value == "" {
		delete(m.values, name)
	} else {
		m.values[name] = value
	}

	return true, nil
}
func ( m * Map ) set ( name string , value string , initial bool ) ( bool , error ) { key , ok := m . schema [ name ] if ! ok { return false , fmt . Errorf ( " " ) } err := key . validate ( value ) if err != nil { return false , err } // Normalize boolan values, so the comparison below works fine. current := m . GetRaw ( name ) if key . Type == Bool { value = normalizeBool ( value ) current = normalizeBool ( current ) } // Compare the new value with the current one, and return now if they // are equal. if value == current { return false , nil } // Trigger the Setter if this is not an initial load and the key's // schema has declared it. if ! initial && key . Setter != nil { value , err = key . Setter ( value ) if err != nil { return false , err } } if value == " " { delete ( m . values , name ) } else { m . values [ name ] = value } return true , nil }
// Set or change an individual key. Empty string means delete this value and
// effectively revert it to the default. Return a boolean indicating whether
// the value has changed, and error if something went wrong.
Set or change an individual key . Empty string means delete this value and effectively revert it to the default . Return a boolean indicating whether the value has changed and error if something went wrong .