func OverrideWithCloudSettings()

in monitoring/cloudid.go [43:80]


func OverrideWithCloudSettings(monitoringCfg *config.C) error {
	var config cloudConfig
	if err := monitoringCfg.Unpack(&config); err != nil {
		return cfgError(err)
	}

	if config.Cloud.ID == "" && config.Cloud.Auth == "" {
		// Nothing to do
		return nil
	}

	if config.Cloud.ID == "" && config.Cloud.Auth != "" {
		return cfgError(errCloudCfgIncomplete)
	}

	// We remove monitoring.cloud.* so that "cloud" is not treated as a type of
	// monitoring reporter later.
	if _, err := monitoringCfg.Remove("cloud", -1); err != nil {
		return cfgError(err)
	}

	cid, err := cloudid.NewCloudID(config.Cloud.ID, config.Cloud.Auth)
	if err != nil {
		return cfgError(err)
	}

	if err := overwriteWithCloudID(monitoringCfg, cid); err != nil {
		return cfgError(err)
	}

	if config.Cloud.Auth != "" {
		if err := overwriteWithCloudAuth(monitoringCfg, cid); err != nil {
			return cfgError(err)
		}
	}

	return nil
}