in domain/project.go [20:78]
func NewProject(p *api.Project, isInitClient bool) *Project {
project := Project{
Project: p,
FeatureViewMap: make(map[string]FeatureView),
FeatureEntityMap: make(map[string]*FeatureEntity),
ModelMap: make(map[string]*Model),
}
switch p.OnlineDatasourceType {
case constants.Datasource_Type_Hologres:
onlineStore := &HologresOnlineStore{
Datasource: p.OnlineDataSource,
}
if isInitClient {
dsn := onlineStore.Datasource.GenerateDSN(constants.Datasource_Type_Hologres)
hologres.RegisterHologres(onlineStore.Name, dsn)
}
project.OnlineStore = onlineStore
case constants.Datasource_Type_IGraph:
onlineStore := &IGraphOnlineStore{
Datasource: p.OnlineDataSource,
}
if isInitClient {
if p.OnlineDataSource.TestMode {
client := igraph.NewGraphClient(p.OnlineDataSource.PublicAddress, p.OnlineDataSource.User, p.OnlineDataSource.Pwd)
igraph.RegisterGraphClient(onlineStore.Name, client)
} else {
client := igraph.NewGraphClient(p.OnlineDataSource.VpcAddress, p.OnlineDataSource.User, p.OnlineDataSource.Pwd)
igraph.RegisterGraphClient(onlineStore.Name, client)
}
}
project.OnlineStore = onlineStore
case constants.Datasource_Type_TableStore:
onlineStore := &TableStoreOnlineStore{
Datasource: p.OnlineDataSource,
}
if isInitClient {
client := onlineStore.Datasource.NewTableStoreClient()
tablestore.RegisterTableStoreClient(onlineStore.Name, client)
}
project.OnlineStore = onlineStore
case constants.Datasource_Type_FeatureDB:
onlineStore := &FeatureDBOnlineStore{
Datasource: p.OnlineDataSource,
}
project.OnlineStore = onlineStore
default:
panic("not support onlinestore type")
}
if p.FeatureDBAddress != "" && p.FeatureDBToken != "" {
featuredb.InitFeatureDBClient(p.FeatureDBAddress, p.FeatureDBToken, p.FeatureDBVpcAddress)
}
return &project
}