Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(contrib/registry/etcd): add retry machenism when keepalive lease expires #4035

Merged
merged 11 commits into from
Dec 13, 2024
Merged
82 changes: 21 additions & 61 deletions .github/workflows/ci-main.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#!/usr/bin/env bash

# Define the latest Go version requirement
LATEST_GO_VERSION="1.23"

coverage=$1

# find all path that contains go.mod.
Expand All @@ -13,82 +16,39 @@ for file in `find . -name go.mod`; do
continue 1
fi

if [[ $file =~ "/testdata/" ]]; then
echo "ignore testdata path $file"
continue 1
fi

# package kuhecm was moved to sub ci procedure.
if [ "kubecm" = $(basename $dirpath) ]; then
continue 1
fi

# package consul needs golang >= v1.19
if [ "consul" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore consul as go version: $(go version)"
continue 1
# Check if it's a contrib directory or example directory
if [[ $dirpath =~ "/contrib/" ]] || [ "example" = $(basename $dirpath) ]; then
# Check if go version meets the requirement
if ! go version | grep -qE "go${LATEST_GO_VERSION}"; then
echo "ignore path $dirpath as go version is not ${LATEST_GO_VERSION}: $(go version)"
continue 1
fi
fi

# package etcd needs golang >= v1.19
if [ "etcd" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore etcd as go version: $(go version)"
continue 1
fi
fi

# package polaris needs golang >= v1.19
if [ "polaris" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore polaris as go version: $(go version)"
continue 1
# If it's example directory, only build without tests
if [ "example" = $(basename $dirpath) ]; then
echo "the example directory only needs to be built, not unit tests and coverage tests."
cd $dirpath
go mod tidy
go build ./...
cd -
continue 1
fi
fi

# package example needs golang >= v1.20
if [ "example" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][1-9]"; then
echo "ignore example as go version: $(go version)"
continue 1
fi
echo "the example directory only needs to be built, not unit tests and coverage tests."
cd $dirpath
go mod tidy
go build ./...
cd -
if [[ $file =~ "/testdata/" ]]; then
echo "ignore testdata path $file"
continue 1
fi

# package otlpgrpc needs golang >= v1.20
if [ "otlpgrpc" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore otlpgrpc as go version: $(go version)"
continue 1
fi
fi

# package otlphttp needs golang >= v1.20
if [ "otlphttp" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore otlphttp as go version: $(go version)"
continue 1
fi
fi

# package otelmetric needs golang >= v1.20
if [ "otelmetric" = $(basename $dirpath) ]; then
if ! go version|grep -qE "go1.[2-9][0-9]"; then
echo "ignore otelmetric as go version: $(go version)"
continue 1
fi
fi

cd $dirpath
go mod tidy
go build ./...
# check coverage

# test with coverage
if [ "${coverage}" = "coverage" ]; then
go test ./... -race -coverprofile=coverage.out -covermode=atomic -coverpkg=./...,github.com/gogf/gf/... || exit 1

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ example/log
go.work
go.work.sum
!cmd/gf/go.work
.windsurfrules

# Ignore for docs
node_modules
Expand Down
7 changes: 4 additions & 3 deletions container/gpool/gpool_z_unit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"time"

"github.com/gogf/gf/v2/container/gpool"
"github.com/gogf/gf/v2/container/gtype"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/test/gtest"
)
Expand All @@ -20,10 +21,10 @@ var nf gpool.NewFunc = func() (i interface{}, e error) {
return "hello", nil
}

var assertIndex int = 0
var assertIndex = gtype.NewInt(0)

var ef gpool.ExpireFunc = func(i interface{}) {
assertIndex++
assertIndex.Add(1)
gtest.Assert(i, assertIndex)
}

Expand Down Expand Up @@ -83,7 +84,7 @@ func Test_Gpool(t *testing.T) {
v2, err2 = p2.Get()
t.Assert(err2, nil)
t.Assert(v2, 0)
assertIndex = 0
assertIndex.Set(0)
p2.Close()
time.Sleep(3 * time.Second)
t.AssertNE(p2.Put(1), nil)
Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/clickhouse/clickhouse_z_unit_db_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ func Test_DB_Tables(t *testing.T) {
}

result, err := db.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand Down
12 changes: 6 additions & 6 deletions contrib/drivers/dm/dm_z_unit_basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func TestTables(t *testing.T) {
}
gtest.C(t, func(t *gtest.T) {
result, err := db.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand All @@ -48,7 +48,7 @@ func TestTables(t *testing.T) {
}

result, err = dblink.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)
for i := 0; i < len(tables); i++ {
find := false
for j := 0; j < len(result); j++ {
Expand Down Expand Up @@ -95,7 +95,7 @@ func TestTableFields(t *testing.T) {
gtest.AssertNE(err, nil)

res, err := db.TableFields(ctx, tables)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand Down Expand Up @@ -205,7 +205,7 @@ func TestModelInsert(t *testing.T) {
}
// _, err := db.Schema(TestDBName).Model(table).Data(data).Insert()
_, err := db.Model(table).Insert(&data)
gtest.Assert(err, nil)
gtest.AssertNil(err)
})

gtest.C(t, func(t *gtest.T) {
Expand All @@ -220,7 +220,7 @@ func TestModelInsert(t *testing.T) {
}
// _, err := db.Schema(TestDBName).Model(table).Data(data).Insert()
_, err := db.Model(table).Data(&data).Insert()
gtest.Assert(err, nil)
gtest.AssertNil(err)
})
}

Expand All @@ -238,7 +238,7 @@ func TestDBInsert(t *testing.T) {
"UPDATED_TIME": gtime.Now(),
}
_, err := db.Insert(ctx, table, &data)
gtest.Assert(err, nil)
gtest.AssertNil(err)
})
}

Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/dm/dm_z_unit_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ func createInitTable(table ...string) (name string) {
})
}
result, err := db.Schema(TestDBName).Insert(context.Background(), name, array.Slice())
gtest.Assert(err, nil)
gtest.AssertNil(err)

n, e := result.RowsAffected()
gtest.Assert(e, nil)
Expand Down
10 changes: 5 additions & 5 deletions contrib/drivers/mssql/mssql_z_unit_basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func TestTables(t *testing.T) {
}

result, err := db.Tables(context.Background())
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand All @@ -43,7 +43,7 @@ func TestTables(t *testing.T) {
}

result, err = db.Tables(context.Background(), "test")
gtest.Assert(err, nil)
gtest.AssertNil(err)
for i := 0; i < len(tables); i++ {
find := false
for j := 0; j < len(result); j++ {
Expand Down Expand Up @@ -74,7 +74,7 @@ func TestTableFields(t *testing.T) {
}

res, err := db.TableFields(context.Background(), "t_user")
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand All @@ -89,7 +89,7 @@ func TestTableFields(t *testing.T) {
}

res, err = db.TableFields(context.Background(), "t_user", "test")
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand Down Expand Up @@ -124,7 +124,7 @@ func TestDoInsert(t *testing.T) {
"create_time": gtime.Now(),
}
_, err := db.Insert(context.Background(), "t_user", data)
gtest.Assert(err, nil)
gtest.AssertNil(err)

})

Expand Down
5 changes: 3 additions & 2 deletions contrib/drivers/mssql/mssql_z_unit_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ func init() {

nodeErr := gdb.ConfigNode{
Type: "mssql",
Link: fmt.Sprintf("user id=%s;password=%s;server=%s;port=%s;database=%s;encrypt=disable",
Link: fmt.Sprintf(
"mssql:%s:%s@tcp(%s:%s)/%s?encrypt=disable",
node.User, "node.Pass", node.Host, node.Port, node.Name),
}

Expand Down Expand Up @@ -130,7 +131,7 @@ func createInitTable(table ...string) (name string) {
})
}
result, err := db.Insert(context.Background(), name, array.Slice())
gtest.Assert(err, nil)
gtest.AssertNil(err)

n, e := result.RowsAffected()
gtest.Assert(e, nil)
Expand Down
50 changes: 26 additions & 24 deletions contrib/drivers/mssql/mssql_z_unit_model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,32 @@ import (
func Test_Page(t *testing.T) {
table := createInitTable()
defer dropTable(table)
// db.SetDebug(true)
result, err := db.Model(table).Page(1, 2).Order("id").All()
gtest.Assert(err, nil)
fmt.Println("page:1--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 1)
gtest.Assert(result[1]["ID"], 2)

result, err = db.Model(table).Page(2, 2).Order("id").All()
gtest.Assert(err, nil)
fmt.Println("page: 2--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 3)
gtest.Assert(result[1]["ID"], 4)

result, err = db.Model(table).Page(3, 2).Order("id").All()
gtest.Assert(err, nil)
fmt.Println("page:3 --------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 5)

result, err = db.Model(table).Page(2, 3).All()
gtest.Assert(err, nil)
gtest.Assert(len(result), 3)
gtest.C(t, func(t *gtest.T) {
result, err := db.Model(table).Page(1, 2).Order("id").All()
t.AssertNil(err)
fmt.Println("page:1--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 1)
gtest.Assert(result[1]["ID"], 2)

result, err = db.Model(table).Page(2, 2).Order("id").All()
t.AssertNil(err)
fmt.Println("page: 2--------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 3)
gtest.Assert(result[1]["ID"], 4)

result, err = db.Model(table).Page(3, 2).Order("id").All()
t.AssertNil(err)
fmt.Println("page:3 --------", result)
gtest.Assert(len(result), 2)
gtest.Assert(result[0]["ID"], 5)

result, err = db.Model(table).Page(2, 3).All()
t.AssertNil(err)
gtest.Assert(len(result), 3)
})

}

func Test_Model_Insert(t *testing.T) {
Expand Down
10 changes: 5 additions & 5 deletions contrib/drivers/oracle/oracle_z_unit_basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func Test_Tables(t *testing.T) {
}

result, err := db.Tables(ctx)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for i := 0; i < len(tables); i++ {
find := false
Expand All @@ -41,7 +41,7 @@ func Test_Tables(t *testing.T) {
}

result, err = db.Tables(ctx, TestSchema)
gtest.Assert(err, nil)
gtest.AssertNil(err)
for i := 0; i < len(tables); i++ {
find := false
for j := 0; j < len(result); j++ {
Expand Down Expand Up @@ -76,7 +76,7 @@ func Test_Table_Fields(t *testing.T) {
gtest.AssertNE(err, nil)

res, err := db.TableFields(ctx, "t_user")
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand All @@ -88,7 +88,7 @@ func Test_Table_Fields(t *testing.T) {
}

res, err = db.TableFields(ctx, "t_user", TestSchema)
gtest.Assert(err, nil)
gtest.AssertNil(err)

for k, v := range expect {
_, ok := res[k]
Expand Down Expand Up @@ -121,7 +121,7 @@ func Test_Do_Insert(t *testing.T) {
"CREATE_TIME": gtime.Now().String(),
}
_, err := db.Insert(ctx, "t_user", data)
gtest.Assert(err, nil)
gtest.AssertNil(err)

})

Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/oracle/oracle_z_unit_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ func createInitTable(table ...string) (name string) {
})
}
result, err := db.Insert(context.Background(), name, array.Slice())
gtest.Assert(err, nil)
gtest.AssertNil(err)

n, e := result.RowsAffected()
gtest.Assert(e, nil)
Expand Down
Loading
Loading