This is an automated email from the ASF dual-hosted git repository.

zhongxjian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-kubernetes.git


The following commit(s) were added to refs/heads/master by this push:
     new 66f8f196 [horus] pod Add, Delete, Change (#385)
66f8f196 is described below

commit 66f8f196b9fa7dfa8f9699957f1311e0306cb58d
Author: mfordjody <[email protected]>
AuthorDate: Fri Sep 27 13:00:49 2024 +0800

    [horus] pod Add, Delete, Change (#385)
---
 app/horus/basic/db/db.go | 70 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 69 insertions(+), 1 deletion(-)

diff --git a/app/horus/basic/db/db.go b/app/horus/basic/db/db.go
index 699a8a04..c4d1950e 100644
--- a/app/horus/basic/db/db.go
+++ b/app/horus/basic/db/db.go
@@ -43,7 +43,7 @@ type NodeDataInfo struct {
 }
 
 type PodDataInfo struct {
-       Id              uint32 `json:"id"`
+       Id              int64  `json:"id"`
        PodName         string `json:"podName"`
        PodIP           string `json:"podIP"`
        Sn              string `json:"sn"`
@@ -80,6 +80,11 @@ func (n *NodeDataInfo) Add() (int64, error) {
        return row, err
 }
 
+func (p *PodDataInfo) Add() (int64, error) {
+       row, err := db.Insert(p)
+       return row, err
+}
+
 func (n *NodeDataInfo) Get() (*NodeDataInfo, error) {
        exist, err := db.Get(n)
        if err != nil {
@@ -91,6 +96,17 @@ func (n *NodeDataInfo) Get() (*NodeDataInfo, error) {
        return n, nil
 }
 
+func (p *PodDataInfo) Get() (*PodDataInfo, error) {
+       exist, err := db.Get(p)
+       if err != nil {
+               return nil, err
+       }
+       if !exist {
+               return nil, nil
+       }
+       return p, nil
+}
+
 func (n *NodeDataInfo) Update() (bool, error) {
        firstDate := time.Now().Format("2006-01-02 15:04:05")
        n.FirstDate = firstDate
@@ -105,11 +121,30 @@ func (n *NodeDataInfo) Update() (bool, error) {
        return false, nil
 }
 
+func (p *PodDataInfo) Update() (bool, error) {
+       firstDate := time.Now().Format("2006-01-02 15:04:05")
+       p.FirstDate = firstDate
+
+       row, err := db.Where(fmt.Sprintf("id=%d", p.Id)).Update(p)
+       if err != nil {
+               return false, err
+       }
+       if row > 0 {
+               return true, nil
+       }
+       return false, nil
+}
+
 func (n *NodeDataInfo) Check() (bool, error) {
        exist, err := db.Exist(n)
        return exist, err
 }
 
+func (p *PodDataInfo) Check() (bool, error) {
+       exist, err := db.Exist(p)
+       return exist, err
+}
+
 func (n *NodeDataInfo) AddOrGet() (int64, error) {
        exist, _ := n.Check()
        if exist {
@@ -119,6 +154,15 @@ func (n *NodeDataInfo) AddOrGet() (int64, error) {
        return row, err
 }
 
+func (p *PodDataInfo) AddOrGet() (int64, error) {
+       exist, _ := p.Check()
+       if exist {
+               return p.Id, nil
+       }
+       row, err := p.Add()
+       return row, err
+}
+
 func GetRecoveryNodeDataInfoDate(day int) ([]NodeDataInfo, error) {
        var ndi []NodeDataInfo
        session := db.Where(fmt.Sprintf("recovery_mark = 0 AND first_date > 
DATE_SUB(CURDATE(), INTERVAL %d DAY)", day))
@@ -149,3 +193,27 @@ func (n *NodeDataInfo) RestartMarker() (bool, error) {
        n.Restart = 1
        return n.Update()
 }
+
+func GetPod() ([]PodDataInfo, error) {
+       var pdi []PodDataInfo
+       session := db.Where(fmt.Sprintf("id>%d", 0))
+       err := session.Find(&pdi)
+       return pdi, err
+}
+
+func GetPodByName(podName, moduleName string) (*PodDataInfo, error) {
+       pdi := PodDataInfo{
+               PodName:    podName,
+               ModuleName: moduleName,
+       }
+       return pdi.Get()
+}
+
+func GetLimitPodDataInfo(limit, offset int, orderColumn, where string, args 
...interface{}) ([]PodDataInfo, error) {
+       var pdi []PodDataInfo
+       err := db.Where(where, args...).Limit(limit, 
offset).Desc(orderColumn).Find(pdi)
+       if err != nil {
+               return nil, err
+       }
+       return pdi, nil
+}

Reply via email to