in configcenter/load.go [86:129]
func (d *DefaultConfigLoad) LoadConfigs(boot *model.Bootstrap, opts ...Option) (v *model.Bootstrap, err error) {
var opt Options
for _, o := range opts {
o(&opt)
}
if !opt.Remote {
return nil, nil
}
m := map[string]any{}
if strings.EqualFold(boot.Config.Type, KEY_CONFIG_TYPE_NACOS) {
m["dataId"] = getOrDefault(opt.DataId, DataId)
m["group"] = getOrDefault(opt.Group, Group)
}
if len(m) == 0 {
logger.Errorf("no identify properties key when load from remote config center")
return boot, nil
}
data, err := d.configClient.LoadConfig(m)
if err != nil {
return nil, err
}
if len(data) == 0 {
logger.Errorf("the config data load from remote is nil, config center : %s", boot.Config.Type)
return boot, err
}
if err = Parsers[".yml"]([]byte(data), boot); err != nil {
logger.Errorf("failed to parse the configuration loaded from the remote,err: %v", err)
return boot, err
}
if err = d.configClient.ListenConfig(m); err != nil {
logger.Errorf("failed to listen the remote configcenter config,err: %v", err)
return boot, err
}
return boot, err
}