Ejemplo n.º 1
0
func (instance Config) validateRequireStringValue(value values.String, fieldName string, isAllowedMethod func() bool) error {
	if isAllowedMethod() {
		if value.IsEmpty() {
			return errors.New("There is no %s set for type %v.", fieldName, instance.Type)
		}
	}
	return nil
}
Ejemplo n.º 2
0
// WriteToYamlFile writes the config of the current instance to the given yaml file.
func (instance Config) WriteToYamlFile(fileName values.String) error {
	content, err := yaml.Marshal(instance)
	if err != nil {
		return errors.New("Could not write config to '%v'.", fileName).CausedBy(err)
	}
	if err := ioutil.WriteFile(fileName.String(), content, 0744); err != nil {
		return errors.New("Could not write marshalled config to '%v'.", fileName).CausedBy(err)
	}
	return nil
}
Ejemplo n.º 3
0
func parseCertificatesInFile(filename values.String) ([]tls.Certificate, error) {
	pemInEnv := os.Getenv("CTD_PEM")
	if len(pemInEnv) > 0 {
		return parseCertificates([]byte(pemInEnv))
	}
	fileContent, err := ioutil.ReadFile(filename.String())
	if err != nil {
		return nil, errors.New("Could not read pem file '%v'.", filename).CausedBy(err)
	}
	return parseCertificates(fileContent)
}
Ejemplo n.º 4
0
// LoadFromYamlFile loads the caretakerd config from the given yaml file.
func LoadFromYamlFile(fileName values.String) (Config, error) {
	result := NewConfig()
	content, err := ioutil.ReadFile(fileName.String())
	if err != nil {
		if os.IsNotExist(err) {
			return Config{}, ConfigDoesNotExistError{fileName: fileName.String()}
		}
		return Config{}, errors.New("Could not read config from '%v'.", fileName).CausedBy(err)
	}
	if err := yaml.Unmarshal(content, &result); err != nil {
		return Config{}, errors.New("Could not unmarshal config from '%v'.", fileName).CausedBy(err)
	}
	return result, nil
}
Ejemplo n.º 5
0
func (instance Config) validateStringOnlyAllowedValue(value values.String, fieldName string, isAllowedMethod func() bool, defaultValue values.String) error {
	if !isAllowedMethod() && value != defaultValue && !value.IsEmpty() {
		return errors.New("There is no %s allowed for type %v.", fieldName, instance.Type)
	}
	return nil
}