func parseCertificateProviders()

in grpc-xds/greeter-go/pkg/xdsclient/bootstrap/bootstrap.go [172:189]


func parseCertificateProviders(providerInstances map[string]json.RawMessage) (map[string]*certprovider.BuildableConfig, error) {
	configs := make(map[string]*certprovider.BuildableConfig)
	for instance, data := range providerInstances {
		var nameAndConfig struct {
			PluginName string          `json:"plugin_name"`
			Config     json.RawMessage `json:"config"`
		}
		if err := json.Unmarshal(data, &nameAndConfig); err != nil {
			return nil, fmt.Errorf("xds: json.Unmarshal(%v) for field %q failed during bootstrap: %w", string(data), instance, err)
		}
		bc := certprovider.NewBuildableConfig(
			nameAndConfig.PluginName,
			[]byte{},
			func(options certprovider.BuildOptions) certprovider.Provider { return nil })
		configs[instance] = bc
	}
	return configs, nil
}