in featurestore/feature_store_client.go [127:174]
func NewFeatureStoreClient(regionId, accessKeyId, accessKeySecret, projectName string, opts ...ClientOption) (fsclient *FeatureStoreClient, err error) {
defer func() {
if r := recover(); r != nil {
//err = fmt.Errorf("error: %v", r)
}
}()
client := FeatureStoreClient{
projectMap: make(map[string]*domain.Project, 0),
loopLoadData: true,
datasourceInitClient: true,
hologresPort: 80,
stopChan: make(chan struct{}),
}
for _, opt := range opts {
opt(&client)
}
cfg := api.NewConfiguration(regionId, accessKeyId, accessKeySecret, client.token, projectName)
if client.testMode {
cfg.SetDomain(fmt.Sprintf("paifeaturestore.%s.aliyuncs.com", regionId))
}
if client.domain != "" {
cfg.SetDomain(client.domain)
}
apiClient, err := api.NewAPIClient(cfg)
if err != nil {
return nil, err
}
client.client = apiClient
if err = client.Validate(); err != nil {
return nil, err
}
if err = client.LoadProjectData(); err != nil {
return nil, err
}
if client.loopLoadData {
go client.loopLoadProjectData()
}
return &client, nil
}