[fix] when domain or project is empty should return default (#1268)

diff --git a/datasource/etcd/sync/sync.go b/datasource/etcd/sync/sync.go
index 9998b8a..6f826ae 100644
--- a/datasource/etcd/sync/sync.go
+++ b/datasource/etcd/sync/sync.go
@@ -95,6 +95,12 @@
 	syncOpts *Options) (etcdadpt.OpOptions, error) {
 	domain := util.ParseDomain(ctx)
 	project := util.ParseProject(ctx)
+	if len(domain) == 0 {
+		domain = sync.Default
+	}
+	if len(project) == 0 {
+		project = sync.Default
+	}
 	task, err := sync.NewTask(domain, project, action, resourceType, resource)
 	if err != nil {
 		return etcdadpt.OpOptions{}, err
@@ -114,6 +120,12 @@
 func genTombstoneOpt(ctx context.Context, resourceType, resourceID string) (etcdadpt.OpOptions, error) {
 	domain := util.ParseDomain(ctx)
 	project := util.ParseProject(ctx)
+	if len(domain) == 0 {
+		domain = sync.Default
+	}
+	if len(project) == 0 {
+		project = sync.Default
+	}
 	tombstone := sync.NewTombstone(domain, project, resourceType, resourceID)
 	tombstoneBytes, err := json.Marshal(tombstone)
 	if err != nil {
diff --git a/datasource/etcd/sync_test.go b/datasource/etcd/sync_test.go
index eed303c..0624e74 100644
--- a/datasource/etcd/sync_test.go
+++ b/datasource/etcd/sync_test.go
@@ -133,8 +133,8 @@
 			assert.NoError(t, err)
 			assert.Equal(t, a1, *r)
 			listTaskReq := model.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceAccount,
 			}
 			tasks, err := task.List(syncAllContext(), &listTaskReq)
@@ -162,8 +162,8 @@
 			assert.Equal(t, r.CreateTime, r.UpdateTime)
 			roleName = r1.Name
 			listTaskReq := model.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceRole,
 			}
 			tasks, err := task.List(syncAllContext(), &listTaskReq)
@@ -458,8 +458,8 @@
 			assert.NoError(t, err)
 			assert.Equal(t, 0, len(tasks))
 			listAccountTaskReq := model.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceAccount,
 			}
 			tasks, err = task.List(syncAllContext(), &listAccountTaskReq)
@@ -472,8 +472,8 @@
 			assert.Equal(t, 0, len(tasks))
 
 			listRoleTaskReq := model.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceRole,
 			}
 			tasks, err = task.List(syncAllContext(), &listRoleTaskReq)
@@ -532,8 +532,8 @@
 			assert.NoError(t, err)
 			assert.Equal(t, a1, *r)
 			listTaskReq := model.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all-background",
+				Project:      "sync-all-background",
 				ResourceType: datasource.ResourceAccount,
 			}
 			tasks, err := task.List(ctx, &listTaskReq)
@@ -557,6 +557,10 @@
 			tasks, err := task.List(ctx, &listAccountTaskReq)
 			assert.NoError(t, err)
 			assert.Equal(t, 1, len(tasks))
+			for _, v := range tasks {
+				assert.Equal(t, sync.Default, v.Domain)
+				assert.Equal(t, sync.Default, v.Project)
+			}
 			err = task.Delete(ctx, tasks...)
 			assert.NoError(t, err)
 			tasks, err = task.List(ctx, &listAccountTaskReq)
