Commit da1f6fa2 authored by 李科's avatar 李科

feat: 检查并创建OpenSearch索引

parent 392917c5
......@@ -45,6 +45,12 @@ func main() {
// redis client
go client.GetRedisClient()
// 初始化OpenSearch的索引
err := service.CheckAndCreateIndex()
if err != nil {
conf.Logger.Fatal("failed to init OpenSearch index.", zap.Error(err))
}
//启动定时任务
cron.StartCron()
service.PushWorkOrderMessage()
......
......@@ -283,13 +283,50 @@ var (
}`)
)
func (a *AlertSvc) CreateIndex() error {
func CheckAndCreateIndex() (err error) {
exist, err := checkIndexExists(OpenSearchIndex)
if err != nil {
return
}
if exist {
return nil
}
err = CreateIndex(OpenSearchIndex)
if err != nil {
return err
}
return nil
}
func checkIndexExists(indexName string) (exist bool, err error) {
cli, err := client.GetOpenSearch()
if err != nil {
return
}
req := opensearchapi.IndicesExistsRequest{Index: []string{indexName}}
res, err := req.Do(context.Background(), cli)
if err != nil {
return false, err
}
defer res.Body.Close()
if res.StatusCode == http.StatusOK {
return true, nil
} else if res.StatusCode == http.StatusNotFound {
return false, nil
} else {
return false, fmt.Errorf("请求失败,状态码:%d", res.StatusCode)
}
}
func CreateIndex(indexName string) error {
cli, err := client.GetOpenSearch()
if err != nil {
return err
}
res := opensearchapi.IndicesCreateRequest{
Index: OpenSearchIndex,
Index: indexName,
Body: Mapping,
}
do, err := res.Do(context.Background(), cli)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment