Skip to content

Commit d23e0d4

Browse files
authored
Codecov/1.18.0 (#1316)
1 parent 9a25c2a commit d23e0d4

File tree

12 files changed

+227
-47
lines changed

12 files changed

+227
-47
lines changed

apiserver/grpcserver/discover/v1/client_access.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ func (g *DiscoverServer) Discover(server apiservice.PolarisGRPC_DiscoverServer)
163163
case apiservice.DiscoverRequest_FAULT_DETECTOR:
164164
action = metrics.ActionDiscoverFaultDetect
165165
out = g.namingServer.GetFaultDetectWithCache(ctx, in.Service)
166+
case apiservice.DiscoverRequest_SERVICE_CONTRACT:
167+
action = metrics.ActionDiscoverServiceContract
168+
out = g.namingServer.GetServiceContractWithCache(ctx, in.ServiceContract)
166169
default:
167170
out = api.NewDiscoverRoutingResponse(apimodel.Code_InvalidDiscoverResource, in.Service)
168171
}

apiserver/xdsserverv3/resource/help.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ func BuildRateLimitDescriptors(rule *traffic_manage.Rule) ([]*route.RateLimit_Ac
333333
Value: arg.GetValue().GetValue().GetValue(),
334334
})
335335
case apitraffic.MatchArgument_QUERY:
336-
queryParameterValueMatch := BuildRateLimitActionQueryParameterValueMatch(descriptorKey, arg.Value)
336+
queryParameterValueMatch := BuildRateLimitActionQueryParameterValueMatch(descriptorKey, arg)
337337
actions = append(actions, &route.RateLimit_Action{
338338
ActionSpecifier: &route.RateLimit_Action_QueryParameterValueMatch_{
339339
QueryParameterValueMatch: queryParameterValueMatch,
@@ -425,22 +425,22 @@ func BuildRateLimitDescriptors(rule *traffic_manage.Rule) ([]*route.RateLimit_Ac
425425
}
426426

427427
func BuildRateLimitActionQueryParameterValueMatch(key string,
428-
value *apimodel.MatchString) *route.RateLimit_Action_QueryParameterValueMatch {
428+
arg *apitraffic.MatchArgument) *route.RateLimit_Action_QueryParameterValueMatch {
429429
queryParameterValueMatch := &route.RateLimit_Action_QueryParameterValueMatch{
430430
DescriptorKey: key,
431-
DescriptorValue: value.GetValue().GetValue(),
431+
DescriptorValue: arg.GetValue().GetValue().GetValue(),
432432
ExpectMatch: wrapperspb.Bool(true),
433433
QueryParameters: []*route.QueryParameterMatcher{},
434434
}
435-
switch value.GetType() {
435+
switch arg.GetValue().GetType() {
436436
case apimodel.MatchString_EXACT:
437437
queryParameterValueMatch.QueryParameters = []*route.QueryParameterMatcher{
438438
{
439-
Name: key,
439+
Name: arg.GetKey(),
440440
QueryParameterMatchSpecifier: &route.QueryParameterMatcher_StringMatch{
441441
StringMatch: &v32.StringMatcher{
442442
MatchPattern: &v32.StringMatcher_Exact{
443-
Exact: value.GetValue().GetValue(),
443+
Exact: arg.GetValue().GetValue().GetValue(),
444444
},
445445
},
446446
},
@@ -449,13 +449,13 @@ func BuildRateLimitActionQueryParameterValueMatch(key string,
449449
case apimodel.MatchString_REGEX:
450450
queryParameterValueMatch.QueryParameters = []*route.QueryParameterMatcher{
451451
{
452-
Name: key,
452+
Name: arg.GetKey(),
453453
QueryParameterMatchSpecifier: &route.QueryParameterMatcher_StringMatch{
454454
StringMatch: &v32.StringMatcher{
455455
MatchPattern: &v32.StringMatcher_SafeRegex{
456456
SafeRegex: &v32.RegexMatcher{
457457
EngineType: &v32.RegexMatcher_GoogleRe2{},
458-
Regex: value.GetValue().GetValue(),
458+
Regex: arg.GetValue().GetValue().GetValue(),
459459
},
460460
},
461461
},

common/metrics/types.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,17 @@ func ResourceOfConfigFile(group, name string) string {
116116
}
117117

118118
const (
119-
ActionGetConfigFile = "GET_CONFIG_FILE"
120-
ActionListConfigFiles = "LIST_CONFIG_FILES"
121-
ActionListConfigGroups = "LIST_CONFIG_GROUPS"
122-
ActionPublishConfigFile = "PUBLISH_CONFIG_FILE"
123-
ActionDiscoverInstance = "DISCOVER_INSTANCE"
124-
ActionDiscoverServices = "DISCOVER_SERVICES"
125-
ActionDiscoverRouterRule = "DISCOVER_ROUTER_RULE"
126-
ActionDiscoverRateLimit = "DISCOVER_RATE_LIMIT"
127-
ActionDiscoverCircuitBreaker = "DISCOVER_CIRCUIT_BREAKER"
128-
ActionDiscoverFaultDetect = "DISCOVER_FAULT_DETECT"
119+
ActionGetConfigFile = "GET_CONFIG_FILE"
120+
ActionListConfigFiles = "LIST_CONFIG_FILES"
121+
ActionListConfigGroups = "LIST_CONFIG_GROUPS"
122+
ActionPublishConfigFile = "PUBLISH_CONFIG_FILE"
123+
ActionDiscoverInstance = "DISCOVER_INSTANCE"
124+
ActionDiscoverServices = "DISCOVER_SERVICES"
125+
ActionDiscoverRouterRule = "DISCOVER_ROUTER_RULE"
126+
ActionDiscoverRateLimit = "DISCOVER_RATE_LIMIT"
127+
ActionDiscoverCircuitBreaker = "DISCOVER_CIRCUIT_BREAKER"
128+
ActionDiscoverFaultDetect = "DISCOVER_FAULT_DETECT"
129+
ActionDiscoverServiceContract = "DISCOVER_SERVICE_CONTRACT"
129130
)
130131

131132
type ClientDiscoverMetric struct {

common/model/contract.go

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import (
2222
"time"
2323

2424
apiservice "github.com/polarismesh/specification/source/go/api/v1/service_manage"
25+
26+
commontime "github.com/polarismesh/polaris/common/time"
2527
)
2628

2729
type ServiceContract struct {
@@ -89,12 +91,34 @@ func (e *EnrichServiceContract) Format() {
8991
}
9092
}
9193

92-
type ServiceContractView struct {
93-
*ServiceContract
94-
// 接口描述信息
95-
Interfaces []*InterfaceDescriptor
96-
ClientInterfaces map[string]*InterfaceDescriptor
97-
ManualInterfaces map[string]*InterfaceDescriptor
94+
func (e *EnrichServiceContract) ToSpec() *apiservice.ServiceContract {
95+
interfaces := make([]*apiservice.InterfaceDescriptor, 0, len(e.Interfaces))
96+
for i := range e.Interfaces {
97+
item := e.Interfaces[i]
98+
interfaces = append(interfaces, &apiservice.InterfaceDescriptor{
99+
Id: item.ID,
100+
Path: item.Path,
101+
Method: item.Method,
102+
Source: item.Source,
103+
Content: item.Content,
104+
Revision: item.Revision,
105+
Ctime: commontime.Time2String(item.CreateTime),
106+
Mtime: commontime.Time2String(item.ModifyTime),
107+
})
108+
}
109+
return &apiservice.ServiceContract{
110+
Id: e.ID,
111+
Name: e.Name,
112+
Namespace: e.Namespace,
113+
Service: e.Service,
114+
Protocol: e.Protocol,
115+
Version: e.Version,
116+
Revision: e.Revision,
117+
Content: e.Content,
118+
Ctime: commontime.Time2String(e.CreateTime),
119+
Mtime: commontime.Time2String(e.ModifyTime),
120+
Interfaces: interfaces,
121+
}
98122
}
99123

100124
func (s *ServiceContract) GetResourceName() string {

config/client_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ func TestServer_GetConfigGroupsWithCache(t *testing.T) {
694694
// 同一个 revision 查询
695695
rsp = testSuit.ConfigServer().GetConfigGroupsWithCache(testSuit.DefaultCtx, &apiconfig.ClientConfigFileInfo{
696696
Namespace: wrapperspb.String("ns-0"),
697-
Md5: wrapperspb.String(rsp.GetRevision()),
697+
Md5: wrapperspb.String(rsp.GetRevision()),
698698
})
699699
assert.Equal(t, uint32(apimodel.Code_DataNoChange), rsp.Code, rsp.Info)
700700

config/server.go

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,40 +89,53 @@ type Server struct {
8989
// Initialize 初始化配置中心模块
9090
func Initialize(ctx context.Context, config Config, s store.Store, cacheMgr cachetypes.CacheManager,
9191
namespaceOperator namespace.NamespaceOperateServer) error {
92-
if !config.Open {
93-
originServer.initialized = true
92+
if originServer.initialized {
9493
return nil
9594
}
95+
proxySvr, originSvr, err := doInitialize(ctx, config, s, cacheMgr, namespaceOperator)
96+
if err != nil {
97+
return err
98+
}
99+
originServer = originSvr
100+
server = proxySvr
101+
return nil
102+
}
96103

97-
if originServer.initialized {
98-
return nil
104+
func doInitialize(ctx context.Context, config Config, s store.Store, cacheMgr cachetypes.CacheManager,
105+
namespaceOperator namespace.NamespaceOperateServer) (ConfigCenterServer, *Server, error) {
106+
if !config.Open {
107+
originServer.initialized = true
108+
return nil, nil, nil
99109
}
100110

111+
var proxySvr ConfigCenterServer
112+
originSvr := &Server{}
113+
101114
if err := cacheMgr.OpenResourceCache(configCacheEntries...); err != nil {
102-
return err
115+
return nil, nil, err
103116
}
104117
err := originServer.initialize(ctx, config, s, namespaceOperator, cacheMgr)
105118
if err != nil {
106-
return err
119+
return nil, nil, err
107120
}
108121

109122
// 需要返回包装代理的 DiscoverServer
110123
order := config.Interceptors
111124
for i := range order {
112125
factory, exist := serverProxyFactories[order[i]]
113126
if !exist {
114-
return fmt.Errorf("name(%s) not exist in serverProxyFactories", order[i])
127+
return nil, nil, fmt.Errorf("name(%s) not exist in serverProxyFactories", order[i])
115128
}
116129

117-
proxySvr, err := factory(originServer, server)
130+
tmpSvr, err := factory(originServer, server)
118131
if err != nil {
119-
return err
132+
return nil, nil, err
120133
}
121-
server = proxySvr
134+
proxySvr = tmpSvr
122135
}
123136

124-
originServer.initialized = true
125-
return nil
137+
originSvr.initialized = true
138+
return proxySvr, originSvr, nil
126139
}
127140

128141
func (s *Server) initialize(ctx context.Context, config Config, ss store.Store,

config/server_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ import (
2222
"testing"
2323

2424
"github.com/golang/mock/gomock"
25+
"github.com/stretchr/testify/assert"
26+
2527
mockcache "github.com/polarismesh/polaris/cache/mock"
2628
"github.com/polarismesh/polaris/common/eventhub"
2729
mockstore "github.com/polarismesh/polaris/store/mock"
28-
"github.com/stretchr/testify/assert"
2930
)
3031

3132
func Test_Initialize(t *testing.T) {
@@ -37,20 +38,19 @@ func Test_Initialize(t *testing.T) {
3738

3839
t.Cleanup(func() {
3940
ctrl.Finish()
40-
originServer.watchCenter.Close()
41-
originServer.initialized = false
42-
originServer = nil
43-
server = nil
4441
})
4542

4643
cacheMgr.EXPECT().OpenResourceCache(gomock.Any()).Return(nil).AnyTimes()
4744
cacheMgr.EXPECT().ConfigFile().Return(nil).AnyTimes()
4845
cacheMgr.EXPECT().Gray().Return(nil).AnyTimes()
4946
cacheMgr.EXPECT().ConfigGroup().Return(nil).AnyTimes()
5047

51-
err := Initialize(context.Background(), Config{
48+
proxySvr, originSvr, err := doInitialize(context.Background(), Config{
5249
Open: true,
5350
}, mockStore, cacheMgr, nil)
5451
assert.NoError(t, err)
55-
assert.NotNil(t, originServer)
52+
assert.NotNil(t, originSvr)
53+
assert.NotNil(t, proxySvr)
54+
55+
originSvr.watchCenter.Close()
5656
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ require (
8282

8383
require (
8484
github.com/DATA-DOG/go-sqlmock v1.5.0
85-
github.com/polarismesh/specification v1.4.2-alpha.6
85+
github.com/polarismesh/specification v1.4.2-alpha.7
8686
)
8787

8888
require (

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,8 +323,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
323323
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
324324
github.com/polarismesh/go-restful-openapi/v2 v2.0.0-20220928152401-083908d10219 h1:XnFyNUWnciM6zgXaz6tm+Egs35rhoD0KGMmKh4gCdi0=
325325
github.com/polarismesh/go-restful-openapi/v2 v2.0.0-20220928152401-083908d10219/go.mod h1:4WhwBysTom9Eoy0hQ4W69I0FmO+T0EpjEW9/5sgHoUk=
326-
github.com/polarismesh/specification v1.4.2-alpha.6 h1:EUhATwFjb4lGIrI/UEoaVdyLWpjZrOuDTQn4S12QE10=
327-
github.com/polarismesh/specification v1.4.2-alpha.6/go.mod h1:rDvMMtl5qebPmqiBLNa5Ps0XtwkP31ZLirbH4kXA0YU=
326+
github.com/polarismesh/specification v1.4.2-alpha.7 h1:4BhlGD/xJ/092cuu/T5BgwAMwlPFg8vIMfBNMRyEtak=
327+
github.com/polarismesh/specification v1.4.2-alpha.7/go.mod h1:rDvMMtl5qebPmqiBLNa5Ps0XtwkP31ZLirbH4kXA0YU=
328328
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
329329
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
330330
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=

service/api_v1.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,8 @@ type ClientServer interface {
180180
GetCircuitBreakerWithCache(ctx context.Context, req *apiservice.Service) *apiservice.DiscoverResponse
181181
// GetFaultDetectWithCache User Client Get FaultDetect Rule Information
182182
GetFaultDetectWithCache(ctx context.Context, req *apiservice.Service) *apiservice.DiscoverResponse
183+
// GetServiceContractWithCache User Client Get ServiceContract Rule Information
184+
GetServiceContractWithCache(ctx context.Context, req *apiservice.ServiceContract) *apiservice.DiscoverResponse
183185
// UpdateInstance update one instance by client
184186
UpdateInstance(ctx context.Context, req *apiservice.Instance) *apiservice.Response
185187
// ReportServiceContract client report service_contract

0 commit comments

Comments
 (0)