@@ -564,7 +568,8 @@
 			assert.Equal(t, 0, len(tasks))
 		})
 		t.Run("delete account resource should pass", func(t *testing.T) {
-			_, err := rbac.Instance().DeleteAccount(ctx, []string{accountName})
+			_, err := rbac.Instance().DeleteAccount(util.SetContext(context.Background(),
+				util.CtxEnableSync, "1"), []string{accountName})
 			assert.NoError(t, err)
 			listAccountTaskReq := model.ListTaskRequest{
 				Domain:       "",
@@ -574,16 +579,25 @@
 			tasks, err := task.List(ctx, &listAccountTaskReq)
 			assert.NoError(t, err)
 			assert.Equal(t, 1, len(tasks))
+			for _, v := range tasks {
+				assert.Equal(t, sync.Default, v.Domain)
+				assert.Equal(t, sync.Default, v.Project)
+			}
 			err = task.Delete(ctx, tasks...)
 			assert.NoError(t, err)
 
 			tombstoneListReq := model.ListTombstoneRequest{
-				Domain:  "sync-all-background",
-				Project: "sync-all-background",
+				Domain:       "",
+				Project:      "",
+				ResourceType: datasource.ResourceAccount,
 			}
 			tombstones, err := tombstone.List(ctx, &tombstoneListReq)
 			assert.NoError(t, err)
 			assert.Equal(t, 1, len(tombstones))
+			for _, v := range tasks {
+				assert.Equal(t, sync.Default, v.Domain)
+				assert.Equal(t, sync.Default, v.Project)
+			}
 			err = tombstone.Delete(ctx, tombstones...)
 			assert.NoError(t, err)
 		})
diff --git a/datasource/mongo/sync_test.go b/datasource/mongo/sync_test.go
index 99a090e..040dbfd 100644
--- a/datasource/mongo/sync_test.go
+++ b/datasource/mongo/sync_test.go
@@ -86,8 +86,8 @@
 			assert.NoError(t, err)
 			assert.Equal(t, a1, *r)
 			listTaskReq := emodel.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceAccount,
 			}
 			tasks, err := task.List(syncAllContext(), &listTaskReq)
@@ -115,8 +115,8 @@
 			assert.Equal(t, r.CreateTime, r.UpdateTime)
 			roleName = r1.Name
 			listTaskReq := emodel.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceRole,
 			}
 			tasks, err := task.List(syncAllContext(), &listTaskReq)
@@ -203,8 +203,8 @@
 			assert.Equal(t, 0, len(tasks))
 
 			listAccountTaskReq := emodel.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceAccount,
 			}
 			tasks, err = task.List(syncAllContext(), &listAccountTaskReq)
@@ -217,8 +217,8 @@
 			assert.Equal(t, 0, len(tasks))
 
 			listRoleTaskReq := emodel.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceRole,
 			}
 			tasks, err = task.List(syncAllContext(), &listRoleTaskReq)
@@ -243,8 +243,8 @@
 			_, err := rbac.Instance().DeleteAccount(syncAllContext(), []string{accountName})
 			assert.NoError(t, err)
 			listAccountTaskReq := emodel.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceAccount,
 			}
 			tasks, err := task.List(syncAllContext(), &listAccountTaskReq)
@@ -259,8 +259,8 @@
 			_, err = rbac.Instance().DeleteRole(syncAllContext(), roleName)
 			assert.NoError(t, err)
 			listRoleTaskReq := emodel.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all",
+				Project:      "sync-all",
 				ResourceType: datasource.ResourceRole,
 			}
 			tasks, err = task.List(syncAllContext(), &listRoleTaskReq)
@@ -319,8 +319,8 @@
 			assert.NoError(t, err)
 			assert.Equal(t, a1, *r)
 			listTaskReq := emodel.ListTaskRequest{
-				Domain:       "",
-				Project:      "",
+				Domain:       "sync-all-background",
+				Project:      "sync-all-background",
 				ResourceType: datasource.ResourceAccount,
 			}
 			tasks, err := task.List(ctx, &listTaskReq)
@@ -344,6 +344,10 @@
 			tasks, err := task.List(ctx, &listAccountTaskReq)
 			assert.NoError(t, err)
 			assert.Equal(t, 1, len(tasks))
