in api/internal/core/store/storehub.go [102:248]
func InitStores() error {
err := InitStore(HubKeyConsumer, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/consumers",
ObjType: reflect.TypeOf(entity.Consumer{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.Consumer)
return r.Username
},
})
if err != nil {
return err
}
err = InitStore(HubKeyRoute, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/routes",
ObjType: reflect.TypeOf(entity.Route{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.Route)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeyService, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/services",
ObjType: reflect.TypeOf(entity.Service{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.Service)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeySsl, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/ssls",
ObjType: reflect.TypeOf(entity.SSL{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.SSL)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeyUpstream, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/upstreams",
ObjType: reflect.TypeOf(entity.Upstream{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.Upstream)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeyScript, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/scripts",
ObjType: reflect.TypeOf(entity.Script{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.Script)
return r.ID
},
})
if err != nil {
return err
}
err = InitStore(HubKeyGlobalRule, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/global_rules",
ObjType: reflect.TypeOf(entity.GlobalPlugins{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.GlobalPlugins)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeyServerInfo, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/data_plane/server_info",
ObjType: reflect.TypeOf(entity.ServerInfo{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.ServerInfo)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeyPluginConfig, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/plugin_configs",
ObjType: reflect.TypeOf(entity.PluginConfig{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.PluginConfig)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeyProto, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/protos",
ObjType: reflect.TypeOf(entity.Proto{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.Proto)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeyStreamRoute, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/stream_routes",
ObjType: reflect.TypeOf(entity.StreamRoute{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.StreamRoute)
return utils.InterfaceToString(r.ID)
},
})
if err != nil {
return err
}
err = InitStore(HubKeySystemConfig, GenericStoreOption{
BasePath: conf.ETCDConfig.Prefix + "/system_config",
ObjType: reflect.TypeOf(entity.SystemConfig{}),
KeyFunc: func(obj interface{}) string {
r := obj.(*entity.SystemConfig)
return r.ConfigName
},
})
if err != nil {
return err
}
return nil
}