+			for _, v := range tasks {
+				assert.Equal(t, sync.Default, v.Domain)
+				assert.Equal(t, sync.Default, v.Project)
+			}
 			err = task.Delete(ctx, tasks...)
 			assert.NoError(t, err)
 			tasks, err = task.List(ctx, &listAccountTaskReq)
@@ -351,7 +355,8 @@
 			assert.Equal(t, 0, len(tasks))
 		})
 		t.Run("delete account resource should pass", func(t *testing.T) {
-			_, err := rbac.Instance().DeleteAccount(ctx, []string{accountName})
+			_, err := rbac.Instance().DeleteAccount(util.SetContext(context.Background(),
+				util.CtxEnableSync, "1"), []string{accountName})
 			assert.NoError(t, err)
 			listAccountTaskReq := emodel.ListTaskRequest{
 				Domain:       "",
@@ -361,16 +366,24 @@
 			tasks, err := task.List(ctx, &listAccountTaskReq)
 			assert.NoError(t, err)
 			assert.Equal(t, 1, len(tasks))
+			for _, v := range tasks {
+				assert.Equal(t, sync.Default, v.Domain)
+				assert.Equal(t, sync.Default, v.Project)
+			}
 			err = task.Delete(ctx, tasks...)
 			assert.NoError(t, err)
 
 			tombstoneListReq := emodel.ListTombstoneRequest{
-				Domain:  "sync-all-background",
-				Project: "sync-all-background",
+				Domain:  "",
+				Project: "",
 			}
 			tombstones, err := tombstone.List(ctx, &tombstoneListReq)
 			assert.NoError(t, err)
 			assert.Equal(t, 1, len(tombstones))
+			for _, v := range tasks {
+				assert.Equal(t, sync.Default, v.Domain)
+				assert.Equal(t, sync.Default, v.Project)
+			}
 			err = tombstone.Delete(ctx, tombstones...)
 			assert.NoError(t, err)
 		})
diff --git a/eventbase/datasource/etcd/key/key.go b/eventbase/datasource/etcd/key/key.go
index b2c954c..f97fe89 100644
--- a/eventbase/datasource/etcd/key/key.go
+++ b/eventbase/datasource/etcd/key/key.go
@@ -73,4 +73,4 @@
 
 func JoinResourceID(infos []string) string {
 	return strings.Join(infos, split)
-}
+}
\ No newline at end of file
diff --git a/eventbase/go.mod b/eventbase/go.mod
index d53d1ba..ae279ae 100644
--- a/eventbase/go.mod
+++ b/eventbase/go.mod
@@ -1,7 +1,7 @@
 module github.com/apache/servicecomb-service-center/eventbase
 
 require (
-	github.com/go-chassis/cari v0.5.1-0.20220121124340-cbf87fbeb1d7
+	github.com/go-chassis/cari v0.5.1-0.20220216075429-46c79de3311f
 	github.com/go-chassis/go-archaius v1.5.4
 	github.com/go-chassis/openlog v1.1.3
 	github.com/little-cui/etcdadpt v0.3.2
diff --git a/eventbase/go.sum b/eventbase/go.sum
index 012ccc6..23dfd9d 100644
--- a/eventbase/go.sum
+++ b/eventbase/go.sum
@@ -112,8 +112,8 @@
 github.com/go-chassis/cari v0.0.0-20201210041921-7b6fbef2df11/go.mod h1:MgtsEI0AM4Ush6Lyw27z9Gk4nQ/8GWTSXrFzupawWDM=
 github.com/go-chassis/cari v0.4.0/go.mod h1:av/19fqwEP4eOC8unL/z67AAbFDwXUCko6SKa4Avrd8=
 github.com/go-chassis/cari v0.5.0/go.mod h1:av/19fqwEP4eOC8unL/z67AAbFDwXUCko6SKa4Avrd8=
-github.com/go-chassis/cari v0.5.1-0.20220121124340-cbf87fbeb1d7 h1:21IJymFsx+TEMY+KwqfyB/no/RpEhN9jld8uALvkU68=
-github.com/go-chassis/cari v0.5.1-0.20220121124340-cbf87fbeb1d7/go.mod h1:tKTzguHTGohMCgkcWNZWtA4TwfcsJrIXpfYxsQtb7uw=
+github.com/go-chassis/cari v0.5.1-0.20220216075429-46c79de3311f h1:NQqJFcsvoCMuRmgj5A6LsJ1nNkg6DkMQpEZy+eZjkOk=
+github.com/go-chassis/cari v0.5.1-0.20220216075429-46c79de3311f/go.mod h1:tKTzguHTGohMCgkcWNZWtA4TwfcsJrIXpfYxsQtb7uw=
 github.com/go-chassis/foundation v0.2.2-0.20201210043510-9f6d3de40234/go.mod h1:2PjwqpVwYEVaAldl5A58a08viH8p27pNeYaiE3ZxOBA=
 github.com/go-chassis/foundation v0.2.2/go.mod h1:2PjwqpVwYEVaAldl5A58a08viH8p27pNeYaiE3ZxOBA=
 github.com/go-chassis/foundation v0.3.0/go.mod h1:2PjwqpVwYEVaAldl5A58a08viH8p27pNeYaiE3ZxOBA=
diff --git a/eventbase/service/task/task_svc.go b/eventbase/service/task/task_svc.go
index ee5b436..89519b4 100644
--- a/eventbase/service/task/task_svc.go
+++ b/eventbase/service/task/task_svc.go
@@ -35,6 +35,12 @@
 }
 
 func List(ctx context.Context, request *model.ListTaskRequest) ([]*sync.Task, error) {
+	if len(request.Domain) == 0 {
+		request.Domain = sync.Default
+	}
+	if len(request.Project) == 0 {
+		request.Project = sync.Default
+	}
 	opts := []datasource.TaskFindOption{
 		datasource.WithDomain(request.Domain),
 		datasource.WithProject(request.Project),
diff --git a/eventbase/service/task/task_svc_test.go b/eventbase/service/task/task_svc_test.go
index 004bfcc..c1de3c4 100644
--- a/eventbase/service/task/task_svc_test.go
+++ b/eventbase/service/task/task_svc_test.go
@@ -63,6 +63,14 @@
 			ServiceName: "svc3",
 			Version:     "1.0",
 		})
+	taskFour, _ := sync.NewTask("", "", sync.UpdateAction, "service",
+		discovery.MicroService{
+			ServiceId:   "101",
+			AppId:       "appId4",
+			ServiceName: "svc4",
+			Version:     "1.0",
+		})
+
 	t.Run("to create three tasks for next delete update and list operations, should pass", func(t *testing.T) {
 		_, err := datasource.GetDataSource().TaskDao().Create(context.Background(), taskOne)
 		assert.Nil(t, err)
@@ -70,6 +78,8 @@
 		assert.Nil(t, err)
 		_, err = datasource.GetDataSource().TaskDao().Create(context.Background(), taskThree)
 		assert.Nil(t, err)
+		_, err = datasource.GetDataSource().TaskDao().Create(context.Background(), taskFour)
+		assert.Nil(t, err)
 	})
 
 	t.Run("list task service", func(t *testing.T) {
@@ -103,7 +113,7 @@
 	})
 
 	t.Run("delete task service", func(t *testing.T) {
-		t.Run("delete all tasks in default domain and default project should pass", func(t *testing.T) {
+		t.Run("delete all tasks in task domain and task project should pass", func(t *testing.T) {
 			listReq := model.ListTaskRequest{
 				Domain:  "task",
 				Project: "task",
@@ -117,5 +127,20 @@
 			assert.Nil(t, err)
 			assert.Equal(t, 0, len(dTasks))
 		})
+		t.Run("delete all tasks in empty domain and empty project should pass", func(t *testing.T) {
+			listReq := model.ListTaskRequest{
+				Domain:       "",
+				Project:      "",
+				ResourceType: "service",
+			}
+			tasks, err := task.List(context.Background(), &listReq)
+			assert.Nil(t, err)
+			assert.Equal(t, 1, len(tasks))
+			err = task.Delete(context.Background(), tasks...)
+			assert.Nil(t, err)
+			dTasks, err := task.List(context.Background(), &listReq)
+			assert.Nil(t, err)
+			assert.Equal(t, 0, len(dTasks))
+		})
 	})
 }
diff --git a/eventbase/service/tombstone/tombstone_svc.go b/eventbase/service/tombstone/tombstone_svc.go
index dfb64e4..5ad6753 100644
--- a/eventbase/service/tombstone/tombstone_svc.go
+++ b/eventbase/service/tombstone/tombstone_svc.go
@@ -27,6 +27,12 @@
 )
 
 func Get(ctx context.Context, req *model.GetTombstoneRequest) (*sync.Tombstone, error) {
+	if len(req.Domain) == 0 {
+		req.Domain = sync.Default
+	}
+	if len(req.Project) == 0 {
+		req.Project = sync.Default
+	}
 	return datasource.GetTombstoneDao().Get(ctx, req)
 }
 
@@ -35,6 +41,12 @@
 }
 
 func List(ctx context.Context, request *model.ListTombstoneRequest) ([]*sync.Tombstone, error) {
+	if len(request.Domain) == 0 {
+		request.Domain = sync.Default
+	}
+	if len(request.Project) == 0 {
+		request.Project = sync.Default
+	}
 	opts := []datasource.TombstoneFindOption{
 		datasource.WithTombstoneDomain(request.Domain),
 		datasource.WithTombstoneProject(request.Project),
diff --git a/eventbase/service/tombstone/tombstone_svc_test.go b/eventbase/service/tombstone/tombstone_svc_test.go
index 9443a15..fe0d148 100644
--- a/eventbase/service/tombstone/tombstone_svc_test.go
+++ b/eventbase/service/tombstone/tombstone_svc_test.go
@@ -21,13 +21,13 @@
 	"context"
 	"testing"
 
-	"github.com/apache/servicecomb-service-center/eventbase/test"
 	"github.com/go-chassis/cari/sync"
 	"github.com/stretchr/testify/assert"
 
 	"github.com/apache/servicecomb-service-center/eventbase/datasource"
 	"github.com/apache/servicecomb-service-center/eventbase/model"
 	"github.com/apache/servicecomb-service-center/eventbase/service/tombstone"
+	"github.com/apache/servicecomb-service-center/eventbase/test"
 )
 
 func init() {
@@ -44,6 +44,7 @@
 	tombstoneOne := sync.NewTombstone("tombstone", "tombstone", "config", "111111")
 	tombstoneTwo := sync.NewTombstone("tombstone", "tombstone", "config", "222222")
 	tombstoneThree := sync.NewTombstone("tombstone", "tombstone", "config", "333333")
+	tombstoneFour := sync.NewTombstone("", "", "config", "444444")
 
 	t.Run("to create three tasks for next get delete and list operations, should pass", func(t *testing.T) {
 		_, err := datasource.GetDataSource().TombstoneDao().Create(context.Background(), tombstoneOne)
@@ -52,6 +53,8 @@
 		assert.Nil(t, err)
 		_, err = datasource.GetDataSource().TombstoneDao().Create(context.Background(), tombstoneThree)
 		assert.Nil(t, err)
+		_, err = datasource.GetDataSource().TombstoneDao().Create(context.Background(), tombstoneFour)
+		assert.Nil(t, err)
 	})
 
 	t.Run("get tombstone service", func(t *testing.T) {
@@ -84,7 +87,7 @@
 	})
 
 	t.Run("delete tombstone service", func(t *testing.T) {
-		t.Run("delete all tombstones in default domain and default project should pass", func(t *testing.T) {
+		t.Run("delete all tombstones in tombstone domain and tombstone project should pass", func(t *testing.T) {
 			listReq := model.ListTombstoneRequest{
 				Domain:  "tombstone",
 				Project: "tombstone",
@@ -98,6 +101,21 @@
 			assert.Nil(t, err)
 			assert.Equal(t, 0, len(dTombstones))
 		})
-	})
 
+		t.Run("delete all tombstones in empty domain and empty project should pass", func(t *testing.T) {
+			listReq := model.ListTombstoneRequest{
+				Domain:       "",
+				Project:      "",
+				ResourceType: "config",
+			}
+			tombstones, err := tombstone.List(context.Background(), &listReq)
+			assert.Nil(t, err)
+			assert.Equal(t, 1, len(tombstones))
+			err = tombstone.Delete(context.Background(), tombstones...)
+			assert.Nil(t, err)
+			dTombstones, err := tombstone.List(context.Background(), &listReq)
+			assert.Nil(t, err)
+			assert.Equal(t, 0, len(dTombstones))
+		})
+	})
 }
diff --git a/go.mod b/go.mod
index c8bf86c..a9aa821 100644
--- a/go.mod
+++ b/go.mod
@@ -13,7 +13,7 @@
 	github.com/deckarep/golang-set v1.7.1
 	github.com/elithrar/simple-scrypt v1.3.0
 	github.com/ghodss/yaml v1.0.0
-	github.com/go-chassis/cari v0.5.1-0.20220121124340-cbf87fbeb1d7
+	github.com/go-chassis/cari v0.5.1-0.20220216075429-46c79de3311f
 	github.com/go-chassis/foundation v0.4.0
 	github.com/go-chassis/go-archaius v1.5.4
 	github.com/go-chassis/go-chassis-extension/protocol/grpc v0.0.0-20220208081606-003611df45da
diff --git a/go.sum b/go.sum
index d528282..b81c646 100644
--- a/go.sum
+++ b/go.sum
@@ -179,8 +179,8 @@
 github.com/go-chassis/cari v0.4.0/go.mod h1:av/19fqwEP4eOC8unL/z67AAbFDwXUCko6SKa4Avrd8=
 github.com/go-chassis/cari v0.5.0/go.mod h1:av/19fqwEP4eOC8unL/z67AAbFDwXUCko6SKa4Avrd8=
 github.com/go-chassis/cari v0.5.1-0.20210823023004-74041d1363c4/go.mod h1:av/19fqwEP4eOC8unL/z67AAbFDwXUCko6SKa4Avrd8=
-github.com/go-chassis/cari v0.5.1-0.20220121124340-cbf87fbeb1d7 h1:21IJymFsx+TEMY+KwqfyB/no/RpEhN9jld8uALvkU68=
-github.com/go-chassis/cari v0.5.1-0.20220121124340-cbf87fbeb1d7/go.mod h1:tKTzguHTGohMCgkcWNZWtA4TwfcsJrIXpfYxsQtb7uw=
+github.com/go-chassis/cari v0.5.1-0.20220216075429-46c79de3311f h1:NQqJFcsvoCMuRmgj5A6LsJ1nNkg6DkMQpEZy+eZjkOk=
+github.com/go-chassis/cari v0.5.1-0.20220216075429-46c79de3311f/go.mod h1:tKTzguHTGohMCgkcWNZWtA4TwfcsJrIXpfYxsQtb7uw=
 github.com/go-chassis/foundation v0.2.2-0.20201210043510-9f6d3de40234/go.mod h1:2PjwqpVwYEVaAldl5A58a08viH8p27pNeYaiE3ZxOBA=
 github.com/go-chassis/foundation v0.2.2/go.mod h1:2PjwqpVwYEVaAldl5A58a08viH8p27pNeYaiE3ZxOBA=
 github.com/go-chassis/foundation v0.3.0/go.mod h1:2PjwqpVwYEVaAldl5A58a08viH8p27pNeYaiE3ZxOBA=