data = 1;
+}
+
+message HistoryItems {
+ repeated HistoryCaseIdentity data = 1;
+}
+
+message HistoryCaseIdentity {
+ string suite = 1;
+ string testcase = 2;
+ string historySuiteName = 3;
+ string kind = 4;
+ string ID = 5;
+}
+
message TestCaseIdentity {
string suite = 1;
string testcase = 2;
@@ -326,6 +348,15 @@ message TestResult {
repeated TestCaseResult testCaseResult = 3;
}
+message HistoryTestResult {
+ string message = 1;
+ string error = 2;
+ repeated TestCaseResult testCaseResult = 3;
+ HistoryTestCase data = 4;
+ google.protobuf.Timestamp createTime = 5;
+}
+
+
message HelloReply {
string message = 1;
string error = 2;
@@ -357,6 +388,19 @@ message TestCase {
Response response = 4;
}
+message HistoryTestCase {
+ string caseName = 1;
+ string suiteName = 2;
+ string historySuiteName = 3;
+ google.protobuf.Timestamp createTime = 4;
+ repeated Pair suiteParam = 5;
+ APISpec suiteSpec = 6;
+ string suiteApi = 7;
+ Request request = 8;
+ Response response = 9;
+ string ID = 10;
+}
+
message Request {
string api = 1;
string method = 2;
@@ -462,18 +506,18 @@ message Secret {
}
message ExtensionStatus {
- bool ready = 1;
- bool readOnly = 2;
- string version = 3;
- string message = 4;
+ bool ready = 1;
+ bool readOnly = 2;
+ string version = 3;
+ string message = 4;
}
message PProfRequest {
- string name = 1;
+ string name = 1;
}
message PProfData {
- bytes data = 1;
+ bytes data = 1;
}
message Empty {
diff --git a/pkg/server/server.swagger.json b/pkg/server/server.swagger.json
index 3e997fc98..e370a9c1a 100644
--- a/pkg/server/server.swagger.json
+++ b/pkg/server/server.swagger.json
@@ -500,9 +500,77 @@
"tags": [
"Runner"
]
- },
- "put": {
- "operationId": "Runner_UpdateSecret",
+ }
+ },
+ "/server.Runner/GetHistorySuites": {
+ "post": {
+ "summary": "history test related",
+ "operationId": "Runner_GetHistorySuites",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHistorySuites"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/serverEmpty"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/server.Runner/GetHistoryTestCase": {
+ "post": {
+ "operationId": "Runner_GetHistoryTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestResult"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/server.Runner/GetSecrets": {
+ "post": {
+ "summary": "secret related interfaces",
+ "operationId": "Runner_GetSecrets",
"responses": {
"200": {
"description": "A successful response.",
@@ -1656,6 +1724,114 @@
}
}
},
+ "serverHistoryCaseIdentity": {
+ "type": "object",
+ "properties": {
+ "suite": {
+ "type": "string"
+ },
+ "testcase": {
+ "type": "string"
+ },
+ "historySuiteName": {
+ "type": "string"
+ },
+ "kind": {
+ "type": "string"
+ },
+ "ID": {
+ "type": "string"
+ }
+ }
+ },
+ "serverHistoryItems": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/serverHistoryCaseIdentity"
+ }
+ }
+ }
+ },
+ "serverHistorySuites": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/serverHistoryItems"
+ }
+ }
+ }
+ },
+ "serverHistoryTestCase": {
+ "type": "object",
+ "properties": {
+ "caseName": {
+ "type": "string"
+ },
+ "suiteName": {
+ "type": "string"
+ },
+ "historySuiteName": {
+ "type": "string"
+ },
+ "createTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "suiteParam": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/serverPair"
+ }
+ },
+ "suiteSpec": {
+ "$ref": "#/definitions/serverAPISpec"
+ },
+ "suiteApi": {
+ "type": "string"
+ },
+ "request": {
+ "$ref": "#/definitions/serverRequest"
+ },
+ "response": {
+ "$ref": "#/definitions/serverResponse"
+ },
+ "ID": {
+ "type": "string"
+ }
+ }
+ },
+ "serverHistoryTestResult": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "error": {
+ "type": "string"
+ },
+ "testCaseResult": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/serverTestCaseResult"
+ }
+ },
+ "data": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ },
+ "createTime": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
"serverItems": {
"type": "object",
"properties": {
diff --git a/pkg/server/server_grpc.pb.go b/pkg/server/server_grpc.pb.go
index 2cb5ad4ee..0507ee0e2 100644
--- a/pkg/server/server_grpc.pb.go
+++ b/pkg/server/server_grpc.pb.go
@@ -44,6 +44,11 @@ type RunnerClient interface {
DeleteTestCase(ctx context.Context, in *TestCaseIdentity, opts ...grpc.CallOption) (*HelloReply, error)
DuplicateTestCase(ctx context.Context, in *TestCaseDuplicate, opts ...grpc.CallOption) (*HelloReply, error)
GetSuggestedAPIs(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*TestCases, error)
+
+ // history test related
+ GetHistorySuites(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HistorySuites, error)
+ GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestResult, error)
+
// code generator
ListCodeGenerator(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error)
GenerateCode(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error)
@@ -246,6 +251,24 @@ func (c *runnerClient) DeleteTestCase(ctx context.Context, in *TestCaseIdentity,
return out, nil
}
+func (c *runnerClient) GetHistorySuites(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HistorySuites, error) {
+ out := new(HistorySuites)
+ err := c.cc.Invoke(ctx, "/server.Runner/GetHistorySuites", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *runnerClient) GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestResult, error) {
+ out := new(HistoryTestResult)
+ err := c.cc.Invoke(ctx, "/server.Runner/GetHistoryTestCase", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *runnerClient) DuplicateTestCase(ctx context.Context, in *TestCaseDuplicate, opts ...grpc.CallOption) (*HelloReply, error) {
out := new(HelloReply)
err := c.cc.Invoke(ctx, "/server.Runner/DuplicateTestCase", in, out, opts...)
@@ -492,6 +515,11 @@ type RunnerServer interface {
DeleteTestCase(context.Context, *TestCaseIdentity) (*HelloReply, error)
DuplicateTestCase(context.Context, *TestCaseDuplicate) (*HelloReply, error)
GetSuggestedAPIs(context.Context, *TestSuiteIdentity) (*TestCases, error)
+
+ // history test related
+ GetHistorySuites(context.Context, *Empty) (*HistorySuites, error)
+ GetHistoryTestCase(context.Context, *HistoryTestCase) (*HistoryTestResult, error)
+
// code generator
ListCodeGenerator(context.Context, *Empty) (*SimpleList, error)
GenerateCode(context.Context, *CodeGenerateRequest) (*CommonResult, error)
@@ -573,6 +601,12 @@ func (UnimplementedRunnerServer) UpdateTestCase(context.Context, *TestCaseWithSu
func (UnimplementedRunnerServer) DeleteTestCase(context.Context, *TestCaseIdentity) (*HelloReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteTestCase not implemented")
}
+func (UnimplementedRunnerServer) GetHistorySuites(context.Context, *Empty) (*HistorySuites, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetHistorySuites not implemented")
+}
+func (UnimplementedRunnerServer) GetHistoryTestCase(context.Context, *HistoryTestCase) (*HistoryTestResult, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetHistoryTestCase not implemented")
+}
func (UnimplementedRunnerServer) DuplicateTestCase(context.Context, *TestCaseDuplicate) (*HelloReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method DuplicateTestCase not implemented")
}
@@ -948,6 +982,42 @@ func _Runner_DeleteTestCase_Handler(srv interface{}, ctx context.Context, dec fu
return interceptor(ctx, in, info, handler)
}
+func _Runner_GetHistorySuites_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(Empty)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RunnerServer).GetHistorySuites(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/server.Runner/GetHistorySuites",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RunnerServer).GetHistorySuites(ctx, req.(*Empty))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Runner_GetHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HistoryTestCase)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RunnerServer).GetHistoryTestCase(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/server.Runner/GetHistoryTestCase",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RunnerServer).GetHistoryTestCase(ctx, req.(*HistoryTestCase))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Runner_DuplicateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(TestCaseDuplicate)
if err := dec(in); err != nil {
@@ -1419,6 +1489,14 @@ var Runner_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteTestCase",
Handler: _Runner_DeleteTestCase_Handler,
},
+ {
+ MethodName: "GetHistorySuites",
+ Handler: _Runner_GetHistorySuites_Handler,
+ },
+ {
+ MethodName: "GetHistoryTestCase",
+ Handler: _Runner_GetHistoryTestCase_Handler,
+ },
{
MethodName: "DuplicateTestCase",
Handler: _Runner_DuplicateTestCase_Handler,
diff --git a/pkg/testing/case.go b/pkg/testing/case.go
index aaecc9bb7..9ca251fc9 100644
--- a/pkg/testing/case.go
+++ b/pkg/testing/case.go
@@ -18,6 +18,7 @@ package testing
import (
"encoding/json"
"sort"
+ "time"
"gopkg.in/yaml.v3"
)
@@ -39,6 +40,31 @@ type APISpec struct {
Metric *Metric `yaml:"metric,omitempty" json:"metric,omitempty"`
}
+type HistoryTestSuite struct {
+ HistorySuiteName string `yaml:"name,omitempty" json:"name,omitempty"`
+ Items []HistoryTestCase `yaml:"items,omitempty" json:"items,omitempty"`
+}
+
+type HistoryTestCase struct {
+ ID string `yaml:"id,omitempty" json:"id,omitempty"`
+ CaseName string `yaml:"caseName,omitempty" json:"name,omitempty"`
+ SuiteName string `yaml:"suiteName,omitempty" json:"suiteName,omitempty"`
+ HistorySuiteName string `yaml:"historySuiteName,omitempty" json:"historySuiteName,omitempty"`
+ CreateTime time.Time `yaml:"createTime,omitempty" json:"createTime,omitempty"`
+ SuiteAPI string `yaml:"api,omitempty" json:"api,omitempty"`
+ SuiteSpec APISpec `yaml:"spec,omitempty" json:"spec,omitempty"`
+ SuiteParam map[string]string `yaml:"param,omitempty" json:"param,omitempty"`
+ Data TestCase `yaml:"data,omitempty" json:"data,omitempty"`
+}
+
+type HistoryTestResult struct {
+ Message string `yaml:"message,omitempty" json:"message,omitempty"`
+ Error string `yaml:"error,omitempty" json:"error,omitempty"`
+ TestCaseResult []TestCaseResult `yaml:"testCaseResult,omitempty" json:"testCaseResult,omitempty"`
+ Data HistoryTestCase `yaml:"data,omitempty" json:"data,omitempty"`
+ CreateTime time.Time `yaml:"createTime,omitempty" json:"createTime,omitempty"`
+}
+
type RPCDesc struct {
ImportPath []string `yaml:"import,omitempty" json:"import,omitempty"`
ServerReflection bool `yaml:"serverReflection,omitempty" json:"serverReflection,omitempty"`
@@ -234,3 +260,18 @@ type Verifier struct {
MaxLength int `yaml:"maxLength"`
MinLength int `yaml:"minLength"`
}
+
+type TestResult struct {
+ Message string `yaml:"message,omitempty" json:"message,omitempty"`
+ Error string `yaml:"error,omitempty" json:"error,omitempty"`
+ TestCaseResult []*TestCaseResult `yaml:"testCaseResult,omitempty" json:"testCaseResult,omitempty"`
+}
+
+type TestCaseResult struct {
+ StatusCode int `yaml:"statusCode,omitempty" json:"statusCode,omitempty"`
+ Body string `yaml:"body,omitempty" json:"body,omitempty"`
+ Header map[string]string `yaml:"header,omitempty" json:"header,omitempty"`
+ Error string `yaml:"error,omitempty" json:"error,omitempty"`
+ Id string `yaml:"id,omitempty" json:"id,omitempty"`
+ Output string `yaml:"output,omitempty" json:"output,omitempty"`
+}
diff --git a/pkg/testing/loader.go b/pkg/testing/loader.go
index 273c9bb8f..7f9da993c 100644
--- a/pkg/testing/loader.go
+++ b/pkg/testing/loader.go
@@ -37,6 +37,10 @@ type Writer interface {
UpdateTestCase(suite string, testcase TestCase) (err error)
DeleteTestCase(suite, testcase string) (err error)
+ ListHistoryTestSuite() (suites []HistoryTestSuite, err error)
+ CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error)
+ GetHistoryTestCase(id string) (historyTestCase HistoryTestResult, err error)
+
ListTestSuite() (suites []TestSuite, err error)
GetTestSuite(name string, full bool) (suite TestSuite, err error)
GetTestSuiteYaml(name string) (testSuiteYaml []byte, err error)
diff --git a/pkg/testing/loader_file.go b/pkg/testing/loader_file.go
index cd3107f95..6813154db 100644
--- a/pkg/testing/loader_file.go
+++ b/pkg/testing/loader_file.go
@@ -429,6 +429,18 @@ func (l *fileLoader) DeleteTestCase(suiteName, testcase string) (err error) {
return
}
+func (l *fileLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error) { // always be okay
+ return
+}
+
+func (l *fileLoader) ListHistoryTestSuite() (suites []HistoryTestSuite, err error) {
+ return
+}
+
+func (l *fileLoader) GetHistoryTestCase(id string) (testcase HistoryTestResult, err error) {
+ return
+}
+
func (l *fileLoader) Verify() (readOnly bool, err error) {
// always be okay
return
diff --git a/pkg/testing/loader_non.go b/pkg/testing/loader_non.go
index 05d768833..0544955ec 100644
--- a/pkg/testing/loader_non.go
+++ b/pkg/testing/loader_non.go
@@ -100,6 +100,18 @@ func (l *nonLoader) DeleteTestCase(suiteName, testcase string) (err error) {
return
}
+func (l *nonLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error) {
+ return
+}
+
+func (l *nonLoader) ListHistoryTestSuite()(suites []HistoryTestSuite, err error) {
+ return
+}
+
+func (l *nonLoader) GetHistoryTestCase(id string) (testcase HistoryTestResult, err error) {
+ return
+}
+
func (l *nonLoader) Verify() (readOnly bool, err error) {
// always be okay
return
diff --git a/pkg/testing/remote/converter.go b/pkg/testing/remote/converter.go
index 0daf4f600..d3925ebf6 100644
--- a/pkg/testing/remote/converter.go
+++ b/pkg/testing/remote/converter.go
@@ -18,9 +18,10 @@ package remote
import (
"fmt"
-
server "github.com/linuxsuren/api-testing/pkg/server"
"github.com/linuxsuren/api-testing/pkg/testing"
+ "google.golang.org/protobuf/types/known/timestamppb"
+ "time"
)
func ConvertToNormalTestSuite(suite *TestSuite) (result *testing.TestSuite) {
@@ -31,8 +32,19 @@ func ConvertToNormalTestSuite(suite *TestSuite) (result *testing.TestSuite) {
Spec: ConvertToNormalTestSuiteSpec(suite.Spec),
}
- for _, testcase := range suite.Items {
- result.Items = append(result.Items, ConvertToNormalTestCase(testcase))
+ for _, testCase := range suite.Items {
+ result.Items = append(result.Items, ConvertToNormalTestCase(testCase))
+ }
+ return
+}
+
+func ConvertToNormalHistoryTestSuite(suite *HistoryTestSuite) (result *testing.HistoryTestSuite) {
+ result = &testing.HistoryTestSuite{
+ HistorySuiteName: suite.HistorySuiteName,
+ }
+
+ for _, historyTestCase := range suite.Items {
+ result.Items = append(result.Items, ConvertToNormalHistoryTestCase(historyTestCase))
}
return
}
@@ -126,6 +138,38 @@ func ConvertToNormalTestCase(testcase *server.TestCase) (result testing.TestCase
return
}
+func ConvertToNormalHistoryTestCase(testcase *server.HistoryTestCase) (result testing.HistoryTestCase) {
+ result = testing.HistoryTestCase{
+ ID: testcase.ID,
+ SuiteName: testcase.SuiteName,
+ CaseName: testcase.CaseName,
+ SuiteAPI: testcase.SuiteApi,
+ SuiteParam: pairToMap(testcase.SuiteParam),
+ SuiteSpec: ConvertToNormalTestSuiteSpec(testcase.SuiteSpec),
+ }
+ if testcase.Request != nil {
+ result.Data.Request = testing.Request{
+ API: testcase.Request.Api,
+ Method: testcase.Request.Method,
+ Body: testing.NewRequestBody(testcase.Request.Body),
+ Header: pairToMap(testcase.Request.Header),
+ Query: pairToMapInter(testcase.Request.Query),
+ Form: pairToMap(testcase.Request.Form),
+ }
+ }
+ if testcase.Response != nil {
+ result.Data.Expect = testing.Response{
+ Body: testcase.Response.Body,
+ StatusCode: int(testcase.Response.StatusCode),
+ Schema: testcase.Response.Schema,
+ Verify: testcase.Response.Verify,
+ Header: pairToMap(testcase.Response.Header),
+ BodyFieldsExpect: pairToInterMap(testcase.Response.BodyFieldsExpect),
+ }
+ }
+ return
+}
+
func ConvertToGRPCTestCase(testcase testing.TestCase) (result *server.TestCase) {
result = &server.TestCase{
Name: testcase.Name,
@@ -149,6 +193,35 @@ func ConvertToGRPCTestCase(testcase testing.TestCase) (result *server.TestCase)
return
}
+func ConvertToGRPCHistoryTestCase(testcase testing.TestCase, suite *testing.TestSuite) (result *server.HistoryTestCase) {
+ result = &server.HistoryTestCase{
+ CaseName: testcase.Name,
+ SuiteName: suite.Name,
+ SuiteApi: suite.API,
+ SuiteParam: mapToPair(suite.Param),
+
+ Request: &server.Request{
+ Api: testcase.Request.API,
+ Method: testcase.Request.Method,
+ Body: testcase.Request.Body.String(),
+ Header: mapToPair(testcase.Request.Header),
+ Query: mapInterToPair(testcase.Request.Query),
+ Form: mapToPair(testcase.Request.Form),
+ },
+
+ Response: &server.Response{
+ Body: testcase.Expect.Body,
+ StatusCode: int32(testcase.Expect.StatusCode),
+ Schema: testcase.Expect.Schema,
+ Verify: testcase.Expect.Verify,
+ Header: mapToPair(testcase.Expect.Header),
+ BodyFieldsExpect: mapInterToPair(testcase.Expect.BodyFieldsExpect),
+ },
+ }
+ result.SuiteSpec = server.ToGRPCTestSuiteSpec(suite.Spec)
+ return
+}
+
func mapToPair(data map[string]string) (pairs []*server.Pair) {
pairs = make([]*server.Pair, 0)
for k, v := range data {
@@ -194,3 +267,49 @@ func pairToInterMap(pairs []*server.Pair) (data map[string]interface{}) {
}
return
}
+
+func ConvertToGRPCTestCaseResult(testCaseResult testing.TestCaseResult, testSuite *testing.TestSuite) (result *server.HistoryTestResult) {
+ result = &server.HistoryTestResult{
+ Error: testCaseResult.Error,
+ CreateTime: timestamppb.New(time.Now()),
+ }
+
+ res := &server.TestCaseResult{
+ StatusCode: int32(testCaseResult.StatusCode),
+ Body: testCaseResult.Body,
+ Header: mapToPair(testCaseResult.Header),
+ Error: testCaseResult.Error,
+ Id: testCaseResult.Id,
+ Output: testCaseResult.Output,
+ }
+ result.TestCaseResult = append(result.TestCaseResult, res)
+
+ for _, testCase := range testSuite.Items {
+ result.Data = ConvertToGRPCHistoryTestCase(testCase, testSuite)
+ }
+
+ return result
+}
+
+func ConvertToNormalTestCaseResult(testResult *server.HistoryTestResult) (result testing.HistoryTestResult) {
+ result = testing.HistoryTestResult{
+ Message: testResult.Message,
+ Error: testResult.Error,
+ CreateTime: testResult.CreateTime.AsTime(),
+ }
+
+ for _, testCaseResult := range testResult.TestCaseResult {
+ testCaseResult := testing.TestCaseResult{
+ StatusCode: int(testCaseResult.StatusCode),
+ Body: testCaseResult.Body,
+ Header: pairToMap(testCaseResult.Header),
+ Error: testCaseResult.Error,
+ Id: testCaseResult.Id,
+ Output: testCaseResult.Output,
+ }
+ result.TestCaseResult = append(result.TestCaseResult, testCaseResult)
+ }
+ result.Data = ConvertToNormalHistoryTestCase(testResult.Data)
+
+ return result
+}
diff --git a/pkg/testing/remote/grpc_store.go b/pkg/testing/remote/grpc_store.go
index 94f7d1b4f..9cb33a5eb 100644
--- a/pkg/testing/remote/grpc_store.go
+++ b/pkg/testing/remote/grpc_store.go
@@ -119,6 +119,17 @@ func (g *gRPCLoader) GetTestCase(suite, name string) (testcase testing.TestCase,
return
}
+func (g *gRPCLoader) GetHistoryTestCase(id string) (result testing.HistoryTestResult, err error) {
+ var historyTestResult *server.HistoryTestResult
+ historyTestResult, err = g.client.GetHistoryTestCase(g.ctx, &server.HistoryTestCase{
+ ID: id,
+ })
+ if err == nil && historyTestResult != nil {
+ result = ConvertToNormalTestCaseResult(historyTestResult)
+ }
+ return
+}
+
func (g *gRPCLoader) CreateTestCase(suite string, testcase testing.TestCase) (err error) {
payload := ConvertToGRPCTestCase(testcase)
payload.SuiteName = suite
@@ -141,6 +152,23 @@ func (g *gRPCLoader) DeleteTestCase(suite, testcase string) (err error) {
return
}
+func (g *gRPCLoader) CreateHistoryTestCase(testcaseResult testing.TestCaseResult, testSuite *testing.TestSuite) (err error) {
+ payload := ConvertToGRPCTestCaseResult(testcaseResult, testSuite)
+ _, err = g.client.CreateTestCaseHistory(g.ctx, payload)
+ return
+}
+
+func (g *gRPCLoader) ListHistoryTestSuite() (suites []testing.HistoryTestSuite, err error) {
+ var items *HistoryTestSuites
+ items, err = g.client.ListHistoryTestSuite(g.ctx, &server.Empty{})
+ if err == nil && items != nil {
+ for _, item := range items.Data {
+ suites = append(suites, *ConvertToNormalHistoryTestSuite(item))
+ }
+ }
+ return
+}
+
func (g *gRPCLoader) ListTestSuite() (suites []testing.TestSuite, err error) {
var items *TestSuites
items, err = g.client.ListTestSuite(g.ctx, &server.Empty{})
diff --git a/pkg/testing/remote/loader.pb.go b/pkg/testing/remote/loader.pb.go
index 09d1e63ea..7dbecf54f 100644
--- a/pkg/testing/remote/loader.pb.go
+++ b/pkg/testing/remote/loader.pb.go
@@ -155,116 +155,6 @@ func (x *TestSuite) GetFull() bool {
return false
}
-type Configs struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Data []*Config `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
-}
-
-func (x *Configs) Reset() {
- *x = Configs{}
- if protoimpl.UnsafeEnabled {
- mi := &file_pkg_testing_remote_loader_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Configs) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Configs) ProtoMessage() {}
-
-func (x *Configs) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_testing_remote_loader_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Configs.ProtoReflect.Descriptor instead.
-func (*Configs) Descriptor() ([]byte, []int) {
- return file_pkg_testing_remote_loader_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Configs) GetData() []*Config {
- if x != nil {
- return x.Data
- }
- return nil
-}
-
-type Config struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
- Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
-}
-
-func (x *Config) Reset() {
- *x = Config{}
- if protoimpl.UnsafeEnabled {
- mi := &file_pkg_testing_remote_loader_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Config) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Config) ProtoMessage() {}
-
-func (x *Config) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_testing_remote_loader_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Config.ProtoReflect.Descriptor instead.
-func (*Config) Descriptor() ([]byte, []int) {
- return file_pkg_testing_remote_loader_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *Config) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-func (x *Config) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-func (x *Config) GetDescription() string {
- if x != nil {
- return x.Description
- }
- return ""
-}
-
var File_pkg_testing_remote_loader_proto protoreflect.FileDescriptor
var file_pkg_testing_remote_loader_proto_rawDesc = []byte{
@@ -287,99 +177,70 @@ var file_pkg_testing_remote_loader_proto_rawDesc = []byte{
0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73,
0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04,
0x66, 0x75, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c,
- 0x22, 0x2d, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x64,
- 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
- 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
- 0x54, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xc7, 0x05, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72,
- 0x12, 0x34, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74,
- 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
- 0x1a, 0x12, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
- 0x69, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
- 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x0d, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a,
- 0x0c, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e,
- 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
- 0x1a, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
- 0x69, 0x74, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
+ 0x32, 0x97, 0x05, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0d, 0x4c,
+ 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x72, 0x65,
+ 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22,
+ 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53,
+ 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54,
0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x72, 0x65,
0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x00,
- 0x12, 0x35, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
+ 0x12, 0x39, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54,
- 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
- 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00,
- 0x12, 0x33, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
- 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74,
- 0x43, 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74,
- 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x55, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74,
- 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
- 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x50,
- 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50,
- 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32,
- 0x96, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x0e,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x00,
- 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x00,
- 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
- 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
- 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65,
- 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00,
- 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
- 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
- 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x32, 0x9e, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65,
- 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
- 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x09, 0x47, 0x65,
- 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x0e, 0x2e, 0x72, 0x65,
- 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x36, 0x0a,
- 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x2e,
- 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x3a, 0x0a,
- 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d,
- 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74,
- 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72,
- 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70,
- 0x6b, 0x67, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74,
- 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11,
+ 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74,
+ 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+ 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
+ 0x73, 0x65, 0x73, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0e, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a,
+ 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
+ 0x12, 0x33, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12,
+ 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
+ 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a,
+ 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12,
+ 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+ 0x22, 0x00, 0x12, 0x32, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x0d, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12,
+ 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50,
+ 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x96, 0x02, 0x0a, 0x0d, 0x53,
+ 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x09,
+ 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47,
+ 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69,
+ 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x65, 0x73,
+ 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
}
var (
@@ -398,79 +259,62 @@ var file_pkg_testing_remote_loader_proto_msgTypes = make([]protoimpl.MessageInfo
var file_pkg_testing_remote_loader_proto_goTypes = []interface{}{
(*TestSuites)(nil), // 0: remote.TestSuites
(*TestSuite)(nil), // 1: remote.TestSuite
- (*Configs)(nil), // 2: remote.Configs
- (*Config)(nil), // 3: remote.Config
- (*server.Pair)(nil), // 4: server.Pair
- (*server.APISpec)(nil), // 5: server.APISpec
- (*server.TestCase)(nil), // 6: server.TestCase
- (*server.Empty)(nil), // 7: server.Empty
- (*server.PProfRequest)(nil), // 8: server.PProfRequest
- (*server.Secret)(nil), // 9: server.Secret
- (*server.SimpleName)(nil), // 10: server.SimpleName
- (*server.TestCases)(nil), // 11: server.TestCases
- (*server.Version)(nil), // 12: server.Version
- (*server.ExtensionStatus)(nil), // 13: server.ExtensionStatus
- (*server.PProfData)(nil), // 14: server.PProfData
- (*server.Secrets)(nil), // 15: server.Secrets
- (*server.CommonResult)(nil), // 16: server.CommonResult
+ (*server.Pair)(nil), // 2: server.Pair
+ (*server.APISpec)(nil), // 3: server.APISpec
+ (*server.TestCase)(nil), // 4: server.TestCase
+ (*server.Empty)(nil), // 5: server.Empty
+ (*server.PProfRequest)(nil), // 6: server.PProfRequest
+ (*server.Secret)(nil), // 7: server.Secret
+ (*server.TestCases)(nil), // 8: server.TestCases
+ (*server.ExtensionStatus)(nil), // 9: server.ExtensionStatus
+ (*server.PProfData)(nil), // 10: server.PProfData
+ (*server.Secrets)(nil), // 11: server.Secrets
+ (*server.CommonResult)(nil), // 12: server.CommonResult
}
var file_pkg_testing_remote_loader_proto_depIdxs = []int32{
1, // 0: remote.TestSuites.data:type_name -> remote.TestSuite
- 4, // 1: remote.TestSuite.param:type_name -> server.Pair
- 5, // 2: remote.TestSuite.spec:type_name -> server.APISpec
- 6, // 3: remote.TestSuite.items:type_name -> server.TestCase
- 3, // 4: remote.Configs.data:type_name -> remote.Config
- 7, // 5: remote.Loader.ListTestSuite:input_type -> server.Empty
- 1, // 6: remote.Loader.CreateTestSuite:input_type -> remote.TestSuite
- 1, // 7: remote.Loader.GetTestSuite:input_type -> remote.TestSuite
- 1, // 8: remote.Loader.UpdateTestSuite:input_type -> remote.TestSuite
- 1, // 9: remote.Loader.DeleteTestSuite:input_type -> remote.TestSuite
- 1, // 10: remote.Loader.ListTestCases:input_type -> remote.TestSuite
- 6, // 11: remote.Loader.CreateTestCase:input_type -> server.TestCase
- 6, // 12: remote.Loader.GetTestCase:input_type -> server.TestCase
- 6, // 13: remote.Loader.UpdateTestCase:input_type -> server.TestCase
- 6, // 14: remote.Loader.DeleteTestCase:input_type -> server.TestCase
- 7, // 15: remote.Loader.GetVersion:input_type -> server.Empty
- 7, // 16: remote.Loader.Verify:input_type -> server.Empty
- 8, // 17: remote.Loader.PProf:input_type -> server.PProfRequest
- 9, // 18: remote.SecretService.GetSecret:input_type -> server.Secret
- 7, // 19: remote.SecretService.GetSecrets:input_type -> server.Empty
- 9, // 20: remote.SecretService.CreateSecret:input_type -> server.Secret
- 9, // 21: remote.SecretService.DeleteSecret:input_type -> server.Secret
- 9, // 22: remote.SecretService.UpdateSecret:input_type -> server.Secret
- 7, // 23: remote.ConfigService.GetConfigs:input_type -> server.Empty
- 10, // 24: remote.ConfigService.GetConfig:input_type -> server.SimpleName
- 3, // 25: remote.ConfigService.CreateConfig:input_type -> remote.Config
- 3, // 26: remote.ConfigService.UpdateConfig:input_type -> remote.Config
- 10, // 27: remote.ConfigService.DeleteConfig:input_type -> server.SimpleName
- 0, // 28: remote.Loader.ListTestSuite:output_type -> remote.TestSuites
- 7, // 29: remote.Loader.CreateTestSuite:output_type -> server.Empty
- 1, // 30: remote.Loader.GetTestSuite:output_type -> remote.TestSuite
- 1, // 31: remote.Loader.UpdateTestSuite:output_type -> remote.TestSuite
- 7, // 32: remote.Loader.DeleteTestSuite:output_type -> server.Empty
- 11, // 33: remote.Loader.ListTestCases:output_type -> server.TestCases
- 7, // 34: remote.Loader.CreateTestCase:output_type -> server.Empty
- 6, // 35: remote.Loader.GetTestCase:output_type -> server.TestCase
- 6, // 36: remote.Loader.UpdateTestCase:output_type -> server.TestCase
- 7, // 37: remote.Loader.DeleteTestCase:output_type -> server.Empty
- 12, // 38: remote.Loader.GetVersion:output_type -> server.Version
- 13, // 39: remote.Loader.Verify:output_type -> server.ExtensionStatus
- 14, // 40: remote.Loader.PProf:output_type -> server.PProfData
- 9, // 41: remote.SecretService.GetSecret:output_type -> server.Secret
- 15, // 42: remote.SecretService.GetSecrets:output_type -> server.Secrets
- 16, // 43: remote.SecretService.CreateSecret:output_type -> server.CommonResult
- 16, // 44: remote.SecretService.DeleteSecret:output_type -> server.CommonResult
- 16, // 45: remote.SecretService.UpdateSecret:output_type -> server.CommonResult
- 2, // 46: remote.ConfigService.GetConfigs:output_type -> remote.Configs
- 3, // 47: remote.ConfigService.GetConfig:output_type -> remote.Config
- 16, // 48: remote.ConfigService.CreateConfig:output_type -> server.CommonResult
- 16, // 49: remote.ConfigService.UpdateConfig:output_type -> server.CommonResult
- 16, // 50: remote.ConfigService.DeleteConfig:output_type -> server.CommonResult
- 28, // [28:51] is the sub-list for method output_type
- 5, // [5:28] is the sub-list for method input_type
- 5, // [5:5] is the sub-list for extension type_name
- 5, // [5:5] is the sub-list for extension extendee
- 0, // [0:5] is the sub-list for field type_name
+ 2, // 1: remote.TestSuite.param:type_name -> server.Pair
+ 3, // 2: remote.TestSuite.spec:type_name -> server.APISpec
+ 4, // 3: remote.TestSuite.items:type_name -> server.TestCase
+ 5, // 4: remote.Loader.ListTestSuite:input_type -> server.Empty
+ 1, // 5: remote.Loader.CreateTestSuite:input_type -> remote.TestSuite
+ 1, // 6: remote.Loader.GetTestSuite:input_type -> remote.TestSuite
+ 1, // 7: remote.Loader.UpdateTestSuite:input_type -> remote.TestSuite
+ 1, // 8: remote.Loader.DeleteTestSuite:input_type -> remote.TestSuite
+ 1, // 9: remote.Loader.ListTestCases:input_type -> remote.TestSuite
+ 4, // 10: remote.Loader.CreateTestCase:input_type -> server.TestCase
+ 4, // 11: remote.Loader.GetTestCase:input_type -> server.TestCase
+ 4, // 12: remote.Loader.UpdateTestCase:input_type -> server.TestCase
+ 4, // 13: remote.Loader.DeleteTestCase:input_type -> server.TestCase
+ 5, // 14: remote.Loader.Verify:input_type -> server.Empty
+ 6, // 15: remote.Loader.PProf:input_type -> server.PProfRequest
+ 7, // 16: remote.SecretService.GetSecret:input_type -> server.Secret
+ 5, // 17: remote.SecretService.GetSecrets:input_type -> server.Empty
+ 7, // 18: remote.SecretService.CreateSecret:input_type -> server.Secret
+ 7, // 19: remote.SecretService.DeleteSecret:input_type -> server.Secret
+ 7, // 20: remote.SecretService.UpdateSecret:input_type -> server.Secret
+ 0, // 21: remote.Loader.ListTestSuite:output_type -> remote.TestSuites
+ 5, // 22: remote.Loader.CreateTestSuite:output_type -> server.Empty
+ 1, // 23: remote.Loader.GetTestSuite:output_type -> remote.TestSuite
+ 1, // 24: remote.Loader.UpdateTestSuite:output_type -> remote.TestSuite
+ 5, // 25: remote.Loader.DeleteTestSuite:output_type -> server.Empty
+ 8, // 26: remote.Loader.ListTestCases:output_type -> server.TestCases
+ 5, // 27: remote.Loader.CreateTestCase:output_type -> server.Empty
+ 4, // 28: remote.Loader.GetTestCase:output_type -> server.TestCase
+ 4, // 29: remote.Loader.UpdateTestCase:output_type -> server.TestCase
+ 5, // 30: remote.Loader.DeleteTestCase:output_type -> server.Empty
+ 9, // 31: remote.Loader.Verify:output_type -> server.ExtensionStatus
+ 10, // 32: remote.Loader.PProf:output_type -> server.PProfData
+ 7, // 33: remote.SecretService.GetSecret:output_type -> server.Secret
+ 11, // 34: remote.SecretService.GetSecrets:output_type -> server.Secrets
+ 12, // 35: remote.SecretService.CreateSecret:output_type -> server.CommonResult
+ 12, // 36: remote.SecretService.DeleteSecret:output_type -> server.CommonResult
+ 12, // 37: remote.SecretService.UpdateSecret:output_type -> server.CommonResult
+ 21, // [21:38] is the sub-list for method output_type
+ 4, // [4:21] is the sub-list for method input_type
+ 4, // [4:4] is the sub-list for extension type_name
+ 4, // [4:4] is the sub-list for extension extendee
+ 0, // [0:4] is the sub-list for field type_name
}
func init() { file_pkg_testing_remote_loader_proto_init() }
@@ -503,30 +347,6 @@ func file_pkg_testing_remote_loader_proto_init() {
return nil
}
}
- file_pkg_testing_remote_loader_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Configs); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_pkg_testing_remote_loader_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Config); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
}
type x struct{}
out := protoimpl.TypeBuilder{
diff --git a/pkg/testing/remote/loader.proto b/pkg/testing/remote/loader.proto
index a0827f535..93bcd1352 100644
--- a/pkg/testing/remote/loader.proto
+++ b/pkg/testing/remote/loader.proto
@@ -19,6 +19,14 @@ service Loader {
rpc UpdateTestCase(server.TestCase) returns (server.TestCase) {}
rpc DeleteTestCase(server.TestCase) returns (server.Empty) {}
+ rpc ListHistoryTestSuite(server.Empty) returns (HistoryTestSuites) {}
+ rpc CreateTestCaseHistory(server.HistoryTestResult) returns (server.Empty) {}
+ rpc GetHistoryTestCase(server.HistoryTestCase) returns (server.HistoryTestResult) {}
+
+ rpc ListHistoryTestSuite(server.Empty) returns (HistoryTestSuites) {}
+ rpc CreateTestCaseHistory(server.HistoryTestResult) returns (server.Empty) {}
+ rpc GetHistoryTestCase(server.HistoryTestCase) returns (server.HistoryTestResult) {}
+
rpc GetVersion(server.Empty) returns (server.Version) {}
rpc Verify(server.Empty) returns (server.ExtensionStatus) {}
rpc PProf(server.PProfRequest) returns (server.PProfData) {}
@@ -37,6 +45,15 @@ message TestSuite {
bool full = 6;
}
+message HistoryTestSuites {
+ repeated HistoryTestSuite data = 1;
+}
+
+message HistoryTestSuite {
+ string historySuiteName = 1;
+ repeated server.HistoryTestCase items =2;
+}
+
service SecretService {
rpc GetSecret(server.Secret) returns (server.Secret) {}
rpc GetSecrets(server.Empty) returns (server.Secrets) {}
diff --git a/pkg/testing/remote/loader_grpc.pb.go b/pkg/testing/remote/loader_grpc.pb.go
index 907079cbf..d6edbec44 100644
--- a/pkg/testing/remote/loader_grpc.pb.go
+++ b/pkg/testing/remote/loader_grpc.pb.go
@@ -33,6 +33,9 @@ type LoaderClient interface {
GetTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.TestCase, error)
UpdateTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.TestCase, error)
DeleteTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.Empty, error)
+ ListHistoryTestSuite(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*HistoryTestSuites, error)
+ CreateTestCaseHistory(ctx context.Context, in *server.HistoryTestResult, opts ...grpc.CallOption) (*server.Empty, error)
+ GetHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestResult, error)
GetVersion(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.Version, error)
Verify(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.ExtensionStatus, error)
PProf(ctx context.Context, in *server.PProfRequest, opts ...grpc.CallOption) (*server.PProfData, error)
@@ -136,15 +139,6 @@ func (c *loaderClient) DeleteTestCase(ctx context.Context, in *server.TestCase,
return out, nil
}
-func (c *loaderClient) GetVersion(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.Version, error) {
- out := new(server.Version)
- err := c.cc.Invoke(ctx, "/remote.Loader/GetVersion", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
func (c *loaderClient) Verify(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.ExtensionStatus, error) {
out := new(server.ExtensionStatus)
err := c.cc.Invoke(ctx, "/remote.Loader/Verify", in, out, opts...)
@@ -177,7 +171,6 @@ type LoaderServer interface {
GetTestCase(context.Context, *server.TestCase) (*server.TestCase, error)
UpdateTestCase(context.Context, *server.TestCase) (*server.TestCase, error)
DeleteTestCase(context.Context, *server.TestCase) (*server.Empty, error)
- GetVersion(context.Context, *server.Empty) (*server.Version, error)
Verify(context.Context, *server.Empty) (*server.ExtensionStatus, error)
PProf(context.Context, *server.PProfRequest) (*server.PProfData, error)
mustEmbedUnimplementedLoaderServer()
@@ -217,9 +210,6 @@ func (UnimplementedLoaderServer) UpdateTestCase(context.Context, *server.TestCas
func (UnimplementedLoaderServer) DeleteTestCase(context.Context, *server.TestCase) (*server.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteTestCase not implemented")
}
-func (UnimplementedLoaderServer) GetVersion(context.Context, *server.Empty) (*server.Version, error) {
- return nil, status.Errorf(codes.Unimplemented, "method GetVersion not implemented")
-}
func (UnimplementedLoaderServer) Verify(context.Context, *server.Empty) (*server.ExtensionStatus, error) {
return nil, status.Errorf(codes.Unimplemented, "method Verify not implemented")
}
@@ -419,24 +409,6 @@ func _Loader_DeleteTestCase_Handler(srv interface{}, ctx context.Context, dec fu
return interceptor(ctx, in, info, handler)
}
-func _Loader_GetVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(server.Empty)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(LoaderServer).GetVersion(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/remote.Loader/GetVersion",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(LoaderServer).GetVersion(ctx, req.(*server.Empty))
- }
- return interceptor(ctx, in, info, handler)
-}
-
func _Loader_Verify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(server.Empty)
if err := dec(in); err != nil {
@@ -520,10 +492,6 @@ var Loader_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteTestCase",
Handler: _Loader_DeleteTestCase_Handler,
},
- {
- MethodName: "GetVersion",
- Handler: _Loader_GetVersion_Handler,
- },
{
MethodName: "Verify",
Handler: _Loader_Verify_Handler,
From 35fdb40da892e63febc01b5297f3fb8eb1e595fe Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Sun, 4 Aug 2024 21:03:54 +0800
Subject: [PATCH 02/15] feat: add history delete
---
console/atest-ui/src/locales/en.json | 3 +-
console/atest-ui/src/locales/zh.json | 3 +-
console/atest-ui/src/views/TestCase.vue | 109 +++--
console/atest-ui/src/views/net.ts | 60 ++-
pkg/server/convert.go | 31 ++
pkg/server/remote_server.go | 26 +-
pkg/server/server.pb.go | 531 ++++++++++++++----------
pkg/server/server.pb.gw.go | 227 +++++++++-
pkg/server/server.proto | 5 +-
pkg/server/server.swagger.json | 98 ++++-
pkg/server/server_grpc.pb.go | 80 +---
pkg/testing/loader.go | 4 +-
pkg/testing/loader_file.go | 10 +-
pkg/testing/loader_non.go | 9 +-
pkg/testing/remote/converter.go | 49 ++-
pkg/testing/remote/grpc_store.go | 22 +-
pkg/testing/remote/loader.pb.go | 240 ++++++-----
pkg/testing/remote/loader.proto | 4 +-
pkg/testing/remote/loader_grpc.pb.go | 109 ++++-
19 files changed, 1150 insertions(+), 470 deletions(-)
diff --git a/console/atest-ui/src/locales/en.json b/console/atest-ui/src/locales/en.json
index cddcf2b05..edd55174d 100644
--- a/console/atest-ui/src/locales/en.json
+++ b/console/atest-ui/src/locales/en.json
@@ -50,7 +50,8 @@
"filter": "Filter Keyword",
"noParameter": "No Parameter",
"testsuite": "Test Suite:",
- "apiAddress": "API Address:"
+ "apiAddress": "API Address:",
+ "runningAt": "Running At:"
},
"field": {
"name": "Name",
diff --git a/console/atest-ui/src/locales/zh.json b/console/atest-ui/src/locales/zh.json
index 6d28095ab..93e7a6557 100644
--- a/console/atest-ui/src/locales/zh.json
+++ b/console/atest-ui/src/locales/zh.json
@@ -45,7 +45,8 @@
"filter": "过滤",
"noParameter": "无参数",
"testsuite": "测试集:",
- "apiAddress": "API 地址:"
+ "apiAddress": "API 地址:",
+ "runningAt": "运行于:"
},
"field": {
"name": "名称",
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index c2b3503aa..e94a8420d 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -50,7 +50,6 @@ const runTestCase = () => {
requestLoading.value = true
const name = props.name
const suite = props.suite
-
API.RunTestCase({
suiteName: suite,
name: name,
@@ -63,7 +62,6 @@ const runTestCase = () => {
requestLoading.value = false
UIAPI.ErrorTip(e)
-
parseResponseBody(e.body)
})
}
@@ -84,18 +82,14 @@ const parseResponseBody = (body) => {
const handleTestResult = (e) => {
testResult.value = e;
- if (e.error !== '') {
- ElMessage({
- message: e.error,
- type: 'error'
- })
- } else {
- ElMessage({
- message: 'Pass!',
- type: 'success'
- })
- }
- parseResponseBody(e.body)
+ if (!isHistoryTestCase.value) {
+ handleTestResultError(e)
+ }
+
+ if (e.body !== '') {
+ testResult.value.bodyObject = JSON.parse(e.body);
+ testResult.value.originBodyObject = JSON.parse(e.body);
+ }
Cache.SetTestCaseResponseCache(suite + '-' + name, {
body: testResult.value.bodyObject,
@@ -103,7 +97,21 @@ const handleTestResult = (e) => {
statusCode: testResult.value.statusCode
} as TestCaseResponse)
- parameters.value = []
+ parameters.value = [];
+}
+
+const handleTestResultError = (e) => {
+ if (e.error !== '') {
+ ElMessage({
+ message: e.error,
+ type: 'error'
+ });
+ } else {
+ ElMessage({
+ message: 'Pass!',
+ type: 'success'
+ });
+ }
}
const responseBodyFilterText = ref('')
@@ -213,6 +221,7 @@ let suite
let historySuiteName
let historyCaseID
const isHistoryTestCase = ref(false)
+const HistoryTestCaseCreateTime = ref('')
function load() {
name = props.name
@@ -238,11 +247,12 @@ function load() {
if (historySuiteName != '' && historySuiteName != undefined) {
isHistoryTestCase.value = true
- API.GetHistoryTestCase({
+ API.GetHistoryTestCaseWithResult({
historyCaseID : historyCaseID
}, (e) => {
processResponse(e.data)
handleTestResult(e.testCaseResult[0])
+ formatDate(e.createTime)
})
} else {
API.GetTestCase({
@@ -254,6 +264,22 @@ function load() {
}
}
+function formatDate(createTimeStr : string){
+ let parts = createTimeStr.split(/[T.Z]/);
+ let datePart = parts[0].split("-");
+ let timePart = parts[1].split(":");
+
+ let year = datePart[0];
+ let month = datePart[1];
+ let day = datePart[2];
+ let hours = timePart[0];
+ let minutes = timePart[1];
+ let seconds = timePart[2].split(".")[0];
+
+ let formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+ HistoryTestCaseCreateTime.value = formattedDate
+}
+
function processResponse(e) {
if (e.request.method === '') {
e.request.method = 'GET'
@@ -334,28 +360,40 @@ function saveTestCase(tip: boolean = true, callback: (c: any) => void) {
}, UIAPI.ErrorTip, saveLoading)
}
-function deleteTestCase() {
+function deleteCase() {
const name = props.name
const suite = props.suite
+ const historyCaseID = props.historyCaseID
- API.DeleteTestCase({
- suiteName: suite,
- name: name
- }, (e) => {
- if (e.ok) {
- emit('updated', 'hello from child')
+ if (isHistoryTestCase.value == true){
+ deleteHistoryTestCase(historyCaseID)
+ } else {
+ deleteTestCase(name, suite)
+ }
+}
- ElMessage({
- message: 'Delete.',
- type: 'success'
- })
+function deleteHistoryTestCase(historyCaseID : string){
+ API.DeleteHistoryTestCase({ historyCaseID }, handleDeleteResponse);
+}
- // clean all the values
- testCaseWithSuite.value = emptyTestCaseWithSuite
- } else {
- UIAPI.ErrorTip(e)
- }
- })
+function deleteTestCase(name : string, suite : string){
+ API.DeleteTestCase({ suiteName: suite, name }, handleDeleteResponse);
+}
+
+function handleDeleteResponse(e) {
+ if (e.ok) {
+ emit('updated', 'hello from child');
+
+ ElMessage({
+ message: 'Delete.',
+ type: 'success'
+ });
+
+ // Clean all the values
+ testCaseWithSuite.value = emptyTestCaseWithSuite;
+ } else {
+ UIAPI.ErrorTip(e);
+ }
}
const codeDialogOpened = ref(false)
@@ -593,9 +631,10 @@ Magic.Keys(() => {
{{ t('button.save') }}
- {{ t('button.delete') }}
+ {{ t('button.delete') }}
{{ t('button.duplicate') }}
{{ t('button.generateCode') }}
+ {{ t('tip.runningAt') }}{{ HistoryTestCaseCreateTime }}
{
diff --git a/console/atest-ui/src/views/net.ts b/console/atest-ui/src/views/net.ts
index 8f1e09fca..9f4800ffb 100644
--- a/console/atest-ui/src/views/net.ts
+++ b/console/atest-ui/src/views/net.ts
@@ -561,6 +561,23 @@ const GetTestSuiteYaml = (suite: string, callback: (d: any) => void, errHandle?:
.catch(errHandle)
}
+function GetHistoryTestCaseWithResult(req: HistoryTestCase,
+ callback: (d: any) => void, errHandle?: (e: any) => void | null) {
+ const requestOptions = {
+ method: 'POST',
+ headers: {
+ 'X-Store-Name': Cache.GetCurrentStore().name,
+ 'X-Auth': getToken()
+ },
+ body: JSON.stringify({
+ ID : req.historyCaseID
+ })
+ }
+ fetch('/server.Runner/GetHistoryTestCaseWithResult', requestOptions)
+ .then(DefaultResponseProcess)
+ .then(callback).catch(errHandle)
+}
+
function GetHistoryTestCase(req: HistoryTestCase,
callback: (d: any) => void, errHandle?: (e: any) => void | null) {
const requestOptions = {
@@ -578,19 +595,34 @@ function GetHistoryTestCase(req: HistoryTestCase,
.then(callback).catch(errHandle)
}
+function DeleteHistoryTestCase(req: HistoryTestCase,
+ callback: (d: any) => void, errHandle?: (e: any) => void | null) {
+ const requestOptions = {
+ method: 'POST',
+ headers: {
+ 'X-Store-Name': Cache.GetCurrentStore().name,
+ 'X-Auth': getToken()
+ },
+ body: JSON.stringify({
+ ID : req.historyCaseID
+ })
+ }
+ fetch('/server.Runner/DeleteHistoryTestCase', requestOptions)
+ .then(callback).catch(errHandle)
+}
+
export const API = {
- DefaultResponseProcess,
- GetVersion,
- CreateTestSuite, UpdateTestSuite, ImportTestSuite, GetTestSuite, DeleteTestSuite, ConvertTestSuite, GetTestSuiteYaml,
- DuplicateTestSuite,
- CreateTestCase, UpdateTestCase, GetTestCase, ListTestCase, DeleteTestCase, RunTestCase, DuplicateTestCase,
- GetHistoryTestCase,
- GenerateCode, ListCodeGenerator,
- PopularHeaders,
- CreateOrUpdateStore, GetStores, DeleteStore, VerifyStore,
- FunctionsQuery,
- GetSecrets, DeleteSecret, CreateOrUpdateSecret,
- GetSuggestedAPIs,
- ReloadMockServer, GetMockConfig,
- getToken
+ DefaultResponseProcess,
+ GetVersion,
+ CreateTestSuite, UpdateTestSuite, ImportTestSuite, GetTestSuite, DeleteTestSuite, ConvertTestSuite,GetTestSuiteYaml,
+ CreateTestCase, UpdateTestCase, GetTestCase, ListTestCase, DeleteTestCase, RunTestCase,
+ GetHistoryTestCaseWithResult, DeleteHistoryTestCase,GetHistoryTestCase,
+ GenerateCode, ListCodeGenerator,
+ PopularHeaders,
+ CreateOrUpdateStore, GetStores, DeleteStore, VerifyStore,
+ FunctionsQuery,
+ GetSecrets, DeleteSecret, CreateOrUpdateSecret,
+ GetSuggestedAPIs,
+ ReloadMockServer, GetMockConfig,
+ getToken
}
diff --git a/pkg/server/convert.go b/pkg/server/convert.go
index be1fd5ef5..137179710 100644
--- a/pkg/server/convert.go
+++ b/pkg/server/convert.go
@@ -65,6 +65,37 @@ func ToNormalStore(store *Store) (result testing.Store) {
return
}
+func ConvertToGRPCHistoryTestCase(historyTestcase testing.HistoryTestCase) (result *HistoryTestCase) {
+ req := historyTestcase.Data.Request
+ res := historyTestcase.Data.Expect
+ result = &HistoryTestCase{
+ CaseName: historyTestcase.CaseName,
+ SuiteName: historyTestcase.SuiteName,
+ SuiteApi: historyTestcase.SuiteAPI,
+ SuiteParam: mapToPair(historyTestcase.SuiteParam),
+
+ Request: &Request{
+ Api: req.API,
+ Method: req.Method,
+ Body: req.Body.String(),
+ Header: mapToPair(req.Header),
+ Query: mapInterToPair(req.Query),
+ Form: mapToPair(req.Form),
+ },
+
+ Response: &Response{
+ Body: res.Body,
+ StatusCode: int32(res.StatusCode),
+ Schema: res.Schema,
+ Verify: res.Verify,
+ Header: mapToPair(res.Header),
+ BodyFieldsExpect: mapInterToPair(res.BodyFieldsExpect),
+ },
+ }
+ result.SuiteSpec = ToGRPCTestSuiteSpec(historyTestcase.SuiteSpec)
+ return
+}
+
func ToGRPCSuite(suite *testing.TestSuite) (result *TestSuite) {
result = &TestSuite{
Name: suite.Name,
diff --git a/pkg/server/remote_server.go b/pkg/server/remote_server.go
index b06b44bb2..f62feeb65 100644
--- a/pkg/server/remote_server.go
+++ b/pkg/server/remote_server.go
@@ -528,16 +528,26 @@ func (s *server) GetTestCase(ctx context.Context, in *TestCaseIdentity) (reply *
return
}
-func (s *server) GetHistoryTestCase(ctx context.Context, in *HistoryTestCase) (reply *HistoryTestResult, err error) {
+func (s *server) GetHistoryTestCaseWithResult(ctx context.Context, in *HistoryTestCase) (reply *HistoryTestResult, err error) {
var result testing.HistoryTestResult
loader := s.getLoader(ctx)
defer loader.Close()
- if result, err = loader.GetHistoryTestCase(in.ID); err == nil {
+ if result, err = loader.GetHistoryTestCaseWithResult(in.ID); err == nil {
reply = ToGRPCHistoryTestCaseResult(result)
}
return
}
+func (s *server) GetHistoryTestCase(ctx context.Context, in *HistoryTestCase) (reply *HistoryTestCase, err error) {
+ var result testing.HistoryTestCase
+ loader := s.getLoader(ctx)
+ defer loader.Close()
+ if result, err = loader.GetHistoryTestCase(in.ID); err == nil {
+ reply = ConvertToGRPCHistoryTestCase(result)
+ }
+ return
+}
+
var ExecutionCountNum = promauto.NewCounter(prometheus.CounterOpts{
Name: "atest_execution_count",
Help: "The total number of request execution",
@@ -599,7 +609,7 @@ func (s *server) RunTestCase(ctx context.Context, in *TestCaseIdentity) (result
}
return
}
-
+
result = &TestCaseResult{
Output: reply.Message,
Error: reply.Error,
@@ -625,7 +635,7 @@ func (s *server) RunTestCase(ctx context.Context, in *TestCaseIdentity) (result
result.Header = lastItem.Header
result.StatusCode = lastItem.StatusCode
}
-
+
normalResult := ToNormalTestCaseResult(result)
var testSuite *testing.TestSuite
if testSuite, err = s.getSuiteFromTestTask(task); err != nil {
@@ -733,6 +743,14 @@ func (s *server) DeleteTestCase(ctx context.Context, in *TestCaseIdentity) (repl
return
}
+func (s *server) DeleteHistoryTestCase(ctx context.Context, in *HistoryTestCase) (reply *HelloReply, err error) {
+ loader := s.getLoader(ctx)
+ defer loader.Close()
+ reply = &HelloReply{}
+ err = loader.DeleteHistoryTestCase(in.ID)
+ return
+}
+
func (s *server) DuplicateTestCase(ctx context.Context, in *TestCaseDuplicate) (reply *HelloReply, err error) {
loader := s.getLoader(ctx)
defer loader.Close()
diff --git a/pkg/server/server.pb.go b/pkg/server/server.pb.go
index a77b74880..adcf460ad 100644
--- a/pkg/server/server.pb.go
+++ b/pkg/server/server.pb.go
@@ -3306,41 +3306,86 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x22,
0x0a, 0x0c, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x22, 0x1f, 0x0a, 0x09, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12,
- 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64,
- 0x61, 0x74, 0x61, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3c, 0x0a, 0x0a,
- 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72,
- 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x72, 0x65, 0x66,
- 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x80, 0x10, 0x0a, 0x06, 0x52,
- 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x10, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
- 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
- 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73,
- 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74,
- 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
- 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
- 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,
- 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
- 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
- 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0c, 0x47, 0x65,
- 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65,
- 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
- 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0f, 0x55, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
- 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,
- 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e,
- 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65,
- 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x10, 0x47, 0x65,
- 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x19,
+ 0x6d, 0x65, 0x22, 0x2b, 0x0a, 0x06, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x04,
+ 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
+ 0xc0, 0x02, 0x0a, 0x05, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77,
+ 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
+ 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
+ 0x2c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69,
+ 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a,
+ 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04,
+ 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
+ 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65,
+ 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
+ 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
+ 0x65, 0x64, 0x22, 0x33, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73,
+ 0x12, 0x25, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e,
+ 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x09, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18,
+ 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2e, 0x0a, 0x0a, 0x53, 0x69, 0x6d, 0x70,
+ 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61,
+ 0x69, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x0a, 0x0a, 0x53, 0x69, 0x6d, 0x70,
+ 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x43, 0x6f,
+ 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12,
+ 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47,
+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x2d, 0x0a, 0x07, 0x53, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b,
+ 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77,
+ 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f,
+ 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f,
+ 0x6e, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a,
+ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x50, 0x50, 0x72, 0x6f, 0x66,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1f, 0x0a, 0x09, 0x50,
+ 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x07, 0x0a, 0x05,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3c, 0x0a, 0x0a, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x32, 0x88, 0x11, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x2d,
+ 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x2c, 0x0a,
+ 0x09, 0x47, 0x65, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0f, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19,
0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74,
0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x59, 0x61, 0x6d, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x12, 0x3a, 0x0a,
@@ -3371,91 +3416,116 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x79, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73,
0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a,
- 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65,
- 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x64,
- 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12,
- 0x43, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0b, 0x47, 0x65, 0x74,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
+ 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74,
+ 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x53, 0x75,
+ 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c,
+ 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0e, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74,
+ 0x68, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0e,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x18,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
+ 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x3a,
+ 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74,
+ 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x12, 0x47, 0x65,
+ 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
+ 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f,
+ 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00,
+ 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65,
+ 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65,
+ 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e,
+ 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
+ 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x10, 0x43,
+ 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12,
0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e,
0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76,
- 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69,
- 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x10, 0x43, 0x6f,
- 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65,
- 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61,
- 0x69, 0x72, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x00, 0x12, 0x40, 0x0a,
- 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53,
- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
- 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12,
- 0x31, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e,
+ 0x6c, 0x74, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48,
+ 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50,
+ 0x61, 0x69, 0x72, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x00, 0x12, 0x40,
+ 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01,
+ 0x12, 0x31, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c,
+ 0x79, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0d, 0x2e,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79,
- 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22,
- 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e,
- 0x64, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
- 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
- 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74,
- 0x6f, 0x72, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f,
- 0x72, 0x65, 0x73, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
+ 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69,
+ 0x6e, 0x64, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
+ 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72,
+ 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53,
+ 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
+ 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74,
+ 0x6f, 0x72, 0x65, 0x73, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
+ 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74,
+ 0x6f, 0x72, 0x65, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74,
0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f,
- 0x72, 0x65, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74,
+ 0x72, 0x65, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74,
0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f,
0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72,
- 0x65, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f,
- 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72,
- 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
- 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, 0x74, 0x6f, 0x72,
- 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c,
- 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
- 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12,
- 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22,
- 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65,
- 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65,
- 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x44, 0x65, 0x6c,
- 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65,
- 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65,
- 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50, 0x72,
- 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f,
- 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x4b, 0x0a,
- 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x38, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x61,
- 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
- 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x32, 0x67, 0x0a, 0x04, 0x4d, 0x6f,
- 0x63, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
- 0x00, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0d,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e,
+ 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, 0x74, 0x6f,
+ 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70,
+ 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
+ 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
+ 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
+ 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50,
+ 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72,
+ 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x4b,
+ 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x12, 0x38, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43,
+ 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x32, 0x67, 0x0a, 0x04, 0x4d,
+ 0x6f, 0x63, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x2e,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x22, 0x00, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
- 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69,
- 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x67, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+ 0x22, 0x00, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x22, 0x00, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70,
+ 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3516,119 +3586,134 @@ var file_pkg_server_server_proto_goTypes = []interface{}{
nil, // 41: server.TestTask.EnvEntry
}
var file_pkg_server_server_proto_depIdxs = []int32{
- 40, // 0: server.Suites.data:type_name -> server.Suites.DataEntry
- 22, // 1: server.TestCaseIdentity.parameters:type_name -> server.Pair
- 22, // 2: server.TestSuite.param:type_name -> server.Pair
- 6, // 3: server.TestSuite.spec:type_name -> server.APISpec
- 4, // 4: server.TestSuiteWithCase.suite:type_name -> server.TestSuite
- 17, // 5: server.TestSuiteWithCase.case:type_name -> server.TestCase
- 8, // 6: server.APISpec.rpc:type_name -> server.RPC
- 7, // 7: server.APISpec.secure:type_name -> server.Secure
- 41, // 8: server.TestTask.env:type_name -> server.TestTask.EnvEntry
- 22, // 9: server.TestTask.parameters:type_name -> server.Pair
- 21, // 10: server.TestResult.testCaseResult:type_name -> server.TestCaseResult
- 17, // 11: server.Suite.items:type_name -> server.TestCase
- 17, // 12: server.TestCaseWithSuite.data:type_name -> server.TestCase
- 17, // 13: server.TestCases.data:type_name -> server.TestCase
- 18, // 14: server.TestCase.request:type_name -> server.Request
- 19, // 15: server.TestCase.response:type_name -> server.Response
- 22, // 16: server.Request.header:type_name -> server.Pair
- 22, // 17: server.Request.query:type_name -> server.Pair
- 22, // 18: server.Request.cookie:type_name -> server.Pair
- 22, // 19: server.Request.form:type_name -> server.Pair
- 22, // 20: server.Response.header:type_name -> server.Pair
- 22, // 21: server.Response.bodyFieldsExpect:type_name -> server.Pair
- 20, // 22: server.Response.ConditionalVerify:type_name -> server.ConditionalVerify
- 22, // 23: server.TestCaseResult.header:type_name -> server.Pair
- 22, // 24: server.Pairs.data:type_name -> server.Pair
- 26, // 25: server.Stores.data:type_name -> server.Store
- 22, // 26: server.Store.properties:type_name -> server.Pair
- 28, // 27: server.Store.kind:type_name -> server.StoreKind
- 28, // 28: server.StoreKinds.data:type_name -> server.StoreKind
- 22, // 29: server.SimpleList.data:type_name -> server.Pair
- 34, // 30: server.Secrets.data:type_name -> server.Secret
- 1, // 31: server.Suites.DataEntry.value:type_name -> server.Items
- 10, // 32: server.Runner.Run:input_type -> server.TestTask
- 38, // 33: server.Runner.GetSuites:input_type -> server.Empty
- 9, // 34: server.Runner.CreateTestSuite:input_type -> server.TestSuiteIdentity
- 3, // 35: server.Runner.ImportTestSuite:input_type -> server.TestSuiteSource
- 9, // 36: server.Runner.GetTestSuite:input_type -> server.TestSuiteIdentity
- 4, // 37: server.Runner.UpdateTestSuite:input_type -> server.TestSuite
- 9, // 38: server.Runner.DeleteTestSuite:input_type -> server.TestSuiteIdentity
- 9, // 39: server.Runner.GetTestSuiteYaml:input_type -> server.TestSuiteIdentity
- 9, // 40: server.Runner.ListTestCase:input_type -> server.TestSuiteIdentity
- 9, // 41: server.Runner.GetSuggestedAPIs:input_type -> server.TestSuiteIdentity
- 2, // 42: server.Runner.RunTestCase:input_type -> server.TestCaseIdentity
- 2, // 43: server.Runner.GetTestCase:input_type -> server.TestCaseIdentity
- 15, // 44: server.Runner.CreateTestCase:input_type -> server.TestCaseWithSuite
- 15, // 45: server.Runner.UpdateTestCase:input_type -> server.TestCaseWithSuite
- 2, // 46: server.Runner.DeleteTestCase:input_type -> server.TestCaseIdentity
- 38, // 47: server.Runner.ListCodeGenerator:input_type -> server.Empty
- 32, // 48: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
- 38, // 49: server.Runner.ListConverter:input_type -> server.Empty
- 32, // 50: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
- 38, // 51: server.Runner.PopularHeaders:input_type -> server.Empty
- 24, // 52: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
- 24, // 53: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
- 38, // 54: server.Runner.GetVersion:input_type -> server.Empty
- 38, // 55: server.Runner.Sample:input_type -> server.Empty
- 38, // 56: server.Runner.GetStoreKinds:input_type -> server.Empty
- 38, // 57: server.Runner.GetStores:input_type -> server.Empty
- 26, // 58: server.Runner.CreateStore:input_type -> server.Store
- 26, // 59: server.Runner.UpdateStore:input_type -> server.Store
- 26, // 60: server.Runner.DeleteStore:input_type -> server.Store
- 24, // 61: server.Runner.VerifyStore:input_type -> server.SimpleQuery
- 38, // 62: server.Runner.GetSecrets:input_type -> server.Empty
- 34, // 63: server.Runner.CreateSecret:input_type -> server.Secret
- 34, // 64: server.Runner.DeleteSecret:input_type -> server.Secret
- 34, // 65: server.Runner.UpdateSecret:input_type -> server.Secret
- 36, // 66: server.Runner.PProf:input_type -> server.PProfRequest
- 5, // 67: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
- 39, // 68: server.Mock.Reload:input_type -> server.MockConfig
- 38, // 69: server.Mock.GetConfig:input_type -> server.Empty
- 11, // 70: server.Runner.Run:output_type -> server.TestResult
- 0, // 71: server.Runner.GetSuites:output_type -> server.Suites
- 12, // 72: server.Runner.CreateTestSuite:output_type -> server.HelloReply
- 29, // 73: server.Runner.ImportTestSuite:output_type -> server.CommonResult
- 4, // 74: server.Runner.GetTestSuite:output_type -> server.TestSuite
- 12, // 75: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
- 12, // 76: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
- 13, // 77: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
- 14, // 78: server.Runner.ListTestCase:output_type -> server.Suite
- 16, // 79: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
- 21, // 80: server.Runner.RunTestCase:output_type -> server.TestCaseResult
- 17, // 81: server.Runner.GetTestCase:output_type -> server.TestCase
- 12, // 82: server.Runner.CreateTestCase:output_type -> server.HelloReply
- 12, // 83: server.Runner.UpdateTestCase:output_type -> server.HelloReply
- 12, // 84: server.Runner.DeleteTestCase:output_type -> server.HelloReply
- 30, // 85: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
- 29, // 86: server.Runner.GenerateCode:output_type -> server.CommonResult
- 30, // 87: server.Runner.ListConverter:output_type -> server.SimpleList
- 29, // 88: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
- 23, // 89: server.Runner.PopularHeaders:output_type -> server.Pairs
- 23, // 90: server.Runner.FunctionsQuery:output_type -> server.Pairs
- 23, // 91: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
- 12, // 92: server.Runner.GetVersion:output_type -> server.HelloReply
- 12, // 93: server.Runner.Sample:output_type -> server.HelloReply
- 27, // 94: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
- 25, // 95: server.Runner.GetStores:output_type -> server.Stores
- 26, // 96: server.Runner.CreateStore:output_type -> server.Store
- 26, // 97: server.Runner.UpdateStore:output_type -> server.Store
- 26, // 98: server.Runner.DeleteStore:output_type -> server.Store
- 35, // 99: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
- 33, // 100: server.Runner.GetSecrets:output_type -> server.Secrets
- 29, // 101: server.Runner.CreateSecret:output_type -> server.CommonResult
- 29, // 102: server.Runner.DeleteSecret:output_type -> server.CommonResult
- 29, // 103: server.Runner.UpdateSecret:output_type -> server.CommonResult
- 37, // 104: server.Runner.PProf:output_type -> server.PProfData
- 29, // 105: server.RunnerExtension.Run:output_type -> server.CommonResult
- 38, // 106: server.Mock.Reload:output_type -> server.Empty
- 39, // 107: server.Mock.GetConfig:output_type -> server.MockConfig
- 70, // [70:108] is the sub-list for method output_type
- 32, // [32:70] is the sub-list for method input_type
- 32, // [32:32] is the sub-list for extension type_name
- 32, // [32:32] is the sub-list for extension extendee
- 0, // [0:32] is the sub-list for field type_name
+ 45, // 0: server.Suites.data:type_name -> server.Suites.DataEntry
+ 46, // 1: server.HistorySuites.data:type_name -> server.HistorySuites.DataEntry
+ 4, // 2: server.HistoryItems.data:type_name -> server.HistoryCaseIdentity
+ 27, // 3: server.TestCaseIdentity.parameters:type_name -> server.Pair
+ 27, // 4: server.TestSuite.param:type_name -> server.Pair
+ 9, // 5: server.TestSuite.spec:type_name -> server.APISpec
+ 7, // 6: server.TestSuiteWithCase.suite:type_name -> server.TestSuite
+ 21, // 7: server.TestSuiteWithCase.case:type_name -> server.TestCase
+ 11, // 8: server.APISpec.rpc:type_name -> server.RPC
+ 10, // 9: server.APISpec.secure:type_name -> server.Secure
+ 47, // 10: server.TestTask.env:type_name -> server.TestTask.EnvEntry
+ 27, // 11: server.TestTask.parameters:type_name -> server.Pair
+ 26, // 12: server.TestResult.testCaseResult:type_name -> server.TestCaseResult
+ 26, // 13: server.HistoryTestResult.testCaseResult:type_name -> server.TestCaseResult
+ 22, // 14: server.HistoryTestResult.data:type_name -> server.HistoryTestCase
+ 48, // 15: server.HistoryTestResult.createTime:type_name -> google.protobuf.Timestamp
+ 21, // 16: server.Suite.items:type_name -> server.TestCase
+ 21, // 17: server.TestCaseWithSuite.data:type_name -> server.TestCase
+ 21, // 18: server.TestCases.data:type_name -> server.TestCase
+ 23, // 19: server.TestCase.request:type_name -> server.Request
+ 24, // 20: server.TestCase.response:type_name -> server.Response
+ 48, // 21: server.HistoryTestCase.createTime:type_name -> google.protobuf.Timestamp
+ 27, // 22: server.HistoryTestCase.suiteParam:type_name -> server.Pair
+ 9, // 23: server.HistoryTestCase.suiteSpec:type_name -> server.APISpec
+ 23, // 24: server.HistoryTestCase.request:type_name -> server.Request
+ 24, // 25: server.HistoryTestCase.response:type_name -> server.Response
+ 27, // 26: server.Request.header:type_name -> server.Pair
+ 27, // 27: server.Request.query:type_name -> server.Pair
+ 27, // 28: server.Request.cookie:type_name -> server.Pair
+ 27, // 29: server.Request.form:type_name -> server.Pair
+ 27, // 30: server.Response.header:type_name -> server.Pair
+ 27, // 31: server.Response.bodyFieldsExpect:type_name -> server.Pair
+ 25, // 32: server.Response.ConditionalVerify:type_name -> server.ConditionalVerify
+ 27, // 33: server.TestCaseResult.header:type_name -> server.Pair
+ 27, // 34: server.Pairs.data:type_name -> server.Pair
+ 31, // 35: server.Stores.data:type_name -> server.Store
+ 27, // 36: server.Store.properties:type_name -> server.Pair
+ 33, // 37: server.Store.kind:type_name -> server.StoreKind
+ 33, // 38: server.StoreKinds.data:type_name -> server.StoreKind
+ 27, // 39: server.SimpleList.data:type_name -> server.Pair
+ 39, // 40: server.Secrets.data:type_name -> server.Secret
+ 1, // 41: server.Suites.DataEntry.value:type_name -> server.Items
+ 3, // 42: server.HistorySuites.DataEntry.value:type_name -> server.HistoryItems
+ 13, // 43: server.Runner.Run:input_type -> server.TestTask
+ 43, // 44: server.Runner.GetSuites:input_type -> server.Empty
+ 12, // 45: server.Runner.CreateTestSuite:input_type -> server.TestSuiteIdentity
+ 6, // 46: server.Runner.ImportTestSuite:input_type -> server.TestSuiteSource
+ 12, // 47: server.Runner.GetTestSuite:input_type -> server.TestSuiteIdentity
+ 7, // 48: server.Runner.UpdateTestSuite:input_type -> server.TestSuite
+ 12, // 49: server.Runner.DeleteTestSuite:input_type -> server.TestSuiteIdentity
+ 12, // 50: server.Runner.GetTestSuiteYaml:input_type -> server.TestSuiteIdentity
+ 12, // 51: server.Runner.ListTestCase:input_type -> server.TestSuiteIdentity
+ 12, // 52: server.Runner.GetSuggestedAPIs:input_type -> server.TestSuiteIdentity
+ 5, // 53: server.Runner.RunTestCase:input_type -> server.TestCaseIdentity
+ 5, // 54: server.Runner.GetTestCase:input_type -> server.TestCaseIdentity
+ 19, // 55: server.Runner.CreateTestCase:input_type -> server.TestCaseWithSuite
+ 19, // 56: server.Runner.UpdateTestCase:input_type -> server.TestCaseWithSuite
+ 5, // 57: server.Runner.DeleteTestCase:input_type -> server.TestCaseIdentity
+ 43, // 58: server.Runner.GetHistorySuites:input_type -> server.Empty
+ 22, // 59: server.Runner.GetHistoryTestCase:input_type -> server.HistoryTestCase
+ 43, // 60: server.Runner.ListCodeGenerator:input_type -> server.Empty
+ 37, // 61: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
+ 43, // 62: server.Runner.ListConverter:input_type -> server.Empty
+ 37, // 63: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
+ 43, // 64: server.Runner.PopularHeaders:input_type -> server.Empty
+ 29, // 65: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
+ 29, // 66: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
+ 43, // 67: server.Runner.GetVersion:input_type -> server.Empty
+ 43, // 68: server.Runner.Sample:input_type -> server.Empty
+ 43, // 69: server.Runner.GetStoreKinds:input_type -> server.Empty
+ 43, // 70: server.Runner.GetStores:input_type -> server.Empty
+ 31, // 71: server.Runner.CreateStore:input_type -> server.Store
+ 31, // 72: server.Runner.UpdateStore:input_type -> server.Store
+ 31, // 73: server.Runner.DeleteStore:input_type -> server.Store
+ 29, // 74: server.Runner.VerifyStore:input_type -> server.SimpleQuery
+ 43, // 75: server.Runner.GetSecrets:input_type -> server.Empty
+ 39, // 76: server.Runner.CreateSecret:input_type -> server.Secret
+ 39, // 77: server.Runner.DeleteSecret:input_type -> server.Secret
+ 39, // 78: server.Runner.UpdateSecret:input_type -> server.Secret
+ 41, // 79: server.Runner.PProf:input_type -> server.PProfRequest
+ 8, // 80: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
+ 44, // 81: server.Mock.Reload:input_type -> server.MockConfig
+ 43, // 82: server.Mock.GetConfig:input_type -> server.Empty
+ 14, // 83: server.Runner.Run:output_type -> server.TestResult
+ 0, // 84: server.Runner.GetSuites:output_type -> server.Suites
+ 16, // 85: server.Runner.CreateTestSuite:output_type -> server.HelloReply
+ 34, // 86: server.Runner.ImportTestSuite:output_type -> server.CommonResult
+ 7, // 87: server.Runner.GetTestSuite:output_type -> server.TestSuite
+ 16, // 88: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
+ 16, // 89: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
+ 17, // 90: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
+ 18, // 91: server.Runner.ListTestCase:output_type -> server.Suite
+ 20, // 92: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
+ 26, // 93: server.Runner.RunTestCase:output_type -> server.TestCaseResult
+ 21, // 94: server.Runner.GetTestCase:output_type -> server.TestCase
+ 16, // 95: server.Runner.CreateTestCase:output_type -> server.HelloReply
+ 16, // 96: server.Runner.UpdateTestCase:output_type -> server.HelloReply
+ 16, // 97: server.Runner.DeleteTestCase:output_type -> server.HelloReply
+ 2, // 98: server.Runner.GetHistorySuites:output_type -> server.HistorySuites
+ 15, // 99: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestResult
+ 35, // 100: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
+ 34, // 101: server.Runner.GenerateCode:output_type -> server.CommonResult
+ 35, // 102: server.Runner.ListConverter:output_type -> server.SimpleList
+ 34, // 103: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
+ 28, // 104: server.Runner.PopularHeaders:output_type -> server.Pairs
+ 28, // 105: server.Runner.FunctionsQuery:output_type -> server.Pairs
+ 28, // 106: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
+ 16, // 107: server.Runner.GetVersion:output_type -> server.HelloReply
+ 16, // 108: server.Runner.Sample:output_type -> server.HelloReply
+ 32, // 109: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
+ 30, // 110: server.Runner.GetStores:output_type -> server.Stores
+ 31, // 111: server.Runner.CreateStore:output_type -> server.Store
+ 31, // 112: server.Runner.UpdateStore:output_type -> server.Store
+ 31, // 113: server.Runner.DeleteStore:output_type -> server.Store
+ 40, // 114: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
+ 38, // 115: server.Runner.GetSecrets:output_type -> server.Secrets
+ 34, // 116: server.Runner.CreateSecret:output_type -> server.CommonResult
+ 34, // 117: server.Runner.DeleteSecret:output_type -> server.CommonResult
+ 34, // 118: server.Runner.UpdateSecret:output_type -> server.CommonResult
+ 42, // 119: server.Runner.PProf:output_type -> server.PProfData
+ 34, // 120: server.RunnerExtension.Run:output_type -> server.CommonResult
+ 43, // 121: server.Mock.Reload:output_type -> server.Empty
+ 44, // 122: server.Mock.GetConfig:output_type -> server.MockConfig
+ 83, // [83:123] is the sub-list for method output_type
+ 43, // [43:83] is the sub-list for method input_type
+ 43, // [43:43] is the sub-list for extension type_name
+ 43, // [43:43] is the sub-list for extension extendee
+ 0, // [0:43] is the sub-list for field type_name
}
func init() { file_pkg_server_server_proto_init() }
diff --git a/pkg/server/server.pb.gw.go b/pkg/server/server.pb.gw.go
index 1864985c5..6a14101b1 100644
--- a/pkg/server/server.pb.gw.go
+++ b/pkg/server/server.pb.gw.go
@@ -1016,6 +1016,32 @@ func local_request_Runner_GetHistorySuites_0(ctx context.Context, marshaler runt
}
+func request_Runner_GetHistoryTestCaseWithResult_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.GetHistoryTestCaseWithResult(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Runner_GetHistoryTestCaseWithResult_0(ctx context.Context, marshaler runtime.Marshaler, server RunnerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.GetHistoryTestCaseWithResult(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
func request_Runner_GetHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
@@ -1042,6 +1068,58 @@ func local_request_Runner_GetHistoryTestCase_0(ctx context.Context, marshaler ru
}
+func request_Runner_DeleteHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.DeleteHistoryTestCase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Runner_DeleteHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, server RunnerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.DeleteHistoryTestCase(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
+func request_Runner_RunHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.RunHistoryTestCase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Runner_RunHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, server RunnerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.RunHistoryTestCase(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
func request_Runner_DuplicateTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq TestCaseDuplicate
var metadata runtime.ServerMetadata
@@ -2280,6 +2358,31 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
+ mux.Handle("POST", pattern_Runner_GetHistoryTestCaseWithResult_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetHistoryTestCaseWithResult", runtime.WithHTTPPathPattern("/server.Runner/GetHistoryTestCaseWithResult"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Runner_GetHistoryTestCaseWithResult_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_GetHistoryTestCaseWithResult_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("POST", pattern_Runner_GetHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -2305,6 +2408,56 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
+ mux.Handle("POST", pattern_Runner_DeleteHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/DeleteHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/DeleteHistoryTestCase"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Runner_DeleteHistoryTestCase_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_DeleteHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ mux.Handle("POST", pattern_Runner_RunHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/RunHistoryTestCase"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Runner_RunHistoryTestCase_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_RunHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("POST", pattern_Runner_DuplicateTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -3345,6 +3498,28 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
+ mux.Handle("POST", pattern_Runner_GetHistoryTestCaseWithResult_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetHistoryTestCaseWithResult", runtime.WithHTTPPathPattern("/server.Runner/GetHistoryTestCaseWithResult"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Runner_GetHistoryTestCaseWithResult_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_GetHistoryTestCaseWithResult_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("POST", pattern_Runner_GetHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -3367,6 +3542,50 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
+ mux.Handle("POST", pattern_Runner_DeleteHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/DeleteHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/DeleteHistoryTestCase"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Runner_DeleteHistoryTestCase_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_DeleteHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ mux.Handle("POST", pattern_Runner_RunHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/RunHistoryTestCase"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Runner_RunHistoryTestCase_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_RunHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("POST", pattern_Runner_DuplicateTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -3885,9 +4104,9 @@ var (
pattern_Runner_DeleteTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "DeleteTestCase"}, ""))
- pattern_Runner_DeleteTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "suites", "suite", "cases", "testcase"}, ""))
+ pattern_Runner_GetHistorySuites_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "GetHistorySuites"}, ""))
- pattern_Runner_DuplicateTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6}, []string{"api", "v1", "suites", "sourceSuiteName", "cases", "sourceCaseName", "duplicate"}, ""))
+ pattern_Runner_GetHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "GetHistoryTestCase"}, ""))
pattern_Runner_GetSuggestedAPIs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "suggestedAPIs"}, ""))
@@ -3965,6 +4184,10 @@ var (
forward_Runner_DeleteTestCase_0 = runtime.ForwardResponseMessage
+ forward_Runner_GetHistorySuites_0 = runtime.ForwardResponseMessage
+
+ forward_Runner_GetHistoryTestCase_0 = runtime.ForwardResponseMessage
+
forward_Runner_ListCodeGenerator_0 = runtime.ForwardResponseMessage
forward_Runner_GenerateCode_0 = runtime.ForwardResponseMessage
diff --git a/pkg/server/server.proto b/pkg/server/server.proto
index cf93a0925..809de39ba 100644
--- a/pkg/server/server.proto
+++ b/pkg/server/server.proto
@@ -116,7 +116,9 @@ service Runner {
// history test related
rpc GetHistorySuites(Empty) returns (HistorySuites) {}
- rpc GetHistoryTestCase(HistoryTestCase) returns (HistoryTestResult) {}
+ rpc GetHistoryTestCaseWithResult(HistoryTestCase) returns (HistoryTestResult) {}
+ rpc GetHistoryTestCase(HistoryTestCase) returns (HistoryTestCase) {}
+ rpc DeleteHistoryTestCase(HistoryTestCase) returns (HelloReply) {}
// code generator
rpc ListCodeGenerator(Empty) returns (SimpleList) {
@@ -272,6 +274,7 @@ message TestCaseIdentity {
string suite = 1;
string testcase = 2;
repeated Pair parameters = 3;
+
}
message TestSuiteSource {
diff --git a/pkg/server/server.swagger.json b/pkg/server/server.swagger.json
index e370a9c1a..20355cb28 100644
--- a/pkg/server/server.swagger.json
+++ b/pkg/server/server.swagger.json
@@ -255,6 +255,38 @@
]
}
},
+ "/server.Runner/DeleteHistoryTestCase": {
+ "post": {
+ "operationId": "Runner_DeleteHistoryTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHelloReply"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
"/api/v1/mock/reload": {
"post": {
"operationId": "Mock_Reload",
@@ -538,6 +570,70 @@
"/server.Runner/GetHistoryTestCase": {
"post": {
"operationId": "Runner_GetHistoryTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/server.Runner/GetHistoryTestCaseWithResult": {
+ "post": {
+ "operationId": "Runner_GetHistoryTestCaseWithResult",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/server.Runner/GetHistoryTestCaseWithResult": {
+ "post": {
+ "operationId": "Runner_GetHistoryTestCaseWithResult",
"responses": {
"200": {
"description": "A successful response.",
@@ -1296,7 +1392,7 @@
]
}
},
- "/api/v1/suites/{sourceSuiteName}/duplicate": {
+ "/server.Runner/RunTestCase": {
"post": {
"operationId": "Runner_DuplicateTestSuite",
"responses": {
diff --git a/pkg/server/server_grpc.pb.go b/pkg/server/server_grpc.pb.go
index 0507ee0e2..326d13df2 100644
--- a/pkg/server/server_grpc.pb.go
+++ b/pkg/server/server_grpc.pb.go
@@ -48,7 +48,6 @@ type RunnerClient interface {
// history test related
GetHistorySuites(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HistorySuites, error)
GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestResult, error)
-
// code generator
ListCodeGenerator(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error)
GenerateCode(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error)
@@ -260,27 +259,18 @@ func (c *runnerClient) GetHistorySuites(ctx context.Context, in *Empty, opts ...
return out, nil
}
-func (c *runnerClient) GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestResult, error) {
+func (c *runnerClient) GetHistoryTestCaseWithResult(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestResult, error) {
out := new(HistoryTestResult)
- err := c.cc.Invoke(ctx, "/server.Runner/GetHistoryTestCase", in, out, opts...)
+ err := c.cc.Invoke(ctx, "/server.Runner/GetHistoryTestCaseWithResult", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
-func (c *runnerClient) DuplicateTestCase(ctx context.Context, in *TestCaseDuplicate, opts ...grpc.CallOption) (*HelloReply, error) {
- out := new(HelloReply)
- err := c.cc.Invoke(ctx, "/server.Runner/DuplicateTestCase", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
-func (c *runnerClient) GetSuggestedAPIs(ctx context.Context, in *TestSuiteIdentity, opts ...grpc.CallOption) (*TestCases, error) {
- out := new(TestCases)
- err := c.cc.Invoke(ctx, "/server.Runner/GetSuggestedAPIs", in, out, opts...)
+func (c *runnerClient) GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestCase, error) {
+ out := new(HistoryTestCase)
+ err := c.cc.Invoke(ctx, "/server.Runner/GetHistoryTestCase", in, out, opts...)
if err != nil {
return nil, err
}
@@ -519,7 +509,6 @@ type RunnerServer interface {
// history test related
GetHistorySuites(context.Context, *Empty) (*HistorySuites, error)
GetHistoryTestCase(context.Context, *HistoryTestCase) (*HistoryTestResult, error)
-
// code generator
ListCodeGenerator(context.Context, *Empty) (*SimpleList, error)
GenerateCode(context.Context, *CodeGenerateRequest) (*CommonResult, error)
@@ -604,14 +593,11 @@ func (UnimplementedRunnerServer) DeleteTestCase(context.Context, *TestCaseIdenti
func (UnimplementedRunnerServer) GetHistorySuites(context.Context, *Empty) (*HistorySuites, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetHistorySuites not implemented")
}
-func (UnimplementedRunnerServer) GetHistoryTestCase(context.Context, *HistoryTestCase) (*HistoryTestResult, error) {
- return nil, status.Errorf(codes.Unimplemented, "method GetHistoryTestCase not implemented")
-}
-func (UnimplementedRunnerServer) DuplicateTestCase(context.Context, *TestCaseDuplicate) (*HelloReply, error) {
- return nil, status.Errorf(codes.Unimplemented, "method DuplicateTestCase not implemented")
+func (UnimplementedRunnerServer) GetHistoryTestCaseWithResult(context.Context, *HistoryTestCase) (*HistoryTestResult, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetHistoryTestCaseWithResult not implemented")
}
-func (UnimplementedRunnerServer) GetSuggestedAPIs(context.Context, *TestSuiteIdentity) (*TestCases, error) {
- return nil, status.Errorf(codes.Unimplemented, "method GetSuggestedAPIs not implemented")
+func (UnimplementedRunnerServer) GetHistoryTestCase(context.Context, *HistoryTestCase) (*HistoryTestCase, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetHistoryTestCase not implemented")
}
func (UnimplementedRunnerServer) ListCodeGenerator(context.Context, *Empty) (*SimpleList, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListCodeGenerator not implemented")
@@ -1000,56 +986,38 @@ func _Runner_GetHistorySuites_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
-func _Runner_GetHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _Runner_GetHistoryTestCaseWithResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(HistoryTestCase)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
- return srv.(RunnerServer).GetHistoryTestCase(ctx, in)
+ return srv.(RunnerServer).GetHistoryTestCaseWithResult(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
- FullMethod: "/server.Runner/GetHistoryTestCase",
+ FullMethod: "/server.Runner/GetHistoryTestCaseWithResult",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(RunnerServer).GetHistoryTestCase(ctx, req.(*HistoryTestCase))
+ return srv.(RunnerServer).GetHistoryTestCaseWithResult(ctx, req.(*HistoryTestCase))
}
return interceptor(ctx, in, info, handler)
}
-func _Runner_DuplicateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(TestCaseDuplicate)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(RunnerServer).DuplicateTestCase(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/server.Runner/DuplicateTestCase",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(RunnerServer).DuplicateTestCase(ctx, req.(*TestCaseDuplicate))
- }
- return interceptor(ctx, in, info, handler)
-}
-
-func _Runner_GetSuggestedAPIs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(TestSuiteIdentity)
+func _Runner_GetHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HistoryTestCase)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
- return srv.(RunnerServer).GetSuggestedAPIs(ctx, in)
+ return srv.(RunnerServer).GetHistoryTestCase(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
- FullMethod: "/server.Runner/GetSuggestedAPIs",
+ FullMethod: "/server.Runner/GetHistoryTestCase",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(RunnerServer).GetSuggestedAPIs(ctx, req.(*TestSuiteIdentity))
+ return srv.(RunnerServer).GetHistoryTestCase(ctx, req.(*HistoryTestCase))
}
return interceptor(ctx, in, info, handler)
}
@@ -1494,16 +1462,12 @@ var Runner_ServiceDesc = grpc.ServiceDesc{
Handler: _Runner_GetHistorySuites_Handler,
},
{
- MethodName: "GetHistoryTestCase",
- Handler: _Runner_GetHistoryTestCase_Handler,
- },
- {
- MethodName: "DuplicateTestCase",
- Handler: _Runner_DuplicateTestCase_Handler,
+ MethodName: "GetHistoryTestCaseWithResult",
+ Handler: _Runner_GetHistoryTestCaseWithResult_Handler,
},
{
- MethodName: "GetSuggestedAPIs",
- Handler: _Runner_GetSuggestedAPIs_Handler,
+ MethodName: "GetHistoryTestCase",
+ Handler: _Runner_GetHistoryTestCase_Handler,
},
{
MethodName: "ListCodeGenerator",
diff --git a/pkg/testing/loader.go b/pkg/testing/loader.go
index 7f9da993c..b4538ee2f 100644
--- a/pkg/testing/loader.go
+++ b/pkg/testing/loader.go
@@ -39,7 +39,9 @@ type Writer interface {
ListHistoryTestSuite() (suites []HistoryTestSuite, err error)
CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error)
- GetHistoryTestCase(id string) (historyTestCase HistoryTestResult, err error)
+ GetHistoryTestCaseWithResult(id string) (historyTestCase HistoryTestResult, err error)
+ GetHistoryTestCase(id string) (historyTestCase HistoryTestCase, err error)
+ DeleteHistoryTestCase(id string) (err error)
ListTestSuite() (suites []TestSuite, err error)
GetTestSuite(name string, full bool) (suite TestSuite, err error)
diff --git a/pkg/testing/loader_file.go b/pkg/testing/loader_file.go
index 6813154db..22a08413c 100644
--- a/pkg/testing/loader_file.go
+++ b/pkg/testing/loader_file.go
@@ -437,7 +437,15 @@ func (l *fileLoader) ListHistoryTestSuite() (suites []HistoryTestSuite, err erro
return
}
-func (l *fileLoader) GetHistoryTestCase(id string) (testcase HistoryTestResult, err error) {
+func (l *fileLoader) GetHistoryTestCaseWithResult(id string) (testcase HistoryTestResult, err error) {
+ return
+}
+
+func (l *fileLoader) GetHistoryTestCase(id string) (testcase HistoryTestCase, err error) {
+ return
+}
+
+func (l *fileLoader) DeleteHistoryTestCase(id string) (err error) {
return
}
diff --git a/pkg/testing/loader_non.go b/pkg/testing/loader_non.go
index 0544955ec..106379c0c 100644
--- a/pkg/testing/loader_non.go
+++ b/pkg/testing/loader_non.go
@@ -108,7 +108,14 @@ func (l *nonLoader) ListHistoryTestSuite()(suites []HistoryTestSuite, err error)
return
}
-func (l *nonLoader) GetHistoryTestCase(id string) (testcase HistoryTestResult, err error) {
+func (l *nonLoader) GetHistoryTestCaseWithResult(id string) (testcase HistoryTestResult, err error) {
+ return
+}
+
+func (l *nonLoader) GetHistoryTestCase(id string) (testcase HistoryTestCase, err error) {
+ return
+}
+func (l *nonLoader) DeleteHistoryTestCase(id string) (err error) {
return
}
diff --git a/pkg/testing/remote/converter.go b/pkg/testing/remote/converter.go
index d3925ebf6..02773551b 100644
--- a/pkg/testing/remote/converter.go
+++ b/pkg/testing/remote/converter.go
@@ -193,32 +193,34 @@ func ConvertToGRPCTestCase(testcase testing.TestCase) (result *server.TestCase)
return
}
-func ConvertToGRPCHistoryTestCase(testcase testing.TestCase, suite *testing.TestSuite) (result *server.HistoryTestCase) {
+func ConvertToGRPCHistoryTestCase(historyTestcase testing.HistoryTestCase) (result *server.HistoryTestCase) {
+ req := historyTestcase.Data.Request
+ res := historyTestcase.Data.Expect
result = &server.HistoryTestCase{
- CaseName: testcase.Name,
- SuiteName: suite.Name,
- SuiteApi: suite.API,
- SuiteParam: mapToPair(suite.Param),
+ CaseName: historyTestcase.CaseName,
+ SuiteName: historyTestcase.SuiteName,
+ SuiteApi: historyTestcase.SuiteAPI,
+ SuiteParam: mapToPair(historyTestcase.SuiteParam),
Request: &server.Request{
- Api: testcase.Request.API,
- Method: testcase.Request.Method,
- Body: testcase.Request.Body.String(),
- Header: mapToPair(testcase.Request.Header),
- Query: mapInterToPair(testcase.Request.Query),
- Form: mapToPair(testcase.Request.Form),
+ Api: req.API,
+ Method: req.Method,
+ Body: req.Body.String(),
+ Header: mapToPair(req.Header),
+ Query: mapInterToPair(req.Query),
+ Form: mapToPair(req.Form),
},
Response: &server.Response{
- Body: testcase.Expect.Body,
- StatusCode: int32(testcase.Expect.StatusCode),
- Schema: testcase.Expect.Schema,
- Verify: testcase.Expect.Verify,
- Header: mapToPair(testcase.Expect.Header),
- BodyFieldsExpect: mapInterToPair(testcase.Expect.BodyFieldsExpect),
+ Body: res.Body,
+ StatusCode: int32(res.StatusCode),
+ Schema: res.Schema,
+ Verify: res.Verify,
+ Header: mapToPair(res.Header),
+ BodyFieldsExpect: mapInterToPair(res.BodyFieldsExpect),
},
}
- result.SuiteSpec = server.ToGRPCTestSuiteSpec(suite.Spec)
+ result.SuiteSpec = server.ToGRPCTestSuiteSpec(historyTestcase.SuiteSpec)
return
}
@@ -285,7 +287,16 @@ func ConvertToGRPCTestCaseResult(testCaseResult testing.TestCaseResult, testSuit
result.TestCaseResult = append(result.TestCaseResult, res)
for _, testCase := range testSuite.Items {
- result.Data = ConvertToGRPCHistoryTestCase(testCase, testSuite)
+ data := testing.HistoryTestCase{
+ CaseName: testCase.Name,
+ SuiteName: testSuite.Name,
+ SuiteAPI: testSuite.API,
+ SuiteSpec: testSuite.Spec,
+ SuiteParam: testSuite.Param,
+ Data: testCase,
+ }
+
+ result.Data = ConvertToGRPCHistoryTestCase(data)
}
return result
diff --git a/pkg/testing/remote/grpc_store.go b/pkg/testing/remote/grpc_store.go
index 9cb33a5eb..7f5ce2d59 100644
--- a/pkg/testing/remote/grpc_store.go
+++ b/pkg/testing/remote/grpc_store.go
@@ -119,9 +119,9 @@ func (g *gRPCLoader) GetTestCase(suite, name string) (testcase testing.TestCase,
return
}
-func (g *gRPCLoader) GetHistoryTestCase(id string) (result testing.HistoryTestResult, err error) {
+func (g *gRPCLoader) GetHistoryTestCaseWithResult(id string) (result testing.HistoryTestResult, err error) {
var historyTestResult *server.HistoryTestResult
- historyTestResult, err = g.client.GetHistoryTestCase(g.ctx, &server.HistoryTestCase{
+ historyTestResult, err = g.client.GetHistoryTestCaseWithResult(g.ctx, &server.HistoryTestCase{
ID: id,
})
if err == nil && historyTestResult != nil {
@@ -130,6 +130,17 @@ func (g *gRPCLoader) GetHistoryTestCase(id string) (result testing.HistoryTestRe
return
}
+func (g *gRPCLoader) GetHistoryTestCase(id string) (result testing.HistoryTestCase, err error) {
+ var historyTestCase *server.HistoryTestCase
+ historyTestCase, err = g.client.GetHistoryTestCase(g.ctx, &server.HistoryTestCase{
+ ID: id,
+ })
+ if err == nil && historyTestCase != nil {
+ result = ConvertToNormalHistoryTestCase(historyTestCase)
+ }
+ return
+}
+
func (g *gRPCLoader) CreateTestCase(suite string, testcase testing.TestCase) (err error) {
payload := ConvertToGRPCTestCase(testcase)
payload.SuiteName = suite
@@ -169,6 +180,13 @@ func (g *gRPCLoader) ListHistoryTestSuite() (suites []testing.HistoryTestSuite,
return
}
+func (g *gRPCLoader) DeleteHistoryTestCase(id string) (err error) {
+ _, err = g.client.DeleteHistoryTestCase(g.ctx, &server.HistoryTestCase{
+ ID: id,
+ })
+ return
+}
+
func (g *gRPCLoader) ListTestSuite() (suites []testing.TestSuite, err error) {
var items *TestSuites
items, err = g.client.ListTestSuite(g.ctx, &server.Empty{})
diff --git a/pkg/testing/remote/loader.pb.go b/pkg/testing/remote/loader.pb.go
index 7dbecf54f..f2c5abc25 100644
--- a/pkg/testing/remote/loader.pb.go
+++ b/pkg/testing/remote/loader.pb.go
@@ -177,70 +177,94 @@ var file_pkg_testing_remote_loader_proto_rawDesc = []byte{
0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73,
0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04,
0x66, 0x75, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c,
- 0x32, 0x97, 0x05, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0d, 0x4c,
- 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x72, 0x65,
- 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22,
- 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53,
- 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54,
- 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
- 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x72, 0x65,
- 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x00,
- 0x12, 0x39, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
- 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x44,
- 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11,
- 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74,
- 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
- 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
- 0x73, 0x65, 0x73, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0e, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a,
- 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
- 0x12, 0x33, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12,
- 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
- 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43,
- 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
- 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a,
- 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12,
+ 0x22, 0x41, 0x0a, 0x11, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x53,
+ 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x73,
+ 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, 0x04, 0x64,
+ 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65,
+ 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74,
+ 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65,
+ 0x6d, 0x73, 0x32, 0xec, 0x06, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a,
+ 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x0d,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e,
+ 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
+ 0x73, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73,
+ 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x47, 0x65,
+ 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e,
+ 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
+ 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74,
+ 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
+ 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a,
+ 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
+ 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
+ 0x69, 0x74, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
+ 0x74, 0x79, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74,
+ 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00, 0x12, 0x33, 0x0a,
+ 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12,
0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
- 0x22, 0x00, 0x12, 0x32, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x0d, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12,
- 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50,
- 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x96, 0x02, 0x0a, 0x0d, 0x53,
- 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x09,
- 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47,
- 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63,
- 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63,
- 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d,
- 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
- 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69,
- 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x65, 0x73,
- 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
+ 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x33, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
+ 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74,
+ 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x72, 0x65,
+ 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74,
+ 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x0d, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4a, 0x0a,
+ 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73,
+ 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73,
+ 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x06, 0x56, 0x65, 0x72,
+ 0x69, 0x66, 0x79, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
+ 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x32, 0x0a,
+ 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22,
+ 0x00, 0x32, 0x96, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
+ 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
+ 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
+ 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
+ 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
+ 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
+ 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69,
+ 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75,
+ 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f,
+ 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x6d, 0x6f,
+ 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -273,48 +297,56 @@ var file_pkg_testing_remote_loader_proto_goTypes = []interface{}{
}
var file_pkg_testing_remote_loader_proto_depIdxs = []int32{
1, // 0: remote.TestSuites.data:type_name -> remote.TestSuite
- 2, // 1: remote.TestSuite.param:type_name -> server.Pair
- 3, // 2: remote.TestSuite.spec:type_name -> server.APISpec
- 4, // 3: remote.TestSuite.items:type_name -> server.TestCase
- 5, // 4: remote.Loader.ListTestSuite:input_type -> server.Empty
- 1, // 5: remote.Loader.CreateTestSuite:input_type -> remote.TestSuite
- 1, // 6: remote.Loader.GetTestSuite:input_type -> remote.TestSuite
- 1, // 7: remote.Loader.UpdateTestSuite:input_type -> remote.TestSuite
- 1, // 8: remote.Loader.DeleteTestSuite:input_type -> remote.TestSuite
- 1, // 9: remote.Loader.ListTestCases:input_type -> remote.TestSuite
- 4, // 10: remote.Loader.CreateTestCase:input_type -> server.TestCase
- 4, // 11: remote.Loader.GetTestCase:input_type -> server.TestCase
- 4, // 12: remote.Loader.UpdateTestCase:input_type -> server.TestCase
- 4, // 13: remote.Loader.DeleteTestCase:input_type -> server.TestCase
- 5, // 14: remote.Loader.Verify:input_type -> server.Empty
- 6, // 15: remote.Loader.PProf:input_type -> server.PProfRequest
- 7, // 16: remote.SecretService.GetSecret:input_type -> server.Secret
- 5, // 17: remote.SecretService.GetSecrets:input_type -> server.Empty
- 7, // 18: remote.SecretService.CreateSecret:input_type -> server.Secret
- 7, // 19: remote.SecretService.DeleteSecret:input_type -> server.Secret
- 7, // 20: remote.SecretService.UpdateSecret:input_type -> server.Secret
- 0, // 21: remote.Loader.ListTestSuite:output_type -> remote.TestSuites
- 5, // 22: remote.Loader.CreateTestSuite:output_type -> server.Empty
- 1, // 23: remote.Loader.GetTestSuite:output_type -> remote.TestSuite
- 1, // 24: remote.Loader.UpdateTestSuite:output_type -> remote.TestSuite
- 5, // 25: remote.Loader.DeleteTestSuite:output_type -> server.Empty
- 8, // 26: remote.Loader.ListTestCases:output_type -> server.TestCases
- 5, // 27: remote.Loader.CreateTestCase:output_type -> server.Empty
- 4, // 28: remote.Loader.GetTestCase:output_type -> server.TestCase
- 4, // 29: remote.Loader.UpdateTestCase:output_type -> server.TestCase
- 5, // 30: remote.Loader.DeleteTestCase:output_type -> server.Empty
- 9, // 31: remote.Loader.Verify:output_type -> server.ExtensionStatus
- 10, // 32: remote.Loader.PProf:output_type -> server.PProfData
- 7, // 33: remote.SecretService.GetSecret:output_type -> server.Secret
- 11, // 34: remote.SecretService.GetSecrets:output_type -> server.Secrets
- 12, // 35: remote.SecretService.CreateSecret:output_type -> server.CommonResult
- 12, // 36: remote.SecretService.DeleteSecret:output_type -> server.CommonResult
- 12, // 37: remote.SecretService.UpdateSecret:output_type -> server.CommonResult
- 21, // [21:38] is the sub-list for method output_type
- 4, // [4:21] is the sub-list for method input_type
- 4, // [4:4] is the sub-list for extension type_name
- 4, // [4:4] is the sub-list for extension extendee
- 0, // [0:4] is the sub-list for field type_name
+ 4, // 1: remote.TestSuite.param:type_name -> server.Pair
+ 5, // 2: remote.TestSuite.spec:type_name -> server.APISpec
+ 6, // 3: remote.TestSuite.items:type_name -> server.TestCase
+ 3, // 4: remote.HistoryTestSuites.data:type_name -> remote.HistoryTestSuite
+ 7, // 5: remote.HistoryTestSuite.items:type_name -> server.HistoryTestCase
+ 8, // 6: remote.Loader.ListTestSuite:input_type -> server.Empty
+ 1, // 7: remote.Loader.CreateTestSuite:input_type -> remote.TestSuite
+ 1, // 8: remote.Loader.GetTestSuite:input_type -> remote.TestSuite
+ 1, // 9: remote.Loader.UpdateTestSuite:input_type -> remote.TestSuite
+ 1, // 10: remote.Loader.DeleteTestSuite:input_type -> remote.TestSuite
+ 1, // 11: remote.Loader.ListTestCases:input_type -> remote.TestSuite
+ 6, // 12: remote.Loader.CreateTestCase:input_type -> server.TestCase
+ 6, // 13: remote.Loader.GetTestCase:input_type -> server.TestCase
+ 6, // 14: remote.Loader.UpdateTestCase:input_type -> server.TestCase
+ 6, // 15: remote.Loader.DeleteTestCase:input_type -> server.TestCase
+ 8, // 16: remote.Loader.ListHistoryTestSuite:input_type -> server.Empty
+ 9, // 17: remote.Loader.CreateTestCaseHistory:input_type -> server.HistoryTestResult
+ 7, // 18: remote.Loader.GetHistoryTestCase:input_type -> server.HistoryTestCase
+ 8, // 19: remote.Loader.Verify:input_type -> server.Empty
+ 10, // 20: remote.Loader.PProf:input_type -> server.PProfRequest
+ 11, // 21: remote.SecretService.GetSecret:input_type -> server.Secret
+ 8, // 22: remote.SecretService.GetSecrets:input_type -> server.Empty
+ 11, // 23: remote.SecretService.CreateSecret:input_type -> server.Secret
+ 11, // 24: remote.SecretService.DeleteSecret:input_type -> server.Secret
+ 11, // 25: remote.SecretService.UpdateSecret:input_type -> server.Secret
+ 0, // 26: remote.Loader.ListTestSuite:output_type -> remote.TestSuites
+ 8, // 27: remote.Loader.CreateTestSuite:output_type -> server.Empty
+ 1, // 28: remote.Loader.GetTestSuite:output_type -> remote.TestSuite
+ 1, // 29: remote.Loader.UpdateTestSuite:output_type -> remote.TestSuite
+ 8, // 30: remote.Loader.DeleteTestSuite:output_type -> server.Empty
+ 12, // 31: remote.Loader.ListTestCases:output_type -> server.TestCases
+ 8, // 32: remote.Loader.CreateTestCase:output_type -> server.Empty
+ 6, // 33: remote.Loader.GetTestCase:output_type -> server.TestCase
+ 6, // 34: remote.Loader.UpdateTestCase:output_type -> server.TestCase
+ 8, // 35: remote.Loader.DeleteTestCase:output_type -> server.Empty
+ 2, // 36: remote.Loader.ListHistoryTestSuite:output_type -> remote.HistoryTestSuites
+ 8, // 37: remote.Loader.CreateTestCaseHistory:output_type -> server.Empty
+ 9, // 38: remote.Loader.GetHistoryTestCase:output_type -> server.HistoryTestResult
+ 13, // 39: remote.Loader.Verify:output_type -> server.ExtensionStatus
+ 14, // 40: remote.Loader.PProf:output_type -> server.PProfData
+ 11, // 41: remote.SecretService.GetSecret:output_type -> server.Secret
+ 15, // 42: remote.SecretService.GetSecrets:output_type -> server.Secrets
+ 16, // 43: remote.SecretService.CreateSecret:output_type -> server.CommonResult
+ 16, // 44: remote.SecretService.DeleteSecret:output_type -> server.CommonResult
+ 16, // 45: remote.SecretService.UpdateSecret:output_type -> server.CommonResult
+ 26, // [26:46] is the sub-list for method output_type
+ 6, // [6:26] is the sub-list for method input_type
+ 6, // [6:6] is the sub-list for extension type_name
+ 6, // [6:6] is the sub-list for extension extendee
+ 0, // [0:6] is the sub-list for field type_name
}
func init() { file_pkg_testing_remote_loader_proto_init() }
diff --git a/pkg/testing/remote/loader.proto b/pkg/testing/remote/loader.proto
index 93bcd1352..202eff9cf 100644
--- a/pkg/testing/remote/loader.proto
+++ b/pkg/testing/remote/loader.proto
@@ -21,7 +21,9 @@ service Loader {
rpc ListHistoryTestSuite(server.Empty) returns (HistoryTestSuites) {}
rpc CreateTestCaseHistory(server.HistoryTestResult) returns (server.Empty) {}
- rpc GetHistoryTestCase(server.HistoryTestCase) returns (server.HistoryTestResult) {}
+ rpc GetHistoryTestCaseWithResult(server.HistoryTestCase) returns (server.HistoryTestResult) {}
+ rpc GetHistoryTestCase(server.HistoryTestCase) returns (server.HistoryTestCase) {}
+ rpc DeleteHistoryTestCase(server.HistoryTestCase) returns (server.Empty) {}
rpc ListHistoryTestSuite(server.Empty) returns (HistoryTestSuites) {}
rpc CreateTestCaseHistory(server.HistoryTestResult) returns (server.Empty) {}
diff --git a/pkg/testing/remote/loader_grpc.pb.go b/pkg/testing/remote/loader_grpc.pb.go
index d6edbec44..cae24e5a6 100644
--- a/pkg/testing/remote/loader_grpc.pb.go
+++ b/pkg/testing/remote/loader_grpc.pb.go
@@ -35,7 +35,9 @@ type LoaderClient interface {
DeleteTestCase(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.Empty, error)
ListHistoryTestSuite(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*HistoryTestSuites, error)
CreateTestCaseHistory(ctx context.Context, in *server.HistoryTestResult, opts ...grpc.CallOption) (*server.Empty, error)
- GetHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestResult, error)
+ GetHistoryTestCaseWithResult(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestResult, error)
+ GetHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestCase, error)
+ DeleteHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.Empty, error)
GetVersion(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.Version, error)
Verify(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.ExtensionStatus, error)
PProf(ctx context.Context, in *server.PProfRequest, opts ...grpc.CallOption) (*server.PProfData, error)
@@ -139,6 +141,33 @@ func (c *loaderClient) DeleteTestCase(ctx context.Context, in *server.TestCase,
return out, nil
}
+func (c *loaderClient) ListHistoryTestSuite(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*HistoryTestSuites, error) {
+ out := new(HistoryTestSuites)
+ err := c.cc.Invoke(ctx, "/remote.Loader/ListHistoryTestSuite", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *loaderClient) CreateTestCaseHistory(ctx context.Context, in *server.HistoryTestResult, opts ...grpc.CallOption) (*server.Empty, error) {
+ out := new(server.Empty)
+ err := c.cc.Invoke(ctx, "/remote.Loader/CreateTestCaseHistory", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *loaderClient) GetHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestResult, error) {
+ out := new(server.HistoryTestResult)
+ err := c.cc.Invoke(ctx, "/remote.Loader/GetHistoryTestCase", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *loaderClient) Verify(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.ExtensionStatus, error) {
out := new(server.ExtensionStatus)
err := c.cc.Invoke(ctx, "/remote.Loader/Verify", in, out, opts...)
@@ -171,6 +200,9 @@ type LoaderServer interface {
GetTestCase(context.Context, *server.TestCase) (*server.TestCase, error)
UpdateTestCase(context.Context, *server.TestCase) (*server.TestCase, error)
DeleteTestCase(context.Context, *server.TestCase) (*server.Empty, error)
+ ListHistoryTestSuite(context.Context, *server.Empty) (*HistoryTestSuites, error)
+ CreateTestCaseHistory(context.Context, *server.HistoryTestResult) (*server.Empty, error)
+ GetHistoryTestCase(context.Context, *server.HistoryTestCase) (*server.HistoryTestResult, error)
Verify(context.Context, *server.Empty) (*server.ExtensionStatus, error)
PProf(context.Context, *server.PProfRequest) (*server.PProfData, error)
mustEmbedUnimplementedLoaderServer()
@@ -210,6 +242,15 @@ func (UnimplementedLoaderServer) UpdateTestCase(context.Context, *server.TestCas
func (UnimplementedLoaderServer) DeleteTestCase(context.Context, *server.TestCase) (*server.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteTestCase not implemented")
}
+func (UnimplementedLoaderServer) ListHistoryTestSuite(context.Context, *server.Empty) (*HistoryTestSuites, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListHistoryTestSuite not implemented")
+}
+func (UnimplementedLoaderServer) CreateTestCaseHistory(context.Context, *server.HistoryTestResult) (*server.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateTestCaseHistory not implemented")
+}
+func (UnimplementedLoaderServer) GetHistoryTestCase(context.Context, *server.HistoryTestCase) (*server.HistoryTestResult, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetHistoryTestCase not implemented")
+}
func (UnimplementedLoaderServer) Verify(context.Context, *server.Empty) (*server.ExtensionStatus, error) {
return nil, status.Errorf(codes.Unimplemented, "method Verify not implemented")
}
@@ -409,6 +450,60 @@ func _Loader_DeleteTestCase_Handler(srv interface{}, ctx context.Context, dec fu
return interceptor(ctx, in, info, handler)
}
+func _Loader_ListHistoryTestSuite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(server.Empty)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(LoaderServer).ListHistoryTestSuite(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/remote.Loader/ListHistoryTestSuite",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(LoaderServer).ListHistoryTestSuite(ctx, req.(*server.Empty))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Loader_CreateTestCaseHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(server.HistoryTestResult)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(LoaderServer).CreateTestCaseHistory(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/remote.Loader/CreateTestCaseHistory",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(LoaderServer).CreateTestCaseHistory(ctx, req.(*server.HistoryTestResult))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Loader_GetHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(server.HistoryTestCase)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(LoaderServer).GetHistoryTestCase(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/remote.Loader/GetHistoryTestCase",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(LoaderServer).GetHistoryTestCase(ctx, req.(*server.HistoryTestCase))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Loader_Verify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(server.Empty)
if err := dec(in); err != nil {
@@ -492,6 +587,18 @@ var Loader_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteTestCase",
Handler: _Loader_DeleteTestCase_Handler,
},
+ {
+ MethodName: "ListHistoryTestSuite",
+ Handler: _Loader_ListHistoryTestSuite_Handler,
+ },
+ {
+ MethodName: "CreateTestCaseHistory",
+ Handler: _Loader_CreateTestCaseHistory_Handler,
+ },
+ {
+ MethodName: "GetHistoryTestCase",
+ Handler: _Loader_GetHistoryTestCase_Handler,
+ },
{
MethodName: "Verify",
Handler: _Loader_Verify_Handler,
From 28329aff7b4375e99fac3a49bd607008557e8607 Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Thu, 8 Aug 2024 12:51:45 +0800
Subject: [PATCH 03/15] feat: add history case revert api and ui
---
console/atest-ui/package-lock.json | 160 +--
console/atest-ui/package.json | 5 +-
console/atest-ui/src/locales/en.json | 4 +-
console/atest-ui/src/locales/zh.json | 4 +-
console/atest-ui/src/views/TestCase.vue | 201 +++-
console/atest-ui/src/views/net.ts | 6 +-
pkg/server/convert.go | 12 +-
pkg/server/remote_server.go | 13 +
pkg/server/server.pb.go | 1236 +++++++++++++----------
pkg/server/server.pb.gw.go | 101 ++
pkg/server/server.proto | 7 +-
pkg/server/server.swagger.json | 145 +++
pkg/server/server_grpc.pb.go | 78 +-
pkg/testing/loader.go | 1 +
pkg/testing/loader_file.go | 4 +
pkg/testing/loader_non.go | 4 +
pkg/testing/remote/converter.go | 29 +
pkg/testing/remote/grpc_store.go | 14 +
pkg/testing/remote/loader.pb.go | 115 +++
pkg/testing/remote/loader.proto | 2 +-
pkg/testing/remote/loader_grpc.pb.go | 91 ++
21 files changed, 1577 insertions(+), 655 deletions(-)
diff --git a/console/atest-ui/package-lock.json b/console/atest-ui/package-lock.json
index ecf238d35..09fb49e43 100644
--- a/console/atest-ui/package-lock.json
+++ b/console/atest-ui/package-lock.json
@@ -8,14 +8,15 @@
"name": "atest-ui",
"version": "v0.0.14",
"dependencies": {
- "@vueuse/core": "^10.11.0",
+ "codemirror": "^5.65.17",
+ "diff-match-patch": "^1.0.5",
"element-plus": "^2.3.7",
"intro.js": "^7.0.1",
"jsonlint-mod": "^1.7.6",
"jsonpath-plus": "^7.2.0",
"skywalking-client-js": "^0.10.0",
"vue": "^3.3.4",
- "vue-codemirror": "^6.1.1",
+ "vue-codemirror": "^5.1.0",
"vue-i18n": "^9.2.2",
"vue-json-viewer": "^3.0.4",
"vue-router": "^4.2.2"
@@ -662,10 +663,9 @@
"dev": true
},
"node_modules/@codemirror/autocomplete": {
- "version": "6.11.1",
- "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz",
- "integrity": "sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==",
- "peer": true,
+ "version": "6.18.0",
+ "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz",
+ "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==",
"dependencies": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
@@ -704,10 +704,9 @@
}
},
"node_modules/@codemirror/lint": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.2.tgz",
- "integrity": "sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==",
- "peer": true,
+ "version": "6.8.1",
+ "resolved": "https://registry.npmmirror.com/@codemirror/lint/-/lint-6.8.1.tgz",
+ "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==",
"dependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
@@ -715,10 +714,9 @@
}
},
"node_modules/@codemirror/search": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.5.tgz",
- "integrity": "sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==",
- "peer": true,
+ "version": "6.5.6",
+ "resolved": "https://registry.npmmirror.com/@codemirror/search/-/search-6.5.6.tgz",
+ "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==",
"dependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
@@ -4109,19 +4107,9 @@
}
},
"node_modules/codemirror": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
- "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
- "peer": true,
- "dependencies": {
- "@codemirror/autocomplete": "^6.0.0",
- "@codemirror/commands": "^6.0.0",
- "@codemirror/language": "^6.0.0",
- "@codemirror/lint": "^6.0.0",
- "@codemirror/search": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0"
- }
+ "version": "5.65.17",
+ "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.17.tgz",
+ "integrity": "sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ=="
},
"node_modules/collect-v8-coverage": {
"version": "1.0.2",
@@ -4278,9 +4266,8 @@
},
"node_modules/crelt": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
- "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
- "peer": true
+ "resolved": "https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz",
+ "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="
},
"node_modules/cross-spawn": {
"version": "7.0.3",
@@ -4635,6 +4622,11 @@
"node": ">=8"
}
},
+ "node_modules/diff-match-patch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
+ "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw=="
+ },
"node_modules/diff-sequences": {
"version": "29.4.3",
"resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.4.3.tgz",
@@ -11616,20 +11608,40 @@
}
},
"node_modules/vue-codemirror": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/vue-codemirror/-/vue-codemirror-6.1.1.tgz",
- "integrity": "sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/vue-codemirror/-/vue-codemirror-5.1.0.tgz",
+ "integrity": "sha512-U8t71S8Dk+9W3Yxfwv30E3vGYjfiKOqluoKkV1bW3Mh9y/T1cQAdGLzz7pN+Z8llivX+/8CJ5sg17xLPSOsvvQ==",
"dependencies": {
"@codemirror/commands": "6.x",
"@codemirror/language": "6.x",
"@codemirror/state": "6.x",
- "@codemirror/view": "6.x"
+ "@codemirror/view": "6.x",
+ "codemirror": "6.x",
+ "csstype": "^2.6.8"
},
"peerDependencies": {
- "codemirror": "6.x",
"vue": "3.x"
}
},
+ "node_modules/vue-codemirror/node_modules/codemirror": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz",
+ "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
+ "dependencies": {
+ "@codemirror/autocomplete": "^6.0.0",
+ "@codemirror/commands": "^6.0.0",
+ "@codemirror/language": "^6.0.0",
+ "@codemirror/lint": "^6.0.0",
+ "@codemirror/search": "^6.0.0",
+ "@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.0.0"
+ }
+ },
+ "node_modules/vue-codemirror/node_modules/csstype": {
+ "version": "2.6.21",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
+ "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
+ },
"node_modules/vue-component-type-helpers": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-1.6.5.tgz",
@@ -12585,10 +12597,9 @@
"dev": true
},
"@codemirror/autocomplete": {
- "version": "6.11.1",
- "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz",
- "integrity": "sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==",
- "peer": true,
+ "version": "6.18.0",
+ "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz",
+ "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==",
"requires": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
@@ -12621,10 +12632,9 @@
}
},
"@codemirror/lint": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.2.tgz",
- "integrity": "sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==",
- "peer": true,
+ "version": "6.8.1",
+ "resolved": "https://registry.npmmirror.com/@codemirror/lint/-/lint-6.8.1.tgz",
+ "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==",
"requires": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
@@ -12632,10 +12642,9 @@
}
},
"@codemirror/search": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.5.tgz",
- "integrity": "sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==",
- "peer": true,
+ "version": "6.5.6",
+ "resolved": "https://registry.npmmirror.com/@codemirror/search/-/search-6.5.6.tgz",
+ "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==",
"requires": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
@@ -15209,19 +15218,9 @@
"dev": true
},
"codemirror": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
- "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
- "peer": true,
- "requires": {
- "@codemirror/autocomplete": "^6.0.0",
- "@codemirror/commands": "^6.0.0",
- "@codemirror/language": "^6.0.0",
- "@codemirror/lint": "^6.0.0",
- "@codemirror/search": "^6.0.0",
- "@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0"
- }
+ "version": "5.65.17",
+ "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.17.tgz",
+ "integrity": "sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ=="
},
"collect-v8-coverage": {
"version": "1.0.2",
@@ -15365,9 +15364,8 @@
},
"crelt": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
- "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
- "peer": true
+ "resolved": "https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz",
+ "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="
},
"cross-spawn": {
"version": "7.0.3",
@@ -15651,6 +15649,11 @@
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
"dev": true
},
+ "diff-match-patch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
+ "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw=="
+ },
"diff-sequences": {
"version": "29.4.3",
"resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.4.3.tgz",
@@ -21041,14 +21044,37 @@
}
},
"vue-codemirror": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/vue-codemirror/-/vue-codemirror-6.1.1.tgz",
- "integrity": "sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/vue-codemirror/-/vue-codemirror-5.1.0.tgz",
+ "integrity": "sha512-U8t71S8Dk+9W3Yxfwv30E3vGYjfiKOqluoKkV1bW3Mh9y/T1cQAdGLzz7pN+Z8llivX+/8CJ5sg17xLPSOsvvQ==",
"requires": {
"@codemirror/commands": "6.x",
"@codemirror/language": "6.x",
"@codemirror/state": "6.x",
- "@codemirror/view": "6.x"
+ "@codemirror/view": "6.x",
+ "codemirror": "6.x",
+ "csstype": "^2.6.8"
+ },
+ "dependencies": {
+ "codemirror": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz",
+ "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
+ "requires": {
+ "@codemirror/autocomplete": "^6.0.0",
+ "@codemirror/commands": "^6.0.0",
+ "@codemirror/language": "^6.0.0",
+ "@codemirror/lint": "^6.0.0",
+ "@codemirror/search": "^6.0.0",
+ "@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.0.0"
+ }
+ },
+ "csstype": {
+ "version": "2.6.21",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
+ "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
+ }
}
},
"vue-component-type-helpers": {
diff --git a/console/atest-ui/package.json b/console/atest-ui/package.json
index 652f21338..0778c3765 100644
--- a/console/atest-ui/package.json
+++ b/console/atest-ui/package.json
@@ -16,14 +16,15 @@
"test": "vitest"
},
"dependencies": {
- "@vueuse/core": "^10.11.0",
+ "codemirror": "^5.65.17",
+ "diff-match-patch": "^1.0.5",
"element-plus": "^2.3.7",
"intro.js": "^7.0.1",
"jsonlint-mod": "^1.7.6",
"jsonpath-plus": "^7.2.0",
"skywalking-client-js": "^0.10.0",
"vue": "^3.3.4",
- "vue-codemirror": "^6.1.1",
+ "vue-codemirror": "^5.1.0",
"vue-i18n": "^9.2.2",
"vue-json-viewer": "^3.0.4",
"vue-router": "^4.2.2"
diff --git a/console/atest-ui/src/locales/en.json b/console/atest-ui/src/locales/en.json
index edd55174d..49f181d35 100644
--- a/console/atest-ui/src/locales/en.json
+++ b/console/atest-ui/src/locales/en.json
@@ -22,7 +22,9 @@
"generateCode": "Generate Code",
"sendWithParam": "Send With Parameter",
"fullScreen": "Full Screen",
- "cancelFullScreen": "Cancel Full Screen"
+ "cancelFullScreen": "Cancel Full Screen",
+ "viewHistory": "View History Test Case Result",
+ "revert": "Revert"
},
"title": {
"createTestSuite": "Create Test Suite",
diff --git a/console/atest-ui/src/locales/zh.json b/console/atest-ui/src/locales/zh.json
index 93e7a6557..a5415b202 100644
--- a/console/atest-ui/src/locales/zh.json
+++ b/console/atest-ui/src/locales/zh.json
@@ -22,7 +22,9 @@
"generateCode": "生成代码",
"sendWithParam": "参数化",
"fullScreen": "全屏显示",
- "cancelFullScreen": "取消全屏"
+ "cancelFullScreen": "取消全屏",
+ "viewHistory": "查看历史记录",
+ "revert": "回退"
},
"title": {
"createTestSuite": "创建测试用例集",
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index e94a8420d..dc6f3c650 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -1,5 +1,5 @@
@@ -140,8 +146,8 @@ const handleChangeLan = (command: string) => {
-
-
+
+
diff --git a/console/atest-ui/src/locales/en.json b/console/atest-ui/src/locales/en.json
index 49f181d35..587d90967 100644
--- a/console/atest-ui/src/locales/en.json
+++ b/console/atest-ui/src/locales/en.json
@@ -24,7 +24,8 @@
"fullScreen": "Full Screen",
"cancelFullScreen": "Cancel Full Screen",
"viewHistory": "View History Test Case Result",
- "revert": "Revert"
+ "revert": "Revert",
+ "goToHistory": "Go to History"
},
"title": {
"createTestSuite": "Create Test Suite",
diff --git a/console/atest-ui/src/locales/zh.json b/console/atest-ui/src/locales/zh.json
index a5415b202..ee2542061 100644
--- a/console/atest-ui/src/locales/zh.json
+++ b/console/atest-ui/src/locales/zh.json
@@ -24,7 +24,8 @@
"fullScreen": "全屏显示",
"cancelFullScreen": "取消全屏",
"viewHistory": "查看历史记录",
- "revert": "回退"
+ "revert": "回退",
+ "goToHistory": "跳转历史记录"
},
"title": {
"createTestSuite": "创建测试用例集",
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index dc6f3c650..ae0d4200b 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -37,7 +37,7 @@ const props = defineProps({
historySuiteName: String,
historyCaseID: String
})
-const emit = defineEmits(['updated'])
+const emit = defineEmits(['updated','toHistoryPanel'])
let querySuggestedAPIs = NewSuggestedAPIsQuery(Cache.GetCurrentStore().name!, props.suite!)
const testResultActiveTab = ref(Cache.GetPreference().responseActiveTab)
@@ -534,6 +534,21 @@ const submitForm = async (formEl) => {
})
}
+const goToHistory = async (formEl) => {
+ if (!formEl) return
+ await formEl.validate((valid: boolean, fields) => {
+ if (valid) {
+ caseRevertLoading.value = true
+ emit('toHistoryPanel', { ID: selectedHistory.value.ID, panelName: 'history' });
+ caseRevertLoading.value = false
+ historyDialogOpened.value = false
+ historyForm.value.selectedID = ''
+ const target = document.getElementById('compareView');
+ target.innerHTML = '';
+ }
+ })
+}
+
const options = GetHTTPMethods()
const requestActiveTab = ref(Cache.GetPreference().requestActiveTab)
watch(requestActiveTab, Cache.WatchRequestActiveTab)
@@ -751,7 +766,7 @@ Magic.Keys(() => {
v-if="!Cache.GetCurrentStore().readOnly && !isHistoryTestCase"
>{{ t('button.save') }}
{{ t('button.delete') }}
- {{ t('button.duplicate') }}
+ {{ t('button.duplicate') }}
{{ t('button.generateCode') }}
{{ t('button.viewHistory') }}
{{ t('tip.runningAt') }}{{ HistoryTestCaseCreateTime }}
@@ -1052,12 +1067,20 @@ Magic.Keys(() => {
+
{{ t('button.revert') }}
+ {{ t('button.goToHistory') }}
+
+
diff --git a/console/atest-ui/src/views/TestingHistoryPanel.vue b/console/atest-ui/src/views/TestingHistoryPanel.vue
index d915a0694..aad992068 100644
--- a/console/atest-ui/src/views/TestingHistoryPanel.vue
+++ b/console/atest-ui/src/views/TestingHistoryPanel.vue
@@ -24,6 +24,9 @@ interface Tree {
children?: Tree[]
}
+const props = defineProps({
+ ID: String,
+})
const testCaseName = ref('')
const testSuite = ref('')
const testKind = ref('')
@@ -151,19 +154,36 @@ function loadStores(lastSuitName?: string, lastCaseName?: string) {
let targetSuite = {} as Tree
let targetChild = {} as Tree
- if (key.suite !== '' && key.testcase !== '') {
- for (var i = 0; i < treeData.value.length; i++) {
- const item = treeData.value[i]
- if (item.id === key.suite && item.children) {
- for (var j = 0; j < item.children.length; j++) {
- const child = item.children[j]
- if (child.id === key.testcase) {
- targetSuite = item
- targetChild = child
- break
+
+ const targetID = props.ID
+ if (targetID && targetID !== '') {
+ for (const suite of treeData.value) {
+ if (suite.children) {
+ const foundChild = suite.children.find(child => child.id === targetID)
+ if (foundChild) {
+ targetSuite = suite
+ targetChild = foundChild
+ handleNodeClick(targetChild)
+ updateTreeSelection(targetSuite, targetChild)
+ return
+ }
+ }
+ }
+ } else {
+ if (key.suite !== '' && key.testcase !== '') {
+ for (var i = 0; i < treeData.value.length; i++) {
+ const item = treeData.value[i]
+ if (item.id === key.suite && item.children) {
+ for (var j = 0; j < item.children.length; j++) {
+ const child = item.children[j]
+ if (child.id === key.testcase) {
+ targetSuite = item
+ targetChild = child
+ break
+ }
}
+ break
}
- break
}
}
}
@@ -175,14 +195,7 @@ function loadStores(lastSuitName?: string, lastCaseName?: string) {
}
viewName.value = 'testsuite'
- currentNodekey.value = targetChild.id
-
- treeRef.value!.setCurrentKey(targetChild.id)
- treeRef.value!.setCheckedKeys([targetChild.id], false)
-
- testSuite.value = targetSuite.label
- Cache.SetCurrentStore(targetSuite.store)
- testKind.value = targetChild.kind
+ updateTreeSelection(targetSuite, targetChild)
} else {
viewName.value = ""
}
@@ -198,6 +211,17 @@ function loadStores(lastSuitName?: string, lastCaseName?: string) {
}
loadStores()
+function updateTreeSelection(targetSuite: Tree, targetChild: Tree) {
+ currentNodekey.value = targetChild.id
+
+ treeRef.value!.setCurrentKey(targetChild.id)
+ treeRef.value!.setCheckedKeys([targetChild.id], false)
+
+ testSuite.value = targetSuite.label
+ Cache.SetCurrentStore(targetSuite.store)
+ testKind.value = targetChild.kind
+}
+
const filterText = ref('')
watch(filterText, (val) => {
treeRef.value!.filter(val)
@@ -239,10 +263,8 @@ const deviceAuthNext = () => {
- 设置
{{ t('button.refresh') }}
-
{
})
}
+const emit = defineEmits(['toHistoryPanel']);
+const handleToHistoryPanel = (payload) => {
+ emit('toHistoryPanel', payload);
+};
+
const importSuiteFormRules = reactive>({
url: [
{ required: true, message: 'URL is required', trigger: 'blur' },
@@ -391,6 +396,7 @@ const suiteKinds = [{
:suite="testSuite"
:kindName="testSuiteKind"
:name="testCaseName"
+ @toHistoryPanel="handleToHistoryPanel"
@updated="loadStores"
style="height: 100%;"
data-intro="This is the test case editor. You can edit the test case here."
From c46490b692779a8900d67f423a4b252b1e0bf78b Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Wed, 4 Sep 2024 10:38:34 +0800
Subject: [PATCH 07/15] feat: delete testcase all history
---
console/atest-ui/src/locales/en.json | 3 +-
console/atest-ui/src/locales/zh.json | 3 +-
console/atest-ui/src/views/TestCase.vue | 17 +
.../src/views/TestingHistoryPanel.vue | 2 +-
console/atest-ui/src/views/net.ts | 39 +-
pkg/server/remote_server.go | 8 +
pkg/server/server.pb.go | 461 +++---
pkg/server/server.pb.gw.go | 457 +++++-
pkg/server/server.proto | 16 +-
pkg/server/server.swagger.json | 1250 ++++++++++++++---
pkg/server/server_grpc.pb.go | 36 +
pkg/testing/loader.go | 1 +
pkg/testing/loader_file.go | 6 +-
pkg/testing/loader_non.go | 7 +-
pkg/testing/remote/grpc_store.go | 8 +
pkg/testing/remote/loader.pb.go | 203 +--
pkg/testing/remote/loader.proto | 1 +
pkg/testing/remote/loader_grpc.pb.go | 36 +
18 files changed, 1960 insertions(+), 594 deletions(-)
diff --git a/console/atest-ui/src/locales/en.json b/console/atest-ui/src/locales/en.json
index 587d90967..6a4a60b0b 100644
--- a/console/atest-ui/src/locales/en.json
+++ b/console/atest-ui/src/locales/en.json
@@ -25,7 +25,8 @@
"cancelFullScreen": "Cancel Full Screen",
"viewHistory": "View History Test Case Result",
"revert": "Revert",
- "goToHistory": "Go to History"
+ "goToHistory": "Go to History",
+ "deleteAllHistory": "Delete All History"
},
"title": {
"createTestSuite": "Create Test Suite",
diff --git a/console/atest-ui/src/locales/zh.json b/console/atest-ui/src/locales/zh.json
index ee2542061..93801f5f5 100644
--- a/console/atest-ui/src/locales/zh.json
+++ b/console/atest-ui/src/locales/zh.json
@@ -25,7 +25,8 @@
"cancelFullScreen": "取消全屏",
"viewHistory": "查看历史记录",
"revert": "回退",
- "goToHistory": "跳转历史记录"
+ "goToHistory": "跳转历史记录",
+ "deleteAllHistory": "删除所有历史记录"
},
"title": {
"createTestSuite": "创建测试用例集",
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index ae0d4200b..f5e820c5a 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -549,6 +549,17 @@ const goToHistory = async (formEl) => {
})
}
+const deleteAllHistory = async (formEl) => {
+ if (!formEl) return
+ caseRevertLoading.value = true
+ API.DeleteAllHistoryTestCase(props.suite, props.name, handleDeleteResponse);
+ caseRevertLoading.value = false
+ historyDialogOpened.value = false
+ historyForm.value.selectedID = ''
+ const target = document.getElementById('compareView');
+ target.innerHTML = '';
+}
+
const options = GetHTTPMethods()
const requestActiveTab = ref(Cache.GetPreference().requestActiveTab)
watch(requestActiveTab, Cache.WatchRequestActiveTab)
@@ -1080,6 +1091,12 @@ Magic.Keys(() => {
:loading="caseRevertLoading"
>{{ t('button.goToHistory') }}
+ {{ t('button.deleteAllHistory') }}
+
diff --git a/console/atest-ui/src/views/TestingHistoryPanel.vue b/console/atest-ui/src/views/TestingHistoryPanel.vue
index aad992068..6b5374bc6 100644
--- a/console/atest-ui/src/views/TestingHistoryPanel.vue
+++ b/console/atest-ui/src/views/TestingHistoryPanel.vue
@@ -80,7 +80,7 @@ function loadHistoryTestSuites(storeName: string) {
},
}
return async () => {
- await fetch('/server.Runner/GetHistorySuites', requestOptions)
+ await fetch('/api/v1/historySuites', requestOptions)
.then((response) => response.json())
.then((d) => {
if (!d.data) {
diff --git a/console/atest-ui/src/views/net.ts b/console/atest-ui/src/views/net.ts
index 0f986a334..2bd5fc15d 100644
--- a/console/atest-ui/src/views/net.ts
+++ b/console/atest-ui/src/views/net.ts
@@ -566,16 +566,12 @@ const GetTestSuiteYaml = (suite: string, callback: (d: any) => void, errHandle?:
function GetHistoryTestCaseWithResult(req: HistoryTestCase,
callback: (d: any) => void, errHandle?: (e: any) => void | null) {
const requestOptions = {
- method: 'POST',
headers: {
'X-Store-Name': Cache.GetCurrentStore().name,
'X-Auth': getToken()
- },
- body: JSON.stringify({
- ID : req.historyCaseID
- })
+ }
}
- fetch('/server.Runner/GetHistoryTestCaseWithResult', requestOptions)
+ fetch(`/api/v1/historyTestCaseWithResult/${req.historyCaseID}`, requestOptions)
.then(DefaultResponseProcess)
.then(callback).catch(errHandle)
}
@@ -583,16 +579,12 @@ function GetHistoryTestCaseWithResult(req: HistoryTestCase,
function GetHistoryTestCase(req: HistoryTestCase,
callback: (d: any) => void, errHandle?: (e: any) => void | null) {
const requestOptions = {
- method: 'POST',
headers: {
'X-Store-Name': Cache.GetCurrentStore().name,
'X-Auth': getToken()
- },
- body: JSON.stringify({
- ID : req.historyCaseID
- })
+ }
}
- fetch('/server.Runner/GetHistoryTestCase', requestOptions)
+ fetch(`/api/v1/historyTestCase/${req.historyCaseID}`, requestOptions)
.then(DefaultResponseProcess)
.then(callback).catch(errHandle)
}
@@ -600,7 +592,7 @@ function GetHistoryTestCase(req: HistoryTestCase,
function DeleteHistoryTestCase(req: HistoryTestCase,
callback: (d: any) => void, errHandle?: (e: any) => void | null) {
const requestOptions = {
- method: 'POST',
+ method: 'DELETE',
headers: {
'X-Store-Name': Cache.GetCurrentStore().name,
'X-Auth': getToken()
@@ -609,16 +601,33 @@ function DeleteHistoryTestCase(req: HistoryTestCase,
ID : req.historyCaseID
})
}
- fetch('/server.Runner/DeleteHistoryTestCase', requestOptions)
+ fetch(`/api/v1/historyTestCase/${req.historyCaseID}`, requestOptions)
.then(callback).catch(errHandle)
}
+function DeleteAllHistoryTestCase(suiteName: string, caseName: string,
+ callback: (d: any) => void, errHandle?: (e: any) => void | null) {
+ const requestOptions = {
+ method: 'DELETE',
+ headers: {
+ 'X-Store-Name': Cache.GetCurrentStore().name,
+ 'X-Auth': getToken()
+ },
+ body: JSON.stringify({
+ suiteName : suiteName,
+ caseName: caseName,
+ })
+ }
+ fetch(`/api/v1/suites/${suiteName}/cases/${caseName}`, requestOptions)
+ .then(callback).catch(errHandle)
+}
+
export const API = {
DefaultResponseProcess,
GetVersion,
CreateTestSuite, UpdateTestSuite, ImportTestSuite, GetTestSuite, DeleteTestSuite, ConvertTestSuite,GetTestSuiteYaml,
CreateTestCase, UpdateTestCase, GetTestCase, ListTestCase, DeleteTestCase, RunTestCase,
- GetHistoryTestCaseWithResult, DeleteHistoryTestCase, GetHistoryTestCase, GetTestCaseAllHistory,
+ GetHistoryTestCaseWithResult, DeleteHistoryTestCase, GetHistoryTestCase, GetTestCaseAllHistory, DeleteAllHistoryTestCase,
GenerateCode, ListCodeGenerator,
PopularHeaders,
CreateOrUpdateStore, GetStores, DeleteStore, VerifyStore,
diff --git a/pkg/server/remote_server.go b/pkg/server/remote_server.go
index ff67e4658..1bf2058d0 100644
--- a/pkg/server/remote_server.go
+++ b/pkg/server/remote_server.go
@@ -765,6 +765,14 @@ func (s *server) DeleteHistoryTestCase(ctx context.Context, in *HistoryTestCase)
return
}
+func (s *server) DeleteAllHistoryTestCase(ctx context.Context, in *HistoryTestCase) (reply *HelloReply, err error) {
+ loader := s.getLoader(ctx)
+ defer loader.Close()
+ reply = &HelloReply{}
+ err = loader.DeleteAllHistoryTestCase(in.SuiteName, in.CaseName)
+ return
+}
+
func (s *server) DuplicateTestCase(ctx context.Context, in *TestCaseDuplicate) (reply *HelloReply, err error) {
loader := s.getLoader(ctx)
defer loader.Close()
diff --git a/pkg/server/server.pb.go b/pkg/server/server.pb.go
index 18fd1c021..f52761271 100644
--- a/pkg/server/server.pb.go
+++ b/pkg/server/server.pb.go
@@ -1534,7 +1534,6 @@ func (x *TestCase) GetResponse() *Response {
return nil
}
-// todo TestCase和HistoryTestCase合并一下,这样就方便了
type HistoryTestCase struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -3455,7 +3454,7 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63,
0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x32, 0xd4, 0x1e, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e,
+ 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x32, 0xbd, 0x21, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e,
0x65, 0x72, 0x12, 0x43, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12, 0x2e, 0x73, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
@@ -3571,157 +3570,179 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x74, 0x79, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74,
0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f,
0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64,
- 0x41, 0x50, 0x49, 0x73, 0x12, 0x3a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x41, 0x50, 0x49, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x00,
- 0x12, 0x54, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65,
- 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
- 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73,
- 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73,
- 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48,
- 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x46, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x1d,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x82, 0x01,
+ 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74,
+ 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
+ 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2f, 0x7b, 0x49,
+ 0x44, 0x7d, 0x12, 0x6c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74,
+ 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d,
+ 0x12, 0x6a, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
0x73, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c,
- 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x48,
- 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
- 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x00, 0x12, 0x45, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
- 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x18, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73,
- 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74,
- 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74,
- 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73,
- 0x12, 0x6d, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65,
- 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65,
- 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
- 0x6f, 0x72, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12,
- 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72,
- 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
- 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c,
- 0x69, 0x73, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x12,
- 0x6c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
- 0x69, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64,
- 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65,
- 0x72, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a,
- 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12,
- 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70,
- 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a,
- 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12,
+ 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c,
+ 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
+ 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x12, 0x7c, 0x0a, 0x18,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f,
+ 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73,
+ 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f,
+ 0x7b, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6f, 0x0a, 0x12, 0x52, 0x75,
+ 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
+ 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
+ 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x12, 0x74, 0x0a, 0x15, 0x47,
+ 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73,
+ 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73,
+ 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
+ 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65,
+ 0x7d, 0x12, 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e,
+ 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
+ 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47,
+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x47, 0x65, 0x6e,
+ 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
+ 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x67, 0x65, 0x6e,
+ 0x65, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74,
+ 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1a, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
+ 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76,
+ 0x65, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
+ 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
+ 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
+ 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x76,
+ 0x65, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61,
+ 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16,
+ 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48,
+ 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x19, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75,
+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12,
0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51,
0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61,
- 0x69, 0x72, 0x73, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e,
- 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x45,
- 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x17, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12,
- 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70,
- 0x6c, 0x79, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x47, 0x65,
- 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x22, 0x1c,
- 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
- 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x09,
- 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10,
- 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73,
- 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12,
+ 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
+ 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43,
+ 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x16, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6d,
+ 0x70, 0x6c, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b,
+ 0x69, 0x6e, 0x64, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f,
+ 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12,
+ 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f,
+ 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72,
+ 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x73, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e,
+ 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01,
+ 0x2a, 0x12, 0x4d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a,
+ 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a,
+ 0x12, 0x4a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12,
0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x19, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73,
- 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, 0x15, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6e,
- 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x4a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
- 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61,
- 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61,
- 0x6d, 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, 0x74, 0x6f,
- 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70,
- 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x3a,
- 0x01, 0x2a, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
- 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
- 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
- 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0c, 0x43, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
- 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x54, 0x0a, 0x0c, 0x44,
- 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65,
- 0x7d, 0x12, 0x57, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65,
- 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65,
- 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a,
- 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
- 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50,
- 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72,
- 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x6b,
- 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43,
- 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d,
- 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x32, 0xa0, 0x01, 0x0a, 0x04,
- 0x4d, 0x6f, 0x63, 0x6b, 0x12, 0x4b, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
- 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01,
- 0x2a, 0x12, 0x4b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0d,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x2e,
- 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e,
- 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74,
- 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1d, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73,
+ 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0b,
+ 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65,
+ 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x45, 0x0a, 0x0a, 0x47,
+ 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65,
+ 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14,
+ 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
+ 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x54, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65,
+ 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65,
+ 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72,
+ 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x57, 0x0a, 0x0c, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
+ 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d,
+ 0x3a, 0x01, 0x2a, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f,
+ 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x6b, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65,
+ 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x52, 0x75,
+ 0x6e, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53,
+ 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x75,
+ 0x6e, 0x3a, 0x01, 0x2a, 0x32, 0xa0, 0x01, 0x0a, 0x04, 0x4d, 0x6f, 0x63, 0x6b, 0x12, 0x4b, 0x0a,
+ 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0d, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b,
+ 0x2f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x4b, 0x0a, 0x09, 0x47, 0x65,
+ 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b,
+ 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75,
+ 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e,
+ 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67,
+ 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3859,80 +3880,82 @@ var file_pkg_server_server_proto_depIdxs = []int32{
24, // 63: server.Runner.GetHistoryTestCaseWithResult:input_type -> server.HistoryTestCase
24, // 64: server.Runner.GetHistoryTestCase:input_type -> server.HistoryTestCase
24, // 65: server.Runner.DeleteHistoryTestCase:input_type -> server.HistoryTestCase
- 24, // 66: server.Runner.RunHistoryTestCase:input_type -> server.HistoryTestCase
- 23, // 67: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase
- 46, // 68: server.Runner.ListCodeGenerator:input_type -> server.Empty
- 40, // 69: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
- 46, // 70: server.Runner.ListConverter:input_type -> server.Empty
- 40, // 71: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
- 46, // 72: server.Runner.PopularHeaders:input_type -> server.Empty
- 32, // 73: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
- 32, // 74: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
- 46, // 75: server.Runner.GetVersion:input_type -> server.Empty
- 46, // 76: server.Runner.Sample:input_type -> server.Empty
- 46, // 77: server.Runner.GetStoreKinds:input_type -> server.Empty
- 46, // 78: server.Runner.GetStores:input_type -> server.Empty
- 34, // 79: server.Runner.CreateStore:input_type -> server.Store
- 34, // 80: server.Runner.UpdateStore:input_type -> server.Store
- 34, // 81: server.Runner.DeleteStore:input_type -> server.Store
- 32, // 82: server.Runner.VerifyStore:input_type -> server.SimpleQuery
- 46, // 83: server.Runner.GetSecrets:input_type -> server.Empty
- 42, // 84: server.Runner.CreateSecret:input_type -> server.Secret
- 42, // 85: server.Runner.DeleteSecret:input_type -> server.Secret
- 42, // 86: server.Runner.UpdateSecret:input_type -> server.Secret
- 44, // 87: server.Runner.PProf:input_type -> server.PProfRequest
- 8, // 88: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
- 47, // 89: server.Mock.Reload:input_type -> server.MockConfig
- 46, // 90: server.Mock.GetConfig:input_type -> server.Empty
- 16, // 91: server.Runner.Run:output_type -> server.TestResult
- 16, // 92: server.Runner.RunTestSuite:output_type -> server.TestResult
- 0, // 93: server.Runner.GetSuites:output_type -> server.Suites
- 18, // 94: server.Runner.CreateTestSuite:output_type -> server.HelloReply
- 37, // 95: server.Runner.ImportTestSuite:output_type -> server.CommonResult
- 7, // 96: server.Runner.GetTestSuite:output_type -> server.TestSuite
- 18, // 97: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
- 18, // 98: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
- 18, // 99: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply
- 19, // 100: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
- 20, // 101: server.Runner.ListTestCase:output_type -> server.Suite
- 29, // 102: server.Runner.RunTestCase:output_type -> server.TestCaseResult
- 23, // 103: server.Runner.GetTestCase:output_type -> server.TestCase
- 18, // 104: server.Runner.CreateTestCase:output_type -> server.HelloReply
- 18, // 105: server.Runner.UpdateTestCase:output_type -> server.HelloReply
- 18, // 106: server.Runner.DeleteTestCase:output_type -> server.HelloReply
- 18, // 107: server.Runner.DuplicateTestCase:output_type -> server.HelloReply
- 22, // 108: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
- 2, // 109: server.Runner.GetHistorySuites:output_type -> server.HistorySuites
- 17, // 110: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
- 24, // 111: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase
- 18, // 112: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply
- 29, // 113: server.Runner.RunHistoryTestCase:output_type -> server.TestCaseResult
- 25, // 114: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
- 38, // 115: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
- 37, // 116: server.Runner.GenerateCode:output_type -> server.CommonResult
- 38, // 117: server.Runner.ListConverter:output_type -> server.SimpleList
- 37, // 118: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
- 31, // 119: server.Runner.PopularHeaders:output_type -> server.Pairs
- 31, // 120: server.Runner.FunctionsQuery:output_type -> server.Pairs
- 31, // 121: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
- 48, // 122: server.Runner.GetVersion:output_type -> server.Version
- 18, // 123: server.Runner.Sample:output_type -> server.HelloReply
- 35, // 124: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
- 33, // 125: server.Runner.GetStores:output_type -> server.Stores
- 34, // 126: server.Runner.CreateStore:output_type -> server.Store
- 34, // 127: server.Runner.UpdateStore:output_type -> server.Store
- 34, // 128: server.Runner.DeleteStore:output_type -> server.Store
- 43, // 129: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
- 41, // 130: server.Runner.GetSecrets:output_type -> server.Secrets
- 37, // 131: server.Runner.CreateSecret:output_type -> server.CommonResult
- 37, // 132: server.Runner.DeleteSecret:output_type -> server.CommonResult
- 37, // 133: server.Runner.UpdateSecret:output_type -> server.CommonResult
- 45, // 134: server.Runner.PProf:output_type -> server.PProfData
- 37, // 135: server.RunnerExtension.Run:output_type -> server.CommonResult
- 46, // 136: server.Mock.Reload:output_type -> server.Empty
- 47, // 137: server.Mock.GetConfig:output_type -> server.MockConfig
- 91, // [91:138] is the sub-list for method output_type
- 44, // [44:91] is the sub-list for method input_type
+ 24, // 66: server.Runner.DeleteAllHistoryTestCase:input_type -> server.HistoryTestCase
+ 24, // 67: server.Runner.RunHistoryTestCase:input_type -> server.HistoryTestCase
+ 23, // 68: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase
+ 46, // 69: server.Runner.ListCodeGenerator:input_type -> server.Empty
+ 40, // 70: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
+ 46, // 71: server.Runner.ListConverter:input_type -> server.Empty
+ 40, // 72: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
+ 46, // 73: server.Runner.PopularHeaders:input_type -> server.Empty
+ 32, // 74: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
+ 32, // 75: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
+ 46, // 76: server.Runner.GetVersion:input_type -> server.Empty
+ 46, // 77: server.Runner.Sample:input_type -> server.Empty
+ 46, // 78: server.Runner.GetStoreKinds:input_type -> server.Empty
+ 46, // 79: server.Runner.GetStores:input_type -> server.Empty
+ 34, // 80: server.Runner.CreateStore:input_type -> server.Store
+ 34, // 81: server.Runner.UpdateStore:input_type -> server.Store
+ 34, // 82: server.Runner.DeleteStore:input_type -> server.Store
+ 32, // 83: server.Runner.VerifyStore:input_type -> server.SimpleQuery
+ 46, // 84: server.Runner.GetSecrets:input_type -> server.Empty
+ 42, // 85: server.Runner.CreateSecret:input_type -> server.Secret
+ 42, // 86: server.Runner.DeleteSecret:input_type -> server.Secret
+ 42, // 87: server.Runner.UpdateSecret:input_type -> server.Secret
+ 44, // 88: server.Runner.PProf:input_type -> server.PProfRequest
+ 8, // 89: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
+ 47, // 90: server.Mock.Reload:input_type -> server.MockConfig
+ 46, // 91: server.Mock.GetConfig:input_type -> server.Empty
+ 16, // 92: server.Runner.Run:output_type -> server.TestResult
+ 16, // 93: server.Runner.RunTestSuite:output_type -> server.TestResult
+ 0, // 94: server.Runner.GetSuites:output_type -> server.Suites
+ 18, // 95: server.Runner.CreateTestSuite:output_type -> server.HelloReply
+ 37, // 96: server.Runner.ImportTestSuite:output_type -> server.CommonResult
+ 7, // 97: server.Runner.GetTestSuite:output_type -> server.TestSuite
+ 18, // 98: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
+ 18, // 99: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
+ 18, // 100: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply
+ 19, // 101: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
+ 20, // 102: server.Runner.ListTestCase:output_type -> server.Suite
+ 29, // 103: server.Runner.RunTestCase:output_type -> server.TestCaseResult
+ 23, // 104: server.Runner.GetTestCase:output_type -> server.TestCase
+ 18, // 105: server.Runner.CreateTestCase:output_type -> server.HelloReply
+ 18, // 106: server.Runner.UpdateTestCase:output_type -> server.HelloReply
+ 18, // 107: server.Runner.DeleteTestCase:output_type -> server.HelloReply
+ 18, // 108: server.Runner.DuplicateTestCase:output_type -> server.HelloReply
+ 22, // 109: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
+ 2, // 110: server.Runner.GetHistorySuites:output_type -> server.HistorySuites
+ 17, // 111: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
+ 24, // 112: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase
+ 18, // 113: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply
+ 18, // 114: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply
+ 29, // 115: server.Runner.RunHistoryTestCase:output_type -> server.TestCaseResult
+ 25, // 116: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
+ 38, // 117: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
+ 37, // 118: server.Runner.GenerateCode:output_type -> server.CommonResult
+ 38, // 119: server.Runner.ListConverter:output_type -> server.SimpleList
+ 37, // 120: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
+ 31, // 121: server.Runner.PopularHeaders:output_type -> server.Pairs
+ 31, // 122: server.Runner.FunctionsQuery:output_type -> server.Pairs
+ 31, // 123: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
+ 48, // 124: server.Runner.GetVersion:output_type -> server.Version
+ 18, // 125: server.Runner.Sample:output_type -> server.HelloReply
+ 35, // 126: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
+ 33, // 127: server.Runner.GetStores:output_type -> server.Stores
+ 34, // 128: server.Runner.CreateStore:output_type -> server.Store
+ 34, // 129: server.Runner.UpdateStore:output_type -> server.Store
+ 34, // 130: server.Runner.DeleteStore:output_type -> server.Store
+ 43, // 131: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
+ 41, // 132: server.Runner.GetSecrets:output_type -> server.Secrets
+ 37, // 133: server.Runner.CreateSecret:output_type -> server.CommonResult
+ 37, // 134: server.Runner.DeleteSecret:output_type -> server.CommonResult
+ 37, // 135: server.Runner.UpdateSecret:output_type -> server.CommonResult
+ 45, // 136: server.Runner.PProf:output_type -> server.PProfData
+ 37, // 137: server.RunnerExtension.Run:output_type -> server.CommonResult
+ 46, // 138: server.Mock.Reload:output_type -> server.Empty
+ 47, // 139: server.Mock.GetConfig:output_type -> server.MockConfig
+ 92, // [92:140] is the sub-list for method output_type
+ 44, // [44:92] is the sub-list for method input_type
44, // [44:44] is the sub-list for extension type_name
44, // [44:44] is the sub-list for extension extendee
0, // [0:44] is the sub-list for field type_name
diff --git a/pkg/server/server.pb.gw.go b/pkg/server/server.pb.gw.go
index ea984b5ba..ccf67ab1b 100644
--- a/pkg/server/server.pb.gw.go
+++ b/pkg/server/server.pb.gw.go
@@ -1110,10 +1110,6 @@ func request_Runner_GetHistorySuites_0(ctx context.Context, marshaler runtime.Ma
var protoReq Empty
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
- }
-
msg, err := client.GetHistorySuites(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@@ -1123,20 +1119,40 @@ func local_request_Runner_GetHistorySuites_0(ctx context.Context, marshaler runt
var protoReq Empty
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
- }
-
msg, err := server.GetHistorySuites(ctx, &protoReq)
return msg, metadata, err
}
+var (
+ filter_Runner_GetHistoryTestCaseWithResult_0 = &utilities.DoubleArray{Encoding: map[string]int{"ID": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+)
+
func request_Runner_GetHistoryTestCaseWithResult_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_GetHistoryTestCaseWithResult_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1149,7 +1165,27 @@ func local_request_Runner_GetHistoryTestCaseWithResult_0(ctx context.Context, ma
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_GetHistoryTestCaseWithResult_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1158,11 +1194,35 @@ func local_request_Runner_GetHistoryTestCaseWithResult_0(ctx context.Context, ma
}
+var (
+ filter_Runner_GetHistoryTestCase_0 = &utilities.DoubleArray{Encoding: map[string]int{"ID": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+)
+
func request_Runner_GetHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_GetHistoryTestCase_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1175,7 +1235,27 @@ func local_request_Runner_GetHistoryTestCase_0(ctx context.Context, marshaler ru
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_GetHistoryTestCase_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1184,11 +1264,35 @@ func local_request_Runner_GetHistoryTestCase_0(ctx context.Context, marshaler ru
}
+var (
+ filter_Runner_DeleteHistoryTestCase_0 = &utilities.DoubleArray{Encoding: map[string]int{"ID": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+)
+
func request_Runner_DeleteHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_DeleteHistoryTestCase_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1201,7 +1305,27 @@ func local_request_Runner_DeleteHistoryTestCase_0(ctx context.Context, marshaler
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_DeleteHistoryTestCase_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1210,11 +1334,125 @@ func local_request_Runner_DeleteHistoryTestCase_0(ctx context.Context, marshaler
}
+var (
+ filter_Runner_DeleteAllHistoryTestCase_0 = &utilities.DoubleArray{Encoding: map[string]int{"suiteName": 0, "caseName": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+)
+
+func request_Runner_DeleteAllHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["suiteName"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "suiteName")
+ }
+
+ protoReq.SuiteName, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "suiteName", err)
+ }
+
+ val, ok = pathParams["caseName"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "caseName")
+ }
+
+ protoReq.CaseName, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "caseName", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_DeleteAllHistoryTestCase_0); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.DeleteAllHistoryTestCase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Runner_DeleteAllHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, server RunnerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq HistoryTestCase
+ var metadata runtime.ServerMetadata
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["suiteName"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "suiteName")
+ }
+
+ protoReq.SuiteName, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "suiteName", err)
+ }
+
+ val, ok = pathParams["caseName"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "caseName")
+ }
+
+ protoReq.CaseName, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "caseName", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_DeleteAllHistoryTestCase_0); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.DeleteAllHistoryTestCase(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
+var (
+ filter_Runner_RunHistoryTestCase_0 = &utilities.DoubleArray{Encoding: map[string]int{"ID": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+)
+
func request_Runner_RunHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_RunHistoryTestCase_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1227,7 +1465,27 @@ func local_request_Runner_RunHistoryTestCase_0(ctx context.Context, marshaler ru
var protoReq HistoryTestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["ID"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
+ }
+
+ protoReq.ID, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_RunHistoryTestCase_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1236,11 +1494,45 @@ func local_request_Runner_RunHistoryTestCase_0(ctx context.Context, marshaler ru
}
+var (
+ filter_Runner_GetTestCaseAllHistory_0 = &utilities.DoubleArray{Encoding: map[string]int{"suiteName": 0, "name": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+)
+
func request_Runner_GetTestCaseAllHistory_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq TestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["suiteName"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "suiteName")
+ }
+
+ protoReq.SuiteName, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "suiteName", err)
+ }
+
+ val, ok = pathParams["name"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
+ }
+
+ protoReq.Name, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_GetTestCaseAllHistory_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -1253,7 +1545,37 @@ func local_request_Runner_GetTestCaseAllHistory_0(ctx context.Context, marshaler
var protoReq TestCase
var metadata runtime.ServerMetadata
- if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["suiteName"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "suiteName")
+ }
+
+ protoReq.SuiteName, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "suiteName", err)
+ }
+
+ val, ok = pathParams["name"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
+ }
+
+ protoReq.Name, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_GetTestCaseAllHistory_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -2417,7 +2739,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetHistorySuites", runtime.WithHTTPPathPattern("/server.Runner/GetHistorySuites"))
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetHistorySuites", runtime.WithHTTPPathPattern("/api/v1/historySuites"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2434,7 +2756,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
- mux.Handle("POST", pattern_Runner_GetHistoryTestCaseWithResult_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("GET", pattern_Runner_GetHistoryTestCaseWithResult_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
@@ -2442,7 +2764,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetHistoryTestCaseWithResult", runtime.WithHTTPPathPattern("/server.Runner/GetHistoryTestCaseWithResult"))
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetHistoryTestCaseWithResult", runtime.WithHTTPPathPattern("/api/v1/historyTestCaseWithResult/{ID}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2459,7 +2781,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
- mux.Handle("POST", pattern_Runner_GetHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("GET", pattern_Runner_GetHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
@@ -2467,7 +2789,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/GetHistoryTestCase"))
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2484,7 +2806,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
- mux.Handle("POST", pattern_Runner_DeleteHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("DELETE", pattern_Runner_DeleteHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
@@ -2492,7 +2814,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/DeleteHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/DeleteHistoryTestCase"))
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/DeleteHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2509,6 +2831,31 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
+ mux.Handle("DELETE", pattern_Runner_DeleteAllHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/DeleteAllHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/suites/{suiteName}/cases/{caseName}"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Runner_DeleteAllHistoryTestCase_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_DeleteAllHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("POST", pattern_Runner_RunHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -2517,7 +2864,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/RunHistoryTestCase"))
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}/run"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -2542,7 +2889,7 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetTestCaseAllHistory", runtime.WithHTTPPathPattern("/server.Runner/GetTestCaseAllHistory"))
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/GetTestCaseAllHistory", runtime.WithHTTPPathPattern("/api/v1/suites/{suiteName}/cases/{name}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -3577,7 +3924,7 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetHistorySuites", runtime.WithHTTPPathPattern("/server.Runner/GetHistorySuites"))
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetHistorySuites", runtime.WithHTTPPathPattern("/api/v1/historySuites"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -3593,13 +3940,13 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
- mux.Handle("POST", pattern_Runner_GetHistoryTestCaseWithResult_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("GET", pattern_Runner_GetHistoryTestCaseWithResult_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetHistoryTestCaseWithResult", runtime.WithHTTPPathPattern("/server.Runner/GetHistoryTestCaseWithResult"))
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetHistoryTestCaseWithResult", runtime.WithHTTPPathPattern("/api/v1/historyTestCaseWithResult/{ID}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -3615,13 +3962,13 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
- mux.Handle("POST", pattern_Runner_GetHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("GET", pattern_Runner_GetHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/GetHistoryTestCase"))
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -3637,13 +3984,13 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
- mux.Handle("POST", pattern_Runner_DeleteHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ mux.Handle("DELETE", pattern_Runner_DeleteHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/DeleteHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/DeleteHistoryTestCase"))
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/DeleteHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -3659,13 +4006,35 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
+ mux.Handle("DELETE", pattern_Runner_DeleteAllHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/DeleteAllHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/suites/{suiteName}/cases/{caseName}"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Runner_DeleteAllHistoryTestCase_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_DeleteAllHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("POST", pattern_Runner_RunHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/server.Runner/RunHistoryTestCase"))
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}/run"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -3687,7 +4056,7 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetTestCaseAllHistory", runtime.WithHTTPPathPattern("/server.Runner/GetTestCaseAllHistory"))
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/GetTestCaseAllHistory", runtime.WithHTTPPathPattern("/api/v1/suites/{suiteName}/cases/{name}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
@@ -4183,17 +4552,19 @@ var (
pattern_Runner_GetSuggestedAPIs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "suggestedAPIs"}, ""))
- pattern_Runner_GetHistorySuites_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "GetHistorySuites"}, ""))
+ pattern_Runner_GetHistorySuites_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "historySuites"}, ""))
- pattern_Runner_GetHistoryTestCaseWithResult_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "GetHistoryTestCaseWithResult"}, ""))
+ pattern_Runner_GetHistoryTestCaseWithResult_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "historyTestCaseWithResult", "ID"}, ""))
- pattern_Runner_GetHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "GetHistoryTestCase"}, ""))
+ pattern_Runner_GetHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "historyTestCase", "ID"}, ""))
- pattern_Runner_DeleteHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "DeleteHistoryTestCase"}, ""))
+ pattern_Runner_DeleteHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "historyTestCase", "ID"}, ""))
- pattern_Runner_RunHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "RunHistoryTestCase"}, ""))
+ pattern_Runner_DeleteAllHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "suites", "suiteName", "cases", "caseName"}, ""))
- pattern_Runner_GetTestCaseAllHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"server.Runner", "GetTestCaseAllHistory"}, ""))
+ pattern_Runner_RunHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "historyTestCase", "ID", "run"}, ""))
+
+ pattern_Runner_GetTestCaseAllHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "suites", "suiteName", "cases", "name"}, ""))
pattern_Runner_ListCodeGenerator_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "codeGenerators"}, ""))
@@ -4281,6 +4652,8 @@ var (
forward_Runner_DeleteHistoryTestCase_0 = runtime.ForwardResponseMessage
+ forward_Runner_DeleteAllHistoryTestCase_0 = runtime.ForwardResponseMessage
+
forward_Runner_RunHistoryTestCase_0 = runtime.ForwardResponseMessage
forward_Runner_GetTestCaseAllHistory_0 = runtime.ForwardResponseMessage
diff --git a/pkg/server/server.proto b/pkg/server/server.proto
index 857594e9a..f12fae042 100644
--- a/pkg/server/server.proto
+++ b/pkg/server/server.proto
@@ -117,31 +117,37 @@ service Runner {
// history test related
rpc GetHistorySuites(Empty) returns (HistorySuites) {
option (google.api.http) = {
- get: "/api/v1/historySuites"
+ post: "/api/v1/historySuites"
};
}
rpc GetHistoryTestCaseWithResult(HistoryTestCase) returns (HistoryTestResult) {
option (google.api.http) = {
- get: "/api/v1/historyTestCaseWithResult"
+ get: "/api/v1/historyTestCaseWithResult/{ID}"
};
}
rpc GetHistoryTestCase(HistoryTestCase) returns (HistoryTestCase) {
option (google.api.http) = {
- get: "/api/v1/historyTestCase/{id}"
+ get: "/api/v1/historyTestCase/{ID}"
};
}
rpc DeleteHistoryTestCase(HistoryTestCase) returns (HelloReply) {
option (google.api.http) = {
- delete: "/api/v1/historyTestCase/{id}"
+ delete: "/api/v1/historyTestCase/{ID}"
+ };
+ }
+
+ rpc DeleteAllHistoryTestCase(HistoryTestCase) returns (HelloReply) {
+ option (google.api.http) = {
+ delete: "/api/v1/suites/{suiteName}/cases/{caseName}"
};
}
rpc GetTestCaseAllHistory(TestCase) returns (HistoryTestCases) {
option (google.api.http) = {
- get: "/api/v1/testCase/{id}/history"
+ post: "/api/v1/suites/{suiteName}/cases/{name}"
};
}
diff --git a/pkg/server/server.swagger.json b/pkg/server/server.swagger.json
index 81a81cbe6..3e337603a 100644
--- a/pkg/server/server.swagger.json
+++ b/pkg/server/server.swagger.json
@@ -233,6 +233,763 @@
]
}
},
+ "/api/v1/historySuites": {
+ "post": {
+ "summary": "history test related",
+ "operationId": "Runner_GetHistorySuites",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHistorySuites"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/api/v1/historyTestCase/{ID}": {
+ "get": {
+ "operationId": "Runner_GetHistoryTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestCase"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "ID",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "caseName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "historySuiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "createTime",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "name": "suiteSpec.kind",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.url",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.import",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "suiteSpec.rpc.serverReflection",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.rpc.protofile",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.protoset",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.raw",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.insecure",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.secure.cert",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.ca",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.serverName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.key",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteApi",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.api",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.method",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.statusCode",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "response.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.verify",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "response.schema",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ },
+ "delete": {
+ "operationId": "Runner_DeleteHistoryTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHelloReply"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "ID",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "caseName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "historySuiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "createTime",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "name": "suiteSpec.kind",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.url",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.import",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "suiteSpec.rpc.serverReflection",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.rpc.protofile",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.protoset",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.raw",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.insecure",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.secure.cert",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.ca",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.serverName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.key",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteApi",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.api",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.method",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.statusCode",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "response.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.verify",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "response.schema",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/api/v1/historyTestCase/{ID}/run": {
+ "post": {
+ "operationId": "Runner_RunHistoryTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverTestCaseResult"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "ID",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "caseName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "historySuiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "createTime",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "name": "suiteSpec.kind",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.url",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.import",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "suiteSpec.rpc.serverReflection",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.rpc.protofile",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.protoset",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.raw",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.insecure",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.secure.cert",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.ca",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.serverName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.key",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteApi",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.api",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.method",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.statusCode",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "response.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.verify",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "response.schema",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/api/v1/historyTestCaseWithResult/{ID}": {
+ "get": {
+ "operationId": "Runner_GetHistoryTestCaseWithResult",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHistoryTestResult"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "ID",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "caseName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "historySuiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "createTime",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "name": "suiteSpec.kind",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.url",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.import",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "suiteSpec.rpc.serverReflection",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.rpc.protofile",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.protoset",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.raw",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.insecure",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.secure.cert",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.ca",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.serverName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.key",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteApi",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.api",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.method",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.statusCode",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "response.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.verify",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "response.schema",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
"/api/v1/mock/config": {
"get": {
"operationId": "Mock_GetConfig",
@@ -1199,9 +1956,231 @@
]
}
},
- "/api/v1/suites/{suiteName}/cases": {
- "post": {
- "operationId": "Runner_CreateTestCase",
+ "/api/v1/suites/{suiteName}/cases": {
+ "post": {
+ "operationId": "Runner_CreateTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHelloReply"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "suiteName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RunnerCreateTestCaseBody"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/api/v1/suites/{suiteName}/cases/{caseName}": {
+ "delete": {
+ "operationId": "Runner_DeleteAllHistoryTestCase",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverHelloReply"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "suiteName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "caseName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "historySuiteName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "createTime",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "name": "suiteSpec.kind",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.url",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.import",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "suiteSpec.rpc.serverReflection",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.rpc.protofile",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.protoset",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.rpc.raw",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.insecure",
+ "in": "query",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "suiteSpec.secure.cert",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.ca",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.serverName",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteSpec.secure.key",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "suiteApi",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.api",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.method",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.statusCode",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "response.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.verify",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "response.schema",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "ID",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
+ "/api/v1/suites/{suiteName}/cases/{data.name}": {
+ "put": {
+ "operationId": "Runner_UpdateTestCase",
"responses": {
"200": {
"description": "A successful response.",
@@ -1223,12 +2202,18 @@
"required": true,
"type": "string"
},
+ {
+ "name": "data.name",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
{
"name": "body",
"in": "body",
"required": true,
"schema": {
- "$ref": "#/definitions/RunnerCreateTestCaseBody"
+ "$ref": "#/definitions/RunnerUpdateTestCaseBody"
}
}
],
@@ -1237,14 +2222,14 @@
]
}
},
- "/api/v1/suites/{suiteName}/cases/{data.name}": {
- "put": {
- "operationId": "Runner_UpdateTestCase",
+ "/api/v1/suites/{suiteName}/cases/{name}": {
+ "post": {
+ "operationId": "Runner_GetTestCaseAllHistory",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
- "$ref": "#/definitions/serverHelloReply"
+ "$ref": "#/definitions/serverHistoryTestCases"
}
},
"default": {
@@ -1262,18 +2247,57 @@
"type": "string"
},
{
- "name": "data.name",
+ "name": "name",
"in": "path",
"required": true,
"type": "string"
},
{
- "name": "body",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/RunnerUpdateTestCaseBody"
- }
+ "name": "request.api",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.method",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "request.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.statusCode",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "response.body",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "response.verify",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "response.schema",
+ "in": "query",
+ "required": false,
+ "type": "string"
}
],
"tags": [
@@ -1410,167 +2434,6 @@
]
}
},
- "/server.Runner/DeleteHistoryTestCase": {
- "post": {
- "operationId": "Runner_DeleteHistoryTestCase",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/serverHelloReply"
- }
- },
- "default": {
- "description": "An unexpected error response.",
- "schema": {
- "$ref": "#/definitions/rpcStatus"
- }
- }
- },
- "parameters": [
- {
- "name": "body",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/serverHistoryTestCase"
- }
- }
- ],
- "tags": [
- "Runner"
- ]
- }
- },
- "/server.Runner/GetHistorySuites": {
- "post": {
- "summary": "history test related",
- "operationId": "Runner_GetHistorySuites",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/serverHistorySuites"
- }
- },
- "default": {
- "description": "An unexpected error response.",
- "schema": {
- "$ref": "#/definitions/rpcStatus"
- }
- }
- },
- "parameters": [
- {
- "name": "body",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/serverEmpty"
- }
- }
- ],
- "tags": [
- "Runner"
- ]
- }
- },
- "/server.Runner/GetHistoryTestCase": {
- "post": {
- "operationId": "Runner_GetHistoryTestCase",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/serverHistoryTestCase"
- }
- },
- "default": {
- "description": "An unexpected error response.",
- "schema": {
- "$ref": "#/definitions/rpcStatus"
- }
- }
- },
- "parameters": [
- {
- "name": "body",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/serverHistoryTestCase"
- }
- }
- ],
- "tags": [
- "Runner"
- ]
- }
- },
- "/server.Runner/GetHistoryTestCaseWithResult": {
- "post": {
- "operationId": "Runner_GetHistoryTestCaseWithResult",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/serverHistoryTestResult"
- }
- },
- "default": {
- "description": "An unexpected error response.",
- "schema": {
- "$ref": "#/definitions/rpcStatus"
- }
- }
- },
- "parameters": [
- {
- "name": "body",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/serverHistoryTestCase"
- }
- }
- ],
- "tags": [
- "Runner"
- ]
- }
- },
- "/server.Runner/GetTestCaseAllHistory": {
- "post": {
- "operationId": "Runner_GetTestCaseAllHistory",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/serverHistoryTestCases"
- }
- },
- "default": {
- "description": "An unexpected error response.",
- "schema": {
- "$ref": "#/definitions/rpcStatus"
- }
- }
- },
- "parameters": [
- {
- "name": "body",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/serverTestCase"
- }
- }
- ],
- "tags": [
- "Runner"
- ]
- }
- },
"/server.Runner/PProf": {
"post": {
"summary": "extension",
@@ -1603,38 +2466,6 @@
"Runner"
]
}
- },
- "/server.Runner/RunHistoryTestCase": {
- "post": {
- "operationId": "Runner_RunHistoryTestCase",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/serverTestCaseResult"
- }
- },
- "default": {
- "description": "An unexpected error response.",
- "schema": {
- "$ref": "#/definitions/rpcStatus"
- }
- }
- },
- "parameters": [
- {
- "name": "body",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/serverHistoryTestCase"
- }
- }
- ],
- "tags": [
- "Runner"
- ]
- }
}
},
"definitions": {
@@ -1951,8 +2782,7 @@
"ID": {
"type": "string"
}
- },
- "title": "todo TestCase和HistoryTestCase合并一下,这样就方便了"
+ }
},
"serverHistoryTestCases": {
"type": "object",
diff --git a/pkg/server/server_grpc.pb.go b/pkg/server/server_grpc.pb.go
index 503957438..906f1655c 100644
--- a/pkg/server/server_grpc.pb.go
+++ b/pkg/server/server_grpc.pb.go
@@ -49,6 +49,7 @@ type RunnerClient interface {
GetHistoryTestCaseWithResult(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestResult, error)
GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestCase, error)
DeleteHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HelloReply, error)
+ DeleteAllHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HelloReply, error)
RunHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*TestCaseResult, error)
GetTestCaseAllHistory(ctx context.Context, in *TestCase, opts ...grpc.CallOption) (*HistoryTestCases, error)
// code generator
@@ -307,6 +308,15 @@ func (c *runnerClient) DeleteHistoryTestCase(ctx context.Context, in *HistoryTes
return out, nil
}
+func (c *runnerClient) DeleteAllHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HelloReply, error) {
+ out := new(HelloReply)
+ err := c.cc.Invoke(ctx, "/server.Runner/DeleteAllHistoryTestCase", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *runnerClient) RunHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*TestCaseResult, error) {
out := new(TestCaseResult)
err := c.cc.Invoke(ctx, "/server.Runner/RunHistoryTestCase", in, out, opts...)
@@ -558,6 +568,7 @@ type RunnerServer interface {
GetHistoryTestCaseWithResult(context.Context, *HistoryTestCase) (*HistoryTestResult, error)
GetHistoryTestCase(context.Context, *HistoryTestCase) (*HistoryTestCase, error)
DeleteHistoryTestCase(context.Context, *HistoryTestCase) (*HelloReply, error)
+ DeleteAllHistoryTestCase(context.Context, *HistoryTestCase) (*HelloReply, error)
RunHistoryTestCase(context.Context, *HistoryTestCase) (*TestCaseResult, error)
GetTestCaseAllHistory(context.Context, *TestCase) (*HistoryTestCases, error)
// code generator
@@ -659,6 +670,9 @@ func (UnimplementedRunnerServer) GetHistoryTestCase(context.Context, *HistoryTes
func (UnimplementedRunnerServer) DeleteHistoryTestCase(context.Context, *HistoryTestCase) (*HelloReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteHistoryTestCase not implemented")
}
+func (UnimplementedRunnerServer) DeleteAllHistoryTestCase(context.Context, *HistoryTestCase) (*HelloReply, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteAllHistoryTestCase not implemented")
+}
func (UnimplementedRunnerServer) RunHistoryTestCase(context.Context, *HistoryTestCase) (*TestCaseResult, error) {
return nil, status.Errorf(codes.Unimplemented, "method RunHistoryTestCase not implemented")
}
@@ -1142,6 +1156,24 @@ func _Runner_DeleteHistoryTestCase_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler)
}
+func _Runner_DeleteAllHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HistoryTestCase)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RunnerServer).DeleteAllHistoryTestCase(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/server.Runner/DeleteAllHistoryTestCase",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RunnerServer).DeleteAllHistoryTestCase(ctx, req.(*HistoryTestCase))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Runner_RunHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(HistoryTestCase)
if err := dec(in); err != nil {
@@ -1637,6 +1669,10 @@ var Runner_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteHistoryTestCase",
Handler: _Runner_DeleteHistoryTestCase_Handler,
},
+ {
+ MethodName: "DeleteAllHistoryTestCase",
+ Handler: _Runner_DeleteAllHistoryTestCase_Handler,
+ },
{
MethodName: "RunHistoryTestCase",
Handler: _Runner_RunHistoryTestCase_Handler,
diff --git a/pkg/testing/loader.go b/pkg/testing/loader.go
index 510ea43ef..1e4b8ff5e 100644
--- a/pkg/testing/loader.go
+++ b/pkg/testing/loader.go
@@ -42,6 +42,7 @@ type Writer interface {
GetHistoryTestCaseWithResult(id string) (historyTestCase HistoryTestResult, err error)
GetHistoryTestCase(id string) (historyTestCase HistoryTestCase, err error)
DeleteHistoryTestCase(id string) (err error)
+ DeleteAllHistoryTestCase(suite, name string) (err error)
GetTestCaseAllHistory(suite, name string) (historyTestCase []HistoryTestCase, err error)
ListTestSuite() (suites []TestSuite, err error)
diff --git a/pkg/testing/loader_file.go b/pkg/testing/loader_file.go
index feaf33ee9..90f9783dd 100644
--- a/pkg/testing/loader_file.go
+++ b/pkg/testing/loader_file.go
@@ -429,7 +429,7 @@ func (l *fileLoader) DeleteTestCase(suiteName, testcase string) (err error) {
return
}
-func (l *fileLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error) { // always be okay
+func (l *fileLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error) { // always be okay
return
}
@@ -449,6 +449,10 @@ func (l *fileLoader) DeleteHistoryTestCase(id string) (err error) {
return
}
+func (l *fileLoader) DeleteAllHistoryTestCase(suite, name string) (err error) {
+ return
+}
+
func (l *fileLoader) GetTestCaseAllHistory(suite, name string) (historyTestCase []HistoryTestCase, err error) {
return
}
diff --git a/pkg/testing/loader_non.go b/pkg/testing/loader_non.go
index 15b449f04..d5dea821e 100644
--- a/pkg/testing/loader_non.go
+++ b/pkg/testing/loader_non.go
@@ -104,7 +104,7 @@ func (l *nonLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteNa
return
}
-func (l *nonLoader) ListHistoryTestSuite()(suites []HistoryTestSuite, err error) {
+func (l *nonLoader) ListHistoryTestSuite() (suites []HistoryTestSuite, err error) {
return
}
@@ -115,10 +115,15 @@ func (l *nonLoader) GetHistoryTestCaseWithResult(id string) (testcase HistoryTes
func (l *nonLoader) GetHistoryTestCase(id string) (testcase HistoryTestCase, err error) {
return
}
+
func (l *nonLoader) DeleteHistoryTestCase(id string) (err error) {
return
}
+func (l *nonLoader) DeleteAllHistoryTestCase(suite, name string) (err error) {
+ return
+}
+
func (l *nonLoader) GetTestCaseAllHistory(suite, name string) (historyTestCase []HistoryTestCase, err error) {
return
}
diff --git a/pkg/testing/remote/grpc_store.go b/pkg/testing/remote/grpc_store.go
index c3258b003..50caa311a 100644
--- a/pkg/testing/remote/grpc_store.go
+++ b/pkg/testing/remote/grpc_store.go
@@ -187,6 +187,14 @@ func (g *gRPCLoader) DeleteHistoryTestCase(id string) (err error) {
return
}
+func (g *gRPCLoader) DeleteAllHistoryTestCase(suite, name string) (err error) {
+ _, err = g.client.DeleteAllHistoryTestCase(g.ctx, &server.HistoryTestCase{
+ SuiteName: suite,
+ CaseName: name,
+ })
+ return
+}
+
func (g *gRPCLoader) GetTestCaseAllHistory(suite, name string) (historyTestcases []testing.HistoryTestCase, err error) {
var historyTestCases *server.HistoryTestCases
historyTestCases, err = g.client.GetTestCaseAllHistory(g.ctx, &server.TestCase{
diff --git a/pkg/testing/remote/loader.pb.go b/pkg/testing/remote/loader.pb.go
index 90271c111..0ae8d627b 100644
--- a/pkg/testing/remote/loader.pb.go
+++ b/pkg/testing/remote/loader.pb.go
@@ -408,7 +408,7 @@ var file_pkg_testing_remote_loader_proto_rawDesc = []byte{
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
- 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xfa, 0x08, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64,
+ 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xc0, 0x09, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64,
0x65, 0x72, 0x12, 0x34, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75,
0x69, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x1a, 0x12, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74,
@@ -466,60 +466,65 @@ var file_pkg_testing_remote_loader_proto_rawDesc = []byte{
0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74,
0x43, 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74,
- 0x43, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
- 0x1a, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
- 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a,
- 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x06,
- 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00,
- 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61,
- 0x74, 0x61, 0x22, 0x00, 0x32, 0x96, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63,
+ 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41,
+ 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
+ 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x15, 0x47,
+ 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73,
+ 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73,
+ 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
+ 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x22, 0x00, 0x12, 0x32, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x0d, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12,
+ 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50,
+ 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x96, 0x02, 0x0a, 0x0d, 0x53,
+ 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x09,
+ 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47,
+ 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63,
0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63,
- 0x72, 0x65, 0x74, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63,
- 0x72, 0x65, 0x74, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72,
- 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
- 0x65, 0x74, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
- 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
- 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a,
- 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
- 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
- 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x32, 0x9e, 0x02,
- 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
- 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x0d, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x72,
- 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x00, 0x12,
- 0x31, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65,
- 0x1a, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x12, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
- 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x2e, 0x72, 0x65, 0x6d,
- 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+ 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x00, 0x32, 0x9e, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
+ 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x73, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70,
- 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x42, 0x36,
- 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e,
- 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74,
- 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f,
- 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74,
+ 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00,
+ 0x12, 0x36, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x14, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70,
+ 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x65,
+ 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -582,51 +587,53 @@ var file_pkg_testing_remote_loader_proto_depIdxs = []int32{
9, // 19: remote.Loader.GetHistoryTestCaseWithResult:input_type -> server.HistoryTestCase
9, // 20: remote.Loader.GetHistoryTestCase:input_type -> server.HistoryTestCase
9, // 21: remote.Loader.DeleteHistoryTestCase:input_type -> server.HistoryTestCase
- 8, // 22: remote.Loader.GetTestCaseAllHistory:input_type -> server.TestCase
- 10, // 23: remote.Loader.GetVersion:input_type -> server.Empty
- 10, // 24: remote.Loader.Verify:input_type -> server.Empty
- 12, // 25: remote.Loader.PProf:input_type -> server.PProfRequest
- 13, // 26: remote.SecretService.GetSecret:input_type -> server.Secret
- 10, // 27: remote.SecretService.GetSecrets:input_type -> server.Empty
- 13, // 28: remote.SecretService.CreateSecret:input_type -> server.Secret
- 13, // 29: remote.SecretService.DeleteSecret:input_type -> server.Secret
- 13, // 30: remote.SecretService.UpdateSecret:input_type -> server.Secret
- 10, // 31: remote.ConfigService.GetConfigs:input_type -> server.Empty
- 14, // 32: remote.ConfigService.GetConfig:input_type -> server.SimpleName
- 5, // 33: remote.ConfigService.CreateConfig:input_type -> remote.Config
- 5, // 34: remote.ConfigService.UpdateConfig:input_type -> remote.Config
- 14, // 35: remote.ConfigService.DeleteConfig:input_type -> server.SimpleName
- 0, // 36: remote.Loader.ListTestSuite:output_type -> remote.TestSuites
- 10, // 37: remote.Loader.CreateTestSuite:output_type -> server.Empty
- 1, // 38: remote.Loader.GetTestSuite:output_type -> remote.TestSuite
- 1, // 39: remote.Loader.UpdateTestSuite:output_type -> remote.TestSuite
- 10, // 40: remote.Loader.DeleteTestSuite:output_type -> server.Empty
- 15, // 41: remote.Loader.ListTestCases:output_type -> server.TestCases
- 10, // 42: remote.Loader.CreateTestCase:output_type -> server.Empty
- 8, // 43: remote.Loader.GetTestCase:output_type -> server.TestCase
- 8, // 44: remote.Loader.UpdateTestCase:output_type -> server.TestCase
- 10, // 45: remote.Loader.DeleteTestCase:output_type -> server.Empty
- 2, // 46: remote.Loader.ListHistoryTestSuite:output_type -> remote.HistoryTestSuites
- 10, // 47: remote.Loader.CreateTestCaseHistory:output_type -> server.Empty
- 11, // 48: remote.Loader.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
- 9, // 49: remote.Loader.GetHistoryTestCase:output_type -> server.HistoryTestCase
- 10, // 50: remote.Loader.DeleteHistoryTestCase:output_type -> server.Empty
- 16, // 51: remote.Loader.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
- 17, // 52: remote.Loader.GetVersion:output_type -> server.Version
- 18, // 53: remote.Loader.Verify:output_type -> server.ExtensionStatus
- 19, // 54: remote.Loader.PProf:output_type -> server.PProfData
- 13, // 55: remote.SecretService.GetSecret:output_type -> server.Secret
- 20, // 56: remote.SecretService.GetSecrets:output_type -> server.Secrets
- 21, // 57: remote.SecretService.CreateSecret:output_type -> server.CommonResult
- 21, // 58: remote.SecretService.DeleteSecret:output_type -> server.CommonResult
- 21, // 59: remote.SecretService.UpdateSecret:output_type -> server.CommonResult
- 4, // 60: remote.ConfigService.GetConfigs:output_type -> remote.Configs
- 5, // 61: remote.ConfigService.GetConfig:output_type -> remote.Config
- 21, // 62: remote.ConfigService.CreateConfig:output_type -> server.CommonResult
- 21, // 63: remote.ConfigService.UpdateConfig:output_type -> server.CommonResult
- 21, // 64: remote.ConfigService.DeleteConfig:output_type -> server.CommonResult
- 36, // [36:65] is the sub-list for method output_type
- 7, // [7:36] is the sub-list for method input_type
+ 9, // 22: remote.Loader.DeleteAllHistoryTestCase:input_type -> server.HistoryTestCase
+ 8, // 23: remote.Loader.GetTestCaseAllHistory:input_type -> server.TestCase
+ 10, // 24: remote.Loader.GetVersion:input_type -> server.Empty
+ 10, // 25: remote.Loader.Verify:input_type -> server.Empty
+ 12, // 26: remote.Loader.PProf:input_type -> server.PProfRequest
+ 13, // 27: remote.SecretService.GetSecret:input_type -> server.Secret
+ 10, // 28: remote.SecretService.GetSecrets:input_type -> server.Empty
+ 13, // 29: remote.SecretService.CreateSecret:input_type -> server.Secret
+ 13, // 30: remote.SecretService.DeleteSecret:input_type -> server.Secret
+ 13, // 31: remote.SecretService.UpdateSecret:input_type -> server.Secret
+ 10, // 32: remote.ConfigService.GetConfigs:input_type -> server.Empty
+ 14, // 33: remote.ConfigService.GetConfig:input_type -> server.SimpleName
+ 5, // 34: remote.ConfigService.CreateConfig:input_type -> remote.Config
+ 5, // 35: remote.ConfigService.UpdateConfig:input_type -> remote.Config
+ 14, // 36: remote.ConfigService.DeleteConfig:input_type -> server.SimpleName
+ 0, // 37: remote.Loader.ListTestSuite:output_type -> remote.TestSuites
+ 10, // 38: remote.Loader.CreateTestSuite:output_type -> server.Empty
+ 1, // 39: remote.Loader.GetTestSuite:output_type -> remote.TestSuite
+ 1, // 40: remote.Loader.UpdateTestSuite:output_type -> remote.TestSuite
+ 10, // 41: remote.Loader.DeleteTestSuite:output_type -> server.Empty
+ 15, // 42: remote.Loader.ListTestCases:output_type -> server.TestCases
+ 10, // 43: remote.Loader.CreateTestCase:output_type -> server.Empty
+ 8, // 44: remote.Loader.GetTestCase:output_type -> server.TestCase
+ 8, // 45: remote.Loader.UpdateTestCase:output_type -> server.TestCase
+ 10, // 46: remote.Loader.DeleteTestCase:output_type -> server.Empty
+ 2, // 47: remote.Loader.ListHistoryTestSuite:output_type -> remote.HistoryTestSuites
+ 10, // 48: remote.Loader.CreateTestCaseHistory:output_type -> server.Empty
+ 11, // 49: remote.Loader.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
+ 9, // 50: remote.Loader.GetHistoryTestCase:output_type -> server.HistoryTestCase
+ 10, // 51: remote.Loader.DeleteHistoryTestCase:output_type -> server.Empty
+ 10, // 52: remote.Loader.DeleteAllHistoryTestCase:output_type -> server.Empty
+ 16, // 53: remote.Loader.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
+ 17, // 54: remote.Loader.GetVersion:output_type -> server.Version
+ 18, // 55: remote.Loader.Verify:output_type -> server.ExtensionStatus
+ 19, // 56: remote.Loader.PProf:output_type -> server.PProfData
+ 13, // 57: remote.SecretService.GetSecret:output_type -> server.Secret
+ 20, // 58: remote.SecretService.GetSecrets:output_type -> server.Secrets
+ 21, // 59: remote.SecretService.CreateSecret:output_type -> server.CommonResult
+ 21, // 60: remote.SecretService.DeleteSecret:output_type -> server.CommonResult
+ 21, // 61: remote.SecretService.UpdateSecret:output_type -> server.CommonResult
+ 4, // 62: remote.ConfigService.GetConfigs:output_type -> remote.Configs
+ 5, // 63: remote.ConfigService.GetConfig:output_type -> remote.Config
+ 21, // 64: remote.ConfigService.CreateConfig:output_type -> server.CommonResult
+ 21, // 65: remote.ConfigService.UpdateConfig:output_type -> server.CommonResult
+ 21, // 66: remote.ConfigService.DeleteConfig:output_type -> server.CommonResult
+ 37, // [37:67] is the sub-list for method output_type
+ 7, // [7:37] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
diff --git a/pkg/testing/remote/loader.proto b/pkg/testing/remote/loader.proto
index d23cb81c8..bb830c364 100644
--- a/pkg/testing/remote/loader.proto
+++ b/pkg/testing/remote/loader.proto
@@ -24,6 +24,7 @@ service Loader {
rpc GetHistoryTestCaseWithResult(server.HistoryTestCase) returns (server.HistoryTestResult) {}
rpc GetHistoryTestCase(server.HistoryTestCase) returns (server.HistoryTestCase) {}
rpc DeleteHistoryTestCase(server.HistoryTestCase) returns (server.Empty) {}
+ rpc DeleteAllHistoryTestCase(server.HistoryTestCase) returns (server.Empty) {}
rpc GetTestCaseAllHistory(server.TestCase) returns (server.HistoryTestCases) {}
rpc GetVersion(server.Empty) returns (server.Version) {}
diff --git a/pkg/testing/remote/loader_grpc.pb.go b/pkg/testing/remote/loader_grpc.pb.go
index faa149628..3dd189416 100644
--- a/pkg/testing/remote/loader_grpc.pb.go
+++ b/pkg/testing/remote/loader_grpc.pb.go
@@ -38,6 +38,7 @@ type LoaderClient interface {
GetHistoryTestCaseWithResult(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestResult, error)
GetHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.HistoryTestCase, error)
DeleteHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.Empty, error)
+ DeleteAllHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.Empty, error)
GetTestCaseAllHistory(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.HistoryTestCases, error)
GetVersion(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.Version, error)
Verify(ctx context.Context, in *server.Empty, opts ...grpc.CallOption) (*server.ExtensionStatus, error)
@@ -187,6 +188,15 @@ func (c *loaderClient) DeleteHistoryTestCase(ctx context.Context, in *server.His
return out, nil
}
+func (c *loaderClient) DeleteAllHistoryTestCase(ctx context.Context, in *server.HistoryTestCase, opts ...grpc.CallOption) (*server.Empty, error) {
+ out := new(server.Empty)
+ err := c.cc.Invoke(ctx, "/remote.Loader/DeleteAllHistoryTestCase", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *loaderClient) GetTestCaseAllHistory(ctx context.Context, in *server.TestCase, opts ...grpc.CallOption) (*server.HistoryTestCases, error) {
out := new(server.HistoryTestCases)
err := c.cc.Invoke(ctx, "/remote.Loader/GetTestCaseAllHistory", in, out, opts...)
@@ -242,6 +252,7 @@ type LoaderServer interface {
GetHistoryTestCaseWithResult(context.Context, *server.HistoryTestCase) (*server.HistoryTestResult, error)
GetHistoryTestCase(context.Context, *server.HistoryTestCase) (*server.HistoryTestCase, error)
DeleteHistoryTestCase(context.Context, *server.HistoryTestCase) (*server.Empty, error)
+ DeleteAllHistoryTestCase(context.Context, *server.HistoryTestCase) (*server.Empty, error)
GetTestCaseAllHistory(context.Context, *server.TestCase) (*server.HistoryTestCases, error)
GetVersion(context.Context, *server.Empty) (*server.Version, error)
Verify(context.Context, *server.Empty) (*server.ExtensionStatus, error)
@@ -298,6 +309,9 @@ func (UnimplementedLoaderServer) GetHistoryTestCase(context.Context, *server.His
func (UnimplementedLoaderServer) DeleteHistoryTestCase(context.Context, *server.HistoryTestCase) (*server.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteHistoryTestCase not implemented")
}
+func (UnimplementedLoaderServer) DeleteAllHistoryTestCase(context.Context, *server.HistoryTestCase) (*server.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteAllHistoryTestCase not implemented")
+}
func (UnimplementedLoaderServer) GetTestCaseAllHistory(context.Context, *server.TestCase) (*server.HistoryTestCases, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetTestCaseAllHistory not implemented")
}
@@ -593,6 +607,24 @@ func _Loader_DeleteHistoryTestCase_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler)
}
+func _Loader_DeleteAllHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(server.HistoryTestCase)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(LoaderServer).DeleteAllHistoryTestCase(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/remote.Loader/DeleteAllHistoryTestCase",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(LoaderServer).DeleteAllHistoryTestCase(ctx, req.(*server.HistoryTestCase))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Loader_GetTestCaseAllHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(server.TestCase)
if err := dec(in); err != nil {
@@ -732,6 +764,10 @@ var Loader_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteHistoryTestCase",
Handler: _Loader_DeleteHistoryTestCase_Handler,
},
+ {
+ MethodName: "DeleteAllHistoryTestCase",
+ Handler: _Loader_DeleteAllHistoryTestCase_Handler,
+ },
{
MethodName: "GetTestCaseAllHistory",
Handler: _Loader_GetTestCaseAllHistory_Handler,
From 313f2dc7f61e670454d79ed20abff7e8f6a9f43f Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Sat, 7 Sep 2024 21:41:10 +0800
Subject: [PATCH 08/15] fix: change createHistory position and change history
page not editable
---
console/atest-ui/src/views/TestCase.vue | 29 ++++++++++++++++--------
pkg/server/remote_server.go | 30 ++++++++++++-------------
2 files changed, 35 insertions(+), 24 deletions(-)
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index f5e820c5a..e072b2949 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -803,6 +803,7 @@ Magic.Keys(() => {
:fetch-suggestions="querySuggestedAPIs"
placeholder="API Address"
style="width: 50%; margin-left: 5px; margin-right: 5px; flex-grow: 1;"
+ :readonly="isHistoryTestCase"
>
{{ item.request.method }}
@@ -810,7 +811,7 @@ Magic.Keys(() => {
-
+
{{ t('button.send') }}
@@ -835,13 +836,14 @@ Magic.Keys(() => {
v-model="scope.row.key"
placeholder="Key"
@change="queryChange"
+ :readonly="isHistoryTestCase"
/>
-
+
@@ -862,6 +864,7 @@ Magic.Keys(() => {
placeholder="Key"
@change="headerChange"
@select="headerSelect"
+ :readonly="isHistoryTestCase"
/>
@@ -872,6 +875,7 @@ Magic.Keys(() => {
v-model="scope.row.value"
:fetch-suggestions="queryHeaderValues"
style="width: 100%;"
+ :readonly="isHistoryTestCase"
/>
@@ -889,13 +893,14 @@ Magic.Keys(() => {
-
+
@@ -922,17 +927,18 @@ Magic.Keys(() => {
+ v-model="testCaseWithSuite.data.request.body"
+ :disabled="isHistoryTestCase"/>
-
+
-
+
@@ -955,6 +961,7 @@ Magic.Keys(() => {
class="w-50 m-2"
placeholder="Please input"
style="width: 200px"
+ :readonly="isHistoryTestCase"
/>
{
:autosize="{ minRows: 4, maxRows: 8 }"
type="textarea"
placeholder="Expected Body"
+ :readonly="isHistoryTestCase"
/>
@@ -973,13 +981,14 @@ Magic.Keys(() => {
v-model="scope.row.key"
placeholder="Key"
@change="expectedHeaderChange"
+ :readonly="isHistoryTestCase"
/>
-
+
@@ -996,13 +1005,14 @@ Magic.Keys(() => {
clearable
placeholder="Key"
@change="bodyFiledExpectChange"
+ :readonly="isHistoryTestCase"
/>
-
+
@@ -1011,7 +1021,7 @@ Magic.Keys(() => {
-
+
@@ -1020,6 +1030,7 @@ Magic.Keys(() => {
v-model="testCaseWithSuite.data.response.schema"
:autosize="{ minRows: 4, maxRows: 20 }"
type="textarea"
+ :readonly="isHistoryTestCase"
/>
diff --git a/pkg/server/remote_server.go b/pkg/server/remote_server.go
index 1bf2058d0..b62094e6f 100644
--- a/pkg/server/remote_server.go
+++ b/pkg/server/remote_server.go
@@ -273,6 +273,21 @@ func (s *server) Run(ctx context.Context, task *TestTask) (reply *TestResult, er
fmt.Fprintln(buf, reply.Error)
}
reply.Message = buf.String()
+ // create history record
+ go func() {
+ loader := s.getLoader(ctx)
+ defer loader.Close()
+ for _, testCaseResult := range reply.TestCaseResult {
+ for i, item := range suite.Items {
+ suite.Items[i].Request.API = fmt.Sprintf("%s/%s", suite.API, item.Request.API)
+ }
+ err = loader.CreateHistoryTestCase(ToNormalTestCaseResult(testCaseResult), suite)
+ if err != nil {
+ remoteServerLogger.Info("error create history")
+ }
+ }
+ }()
+
return
}
@@ -548,7 +563,6 @@ func (s *server) GetHistoryTestCase(ctx context.Context, in *HistoryTestCase) (r
return
}
-<<<<<<< HEAD
var ExecutionCountNum = promauto.NewCounter(prometheus.CounterOpts{
Name: "atest_execution_count",
Help: "The total number of request execution",
@@ -649,20 +663,6 @@ func (s *server) RunTestCase(ctx context.Context, in *TestCaseIdentity) (result
result.Header = lastItem.Header
result.StatusCode = lastItem.StatusCode
}
-
- normalResult := ToNormalTestCaseResult(result)
- var testSuite *testing.TestSuite
- if testSuite, err = s.getSuiteFromTestTask(task); err != nil {
- result = &TestCaseResult{
- Error: err.Error(),
- }
- }
- err = loader.CreateHistoryTestCase(normalResult, testSuite)
- if err != nil {
- result = &TestCaseResult{
- Error: err.Error(),
- }
- }
}
return
}
From 9635ef8e48ff73d93c31c5cccf12c7a5618c6fc8 Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Sun, 8 Sep 2024 20:14:13 +0800
Subject: [PATCH 09/15] feat: handle big response
---
console/atest-ui/src/views/TestCase.vue | 46 +-
console/atest-ui/src/views/net.ts | 40 +-
pkg/server/remote_server.go | 62 ++
pkg/server/server.pb.go | 770 +++++++++++++-----------
pkg/server/server.pb.gw.go | 232 ++++---
pkg/server/server.proto | 12 +
pkg/server/server.swagger.json | 290 ++++-----
pkg/server/server_grpc.pb.go | 72 +--
8 files changed, 835 insertions(+), 689 deletions(-)
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index e072b2949..6e3ee6d9b 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -98,8 +98,11 @@ const handleTestResult = (e) => {
if (!isHistoryTestCase.value) {
handleTestResultError(e)
}
+ const isFilePath = e.body.startsWith("isFilePath-")
- if (e.body !== '') {
+ if(isFilePath){
+ isResponseFile.value = true
+ } else if(e.body !== ''){
testResult.value.bodyObject = JSON.parse(e.body);
testResult.value.originBodyObject = JSON.parse(e.body);
}
@@ -312,6 +315,33 @@ function determineBodyType(e) {
});
}
+const isResponseFile = ref(false)
+function downloadResponseFile(){
+ API.DownloadResponseFile({
+ body: testResult.value.body
+ }, (e) => {
+ if (e && e.data) {
+ try {
+ const bytes = atob(e.data);
+ const blob = new Blob([bytes], { type: 'mimeType' });
+ const link = document.createElement('a');
+ link.href = window.URL.createObjectURL(blob);
+ link.download = e.filename.substring("isFilePath-".length);
+
+ document.body.appendChild(link);
+ link.click();
+
+ window.URL.revokeObjectURL(link.href);
+ document.body.removeChild(link);
+ } catch (error) {
+ console.error('Error during file download:', error);
+ }
+ } else {
+ console.error('No data to download.');
+ }
+ })
+}
+
function setDefaultValues(e) {
if (e.request.method === '') {
e.request.method = 'GET'
@@ -1157,10 +1187,20 @@ Magic.Keys(() => {
-
+
-
+
+
+
+
+ Response body is too large, please download to view.
+
+
+ Download
+
+
+
diff --git a/console/atest-ui/src/views/net.ts b/console/atest-ui/src/views/net.ts
index 2bd5fc15d..9fc3b5d2f 100644
--- a/console/atest-ui/src/views/net.ts
+++ b/console/atest-ui/src/views/net.ts
@@ -622,12 +622,50 @@ function DeleteAllHistoryTestCase(suiteName: string, caseName: string,
.then(callback).catch(errHandle)
}
+function GetTestCaseAllHistory(req: TestCase,
+ callback: (d: any) => void, errHandle?: (e: any) => void | null) {
+ const requestOptions = {
+ method: 'POST',
+ headers: {
+ 'X-Store-Name': Cache.GetCurrentStore().name,
+ 'X-Auth': getToken()
+ },
+ body: JSON.stringify({
+ suiteName: req.suiteName,
+ name: req.name
+ })
+ }
+ fetch(`/api/v1/suites/${req.suiteName}/cases/${req.name}`, requestOptions)
+ .then(DefaultResponseProcess)
+ .then(callback).catch(errHandle)
+}
+
+function DownloadResponseFile(testcase,
+ callback: (d: any) => void, errHandle?: (e: any) => void | null) {
+ const requestOptions = {
+ method: 'POST',
+ headers: {
+ 'X-Store-Name': Cache.GetCurrentStore().name,
+ 'X-Auth': getToken()
+ },
+ body: JSON.stringify({
+ response: {
+ body: testcase.body,
+ }
+ })
+ }
+ fetch(`/api/v1/downloadFile/${testcase.body}`, requestOptions)
+ .then(DefaultResponseProcess)
+ .then(callback).catch(errHandle)
+}
+
+
export const API = {
DefaultResponseProcess,
GetVersion,
CreateTestSuite, UpdateTestSuite, ImportTestSuite, GetTestSuite, DeleteTestSuite, ConvertTestSuite,GetTestSuiteYaml,
CreateTestCase, UpdateTestCase, GetTestCase, ListTestCase, DeleteTestCase, RunTestCase,
- GetHistoryTestCaseWithResult, DeleteHistoryTestCase, GetHistoryTestCase, GetTestCaseAllHistory, DeleteAllHistoryTestCase,
+ GetHistoryTestCaseWithResult, DeleteHistoryTestCase,GetHistoryTestCase, GetTestCaseAllHistory, DeleteAllHistoryTestCase, DownloadResponseFile,
GenerateCode, ListCodeGenerator,
PopularHeaders,
CreateOrUpdateStore, GetStores, DeleteStore, VerifyStore,
diff --git a/pkg/server/remote_server.go b/pkg/server/remote_server.go
index b62094e6f..bddb0f148 100644
--- a/pkg/server/remote_server.go
+++ b/pkg/server/remote_server.go
@@ -22,8 +22,10 @@ import (
"errors"
"fmt"
"io"
+ "mime"
"net/http"
"os"
+ "path/filepath"
reflect "reflect"
"regexp"
"strings"
@@ -252,6 +254,7 @@ func (s *server) Run(ctx context.Context, task *TestTask) (reply *TestResult, er
output, testErr := suiteRunner.RunTestCase(&testCase, dataContext, ctx)
if getter, ok := suiteRunner.(runner.ResponseRecord); ok {
resp := getter.GetResponseRecord()
+ resp, err = handleLargeResponseBody(resp, suite.Name, testCase.Name)
reply.TestCaseResult = append(reply.TestCaseResult, &TestCaseResult{
StatusCode: int32(resp.StatusCode),
Body: resp.Body,
@@ -291,6 +294,65 @@ func (s *server) Run(ctx context.Context, task *TestTask) (reply *TestResult, er
return
}
+func handleLargeResponseBody(resp runner.SimpleResponse, suite string, caseName string) (reply runner.SimpleResponse, err error) {
+ const maxSize = 1024
+ prefix := "isFilePath-" + strings.Join([]string{suite, caseName}, "-")
+
+ if len(resp.Body) > maxSize {
+ tmpFile, err := os.CreateTemp("", prefix+"-")
+ defer tmpFile.Close()
+ if err != nil {
+ return resp, fmt.Errorf("failed to create file: %w", err)
+ }
+
+ if _, err = tmpFile.Write([]byte(resp.Body)); err != nil {
+ return resp, fmt.Errorf("failed to write response body to file: %w", err)
+ }
+ absFilePath, err := filepath.Abs(tmpFile.Name())
+ if err != nil {
+ return resp, fmt.Errorf("failed to get absolute file path: %w", err)
+ }
+ resp.Body = filepath.Base(absFilePath)
+ return resp, nil
+ }
+ return resp, nil
+}
+
+func (s *server) DownloadResponseFile(ctx context.Context, in *TestCase) (reply *FileData, err error) {
+ if in.Response != nil {
+ tempFileName := in.Response.Body
+ if tempFileName == "" {
+ return nil, errors.New("file name is empty")
+ }
+
+ tempDir := os.TempDir()
+ filePath := filepath.Join(tempDir, tempFileName)
+ if filepath.Clean(filePath) != filepath.Join(tempDir, filepath.Base(tempFileName)) {
+ return nil, errors.New("invalid file path")
+ }
+
+ fileContent, err := os.ReadFile(filePath)
+ if err != nil {
+ return nil, fmt.Errorf("failed to read file: %s", filePath)
+ }
+
+ mimeType := mime.TypeByExtension(filepath.Ext(filePath))
+ if mimeType == "" {
+ mimeType = "application/octet-stream"
+ }
+
+ reply = &FileData{
+ Data: fileContent,
+ ContentType: mimeType,
+ Filename: filepath.Base(filePath),
+ }
+
+ return reply, nil
+ } else {
+ return reply, errors.New("response is empty")
+ }
+}
+
func (s *server) RunTestSuite(srv Runner_RunTestSuiteServer) (err error) {
ctx := srv.Context()
for {
diff --git a/pkg/server/server.pb.go b/pkg/server/server.pb.go
index f52761271..9fafaf5fe 100644
--- a/pkg/server/server.pb.go
+++ b/pkg/server/server.pb.go
@@ -2952,6 +2952,69 @@ func (x *PProfData) GetData() []byte {
return nil
}
+type FileData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
+ ContentType string `protobuf:"bytes,2,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
+ Filename string `protobuf:"bytes,3,opt,name=filename,proto3" json:"filename,omitempty"`
+}
+
+func (x *FileData) Reset() {
+ *x = FileData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pkg_server_server_proto_msgTypes[46]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FileData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FileData) ProtoMessage() {}
+
+func (x *FileData) ProtoReflect() protoreflect.Message {
+ mi := &file_pkg_server_server_proto_msgTypes[46]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FileData.ProtoReflect.Descriptor instead.
+func (*FileData) Descriptor() ([]byte, []int) {
+ return file_pkg_server_server_proto_rawDescGZIP(), []int{46}
+}
+
+func (x *FileData) GetData() []byte {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+func (x *FileData) GetContentType() string {
+ if x != nil {
+ return x.ContentType
+ }
+ return ""
+}
+
+func (x *FileData) GetFilename() string {
+ if x != nil {
+ return x.Filename
+ }
+ return ""
+}
+
type Empty struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -2961,7 +3024,7 @@ type Empty struct {
func (x *Empty) Reset() {
*x = Empty{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_server_server_proto_msgTypes[46]
+ mi := &file_pkg_server_server_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2974,7 +3037,7 @@ func (x *Empty) String() string {
func (*Empty) ProtoMessage() {}
func (x *Empty) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_server_server_proto_msgTypes[46]
+ mi := &file_pkg_server_server_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2987,7 +3050,7 @@ func (x *Empty) ProtoReflect() protoreflect.Message {
// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
- return file_pkg_server_server_proto_rawDescGZIP(), []int{46}
+ return file_pkg_server_server_proto_rawDescGZIP(), []int{47}
}
type MockConfig struct {
@@ -3002,7 +3065,7 @@ type MockConfig struct {
func (x *MockConfig) Reset() {
*x = MockConfig{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_server_server_proto_msgTypes[47]
+ mi := &file_pkg_server_server_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3015,7 +3078,7 @@ func (x *MockConfig) String() string {
func (*MockConfig) ProtoMessage() {}
func (x *MockConfig) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_server_server_proto_msgTypes[47]
+ mi := &file_pkg_server_server_proto_msgTypes[48]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3028,7 +3091,7 @@ func (x *MockConfig) ProtoReflect() protoreflect.Message {
// Deprecated: Use MockConfig.ProtoReflect.Descriptor instead.
func (*MockConfig) Descriptor() ([]byte, []int) {
- return file_pkg_server_server_proto_rawDescGZIP(), []int{47}
+ return file_pkg_server_server_proto_rawDescGZIP(), []int{48}
}
func (x *MockConfig) GetPrefix() string {
@@ -3058,7 +3121,7 @@ type Version struct {
func (x *Version) Reset() {
*x = Version{}
if protoimpl.UnsafeEnabled {
- mi := &file_pkg_server_server_proto_msgTypes[48]
+ mi := &file_pkg_server_server_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3071,7 +3134,7 @@ func (x *Version) String() string {
func (*Version) ProtoMessage() {}
func (x *Version) ProtoReflect() protoreflect.Message {
- mi := &file_pkg_server_server_proto_msgTypes[48]
+ mi := &file_pkg_server_server_proto_msgTypes[49]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3084,7 +3147,7 @@ func (x *Version) ProtoReflect() protoreflect.Message {
// Deprecated: Use Version.ProtoReflect.Descriptor instead.
func (*Version) Descriptor() ([]byte, []int) {
- return file_pkg_server_server_proto_rawDescGZIP(), []int{48}
+ return file_pkg_server_server_proto_rawDescGZIP(), []int{49}
}
func (x *Version) GetVersion() string {
@@ -3445,304 +3508,310 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1f,
0x0a, 0x09, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64,
0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
- 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3c, 0x0a, 0x0a, 0x4d, 0x6f, 0x63, 0x6b,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16,
- 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4f, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x32, 0xbd, 0x21, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e,
- 0x65, 0x72, 0x12, 0x43, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x22, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
- 0x2f, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x54, 0x65,
- 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
- 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x2f, 0x73, 0x75, 0x69, 0x74,
- 0x65, 0x3a, 0x01, 0x2a, 0x28, 0x01, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53,
- 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x75,
- 0x69, 0x74, 0x65, 0x73, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61,
- 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x0f,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12,
- 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69,
- 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x19,
- 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
- 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0f, 0x49, 0x6d, 0x70,
- 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x53,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1d, 0x82, 0xd3, 0xe4,
- 0x93, 0x02, 0x17, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69,
- 0x74, 0x65, 0x73, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x5b, 0x0a, 0x0c, 0x47, 0x65,
- 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65,
- 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
- 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17,
- 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73,
- 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5a, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c,
- 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d,
- 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73,
+ 0x5d, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64,
+ 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12,
+ 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x07,
+ 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3c, 0x0a, 0x0a, 0x4d, 0x6f, 0x63, 0x6b, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a,
+ 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4f, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x32, 0xb9, 0x21, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e, 0x65,
+ 0x72, 0x12, 0x43, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x16,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x22, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73,
0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
- 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f,
- 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e,
- 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x7b, 0x0a, 0x12, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x44, 0x75, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x2f, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74,
- 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e,
- 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x3a, 0x01,
- 0x2a, 0x12, 0x63, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74,
- 0x65, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
+ 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65,
+ 0x3a, 0x01, 0x2a, 0x28, 0x01, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x75,
+ 0x69, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x75, 0x69,
+ 0x74, 0x65, 0x73, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x0f, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74,
+ 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x19, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73,
+ 0x75, 0x69, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f,
+ 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x17, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74,
+ 0x65, 0x73, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x5b, 0x0a, 0x0c, 0x47, 0x65, 0x74,
+ 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e,
+ 0x74, 0x69, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12,
+ 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f,
+ 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5a, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79,
+ 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
+ 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a,
+ 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74,
+ 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
- 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x59, 0x61, 0x6d, 0x6c, 0x44, 0x61,
- 0x74, 0x61, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65,
- 0x7d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0x5d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65,
- 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
- 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x75, 0x69, 0x74, 0x65,
- 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f,
- 0x63, 0x61, 0x73, 0x65, 0x73, 0x12, 0x74, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74,
- 0x43, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x16,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x2b,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b,
- 0x73, 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65,
- 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x12, 0x6a, 0x0a, 0x0b, 0x47,
- 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e,
- 0x74, 0x69, 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b,
- 0x73, 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65,
- 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x12, 0x6c, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x53,
- 0x75, 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65,
- 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25,
- 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73,
- 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73,
- 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x78, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
- 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x53, 0x75, 0x69,
- 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c,
- 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x1a, 0x2c,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b,
- 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73,
- 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12,
- 0x6f, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
- 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43,
- 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22,
- 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x2a, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
- 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f,
- 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d,
- 0x12, 0x90, 0x01, 0x0a, 0x11, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x65,
+ 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,
+ 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61,
+ 0x6d, 0x65, 0x7d, 0x12, 0x7b, 0x0a, 0x12, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65,
+ 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x44, 0x75, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48,
+ 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x2f, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65,
+ 0x73, 0x2f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61,
+ 0x6d, 0x65, 0x7d, 0x2f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a,
+ 0x12, 0x63, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
+ 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a,
+ 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x59, 0x61, 0x6d, 0x6c, 0x44, 0x61, 0x74,
+ 0x61, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d,
+ 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0x5d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73,
+ 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+ 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x75, 0x69, 0x74, 0x65, 0x22,
+ 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
+ 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63,
+ 0x61, 0x73, 0x65, 0x73, 0x12, 0x74, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x16, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x2b, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73,
+ 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73,
+ 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x12, 0x6a, 0x0a, 0x0b, 0x47, 0x65,
+ 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74,
+ 0x69, 0x74, 0x79, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73,
+ 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73,
+ 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x12, 0x6c, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x53, 0x75,
+ 0x69, 0x74, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c,
+ 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22,
+ 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f,
+ 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65,
+ 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x78, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65,
0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x53, 0x75, 0x69, 0x74,
0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f,
- 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x22, 0x41, 0x2f,
+ 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x1a, 0x2c, 0x2f,
0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f,
- 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x61, 0x73,
- 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65,
- 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73,
- 0x74, 0x65, 0x64, 0x41, 0x50, 0x49, 0x73, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
- 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74,
- 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64,
- 0x41, 0x50, 0x49, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f,
- 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x1d,
- 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
- 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x82, 0x01,
- 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74,
- 0x43, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
- 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43,
- 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2f, 0x7b, 0x49,
- 0x44, 0x7d, 0x12, 0x6c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
- 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
- 0x65, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f,
- 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74,
- 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d,
- 0x12, 0x6a, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
- 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
- 0x73, 0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c,
- 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
- 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x12, 0x7c, 0x0a, 0x18,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
+ 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f,
+ 0x7b, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x6f,
+ 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
+ 0x12, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
+ 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2f,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x2a, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x7d, 0x2f, 0x63,
+ 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x12,
+ 0x90, 0x01, 0x0a, 0x11, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73,
+ 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65,
+ 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,
+ 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x22, 0x41, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63,
+ 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x61, 0x73, 0x65,
+ 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x3a,
+ 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74,
+ 0x65, 0x64, 0x41, 0x50, 0x49, 0x73, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
+ 0x79, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x73, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41,
+ 0x50, 0x49, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x1d, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68,
+ 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x82, 0x01, 0x0a,
+ 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43,
+ 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65,
+ 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
+ 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2f, 0x7b, 0x49, 0x44,
+ 0x7d, 0x12, 0x6c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
+ 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
+ 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x12,
+ 0x6a, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73,
0x65, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f,
- 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73,
- 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f,
- 0x7b, 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6f, 0x0a, 0x12, 0x52, 0x75,
- 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
- 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
- 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61,
- 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x12, 0x74, 0x0a, 0x15, 0x47,
- 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73,
- 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73,
- 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e,
- 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65,
- 0x7d, 0x12, 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e,
- 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
- 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47,
- 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x47, 0x65, 0x6e,
- 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
- 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x67, 0x65, 0x6e,
- 0x65, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74,
- 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1a, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
- 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76,
- 0x65, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
- 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
- 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
- 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x76,
- 0x65, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61,
- 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x19, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12,
- 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51,
- 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61,
- 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43,
- 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x16, 0x82, 0xd3, 0xe4,
- 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6d,
- 0x70, 0x6c, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b,
- 0x69, 0x6e, 0x64, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f,
- 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12,
- 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f,
- 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72,
- 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
- 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
- 0x73, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01,
- 0x2a, 0x12, 0x4d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65,
- 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a,
- 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20,
- 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
- 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a,
- 0x12, 0x4a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12,
- 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1d, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73,
- 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0b,
- 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65,
- 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x45, 0x0a, 0x0a, 0x47,
- 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65,
- 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72,
- 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72,
- 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
- 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14,
- 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
- 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x54, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65,
- 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65,
- 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f,
- 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72,
- 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x57, 0x0a, 0x0c, 0x55, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d,
- 0x3a, 0x01, 0x2a, 0x12, 0x32, 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f,
- 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x32, 0x6b, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65,
- 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x52, 0x75,
- 0x6e, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53,
- 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x75,
- 0x6e, 0x3a, 0x01, 0x2a, 0x32, 0xa0, 0x01, 0x0a, 0x04, 0x4d, 0x6f, 0x63, 0x6b, 0x12, 0x4b, 0x0a,
- 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0d, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b,
- 0x2f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x4b, 0x0a, 0x09, 0x47, 0x65,
- 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65,
+ 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x2f, 0x7b, 0x49, 0x44, 0x7d, 0x12, 0x7c, 0x0a, 0x18, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
+ 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65,
+ 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52,
+ 0x65, 0x70, 0x6c, 0x79, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75,
+ 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b,
+ 0x63, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74,
+ 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x72, 0x79, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74,
+ 0x43, 0x61, 0x73, 0x65, 0x1a, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x69,
+ 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x2f,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12,
+ 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72,
+ 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d,
+ 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12,
+ 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e,
+ 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72,
+ 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65,
+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72,
+ 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f,
+ 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b,
- 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75,
- 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e,
- 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67,
- 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76,
+ 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72,
+ 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63,
+ 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72,
+ 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48,
+ 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50,
+ 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48, 0x65, 0x61,
+ 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x13, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72,
+ 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
+ 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06,
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48,
+ 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c,
+ 0x65, 0x12, 0x6b, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2f, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64,
+ 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x72, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x62, 0x6f, 0x64, 0x79, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x50,
+ 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12,
+ 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12,
+ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e,
+ 0x64, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x6b, 0x69, 0x6e, 0x64, 0x73,
+ 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x0d, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x16, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74,
+ 0x6f, 0x72, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74,
+ 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f,
+ 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72,
+ 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4d, 0x0a, 0x0b,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x1a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65,
+ 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x4a, 0x0a, 0x0b, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17,
+ 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73,
+ 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66,
+ 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72,
+ 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x73, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x50, 0x0a,
+ 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12,
+ 0x54, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12,
+ 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a,
+ 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b,
+ 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x57, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
+ 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
+ 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x32,
+ 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61,
+ 0x22, 0x00, 0x32, 0x6b, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57,
+ 0x69, 0x74, 0x68, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x32,
+ 0xa0, 0x01, 0x0a, 0x04, 0x4d, 0x6f, 0x63, 0x6b, 0x12, 0x4b, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f,
+ 0x61, 0x64, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x72, 0x65, 0x6c, 0x6f,
+ 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x4b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d,
+ 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3757,7 +3826,7 @@ func file_pkg_server_server_proto_rawDescGZIP() []byte {
return file_pkg_server_server_proto_rawDescData
}
-var file_pkg_server_server_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
+var file_pkg_server_server_proto_msgTypes = make([]protoimpl.MessageInfo, 53)
var file_pkg_server_server_proto_goTypes = []interface{}{
(*Suites)(nil), // 0: server.Suites
(*Items)(nil), // 1: server.Items
@@ -3805,17 +3874,18 @@ var file_pkg_server_server_proto_goTypes = []interface{}{
(*ExtensionStatus)(nil), // 43: server.ExtensionStatus
(*PProfRequest)(nil), // 44: server.PProfRequest
(*PProfData)(nil), // 45: server.PProfData
- (*Empty)(nil), // 46: server.Empty
- (*MockConfig)(nil), // 47: server.MockConfig
- (*Version)(nil), // 48: server.Version
- nil, // 49: server.Suites.DataEntry
- nil, // 50: server.HistorySuites.DataEntry
- nil, // 51: server.TestTask.EnvEntry
- (*timestamppb.Timestamp)(nil), // 52: google.protobuf.Timestamp
+ (*FileData)(nil), // 46: server.FileData
+ (*Empty)(nil), // 47: server.Empty
+ (*MockConfig)(nil), // 48: server.MockConfig
+ (*Version)(nil), // 49: server.Version
+ nil, // 50: server.Suites.DataEntry
+ nil, // 51: server.HistorySuites.DataEntry
+ nil, // 52: server.TestTask.EnvEntry
+ (*timestamppb.Timestamp)(nil), // 53: google.protobuf.Timestamp
}
var file_pkg_server_server_proto_depIdxs = []int32{
- 49, // 0: server.Suites.data:type_name -> server.Suites.DataEntry
- 50, // 1: server.HistorySuites.data:type_name -> server.HistorySuites.DataEntry
+ 50, // 0: server.Suites.data:type_name -> server.Suites.DataEntry
+ 51, // 1: server.HistorySuites.data:type_name -> server.HistorySuites.DataEntry
4, // 2: server.HistoryItems.data:type_name -> server.HistoryCaseIdentity
30, // 3: server.TestCaseIdentity.parameters:type_name -> server.Pair
30, // 4: server.TestSuite.param:type_name -> server.Pair
@@ -3824,18 +3894,18 @@ var file_pkg_server_server_proto_depIdxs = []int32{
23, // 7: server.TestSuiteWithCase.case:type_name -> server.TestCase
11, // 8: server.APISpec.rpc:type_name -> server.RPC
10, // 9: server.APISpec.secure:type_name -> server.Secure
- 51, // 10: server.TestTask.env:type_name -> server.TestTask.EnvEntry
+ 52, // 10: server.TestTask.env:type_name -> server.TestTask.EnvEntry
30, // 11: server.TestTask.parameters:type_name -> server.Pair
29, // 12: server.TestResult.testCaseResult:type_name -> server.TestCaseResult
29, // 13: server.HistoryTestResult.testCaseResult:type_name -> server.TestCaseResult
24, // 14: server.HistoryTestResult.data:type_name -> server.HistoryTestCase
- 52, // 15: server.HistoryTestResult.createTime:type_name -> google.protobuf.Timestamp
+ 53, // 15: server.HistoryTestResult.createTime:type_name -> google.protobuf.Timestamp
23, // 16: server.Suite.items:type_name -> server.TestCase
23, // 17: server.TestCaseWithSuite.data:type_name -> server.TestCase
23, // 18: server.TestCases.data:type_name -> server.TestCase
26, // 19: server.TestCase.request:type_name -> server.Request
27, // 20: server.TestCase.response:type_name -> server.Response
- 52, // 21: server.HistoryTestCase.createTime:type_name -> google.protobuf.Timestamp
+ 53, // 21: server.HistoryTestCase.createTime:type_name -> google.protobuf.Timestamp
30, // 22: server.HistoryTestCase.suiteParam:type_name -> server.Pair
9, // 23: server.HistoryTestCase.suiteSpec:type_name -> server.APISpec
26, // 24: server.HistoryTestCase.request:type_name -> server.Request
@@ -3860,7 +3930,7 @@ var file_pkg_server_server_proto_depIdxs = []int32{
3, // 43: server.HistorySuites.DataEntry.value:type_name -> server.HistoryItems
15, // 44: server.Runner.Run:input_type -> server.TestTask
12, // 45: server.Runner.RunTestSuite:input_type -> server.TestSuiteIdentity
- 46, // 46: server.Runner.GetSuites:input_type -> server.Empty
+ 47, // 46: server.Runner.GetSuites:input_type -> server.Empty
12, // 47: server.Runner.CreateTestSuite:input_type -> server.TestSuiteIdentity
6, // 48: server.Runner.ImportTestSuite:input_type -> server.TestSuiteSource
12, // 49: server.Runner.GetTestSuite:input_type -> server.TestSuiteIdentity
@@ -3876,36 +3946,36 @@ var file_pkg_server_server_proto_depIdxs = []int32{
5, // 59: server.Runner.DeleteTestCase:input_type -> server.TestCaseIdentity
14, // 60: server.Runner.DuplicateTestCase:input_type -> server.TestCaseDuplicate
12, // 61: server.Runner.GetSuggestedAPIs:input_type -> server.TestSuiteIdentity
- 46, // 62: server.Runner.GetHistorySuites:input_type -> server.Empty
+ 47, // 62: server.Runner.GetHistorySuites:input_type -> server.Empty
24, // 63: server.Runner.GetHistoryTestCaseWithResult:input_type -> server.HistoryTestCase
24, // 64: server.Runner.GetHistoryTestCase:input_type -> server.HistoryTestCase
24, // 65: server.Runner.DeleteHistoryTestCase:input_type -> server.HistoryTestCase
24, // 66: server.Runner.DeleteAllHistoryTestCase:input_type -> server.HistoryTestCase
- 24, // 67: server.Runner.RunHistoryTestCase:input_type -> server.HistoryTestCase
- 23, // 68: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase
- 46, // 69: server.Runner.ListCodeGenerator:input_type -> server.Empty
- 40, // 70: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
- 46, // 71: server.Runner.ListConverter:input_type -> server.Empty
- 40, // 72: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
- 46, // 73: server.Runner.PopularHeaders:input_type -> server.Empty
- 32, // 74: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
- 32, // 75: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
- 46, // 76: server.Runner.GetVersion:input_type -> server.Empty
- 46, // 77: server.Runner.Sample:input_type -> server.Empty
- 46, // 78: server.Runner.GetStoreKinds:input_type -> server.Empty
- 46, // 79: server.Runner.GetStores:input_type -> server.Empty
+ 23, // 67: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase
+ 47, // 68: server.Runner.ListCodeGenerator:input_type -> server.Empty
+ 40, // 69: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
+ 47, // 70: server.Runner.ListConverter:input_type -> server.Empty
+ 40, // 71: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
+ 47, // 72: server.Runner.PopularHeaders:input_type -> server.Empty
+ 32, // 73: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
+ 32, // 74: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
+ 47, // 75: server.Runner.GetVersion:input_type -> server.Empty
+ 47, // 76: server.Runner.Sample:input_type -> server.Empty
+ 23, // 77: server.Runner.DownloadResponseFile:input_type -> server.TestCase
+ 47, // 78: server.Runner.GetStoreKinds:input_type -> server.Empty
+ 47, // 79: server.Runner.GetStores:input_type -> server.Empty
34, // 80: server.Runner.CreateStore:input_type -> server.Store
34, // 81: server.Runner.UpdateStore:input_type -> server.Store
34, // 82: server.Runner.DeleteStore:input_type -> server.Store
32, // 83: server.Runner.VerifyStore:input_type -> server.SimpleQuery
- 46, // 84: server.Runner.GetSecrets:input_type -> server.Empty
+ 47, // 84: server.Runner.GetSecrets:input_type -> server.Empty
42, // 85: server.Runner.CreateSecret:input_type -> server.Secret
42, // 86: server.Runner.DeleteSecret:input_type -> server.Secret
42, // 87: server.Runner.UpdateSecret:input_type -> server.Secret
44, // 88: server.Runner.PProf:input_type -> server.PProfRequest
8, // 89: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
- 47, // 90: server.Mock.Reload:input_type -> server.MockConfig
- 46, // 91: server.Mock.GetConfig:input_type -> server.Empty
+ 48, // 90: server.Mock.Reload:input_type -> server.MockConfig
+ 47, // 91: server.Mock.GetConfig:input_type -> server.Empty
16, // 92: server.Runner.Run:output_type -> server.TestResult
16, // 93: server.Runner.RunTestSuite:output_type -> server.TestResult
0, // 94: server.Runner.GetSuites:output_type -> server.Suites
@@ -3929,17 +3999,17 @@ var file_pkg_server_server_proto_depIdxs = []int32{
24, // 112: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase
18, // 113: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply
18, // 114: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply
- 29, // 115: server.Runner.RunHistoryTestCase:output_type -> server.TestCaseResult
- 25, // 116: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
- 38, // 117: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
- 37, // 118: server.Runner.GenerateCode:output_type -> server.CommonResult
- 38, // 119: server.Runner.ListConverter:output_type -> server.SimpleList
- 37, // 120: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
- 31, // 121: server.Runner.PopularHeaders:output_type -> server.Pairs
- 31, // 122: server.Runner.FunctionsQuery:output_type -> server.Pairs
- 31, // 123: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
- 48, // 124: server.Runner.GetVersion:output_type -> server.Version
- 18, // 125: server.Runner.Sample:output_type -> server.HelloReply
+ 25, // 115: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
+ 38, // 116: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
+ 37, // 117: server.Runner.GenerateCode:output_type -> server.CommonResult
+ 38, // 118: server.Runner.ListConverter:output_type -> server.SimpleList
+ 37, // 119: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
+ 31, // 120: server.Runner.PopularHeaders:output_type -> server.Pairs
+ 31, // 121: server.Runner.FunctionsQuery:output_type -> server.Pairs
+ 31, // 122: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
+ 49, // 123: server.Runner.GetVersion:output_type -> server.Version
+ 18, // 124: server.Runner.Sample:output_type -> server.HelloReply
+ 46, // 125: server.Runner.DownloadResponseFile:output_type -> server.FileData
35, // 126: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
33, // 127: server.Runner.GetStores:output_type -> server.Stores
34, // 128: server.Runner.CreateStore:output_type -> server.Store
@@ -3952,8 +4022,8 @@ var file_pkg_server_server_proto_depIdxs = []int32{
37, // 135: server.Runner.UpdateSecret:output_type -> server.CommonResult
45, // 136: server.Runner.PProf:output_type -> server.PProfData
37, // 137: server.RunnerExtension.Run:output_type -> server.CommonResult
- 46, // 138: server.Mock.Reload:output_type -> server.Empty
- 47, // 139: server.Mock.GetConfig:output_type -> server.MockConfig
+ 47, // 138: server.Mock.Reload:output_type -> server.Empty
+ 48, // 139: server.Mock.GetConfig:output_type -> server.MockConfig
92, // [92:140] is the sub-list for method output_type
44, // [44:92] is the sub-list for method input_type
44, // [44:44] is the sub-list for extension type_name
@@ -4520,7 +4590,7 @@ func file_pkg_server_server_proto_init() {
}
}
file_pkg_server_server_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Empty); i {
+ switch v := v.(*FileData); i {
case 0:
return &v.state
case 1:
@@ -4532,7 +4602,7 @@ func file_pkg_server_server_proto_init() {
}
}
file_pkg_server_server_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*MockConfig); i {
+ switch v := v.(*Empty); i {
case 0:
return &v.state
case 1:
@@ -4544,6 +4614,18 @@ func file_pkg_server_server_proto_init() {
}
}
file_pkg_server_server_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MockConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pkg_server_server_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Version); i {
case 0:
return &v.state
@@ -4562,7 +4644,7 @@ func file_pkg_server_server_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pkg_server_server_proto_rawDesc,
NumEnums: 0,
- NumMessages: 52,
+ NumMessages: 53,
NumExtensions: 0,
NumServices: 3,
},
diff --git a/pkg/server/server.pb.gw.go b/pkg/server/server.pb.gw.go
index ccf67ab1b..31e31cb71 100644
--- a/pkg/server/server.pb.gw.go
+++ b/pkg/server/server.pb.gw.go
@@ -1424,76 +1424,6 @@ func local_request_Runner_DeleteAllHistoryTestCase_0(ctx context.Context, marsha
}
-var (
- filter_Runner_RunHistoryTestCase_0 = &utilities.DoubleArray{Encoding: map[string]int{"ID": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
-)
-
-func request_Runner_RunHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var protoReq HistoryTestCase
- var metadata runtime.ServerMetadata
-
- var (
- val string
- ok bool
- err error
- _ = err
- )
-
- val, ok = pathParams["ID"]
- if !ok {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
- }
-
- protoReq.ID, err = runtime.String(val)
- if err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
- }
-
- if err := req.ParseForm(); err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
- }
- if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_RunHistoryTestCase_0); err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
- }
-
- msg, err := client.RunHistoryTestCase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
- return msg, metadata, err
-
-}
-
-func local_request_Runner_RunHistoryTestCase_0(ctx context.Context, marshaler runtime.Marshaler, server RunnerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
- var protoReq HistoryTestCase
- var metadata runtime.ServerMetadata
-
- var (
- val string
- ok bool
- err error
- _ = err
- )
-
- val, ok = pathParams["ID"]
- if !ok {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "ID")
- }
-
- protoReq.ID, err = runtime.String(val)
- if err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "ID", err)
- }
-
- if err := req.ParseForm(); err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
- }
- if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Runner_RunHistoryTestCase_0); err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
- }
-
- msg, err := server.RunHistoryTestCase(ctx, &protoReq)
- return msg, metadata, err
-
-}
-
var (
filter_Runner_GetTestCaseAllHistory_0 = &utilities.DoubleArray{Encoding: map[string]int{"suiteName": 0, "name": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
@@ -1805,6 +1735,66 @@ func local_request_Runner_Sample_0(ctx context.Context, marshaler runtime.Marsha
}
+func request_Runner_DownloadResponseFile_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq TestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["response.body"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "response.body")
+ }
+
+ err = runtime.PopulateFieldFromPath(&protoReq, "response.body", val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "response.body", err)
+ }
+
+ msg, err := client.DownloadResponseFile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Runner_DownloadResponseFile_0(ctx context.Context, marshaler runtime.Marshaler, server RunnerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq TestCase
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["response.body"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "response.body")
+ }
+
+ err = runtime.PopulateFieldFromPath(&protoReq, "response.body", val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "response.body", err)
+ }
+
+ msg, err := server.DownloadResponseFile(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
func request_Runner_GetStoreKinds_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq Empty
var metadata runtime.ServerMetadata
@@ -2856,31 +2846,6 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
- mux.Handle("POST", pattern_Runner_RunHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
- ctx, cancel := context.WithCancel(req.Context())
- defer cancel()
- var stream runtime.ServerTransportStream
- ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
- inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- var err error
- var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}/run"))
- if err != nil {
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- }
- resp, md, err := local_request_Runner_RunHistoryTestCase_0(annotatedContext, inboundMarshaler, server, req, pathParams)
- md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
- annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
- if err != nil {
- runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
- return
- }
-
- forward_Runner_RunHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
- })
-
mux.Handle("POST", pattern_Runner_GetTestCaseAllHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -3113,6 +3078,31 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
+ mux.Handle("POST", pattern_Runner_DownloadResponseFile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/DownloadResponseFile", runtime.WithHTTPPathPattern("/api/v1/downloadFile/{response.body}"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Runner_DownloadResponseFile_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_DownloadResponseFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("GET", pattern_Runner_GetStoreKinds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -4028,28 +4018,6 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
- mux.Handle("POST", pattern_Runner_RunHistoryTestCase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
- ctx, cancel := context.WithCancel(req.Context())
- defer cancel()
- inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- var err error
- var annotatedContext context.Context
- annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/RunHistoryTestCase", runtime.WithHTTPPathPattern("/api/v1/historyTestCase/{ID}/run"))
- if err != nil {
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- }
- resp, md, err := request_Runner_RunHistoryTestCase_0(annotatedContext, inboundMarshaler, client, req, pathParams)
- annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
- if err != nil {
- runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
- return
- }
-
- forward_Runner_RunHistoryTestCase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
- })
-
mux.Handle("POST", pattern_Runner_GetTestCaseAllHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -4270,6 +4238,28 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
+ mux.Handle("POST", pattern_Runner_DownloadResponseFile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/DownloadResponseFile", runtime.WithHTTPPathPattern("/api/v1/downloadFile/{response.body}"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Runner_DownloadResponseFile_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_DownloadResponseFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("GET", pattern_Runner_GetStoreKinds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -4562,8 +4552,6 @@ var (
pattern_Runner_DeleteAllHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "suites", "suiteName", "cases", "caseName"}, ""))
- pattern_Runner_RunHistoryTestCase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "historyTestCase", "ID", "run"}, ""))
-
pattern_Runner_GetTestCaseAllHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "suites", "suiteName", "cases", "name"}, ""))
pattern_Runner_ListCodeGenerator_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "codeGenerators"}, ""))
@@ -4584,6 +4572,8 @@ var (
pattern_Runner_Sample_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "sample"}, ""))
+ pattern_Runner_DownloadResponseFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "downloadFile", "response.body"}, ""))
+
pattern_Runner_GetStoreKinds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "stores", "kinds"}, ""))
pattern_Runner_GetStores_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "stores"}, ""))
@@ -4654,8 +4644,6 @@ var (
forward_Runner_DeleteAllHistoryTestCase_0 = runtime.ForwardResponseMessage
- forward_Runner_RunHistoryTestCase_0 = runtime.ForwardResponseMessage
-
forward_Runner_GetTestCaseAllHistory_0 = runtime.ForwardResponseMessage
forward_Runner_ListCodeGenerator_0 = runtime.ForwardResponseMessage
@@ -4676,6 +4664,8 @@ var (
forward_Runner_Sample_0 = runtime.ForwardResponseMessage
+ forward_Runner_DownloadResponseFile_0 = runtime.ForwardResponseMessage
+
forward_Runner_GetStoreKinds_0 = runtime.ForwardResponseMessage
forward_Runner_GetStores_0 = runtime.ForwardResponseMessage
diff --git a/pkg/server/server.proto b/pkg/server/server.proto
index f12fae042..de2820d2a 100644
--- a/pkg/server/server.proto
+++ b/pkg/server/server.proto
@@ -204,6 +204,12 @@ service Runner {
};
}
+ rpc DownloadResponseFile(TestCase) returns (FileData) {
+ option (google.api.http) = {
+ post: "/api/v1/downloadFile/{response.body}"
+ body: "*"
+ };
+ }
// stores related interfaces
rpc GetStoreKinds(Empty) returns (StoreKinds) {
option (google.api.http) = {
@@ -558,6 +564,12 @@ message PProfData {
bytes data = 1;
}
+message FileData {
+ bytes data = 1;
+ string content_type = 2;
+ string filename = 3;
+}
+
message Empty {
}
diff --git a/pkg/server/server.swagger.json b/pkg/server/server.swagger.json
index 3e337603a..3f903910e 100644
--- a/pkg/server/server.swagger.json
+++ b/pkg/server/server.swagger.json
@@ -132,6 +132,44 @@
]
}
},
+ "/api/v1/downloadFile/{response.body}": {
+ "post": {
+ "operationId": "Runner_DownloadResponseFile",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverFileData"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "response.body",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RunnerDownloadResponseFileBody"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
"/api/v1/extension/run": {
"post": {
"operationId": "RunnerExtension_Run",
@@ -622,190 +660,6 @@
]
}
},
- "/api/v1/historyTestCase/{ID}/run": {
- "post": {
- "operationId": "Runner_RunHistoryTestCase",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/serverTestCaseResult"
- }
- },
- "default": {
- "description": "An unexpected error response.",
- "schema": {
- "$ref": "#/definitions/rpcStatus"
- }
- }
- },
- "parameters": [
- {
- "name": "ID",
- "in": "path",
- "required": true,
- "type": "string"
- },
- {
- "name": "caseName",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteName",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "historySuiteName",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "createTime",
- "in": "query",
- "required": false,
- "type": "string",
- "format": "date-time"
- },
- {
- "name": "suiteSpec.kind",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.url",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.rpc.import",
- "in": "query",
- "required": false,
- "type": "array",
- "items": {
- "type": "string"
- },
- "collectionFormat": "multi"
- },
- {
- "name": "suiteSpec.rpc.serverReflection",
- "in": "query",
- "required": false,
- "type": "boolean"
- },
- {
- "name": "suiteSpec.rpc.protofile",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.rpc.protoset",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.rpc.raw",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.secure.insecure",
- "in": "query",
- "required": false,
- "type": "boolean"
- },
- {
- "name": "suiteSpec.secure.cert",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.secure.ca",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.secure.serverName",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteSpec.secure.key",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "suiteApi",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "request.api",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "request.method",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "request.body",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "response.statusCode",
- "in": "query",
- "required": false,
- "type": "integer",
- "format": "int32"
- },
- {
- "name": "response.body",
- "in": "query",
- "required": false,
- "type": "string"
- },
- {
- "name": "response.verify",
- "in": "query",
- "required": false,
- "type": "array",
- "items": {
- "type": "string"
- },
- "collectionFormat": "multi"
- },
- {
- "name": "response.schema",
- "in": "query",
- "required": false,
- "type": "string"
- }
- ],
- "tags": [
- "Runner"
- ]
- }
- },
"/api/v1/historyTestCaseWithResult/{ID}": {
"get": {
"operationId": "Runner_GetHistoryTestCaseWithResult",
@@ -2477,6 +2331,59 @@
}
}
},
+ "RunnerDownloadResponseFileBody": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "suiteName": {
+ "type": "string"
+ },
+ "request": {
+ "$ref": "#/definitions/serverRequest"
+ },
+ "response": {
+ "type": "object",
+ "properties": {
+ "statusCode": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "header": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/serverPair"
+ }
+ },
+ "bodyFieldsExpect": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/serverPair"
+ }
+ },
+ "verify": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ConditionalVerify": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/serverConditionalVerify"
+ }
+ },
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
"RunnerDuplicateTestCaseBody": {
"type": "object",
"properties": {
@@ -2690,6 +2597,21 @@
}
}
},
+ "serverFileData": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string",
+ "format": "byte"
+ },
+ "contentType": {
+ "type": "string"
+ },
+ "filename": {
+ "type": "string"
+ }
+ }
+ },
"serverHelloReply": {
"type": "object",
"properties": {
diff --git a/pkg/server/server_grpc.pb.go b/pkg/server/server_grpc.pb.go
index 906f1655c..60dd9da19 100644
--- a/pkg/server/server_grpc.pb.go
+++ b/pkg/server/server_grpc.pb.go
@@ -50,7 +50,6 @@ type RunnerClient interface {
GetHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HistoryTestCase, error)
DeleteHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HelloReply, error)
DeleteAllHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*HelloReply, error)
- RunHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*TestCaseResult, error)
GetTestCaseAllHistory(ctx context.Context, in *TestCase, opts ...grpc.CallOption) (*HistoryTestCases, error)
// code generator
ListCodeGenerator(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error)
@@ -64,6 +63,7 @@ type RunnerClient interface {
FunctionsQueryStream(ctx context.Context, opts ...grpc.CallOption) (Runner_FunctionsQueryStreamClient, error)
GetVersion(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Version, error)
Sample(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HelloReply, error)
+ DownloadResponseFile(ctx context.Context, in *TestCase, opts ...grpc.CallOption) (*FileData, error)
// stores related interfaces
GetStoreKinds(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StoreKinds, error)
GetStores(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Stores, error)
@@ -317,15 +317,6 @@ func (c *runnerClient) DeleteAllHistoryTestCase(ctx context.Context, in *History
return out, nil
}
-func (c *runnerClient) RunHistoryTestCase(ctx context.Context, in *HistoryTestCase, opts ...grpc.CallOption) (*TestCaseResult, error) {
- out := new(TestCaseResult)
- err := c.cc.Invoke(ctx, "/server.Runner/RunHistoryTestCase", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
func (c *runnerClient) GetTestCaseAllHistory(ctx context.Context, in *TestCase, opts ...grpc.CallOption) (*HistoryTestCases, error) {
out := new(HistoryTestCases)
err := c.cc.Invoke(ctx, "/server.Runner/GetTestCaseAllHistory", in, out, opts...)
@@ -438,6 +429,15 @@ func (c *runnerClient) Sample(ctx context.Context, in *Empty, opts ...grpc.CallO
return out, nil
}
+func (c *runnerClient) DownloadResponseFile(ctx context.Context, in *TestCase, opts ...grpc.CallOption) (*FileData, error) {
+ out := new(FileData)
+ err := c.cc.Invoke(ctx, "/server.Runner/DownloadResponseFile", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *runnerClient) GetStoreKinds(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StoreKinds, error) {
out := new(StoreKinds)
err := c.cc.Invoke(ctx, "/server.Runner/GetStoreKinds", in, out, opts...)
@@ -569,7 +569,6 @@ type RunnerServer interface {
GetHistoryTestCase(context.Context, *HistoryTestCase) (*HistoryTestCase, error)
DeleteHistoryTestCase(context.Context, *HistoryTestCase) (*HelloReply, error)
DeleteAllHistoryTestCase(context.Context, *HistoryTestCase) (*HelloReply, error)
- RunHistoryTestCase(context.Context, *HistoryTestCase) (*TestCaseResult, error)
GetTestCaseAllHistory(context.Context, *TestCase) (*HistoryTestCases, error)
// code generator
ListCodeGenerator(context.Context, *Empty) (*SimpleList, error)
@@ -583,6 +582,7 @@ type RunnerServer interface {
FunctionsQueryStream(Runner_FunctionsQueryStreamServer) error
GetVersion(context.Context, *Empty) (*Version, error)
Sample(context.Context, *Empty) (*HelloReply, error)
+ DownloadResponseFile(context.Context, *TestCase) (*FileData, error)
// stores related interfaces
GetStoreKinds(context.Context, *Empty) (*StoreKinds, error)
GetStores(context.Context, *Empty) (*Stores, error)
@@ -673,9 +673,6 @@ func (UnimplementedRunnerServer) DeleteHistoryTestCase(context.Context, *History
func (UnimplementedRunnerServer) DeleteAllHistoryTestCase(context.Context, *HistoryTestCase) (*HelloReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteAllHistoryTestCase not implemented")
}
-func (UnimplementedRunnerServer) RunHistoryTestCase(context.Context, *HistoryTestCase) (*TestCaseResult, error) {
- return nil, status.Errorf(codes.Unimplemented, "method RunHistoryTestCase not implemented")
-}
func (UnimplementedRunnerServer) GetTestCaseAllHistory(context.Context, *TestCase) (*HistoryTestCases, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetTestCaseAllHistory not implemented")
}
@@ -706,6 +703,9 @@ func (UnimplementedRunnerServer) GetVersion(context.Context, *Empty) (*Version,
func (UnimplementedRunnerServer) Sample(context.Context, *Empty) (*HelloReply, error) {
return nil, status.Errorf(codes.Unimplemented, "method Sample not implemented")
}
+func (UnimplementedRunnerServer) DownloadResponseFile(context.Context, *TestCase) (*FileData, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DownloadResponseFile not implemented")
+}
func (UnimplementedRunnerServer) GetStoreKinds(context.Context, *Empty) (*StoreKinds, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetStoreKinds not implemented")
}
@@ -1174,24 +1174,6 @@ func _Runner_DeleteAllHistoryTestCase_Handler(srv interface{}, ctx context.Conte
return interceptor(ctx, in, info, handler)
}
-func _Runner_RunHistoryTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(HistoryTestCase)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(RunnerServer).RunHistoryTestCase(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/server.Runner/RunHistoryTestCase",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(RunnerServer).RunHistoryTestCase(ctx, req.(*HistoryTestCase))
- }
- return interceptor(ctx, in, info, handler)
-}
-
func _Runner_GetTestCaseAllHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(TestCase)
if err := dec(in); err != nil {
@@ -1380,6 +1362,24 @@ func _Runner_Sample_Handler(srv interface{}, ctx context.Context, dec func(inter
return interceptor(ctx, in, info, handler)
}
+func _Runner_DownloadResponseFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(TestCase)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RunnerServer).DownloadResponseFile(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/server.Runner/DownloadResponseFile",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RunnerServer).DownloadResponseFile(ctx, req.(*TestCase))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Runner_GetStoreKinds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(Empty)
if err := dec(in); err != nil {
@@ -1673,10 +1673,6 @@ var Runner_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteAllHistoryTestCase",
Handler: _Runner_DeleteAllHistoryTestCase_Handler,
},
- {
- MethodName: "RunHistoryTestCase",
- Handler: _Runner_RunHistoryTestCase_Handler,
- },
{
MethodName: "GetTestCaseAllHistory",
Handler: _Runner_GetTestCaseAllHistory_Handler,
@@ -1713,6 +1709,10 @@ var Runner_ServiceDesc = grpc.ServiceDesc{
MethodName: "Sample",
Handler: _Runner_Sample_Handler,
},
+ {
+ MethodName: "DownloadResponseFile",
+ Handler: _Runner_DownloadResponseFile_Handler,
+ },
{
MethodName: "GetStoreKinds",
Handler: _Runner_GetStoreKinds_Handler,
From c89659ced20debbc4cb5e3e95f6685be8e39ae0e Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Mon, 9 Sep 2024 16:45:16 +0800
Subject: [PATCH 10/15] fix: history record generate code
---
console/atest-ui/src/views/TestCase.vue | 48 ++-
console/atest-ui/src/views/net.ts | 27 +-
pkg/server/remote_server.go | 25 ++
pkg/server/server.pb.go | 401 +++++++++++++-----------
pkg/server/server.pb.gw.go | 77 +++++
pkg/server/server.proto | 7 +
pkg/server/server.swagger.json | 35 +++
pkg/server/server_grpc.pb.go | 36 +++
pkg/testing/remote/converter.go | 3 +-
9 files changed, 448 insertions(+), 211 deletions(-)
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index 6e3ee6d9b..87b966713 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -160,22 +160,40 @@ function sendRequestWithParameter() {
function generateCode() {
const name = props.name
const suite = props.suite
+ const ID = props.historyCaseID
+ if (isHistoryTestCase.value == true){
+ API.HistoryGenerateCode({
+ ID: ID,
+ generator: currentCodeGenerator.value
+ }, (e) => {
+ ElMessage({
+ message: 'Code generated!',
+ type: 'success'
+ })
+ if (currentCodeGenerator.value === "gRPCPayload") {
+ currentCodeContent.value = JSON.stringify(JSON.parse(e.message), null, 4)
+ } else {
+ currentCodeContent.value = e.message
+ }
+ }, UIAPI.ErrorTip)
+ } else{
+ API.GenerateCode({
+ suiteName: suite,
+ name: name,
+ generator: currentCodeGenerator.value
+ }, (e) => {
+ ElMessage({
+ message: 'Code generated!',
+ type: 'success'
+ })
+ if (currentCodeGenerator.value === "gRPCPayload") {
+ currentCodeContent.value = JSON.stringify(JSON.parse(e.message), null, 4)
+ } else {
+ currentCodeContent.value = e.message
+ }
+ }, UIAPI.ErrorTip)
+ }
- API.GenerateCode({
- suiteName: suite,
- name: name,
- generator: currentCodeGenerator.value
- }, (e) => {
- ElMessage({
- message: 'Code generated!',
- type: 'success'
- })
- if (currentCodeGenerator.value === "gRPCPayload") {
- currentCodeContent.value = JSON.stringify(JSON.parse(e.message), null, 4)
- } else {
- currentCodeContent.value = e.message
- }
- }, UIAPI.ErrorTip)
}
function copyCode() {
diff --git a/console/atest-ui/src/views/net.ts b/console/atest-ui/src/views/net.ts
index 9fc3b5d2f..82c970a1e 100644
--- a/console/atest-ui/src/views/net.ts
+++ b/console/atest-ui/src/views/net.ts
@@ -326,6 +326,7 @@ interface GenerateRequest {
suiteName: string
name: string
generator: string
+ id: string
}
function GenerateCode(request: GenerateRequest,
@@ -337,9 +338,9 @@ function GenerateCode(request: GenerateRequest,
'X-Auth': getToken()
},
body: JSON.stringify({
- TestSuite: request.suiteName,
- TestCase: request.name,
- Generator: request.generator
+ TestSuite: request.suiteName,
+ TestCase: request.name,
+ Generator: request.generator
})
}
fetch(`/api/v1/codeGenerators/generate`, requestOptions)
@@ -347,6 +348,24 @@ function GenerateCode(request: GenerateRequest,
.then(callback).catch(errHandle)
}
+function HistoryGenerateCode(request: GenerateRequest,
+ callback: (d: any) => void, errHandle?: (e: any) => void | null) {
+ const requestOptions = {
+ method: 'POST',
+ headers: {
+ 'X-Store-Name': Cache.GetCurrentStore().name,
+ 'X-Auth': getToken()
+ },
+ body: JSON.stringify({
+ ID: request.ID,
+ Generator: request.generator
+ })
+ }
+ fetch(`/api/v1/codeGenerators/history/generate`, requestOptions)
+ .then(DefaultResponseProcess)
+ .then(callback).catch(errHandle)
+}
+
function ListCodeGenerator(callback: (d: any) => void, errHandle?: (e: any) => void | null) {
fetch('/api/v1/codeGenerators', {
headers: {
@@ -666,7 +685,7 @@ export const API = {
CreateTestSuite, UpdateTestSuite, ImportTestSuite, GetTestSuite, DeleteTestSuite, ConvertTestSuite,GetTestSuiteYaml,
CreateTestCase, UpdateTestCase, GetTestCase, ListTestCase, DeleteTestCase, RunTestCase,
GetHistoryTestCaseWithResult, DeleteHistoryTestCase,GetHistoryTestCase, GetTestCaseAllHistory, DeleteAllHistoryTestCase, DownloadResponseFile,
- GenerateCode, ListCodeGenerator,
+ GenerateCode, ListCodeGenerator, HistoryGenerateCode,
PopularHeaders,
CreateOrUpdateStore, GetStores, DeleteStore, VerifyStore,
FunctionsQuery,
diff --git a/pkg/server/remote_server.go b/pkg/server/remote_server.go
index bddb0f148..d0cb08a00 100644
--- a/pkg/server/remote_server.go
+++ b/pkg/server/remote_server.go
@@ -898,6 +898,31 @@ func (s *server) GenerateCode(ctx context.Context, in *CodeGenerateRequest) (rep
return
}
+func (s *server) HistoryGenerateCode(ctx context.Context, in *CodeGenerateRequest) (reply *CommonResult, err error) {
+ reply = &CommonResult{}
+ instance := generator.GetCodeGenerator(in.Generator)
+ if instance == nil {
+ reply.Success = false
+ reply.Message = fmt.Sprintf("generator '%s' not found", in.Generator)
+ } else {
+ loader := s.getLoader(ctx)
+ var result testing.HistoryTestCase
+ result, err = loader.GetHistoryTestCase(in.ID)
+ var testCase testing.TestCase
+ var suite testing.TestSuite
+ testCase = result.Data
+ suite.Name = result.SuiteName
+ suite.API = result.SuiteAPI
+ suite.Spec = result.SuiteSpec
+ suite.Param = result.SuiteParam
+
+ output, genErr := instance.Generate(&suite, &testCase)
+ reply.Success = genErr == nil
+ reply.Message = util.OrErrorMessage(genErr, output)
+ }
+ return
+}
+
// converter
func (s *server) ListConverter(ctx context.Context, in *Empty) (reply *SimpleList, err error) {
reply = &SimpleList{}
diff --git a/pkg/server/server.pb.go b/pkg/server/server.pb.go
index 9fafaf5fe..293fcd189 100644
--- a/pkg/server/server.pb.go
+++ b/pkg/server/server.pb.go
@@ -2622,6 +2622,7 @@ type CodeGenerateRequest struct {
TestSuite string `protobuf:"bytes,1,opt,name=TestSuite,proto3" json:"TestSuite,omitempty"`
TestCase string `protobuf:"bytes,2,opt,name=TestCase,proto3" json:"TestCase,omitempty"`
Generator string `protobuf:"bytes,3,opt,name=Generator,proto3" json:"Generator,omitempty"`
+ ID string `protobuf:"bytes,4,opt,name=ID,proto3" json:"ID,omitempty"`
}
func (x *CodeGenerateRequest) Reset() {
@@ -2677,6 +2678,13 @@ func (x *CodeGenerateRequest) GetGenerator() string {
return ""
}
+func (x *CodeGenerateRequest) GetID() string {
+ if x != nil {
+ return x.ID
+ }
+ return ""
+}
+
type Secrets struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -3480,14 +3488,15 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x0a, 0x0a, 0x53,
0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7d, 0x0a,
0x13, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69,
0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x1c,
0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x2d, 0x0a, 0x07,
+ 0x09, 0x52, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02,
+ 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x07,
0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x06, 0x53,
@@ -3523,7 +3532,7 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x32, 0xb9, 0x21, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e, 0x65,
+ 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x32, 0xb7, 0x22, 0x0a, 0x06, 0x52, 0x75, 0x6e, 0x6e, 0x65,
0x72, 0x12, 0x43, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x16,
@@ -3694,124 +3703,132 @@ var file_pkg_server_server_proto_rawDesc = []byte{
0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65,
0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72,
- 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f,
- 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76,
- 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72,
- 0x74, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63,
- 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72,
- 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50,
- 0x61, 0x69, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61,
- 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x13, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65,
- 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72,
- 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72,
- 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73,
- 0x69, 0x6f, 0x6e, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06,
- 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48,
- 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c,
- 0x65, 0x12, 0x6b, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2f, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64,
- 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x72, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x62, 0x6f, 0x64, 0x79, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x50,
- 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12,
- 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12,
- 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e,
- 0x64, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x6b, 0x69, 0x6e, 0x64, 0x73,
- 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x0d, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x16, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74,
- 0x6f, 0x72, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74,
- 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f,
- 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72,
- 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4d, 0x0a, 0x0b,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x1a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65,
- 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x4a, 0x0a, 0x0b, 0x44,
- 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17,
- 0x2a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73,
- 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61,
- 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72,
- 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63,
- 0x72, 0x65, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63,
- 0x72, 0x65, 0x74, 0x73, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61,
- 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x50, 0x0a,
- 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e,
+ 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7c, 0x0a, 0x13, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72,
+ 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
+ 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73,
+ 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
+ 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76,
+ 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45,
+ 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69,
+ 0x6d, 0x70, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14,
+ 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72,
+ 0x74, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54,
+ 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3a,
+ 0x01, 0x2a, 0x12, 0x4e, 0x0a, 0x0e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48, 0x65, 0x61,
+ 0x64, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69,
+ 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65,
+ 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69,
+ 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13,
+ 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x13, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22,
+ 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
+ 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x28,
+ 0x01, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+ 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x53, 0x61,
+ 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x6c,
+ 0x6c, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12,
+ 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12,
+ 0x6b, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2f, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x77,
+ 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x2e, 0x62, 0x6f, 0x64, 0x79, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x50, 0x0a, 0x0d,
+ 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x0d, 0x2e,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x73,
+ 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
+ 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x42,
+ 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72,
+ 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72,
+ 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22,
+ 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
+ 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4d, 0x0a, 0x0b, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a,
+ 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f,
+ 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x4a, 0x0a, 0x0b, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x15,
+ 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b,
+ 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53,
+ 0x74, 0x6f, 0x72, 0x65, 0x12, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x69,
+ 0x6d, 0x70, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66,
+ 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65,
+ 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65,
+ 0x74, 0x73, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0c, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x54, 0x0a,
+ 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12,
- 0x54, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12,
- 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a,
- 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52,
- 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b,
- 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x57, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
- 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53,
- 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x82, 0xd3, 0xe4,
- 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63,
- 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x32,
- 0x0a, 0x05, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61,
- 0x22, 0x00, 0x32, 0x6b, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x2e, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57,
- 0x69, 0x74, 0x68, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x32,
- 0xa0, 0x01, 0x0a, 0x04, 0x4d, 0x6f, 0x63, 0x6b, 0x12, 0x4b, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f,
- 0x61, 0x64, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x72, 0x65, 0x6c, 0x6f,
- 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x4b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74,
- 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
- 0x2f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d,
- 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x75, 0x6c, 0x74, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61,
+ 0x6d, 0x65, 0x7d, 0x12, 0x57, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x63,
+ 0x72, 0x65, 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x1b, 0x1a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65,
+ 0x74, 0x73, 0x2f, 0x7b, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x32, 0x0a, 0x05,
+ 0x50, 0x50, 0x72, 0x6f, 0x66, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50,
+ 0x50, 0x72, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x50, 0x72, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00,
+ 0x32, 0x6b, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x2e, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74,
+ 0x68, 0x43, 0x61, 0x73, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x74,
+ 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x32, 0xa0, 0x01,
+ 0x0a, 0x04, 0x4d, 0x6f, 0x63, 0x6b, 0x12, 0x4b, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64,
+ 0x12, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64,
+ 0x3a, 0x01, 0x2a, 0x12, 0x4b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
+ 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x63, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c,
+ 0x69, 0x6e, 0x75, 0x78, 0x73, 0x75, 0x72, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x74, 0x65,
+ 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3954,78 +3971,80 @@ var file_pkg_server_server_proto_depIdxs = []int32{
23, // 67: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase
47, // 68: server.Runner.ListCodeGenerator:input_type -> server.Empty
40, // 69: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
- 47, // 70: server.Runner.ListConverter:input_type -> server.Empty
- 40, // 71: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
- 47, // 72: server.Runner.PopularHeaders:input_type -> server.Empty
- 32, // 73: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
- 32, // 74: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
- 47, // 75: server.Runner.GetVersion:input_type -> server.Empty
- 47, // 76: server.Runner.Sample:input_type -> server.Empty
- 23, // 77: server.Runner.DownloadResponseFile:input_type -> server.TestCase
- 47, // 78: server.Runner.GetStoreKinds:input_type -> server.Empty
- 47, // 79: server.Runner.GetStores:input_type -> server.Empty
- 34, // 80: server.Runner.CreateStore:input_type -> server.Store
- 34, // 81: server.Runner.UpdateStore:input_type -> server.Store
- 34, // 82: server.Runner.DeleteStore:input_type -> server.Store
- 32, // 83: server.Runner.VerifyStore:input_type -> server.SimpleQuery
- 47, // 84: server.Runner.GetSecrets:input_type -> server.Empty
- 42, // 85: server.Runner.CreateSecret:input_type -> server.Secret
- 42, // 86: server.Runner.DeleteSecret:input_type -> server.Secret
- 42, // 87: server.Runner.UpdateSecret:input_type -> server.Secret
- 44, // 88: server.Runner.PProf:input_type -> server.PProfRequest
- 8, // 89: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
- 48, // 90: server.Mock.Reload:input_type -> server.MockConfig
- 47, // 91: server.Mock.GetConfig:input_type -> server.Empty
- 16, // 92: server.Runner.Run:output_type -> server.TestResult
- 16, // 93: server.Runner.RunTestSuite:output_type -> server.TestResult
- 0, // 94: server.Runner.GetSuites:output_type -> server.Suites
- 18, // 95: server.Runner.CreateTestSuite:output_type -> server.HelloReply
- 37, // 96: server.Runner.ImportTestSuite:output_type -> server.CommonResult
- 7, // 97: server.Runner.GetTestSuite:output_type -> server.TestSuite
- 18, // 98: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
- 18, // 99: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
- 18, // 100: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply
- 19, // 101: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
- 20, // 102: server.Runner.ListTestCase:output_type -> server.Suite
- 29, // 103: server.Runner.RunTestCase:output_type -> server.TestCaseResult
- 23, // 104: server.Runner.GetTestCase:output_type -> server.TestCase
- 18, // 105: server.Runner.CreateTestCase:output_type -> server.HelloReply
- 18, // 106: server.Runner.UpdateTestCase:output_type -> server.HelloReply
- 18, // 107: server.Runner.DeleteTestCase:output_type -> server.HelloReply
- 18, // 108: server.Runner.DuplicateTestCase:output_type -> server.HelloReply
- 22, // 109: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
- 2, // 110: server.Runner.GetHistorySuites:output_type -> server.HistorySuites
- 17, // 111: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
- 24, // 112: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase
- 18, // 113: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply
- 18, // 114: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply
- 25, // 115: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
- 38, // 116: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
- 37, // 117: server.Runner.GenerateCode:output_type -> server.CommonResult
- 38, // 118: server.Runner.ListConverter:output_type -> server.SimpleList
- 37, // 119: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
- 31, // 120: server.Runner.PopularHeaders:output_type -> server.Pairs
- 31, // 121: server.Runner.FunctionsQuery:output_type -> server.Pairs
- 31, // 122: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
- 49, // 123: server.Runner.GetVersion:output_type -> server.Version
- 18, // 124: server.Runner.Sample:output_type -> server.HelloReply
- 46, // 125: server.Runner.DownloadResponseFile:output_type -> server.FileData
- 35, // 126: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
- 33, // 127: server.Runner.GetStores:output_type -> server.Stores
- 34, // 128: server.Runner.CreateStore:output_type -> server.Store
- 34, // 129: server.Runner.UpdateStore:output_type -> server.Store
- 34, // 130: server.Runner.DeleteStore:output_type -> server.Store
- 43, // 131: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
- 41, // 132: server.Runner.GetSecrets:output_type -> server.Secrets
- 37, // 133: server.Runner.CreateSecret:output_type -> server.CommonResult
- 37, // 134: server.Runner.DeleteSecret:output_type -> server.CommonResult
- 37, // 135: server.Runner.UpdateSecret:output_type -> server.CommonResult
- 45, // 136: server.Runner.PProf:output_type -> server.PProfData
- 37, // 137: server.RunnerExtension.Run:output_type -> server.CommonResult
- 47, // 138: server.Mock.Reload:output_type -> server.Empty
- 48, // 139: server.Mock.GetConfig:output_type -> server.MockConfig
- 92, // [92:140] is the sub-list for method output_type
- 44, // [44:92] is the sub-list for method input_type
+ 40, // 70: server.Runner.HistoryGenerateCode:input_type -> server.CodeGenerateRequest
+ 47, // 71: server.Runner.ListConverter:input_type -> server.Empty
+ 40, // 72: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
+ 47, // 73: server.Runner.PopularHeaders:input_type -> server.Empty
+ 32, // 74: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
+ 32, // 75: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
+ 47, // 76: server.Runner.GetVersion:input_type -> server.Empty
+ 47, // 77: server.Runner.Sample:input_type -> server.Empty
+ 23, // 78: server.Runner.DownloadResponseFile:input_type -> server.TestCase
+ 47, // 79: server.Runner.GetStoreKinds:input_type -> server.Empty
+ 47, // 80: server.Runner.GetStores:input_type -> server.Empty
+ 34, // 81: server.Runner.CreateStore:input_type -> server.Store
+ 34, // 82: server.Runner.UpdateStore:input_type -> server.Store
+ 34, // 83: server.Runner.DeleteStore:input_type -> server.Store
+ 32, // 84: server.Runner.VerifyStore:input_type -> server.SimpleQuery
+ 47, // 85: server.Runner.GetSecrets:input_type -> server.Empty
+ 42, // 86: server.Runner.CreateSecret:input_type -> server.Secret
+ 42, // 87: server.Runner.DeleteSecret:input_type -> server.Secret
+ 42, // 88: server.Runner.UpdateSecret:input_type -> server.Secret
+ 44, // 89: server.Runner.PProf:input_type -> server.PProfRequest
+ 8, // 90: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
+ 48, // 91: server.Mock.Reload:input_type -> server.MockConfig
+ 47, // 92: server.Mock.GetConfig:input_type -> server.Empty
+ 16, // 93: server.Runner.Run:output_type -> server.TestResult
+ 16, // 94: server.Runner.RunTestSuite:output_type -> server.TestResult
+ 0, // 95: server.Runner.GetSuites:output_type -> server.Suites
+ 18, // 96: server.Runner.CreateTestSuite:output_type -> server.HelloReply
+ 37, // 97: server.Runner.ImportTestSuite:output_type -> server.CommonResult
+ 7, // 98: server.Runner.GetTestSuite:output_type -> server.TestSuite
+ 18, // 99: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
+ 18, // 100: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
+ 18, // 101: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply
+ 19, // 102: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
+ 20, // 103: server.Runner.ListTestCase:output_type -> server.Suite
+ 29, // 104: server.Runner.RunTestCase:output_type -> server.TestCaseResult
+ 23, // 105: server.Runner.GetTestCase:output_type -> server.TestCase
+ 18, // 106: server.Runner.CreateTestCase:output_type -> server.HelloReply
+ 18, // 107: server.Runner.UpdateTestCase:output_type -> server.HelloReply
+ 18, // 108: server.Runner.DeleteTestCase:output_type -> server.HelloReply
+ 18, // 109: server.Runner.DuplicateTestCase:output_type -> server.HelloReply
+ 22, // 110: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
+ 2, // 111: server.Runner.GetHistorySuites:output_type -> server.HistorySuites
+ 17, // 112: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
+ 24, // 113: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase
+ 18, // 114: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply
+ 18, // 115: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply
+ 25, // 116: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
+ 38, // 117: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
+ 37, // 118: server.Runner.GenerateCode:output_type -> server.CommonResult
+ 37, // 119: server.Runner.HistoryGenerateCode:output_type -> server.CommonResult
+ 38, // 120: server.Runner.ListConverter:output_type -> server.SimpleList
+ 37, // 121: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
+ 31, // 122: server.Runner.PopularHeaders:output_type -> server.Pairs
+ 31, // 123: server.Runner.FunctionsQuery:output_type -> server.Pairs
+ 31, // 124: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
+ 49, // 125: server.Runner.GetVersion:output_type -> server.Version
+ 18, // 126: server.Runner.Sample:output_type -> server.HelloReply
+ 46, // 127: server.Runner.DownloadResponseFile:output_type -> server.FileData
+ 35, // 128: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
+ 33, // 129: server.Runner.GetStores:output_type -> server.Stores
+ 34, // 130: server.Runner.CreateStore:output_type -> server.Store
+ 34, // 131: server.Runner.UpdateStore:output_type -> server.Store
+ 34, // 132: server.Runner.DeleteStore:output_type -> server.Store
+ 43, // 133: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
+ 41, // 134: server.Runner.GetSecrets:output_type -> server.Secrets
+ 37, // 135: server.Runner.CreateSecret:output_type -> server.CommonResult
+ 37, // 136: server.Runner.DeleteSecret:output_type -> server.CommonResult
+ 37, // 137: server.Runner.UpdateSecret:output_type -> server.CommonResult
+ 45, // 138: server.Runner.PProf:output_type -> server.PProfData
+ 37, // 139: server.RunnerExtension.Run:output_type -> server.CommonResult
+ 47, // 140: server.Mock.Reload:output_type -> server.Empty
+ 48, // 141: server.Mock.GetConfig:output_type -> server.MockConfig
+ 93, // [93:142] is the sub-list for method output_type
+ 44, // [44:93] is the sub-list for method input_type
44, // [44:44] is the sub-list for extension type_name
44, // [44:44] is the sub-list for extension extendee
0, // [0:44] is the sub-list for field type_name
diff --git a/pkg/server/server.pb.gw.go b/pkg/server/server.pb.gw.go
index 31e31cb71..808d0b7cd 100644
--- a/pkg/server/server.pb.gw.go
+++ b/pkg/server/server.pb.gw.go
@@ -1558,6 +1558,32 @@ func local_request_Runner_GenerateCode_0(ctx context.Context, marshaler runtime.
}
+func request_Runner_HistoryGenerateCode_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq CodeGenerateRequest
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.HistoryGenerateCode(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Runner_HistoryGenerateCode_0(ctx context.Context, marshaler runtime.Marshaler, server RunnerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq CodeGenerateRequest
+ var metadata runtime.ServerMetadata
+
+ if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.HistoryGenerateCode(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
func request_Runner_ListConverter_0(ctx context.Context, marshaler runtime.Marshaler, client RunnerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq Empty
var metadata runtime.ServerMetadata
@@ -2921,6 +2947,31 @@ func RegisterRunnerHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser
})
+ mux.Handle("POST", pattern_Runner_HistoryGenerateCode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/server.Runner/HistoryGenerateCode", runtime.WithHTTPPathPattern("/api/v1/codeGenerators/history/generate"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Runner_HistoryGenerateCode_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_HistoryGenerateCode_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("GET", pattern_Runner_ListConverter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -4084,6 +4135,28 @@ func RegisterRunnerHandlerClient(ctx context.Context, mux *runtime.ServeMux, cli
})
+ mux.Handle("POST", pattern_Runner_HistoryGenerateCode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/server.Runner/HistoryGenerateCode", runtime.WithHTTPPathPattern("/api/v1/codeGenerators/history/generate"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Runner_HistoryGenerateCode_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Runner_HistoryGenerateCode_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("GET", pattern_Runner_ListConverter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -4558,6 +4631,8 @@ var (
pattern_Runner_GenerateCode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "codeGenerators", "generate"}, ""))
+ pattern_Runner_HistoryGenerateCode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"api", "v1", "codeGenerators", "history", "generate"}, ""))
+
pattern_Runner_ListConverter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "converters"}, ""))
pattern_Runner_ConvertTestSuite_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "converters", "convert"}, ""))
@@ -4650,6 +4725,8 @@ var (
forward_Runner_GenerateCode_0 = runtime.ForwardResponseMessage
+ forward_Runner_HistoryGenerateCode_0 = runtime.ForwardResponseMessage
+
forward_Runner_ListConverter_0 = runtime.ForwardResponseMessage
forward_Runner_ConvertTestSuite_0 = runtime.ForwardResponseMessage
diff --git a/pkg/server/server.proto b/pkg/server/server.proto
index de2820d2a..1bf09e281 100644
--- a/pkg/server/server.proto
+++ b/pkg/server/server.proto
@@ -163,6 +163,12 @@ service Runner {
body: "*"
};
}
+ rpc HistoryGenerateCode(CodeGenerateRequest) returns (CommonResult) {
+ option (google.api.http) = {
+ post: "/api/v1/codeGenerators/history/generate"
+ body: "*"
+ };
+ }
// converter
rpc ListConverter(Empty) returns (SimpleList) {
@@ -537,6 +543,7 @@ message CodeGenerateRequest {
string TestSuite = 1;
string TestCase = 2;
string Generator = 3;
+ string ID = 4;
}
message Secrets {
diff --git a/pkg/server/server.swagger.json b/pkg/server/server.swagger.json
index 3f903910e..82db45182 100644
--- a/pkg/server/server.swagger.json
+++ b/pkg/server/server.swagger.json
@@ -77,6 +77,38 @@
]
}
},
+ "/api/v1/codeGenerators/history/generate": {
+ "post": {
+ "operationId": "Runner_HistoryGenerateCode",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/serverCommonResult"
+ }
+ },
+ "default": {
+ "description": "An unexpected error response.",
+ "schema": {
+ "$ref": "#/definitions/rpcStatus"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/serverCodeGenerateRequest"
+ }
+ }
+ ],
+ "tags": [
+ "Runner"
+ ]
+ }
+ },
"/api/v1/converters": {
"get": {
"summary": "converter",
@@ -2546,6 +2578,9 @@
},
"Generator": {
"type": "string"
+ },
+ "ID": {
+ "type": "string"
}
}
},
diff --git a/pkg/server/server_grpc.pb.go b/pkg/server/server_grpc.pb.go
index 60dd9da19..df5ead911 100644
--- a/pkg/server/server_grpc.pb.go
+++ b/pkg/server/server_grpc.pb.go
@@ -54,6 +54,7 @@ type RunnerClient interface {
// code generator
ListCodeGenerator(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error)
GenerateCode(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error)
+ HistoryGenerateCode(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error)
// converter
ListConverter(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error)
ConvertTestSuite(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error)
@@ -344,6 +345,15 @@ func (c *runnerClient) GenerateCode(ctx context.Context, in *CodeGenerateRequest
return out, nil
}
+func (c *runnerClient) HistoryGenerateCode(ctx context.Context, in *CodeGenerateRequest, opts ...grpc.CallOption) (*CommonResult, error) {
+ out := new(CommonResult)
+ err := c.cc.Invoke(ctx, "/server.Runner/HistoryGenerateCode", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *runnerClient) ListConverter(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*SimpleList, error) {
out := new(SimpleList)
err := c.cc.Invoke(ctx, "/server.Runner/ListConverter", in, out, opts...)
@@ -573,6 +583,7 @@ type RunnerServer interface {
// code generator
ListCodeGenerator(context.Context, *Empty) (*SimpleList, error)
GenerateCode(context.Context, *CodeGenerateRequest) (*CommonResult, error)
+ HistoryGenerateCode(context.Context, *CodeGenerateRequest) (*CommonResult, error)
// converter
ListConverter(context.Context, *Empty) (*SimpleList, error)
ConvertTestSuite(context.Context, *CodeGenerateRequest) (*CommonResult, error)
@@ -682,6 +693,9 @@ func (UnimplementedRunnerServer) ListCodeGenerator(context.Context, *Empty) (*Si
func (UnimplementedRunnerServer) GenerateCode(context.Context, *CodeGenerateRequest) (*CommonResult, error) {
return nil, status.Errorf(codes.Unimplemented, "method GenerateCode not implemented")
}
+func (UnimplementedRunnerServer) HistoryGenerateCode(context.Context, *CodeGenerateRequest) (*CommonResult, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method HistoryGenerateCode not implemented")
+}
func (UnimplementedRunnerServer) ListConverter(context.Context, *Empty) (*SimpleList, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListConverter not implemented")
}
@@ -1228,6 +1242,24 @@ func _Runner_GenerateCode_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
+func _Runner_HistoryGenerateCode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CodeGenerateRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RunnerServer).HistoryGenerateCode(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/server.Runner/HistoryGenerateCode",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RunnerServer).HistoryGenerateCode(ctx, req.(*CodeGenerateRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Runner_ListConverter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(Empty)
if err := dec(in); err != nil {
@@ -1685,6 +1717,10 @@ var Runner_ServiceDesc = grpc.ServiceDesc{
MethodName: "GenerateCode",
Handler: _Runner_GenerateCode_Handler,
},
+ {
+ MethodName: "HistoryGenerateCode",
+ Handler: _Runner_HistoryGenerateCode_Handler,
+ },
{
MethodName: "ListConverter",
Handler: _Runner_ListConverter_Handler,
diff --git a/pkg/testing/remote/converter.go b/pkg/testing/remote/converter.go
index 023e07ed4..f107110c6 100644
--- a/pkg/testing/remote/converter.go
+++ b/pkg/testing/remote/converter.go
@@ -148,6 +148,7 @@ func ConvertToNormalHistoryTestCase(testcase *server.HistoryTestCase) (result te
SuiteSpec: ConvertToNormalTestSuiteSpec(testcase.SuiteSpec),
CreateTime: testcase.CreateTime.AsTime(),
}
+ result.Data.Name = testcase.CaseName
if testcase.Request != nil {
result.Data.Request = testing.Request{
API: testcase.Request.Api,
@@ -174,7 +175,7 @@ func ConvertToNormalHistoryTestCase(testcase *server.HistoryTestCase) (result te
func ConvertHistoryToGRPCTestCase(historyTestcase *server.HistoryTestCase) (result testing.TestCase) {
result = testing.TestCase{
Name: historyTestcase.CaseName,
- ID: historyTestcase.ID,
+ ID: historyTestcase.ID,
}
if historyTestcase.Request != nil {
result.Request = testing.Request{
From 22d587869c6474c0c0bbb851ad8e30af1882f77d Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Mon, 9 Sep 2024 21:28:36 +0800
Subject: [PATCH 11/15] fix: fix the remaining problem
---
console/atest-ui/src/views/TestCase.vue | 5 ++--
pkg/server/convert.go | 39 ++++---------------------
pkg/testing/case.go | 4 +--
pkg/testing/remote/converter.go | 6 ++--
pkg/testing/remote/grpc_store.go | 2 +-
5 files changed, 14 insertions(+), 42 deletions(-)
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index 87b966713..27c24d70c 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -838,6 +838,7 @@ Magic.Keys(() => {
placeholder="Method"
size="default"
test-id="case-editor-method"
+ :disabled="isHistoryTestCase"
>
{
-
+
{
-
+
Date: Wed, 11 Sep 2024 14:21:37 +0800
Subject: [PATCH 12/15] fix: add tests
---
pkg/server/convert_test.go | 131 ++++++++++++++++
pkg/testing/remote/converter_test.go | 208 ++++++++++++++++++++++++++
pkg/testing/remote/grpc_store_test.go | 21 +++
3 files changed, 360 insertions(+)
diff --git a/pkg/server/convert_test.go b/pkg/server/convert_test.go
index 8c8a3e34a..20fd2eba4 100644
--- a/pkg/server/convert_test.go
+++ b/pkg/server/convert_test.go
@@ -16,7 +16,9 @@ limitations under the License.
package server
import (
+ "google.golang.org/protobuf/types/known/timestamppb"
"testing"
+ "time"
atest "github.com/linuxsuren/api-testing/pkg/testing"
"github.com/stretchr/testify/assert"
@@ -149,3 +151,132 @@ func TestToNormalSuite(t *testing.T) {
},
}))
}
+
+func TestConvertToGRPCHistoryTestCase(t *testing.T) {
+ now := time.Now().UTC()
+ result := ConvertToGRPCHistoryTestCase(atest.HistoryTestCase{
+ CreateTime: now,
+ SuiteParam: defaultMap,
+ SuiteSpec: atest.APISpec{
+ Kind: "http",
+ URL: "/v1",
+ RPC: &atest.RPCDesc{
+ Raw: "fake",
+ },
+ Secure: &atest.Secure{
+ KeyFile: "fake",
+ },
+ },
+ Data: atest.TestCase{
+ Request: atest.Request{
+ Header: defaultMap,
+ },
+ Expect: atest.Response{
+ BodyFieldsExpect: defaultInterMap,
+ },
+ },
+ })
+ assert.Equal(t, result.Request.Header, defaultPairs)
+ assert.Equal(t, result.SuiteParam, defaultPairs)
+ assert.Equal(t, result.Response.BodyFieldsExpect, defaultPairs)
+ assert.Equal(t, "fake", result.SuiteSpec.Secure.Key)
+ assert.Equal(t, timestamppb.New(now), result.CreateTime)
+}
+
+func TestToNormalTestCaseResult(t *testing.T) {
+ assert.Equal(t, atest.TestCaseResult{
+ Body: "body",
+ Error: "error",
+ Header: defaultMap,
+ Id: "id",
+ Output: "output",
+ StatusCode: 200,
+ }, ToNormalTestCaseResult(&TestCaseResult{
+ Body: "body",
+ Error: "error",
+ Header: defaultPairs,
+ Id: "id",
+ Output: "output",
+ StatusCode: 200,
+ }))
+}
+
+func TestToGRPCHistoryTestCaseResult(t *testing.T) {
+ t.Run("TestCaseResult is empty", func(t *testing.T) {
+ historyTestResult := atest.HistoryTestResult{
+ Message: "test message",
+ Error: "test error",
+ CreateTime: time.Now(),
+ Data: atest.HistoryTestCase{
+ ID: "test-id",
+ },
+ TestCaseResult: nil,
+ }
+
+ result := ToGRPCHistoryTestCaseResult(historyTestResult)
+
+ assert.Equal(t, 0, len(result.TestCaseResult))
+ assert.Equal(t, historyTestResult.Message, result.Message)
+ assert.Equal(t, historyTestResult.Error, result.Error)
+ })
+
+ t.Run("TestCaseResult is not empty", func(t *testing.T) {
+ now := time.Now().UTC()
+
+ result := ToGRPCHistoryTestCaseResult(atest.HistoryTestResult{
+ Message: "fake message",
+ CreateTime: now,
+ Data: atest.HistoryTestCase{
+ ID: "fake id",
+ },
+ TestCaseResult: []atest.TestCaseResult{
+ {
+ StatusCode: 200,
+ Output: "fake output",
+ },
+ {
+ Output: "fake output 2",
+ },
+ },
+ })
+
+ assert.Equal(t, 2, len(result.TestCaseResult))
+ assert.Equal(t, "fake message", result.Message)
+ assert.Equal(t, now, result.CreateTime.AsTime())
+ assert.Equal(t, "fake output", result.TestCaseResult[0].Output)
+ assert.Equal(t, "fake output 2", result.TestCaseResult[1].Output)
+ })
+}
+
+func TestToGRPCTestSuiteSpec(t *testing.T) {
+
+ t.Run("empty", func(t *testing.T) {
+ assert.Equal(t, &APISpec{}, ToGRPCTestSuiteSpec(atest.APISpec{}))
+ })
+
+ t.Run("fields", func(t *testing.T) {
+ assert.Equal(t, &APISpec{
+ Url: "/v1",
+ Kind: "http",
+ Rpc: &RPC{
+ Raw: "fake",
+ },
+ Secure: &Secure{
+ Key: "fake",
+ },
+ }, ToGRPCTestSuiteSpec(atest.APISpec{
+ Kind: "http",
+ URL: "/v1",
+ RPC: &atest.RPCDesc{
+ Raw: "fake",
+ },
+ Secure: &atest.Secure{
+ KeyFile: "fake",
+ },
+ }))
+ })
+}
+
+var defaultInterMap = map[string]interface{}{"foo": "bar"}
+var defaultMap map[string]string = map[string]string{"foo": "bar"}
+var defaultPairs []*Pair = []*Pair{{Key: "foo", Value: "bar"}}
diff --git a/pkg/testing/remote/converter_test.go b/pkg/testing/remote/converter_test.go
index 126b963bc..a54f6e2ff 100644
--- a/pkg/testing/remote/converter_test.go
+++ b/pkg/testing/remote/converter_test.go
@@ -17,7 +17,9 @@ limitations under the License.
package remote
import (
+ "google.golang.org/protobuf/types/known/timestamppb"
"testing"
+ "time"
server "github.com/linuxsuren/api-testing/pkg/server"
atest "github.com/linuxsuren/api-testing/pkg/testing"
@@ -25,6 +27,7 @@ import (
)
func TestConvert(t *testing.T) {
+ now := time.Now().UTC()
t.Run("convertToNormalTestSuite, empty object", func(t *testing.T) {
assert.Equal(t, &atest.TestSuite{
Param: map[string]string{},
@@ -123,6 +126,211 @@ func TestConvert(t *testing.T) {
assert.Equal(t, defaultPairs, result.Response.BodyFieldsExpect)
assert.Equal(t, defaultPairs, result.Response.Header)
})
+
+ t.Run("convertHistoryToGRPCTestCase", func(t *testing.T) {
+ result := ConvertHistoryToGRPCTestCase(&server.HistoryTestCase{
+ CaseName: "fake",
+ Request: &server.Request{
+ Header: defaultPairs,
+ },
+ Response: &server.Response{
+ BodyFieldsExpect: defaultPairs,
+ },
+ })
+ if !assert.NotNil(t, result) {
+ return
+ }
+ assert.Equal(t, defaultMap, result.Request.Header)
+ assert.Equal(t, defaultInterMap, result.Expect.BodyFieldsExpect)
+ assert.Equal(t, "fake", result.Name)
+ })
+
+ t.Run("convertToNormalHistoryTestCase", func(t *testing.T) {
+ assert.Equal(t, atest.HistoryTestCase{
+ CreateTime: now,
+ SuiteParam: defaultMap,
+ SuiteSpec: atest.APISpec{
+ Kind: "http",
+ URL: "/v1",
+ RPC: &atest.RPCDesc{
+ Raw: "fake",
+ },
+ Secure: &atest.Secure{
+ KeyFile: "fake",
+ },
+ },
+ Data: atest.TestCase{
+ Request: atest.Request{
+ API: "/v1",
+ Header: defaultMap,
+ Query: map[string]interface{}{},
+ Form: map[string]string{},
+ },
+ Expect: atest.Response{
+ BodyFieldsExpect: defaultInterMap,
+ Header: map[string]string{},
+ },
+ },
+ }, ConvertToNormalHistoryTestCase(&server.HistoryTestCase{
+ CreateTime: timestamppb.New(now),
+ SuiteParam: defaultPairs,
+ SuiteSpec: &server.APISpec{
+ Url: "/v1",
+ Kind: "http",
+ Rpc: &server.RPC{
+ Raw: "fake",
+ },
+ Secure: &server.Secure{
+ Key: "fake",
+ },
+ },
+ Request: &server.Request{
+ Header: defaultPairs,
+ Query: nil,
+ Api: "/v1",
+ },
+ Response: &server.Response{
+ BodyFieldsExpect: defaultPairs,
+ },
+ }))
+ })
+
+ t.Run("convertToNormalHistoryTestSuite, empty object", func(t *testing.T) {
+ assert.Equal(t, &atest.HistoryTestSuite{}, ConvertToNormalHistoryTestSuite(&HistoryTestSuite{}))
+ })
+
+ t.Run("convertToNormalHistoryTestSuite, normal object", func(t *testing.T) {
+ assert.Equal(t, &atest.HistoryTestSuite{
+ HistorySuiteName: "fake",
+ Items: []atest.HistoryTestCase{
+ {
+ CreateTime: now,
+ SuiteParam: defaultMap,
+ SuiteSpec: atest.APISpec{
+ Kind: "http",
+ URL: "/v1",
+ RPC: &atest.RPCDesc{
+ Raw: "fake",
+ },
+ Secure: &atest.Secure{
+ KeyFile: "fake",
+ },
+ },
+ },
+ },
+ }, ConvertToNormalHistoryTestSuite(&HistoryTestSuite{
+ HistorySuiteName: "fake",
+ Items: []*server.HistoryTestCase{
+ {
+ CreateTime: timestamppb.New(now),
+ SuiteParam: defaultPairs,
+ SuiteSpec: &server.APISpec{
+ Url: "/v1",
+ Kind: "http",
+ Rpc: &server.RPC{
+ Raw: "fake",
+ },
+ Secure: &server.Secure{
+ Key: "fake",
+ },
+ },
+ },
+ },
+ }))
+ })
+
+ t.Run("convertToGRPCHistoryTestCase", func(t *testing.T) {
+ result := ConvertToGRPCHistoryTestCase(atest.HistoryTestCase{
+ SuiteParam: defaultMap,
+ SuiteSpec: atest.APISpec{
+ Secure: &atest.Secure{
+ KeyFile: "fake",
+ },
+ },
+ Data: atest.TestCase{
+ Request: atest.Request{
+ Header: defaultMap,
+ },
+ Expect: atest.Response{
+ BodyFieldsExpect: defaultInterMap,
+ },
+ },
+ })
+ assert.Equal(t, defaultPairs, result.SuiteParam)
+ assert.Equal(t, defaultPairs, result.Request.Header)
+ assert.Equal(t, defaultPairs, result.Response.BodyFieldsExpect)
+ assert.Equal(t, "fake", result.SuiteSpec.Secure.Key)
+ })
+
+ t.Run("convertToGRPCHistoryTestCaseResult", func(t *testing.T) {
+ result := ConvertToGRPCHistoryTestCaseResult(atest.TestCaseResult{
+ Body: "fake body",
+ Output: "fake output",
+ }, &atest.TestSuite{
+ Param: defaultMap,
+ Spec: atest.APISpec{
+ Secure: &atest.Secure{
+ KeyFile: "fake",
+ },
+ },
+ Items: []atest.TestCase{
+ {
+ Request: atest.Request{
+ Header: defaultMap,
+ },
+ Expect: atest.Response{
+ BodyFieldsExpect: defaultInterMap,
+ },
+ },
+ },
+ })
+ assert.Equal(t, defaultPairs, result.Data.SuiteParam)
+ assert.Equal(t, defaultPairs, result.Data.Request.Header)
+ assert.Equal(t, defaultPairs, result.Data.Response.BodyFieldsExpect)
+ assert.Equal(t, "fake", result.Data.SuiteSpec.Secure.Key)
+ assert.Equal(t, "fake output", result.TestCaseResult[0].Output)
+ assert.Equal(t, "fake body", result.TestCaseResult[0].Body)
+ })
+
+ t.Run("convertToNormalTestCaseResult", func(t *testing.T) {
+ assert.Equal(t, atest.HistoryTestResult{
+ CreateTime: now,
+ Data: atest.HistoryTestCase{
+ SuiteParam: defaultMap,
+ CreateTime: now,
+ },
+ TestCaseResult: []atest.TestCaseResult{
+ {
+ Body: "fake body",
+ Output: "fake output",
+ Header: defaultMap,
+ },
+ {
+ Body: "fake body 2",
+ Output: "fake output 2",
+ Header: defaultMap,
+ },
+ },
+ }, ConvertToNormalTestCaseResult(&server.HistoryTestResult{
+ CreateTime: timestamppb.New(now),
+ Data: &server.HistoryTestCase{
+ SuiteParam: defaultPairs,
+ CreateTime: timestamppb.New(now),
+ },
+ TestCaseResult: []*server.TestCaseResult{
+ {
+ Body: "fake body",
+ Output: "fake output",
+ Header: defaultPairs,
+ },
+ {
+ Body: "fake body 2",
+ Output: "fake output 2",
+ Header: defaultPairs,
+ },
+ },
+ }))
+ })
}
var defaultInterMap = map[string]interface{}{"foo": "bar"}
diff --git a/pkg/testing/remote/grpc_store_test.go b/pkg/testing/remote/grpc_store_test.go
index 769a94975..f243a3092 100644
--- a/pkg/testing/remote/grpc_store_test.go
+++ b/pkg/testing/remote/grpc_store_test.go
@@ -87,6 +87,27 @@ func TestNewGRPCLoader(t *testing.T) {
err = writer.DeleteSuite("")
assert.Error(t, err)
+ _, err = writer.ListHistoryTestSuite()
+ assert.Error(t, err)
+
+ err = writer.CreateHistoryTestCase(atest.TestCaseResult{}, &atest.TestSuite{})
+ assert.Error(t, err)
+
+ _, err = writer.GetHistoryTestCase("")
+ assert.Error(t, err)
+
+ _, err = writer.GetHistoryTestCaseWithResult("")
+ assert.Error(t, err)
+
+ _, err = writer.GetTestCaseAllHistory("", "")
+ assert.Error(t, err)
+
+ err = writer.DeleteHistoryTestCase("")
+ assert.Error(t, err)
+
+ err = writer.DeleteAllHistoryTestCase("", "")
+ assert.Error(t, err)
+
var readonly bool
readonly, err = writer.Verify()
assert.Error(t, err)
From 7ebe10e803f4301530f4b35391088b09fd4e2247 Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Thu, 12 Sep 2024 17:13:59 +0800
Subject: [PATCH 13/15] fix: fix history page display
---
console/atest-ui/src/views/TestCase.vue | 45 +-
console/atest-ui/src/views/net.ts | 2 +-
go.work.sum | 4 +
pkg/server/convert.go | 1 +
pkg/server/remote_server.go | 30 +-
pkg/server/server.pb.go | 1124 ++++++++++++-----------
pkg/server/server.proto | 1 +
pkg/server/server.swagger.json | 7 +
pkg/testing/case.go | 1 +
pkg/testing/loader.go | 2 +-
pkg/testing/loader_file.go | 2 +-
pkg/testing/loader_non.go | 2 +-
pkg/testing/remote/converter.go | 39 +-
pkg/testing/remote/converter_test.go | 17 +-
pkg/testing/remote/grpc_store.go | 4 +-
pkg/testing/remote/grpc_store_test.go | 2 +-
16 files changed, 660 insertions(+), 623 deletions(-)
diff --git a/console/atest-ui/src/views/TestCase.vue b/console/atest-ui/src/views/TestCase.vue
index 27c24d70c..26bd42d5e 100644
--- a/console/atest-ui/src/views/TestCase.vue
+++ b/console/atest-ui/src/views/TestCase.vue
@@ -163,7 +163,7 @@ function generateCode() {
const ID = props.historyCaseID
if (isHistoryTestCase.value == true){
API.HistoryGenerateCode({
- ID: ID,
+ id: ID,
generator: currentCodeGenerator.value
}, (e) => {
ElMessage({
@@ -401,6 +401,9 @@ function setTestCaseWithSuite(e, suite) {
suiteName: suite,
data: e
} as TestCaseWithSuite;
+ if (isHistoryTestCase.value == true){
+ testCaseWithSuite.value.data.request.api = `${testCaseWithSuite.value.data.suiteApi}${testCaseWithSuite.value.data.request.api}`
+ }
}
load()
@@ -515,14 +518,28 @@ function openHistoryDialog(){
})
}
+function handleDialogClose(){
+ caseRevertLoading.value = false
+ historyDialogOpened.value = false
+ historyForm.value.selectedID = ''
+ const target = document.getElementById('compareView');
+ target.innerHTML = ''
+}
+
function handleHistoryChange(value) {
selectedHistory.value = historyRecords.value.find(record => record.ID === value);
const {
caseName: name,
suiteName,
request,
- response
+ response,
+ historyHeader,
} = selectedHistory.value;
+ request.header = historyHeader
+ request.header.push({
+ key: '',
+ value: ''
+ })
formatHistoryCase.value = {
name,
suiteName,
@@ -573,11 +590,7 @@ const submitForm = async (formEl) => {
load()
}
}, UIAPI.ErrorTip, saveLoading)
- caseRevertLoading.value = false
- historyDialogOpened.value = false
- historyForm.value.selectedID = ''
- const target = document.getElementById('compareView');
- target.innerHTML = '';
+ handleDialogClose()
}
})
}
@@ -587,12 +600,8 @@ const goToHistory = async (formEl) => {
await formEl.validate((valid: boolean, fields) => {
if (valid) {
caseRevertLoading.value = true
- emit('toHistoryPanel', { ID: selectedHistory.value.ID, panelName: 'history' });
- caseRevertLoading.value = false
- historyDialogOpened.value = false
- historyForm.value.selectedID = ''
- const target = document.getElementById('compareView');
- target.innerHTML = '';
+ emit('toHistoryPanel', { ID: selectedHistory.value.ID, panelName: 'history' })
+ handleDialogClose()
}
})
}
@@ -600,12 +609,8 @@ const goToHistory = async (formEl) => {
const deleteAllHistory = async (formEl) => {
if (!formEl) return
caseRevertLoading.value = true
- API.DeleteAllHistoryTestCase(props.suite, props.name, handleDeleteResponse);
- caseRevertLoading.value = false
- historyDialogOpened.value = false
- historyForm.value.selectedID = ''
- const target = document.getElementById('compareView');
- target.innerHTML = '';
+ API.DeleteAllHistoryTestCase(props.suite, props.name, handleDeleteResponse)
+ handleDialogClose()
}
const options = GetHTTPMethods()
@@ -1110,7 +1115,7 @@ Magic.Keys(() => {
-
+
server.APISpec
26, // 24: server.HistoryTestCase.request:type_name -> server.Request
27, // 25: server.HistoryTestCase.response:type_name -> server.Response
- 24, // 26: server.HistoryTestCases.data:type_name -> server.HistoryTestCase
- 30, // 27: server.Request.header:type_name -> server.Pair
- 30, // 28: server.Request.query:type_name -> server.Pair
- 30, // 29: server.Request.cookie:type_name -> server.Pair
- 30, // 30: server.Request.form:type_name -> server.Pair
- 30, // 31: server.Response.header:type_name -> server.Pair
- 30, // 32: server.Response.bodyFieldsExpect:type_name -> server.Pair
- 28, // 33: server.Response.ConditionalVerify:type_name -> server.ConditionalVerify
- 30, // 34: server.TestCaseResult.header:type_name -> server.Pair
- 30, // 35: server.Pairs.data:type_name -> server.Pair
- 34, // 36: server.Stores.data:type_name -> server.Store
- 30, // 37: server.Store.properties:type_name -> server.Pair
- 36, // 38: server.Store.kind:type_name -> server.StoreKind
- 36, // 39: server.StoreKinds.data:type_name -> server.StoreKind
- 30, // 40: server.SimpleList.data:type_name -> server.Pair
- 42, // 41: server.Secrets.data:type_name -> server.Secret
- 1, // 42: server.Suites.DataEntry.value:type_name -> server.Items
- 3, // 43: server.HistorySuites.DataEntry.value:type_name -> server.HistoryItems
- 15, // 44: server.Runner.Run:input_type -> server.TestTask
- 12, // 45: server.Runner.RunTestSuite:input_type -> server.TestSuiteIdentity
- 47, // 46: server.Runner.GetSuites:input_type -> server.Empty
- 12, // 47: server.Runner.CreateTestSuite:input_type -> server.TestSuiteIdentity
- 6, // 48: server.Runner.ImportTestSuite:input_type -> server.TestSuiteSource
- 12, // 49: server.Runner.GetTestSuite:input_type -> server.TestSuiteIdentity
- 7, // 50: server.Runner.UpdateTestSuite:input_type -> server.TestSuite
- 12, // 51: server.Runner.DeleteTestSuite:input_type -> server.TestSuiteIdentity
- 13, // 52: server.Runner.DuplicateTestSuite:input_type -> server.TestSuiteDuplicate
- 12, // 53: server.Runner.GetTestSuiteYaml:input_type -> server.TestSuiteIdentity
- 12, // 54: server.Runner.ListTestCase:input_type -> server.TestSuiteIdentity
- 5, // 55: server.Runner.RunTestCase:input_type -> server.TestCaseIdentity
- 5, // 56: server.Runner.GetTestCase:input_type -> server.TestCaseIdentity
- 21, // 57: server.Runner.CreateTestCase:input_type -> server.TestCaseWithSuite
- 21, // 58: server.Runner.UpdateTestCase:input_type -> server.TestCaseWithSuite
- 5, // 59: server.Runner.DeleteTestCase:input_type -> server.TestCaseIdentity
- 14, // 60: server.Runner.DuplicateTestCase:input_type -> server.TestCaseDuplicate
- 12, // 61: server.Runner.GetSuggestedAPIs:input_type -> server.TestSuiteIdentity
- 47, // 62: server.Runner.GetHistorySuites:input_type -> server.Empty
- 24, // 63: server.Runner.GetHistoryTestCaseWithResult:input_type -> server.HistoryTestCase
- 24, // 64: server.Runner.GetHistoryTestCase:input_type -> server.HistoryTestCase
- 24, // 65: server.Runner.DeleteHistoryTestCase:input_type -> server.HistoryTestCase
- 24, // 66: server.Runner.DeleteAllHistoryTestCase:input_type -> server.HistoryTestCase
- 23, // 67: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase
- 47, // 68: server.Runner.ListCodeGenerator:input_type -> server.Empty
- 40, // 69: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
- 40, // 70: server.Runner.HistoryGenerateCode:input_type -> server.CodeGenerateRequest
- 47, // 71: server.Runner.ListConverter:input_type -> server.Empty
- 40, // 72: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
- 47, // 73: server.Runner.PopularHeaders:input_type -> server.Empty
- 32, // 74: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
- 32, // 75: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
- 47, // 76: server.Runner.GetVersion:input_type -> server.Empty
- 47, // 77: server.Runner.Sample:input_type -> server.Empty
- 23, // 78: server.Runner.DownloadResponseFile:input_type -> server.TestCase
- 47, // 79: server.Runner.GetStoreKinds:input_type -> server.Empty
- 47, // 80: server.Runner.GetStores:input_type -> server.Empty
- 34, // 81: server.Runner.CreateStore:input_type -> server.Store
- 34, // 82: server.Runner.UpdateStore:input_type -> server.Store
- 34, // 83: server.Runner.DeleteStore:input_type -> server.Store
- 32, // 84: server.Runner.VerifyStore:input_type -> server.SimpleQuery
- 47, // 85: server.Runner.GetSecrets:input_type -> server.Empty
- 42, // 86: server.Runner.CreateSecret:input_type -> server.Secret
- 42, // 87: server.Runner.DeleteSecret:input_type -> server.Secret
- 42, // 88: server.Runner.UpdateSecret:input_type -> server.Secret
- 44, // 89: server.Runner.PProf:input_type -> server.PProfRequest
- 8, // 90: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
- 48, // 91: server.Mock.Reload:input_type -> server.MockConfig
- 47, // 92: server.Mock.GetConfig:input_type -> server.Empty
- 16, // 93: server.Runner.Run:output_type -> server.TestResult
- 16, // 94: server.Runner.RunTestSuite:output_type -> server.TestResult
- 0, // 95: server.Runner.GetSuites:output_type -> server.Suites
- 18, // 96: server.Runner.CreateTestSuite:output_type -> server.HelloReply
- 37, // 97: server.Runner.ImportTestSuite:output_type -> server.CommonResult
- 7, // 98: server.Runner.GetTestSuite:output_type -> server.TestSuite
- 18, // 99: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
- 18, // 100: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
- 18, // 101: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply
- 19, // 102: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
- 20, // 103: server.Runner.ListTestCase:output_type -> server.Suite
- 29, // 104: server.Runner.RunTestCase:output_type -> server.TestCaseResult
- 23, // 105: server.Runner.GetTestCase:output_type -> server.TestCase
- 18, // 106: server.Runner.CreateTestCase:output_type -> server.HelloReply
- 18, // 107: server.Runner.UpdateTestCase:output_type -> server.HelloReply
- 18, // 108: server.Runner.DeleteTestCase:output_type -> server.HelloReply
- 18, // 109: server.Runner.DuplicateTestCase:output_type -> server.HelloReply
- 22, // 110: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
- 2, // 111: server.Runner.GetHistorySuites:output_type -> server.HistorySuites
- 17, // 112: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
- 24, // 113: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase
- 18, // 114: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply
- 18, // 115: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply
- 25, // 116: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
- 38, // 117: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
- 37, // 118: server.Runner.GenerateCode:output_type -> server.CommonResult
- 37, // 119: server.Runner.HistoryGenerateCode:output_type -> server.CommonResult
- 38, // 120: server.Runner.ListConverter:output_type -> server.SimpleList
- 37, // 121: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
- 31, // 122: server.Runner.PopularHeaders:output_type -> server.Pairs
- 31, // 123: server.Runner.FunctionsQuery:output_type -> server.Pairs
- 31, // 124: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
- 49, // 125: server.Runner.GetVersion:output_type -> server.Version
- 18, // 126: server.Runner.Sample:output_type -> server.HelloReply
- 46, // 127: server.Runner.DownloadResponseFile:output_type -> server.FileData
- 35, // 128: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
- 33, // 129: server.Runner.GetStores:output_type -> server.Stores
- 34, // 130: server.Runner.CreateStore:output_type -> server.Store
- 34, // 131: server.Runner.UpdateStore:output_type -> server.Store
- 34, // 132: server.Runner.DeleteStore:output_type -> server.Store
- 43, // 133: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
- 41, // 134: server.Runner.GetSecrets:output_type -> server.Secrets
- 37, // 135: server.Runner.CreateSecret:output_type -> server.CommonResult
- 37, // 136: server.Runner.DeleteSecret:output_type -> server.CommonResult
- 37, // 137: server.Runner.UpdateSecret:output_type -> server.CommonResult
- 45, // 138: server.Runner.PProf:output_type -> server.PProfData
- 37, // 139: server.RunnerExtension.Run:output_type -> server.CommonResult
- 47, // 140: server.Mock.Reload:output_type -> server.Empty
- 48, // 141: server.Mock.GetConfig:output_type -> server.MockConfig
- 93, // [93:142] is the sub-list for method output_type
- 44, // [44:93] is the sub-list for method input_type
- 44, // [44:44] is the sub-list for extension type_name
- 44, // [44:44] is the sub-list for extension extendee
- 0, // [0:44] is the sub-list for field type_name
+ 30, // 26: server.HistoryTestCase.historyHeader:type_name -> server.Pair
+ 24, // 27: server.HistoryTestCases.data:type_name -> server.HistoryTestCase
+ 30, // 28: server.Request.header:type_name -> server.Pair
+ 30, // 29: server.Request.query:type_name -> server.Pair
+ 30, // 30: server.Request.cookie:type_name -> server.Pair
+ 30, // 31: server.Request.form:type_name -> server.Pair
+ 30, // 32: server.Response.header:type_name -> server.Pair
+ 30, // 33: server.Response.bodyFieldsExpect:type_name -> server.Pair
+ 28, // 34: server.Response.ConditionalVerify:type_name -> server.ConditionalVerify
+ 30, // 35: server.TestCaseResult.header:type_name -> server.Pair
+ 30, // 36: server.Pairs.data:type_name -> server.Pair
+ 34, // 37: server.Stores.data:type_name -> server.Store
+ 30, // 38: server.Store.properties:type_name -> server.Pair
+ 36, // 39: server.Store.kind:type_name -> server.StoreKind
+ 36, // 40: server.StoreKinds.data:type_name -> server.StoreKind
+ 30, // 41: server.SimpleList.data:type_name -> server.Pair
+ 42, // 42: server.Secrets.data:type_name -> server.Secret
+ 1, // 43: server.Suites.DataEntry.value:type_name -> server.Items
+ 3, // 44: server.HistorySuites.DataEntry.value:type_name -> server.HistoryItems
+ 15, // 45: server.Runner.Run:input_type -> server.TestTask
+ 12, // 46: server.Runner.RunTestSuite:input_type -> server.TestSuiteIdentity
+ 47, // 47: server.Runner.GetSuites:input_type -> server.Empty
+ 12, // 48: server.Runner.CreateTestSuite:input_type -> server.TestSuiteIdentity
+ 6, // 49: server.Runner.ImportTestSuite:input_type -> server.TestSuiteSource
+ 12, // 50: server.Runner.GetTestSuite:input_type -> server.TestSuiteIdentity
+ 7, // 51: server.Runner.UpdateTestSuite:input_type -> server.TestSuite
+ 12, // 52: server.Runner.DeleteTestSuite:input_type -> server.TestSuiteIdentity
+ 13, // 53: server.Runner.DuplicateTestSuite:input_type -> server.TestSuiteDuplicate
+ 12, // 54: server.Runner.GetTestSuiteYaml:input_type -> server.TestSuiteIdentity
+ 12, // 55: server.Runner.ListTestCase:input_type -> server.TestSuiteIdentity
+ 5, // 56: server.Runner.RunTestCase:input_type -> server.TestCaseIdentity
+ 5, // 57: server.Runner.GetTestCase:input_type -> server.TestCaseIdentity
+ 21, // 58: server.Runner.CreateTestCase:input_type -> server.TestCaseWithSuite
+ 21, // 59: server.Runner.UpdateTestCase:input_type -> server.TestCaseWithSuite
+ 5, // 60: server.Runner.DeleteTestCase:input_type -> server.TestCaseIdentity
+ 14, // 61: server.Runner.DuplicateTestCase:input_type -> server.TestCaseDuplicate
+ 12, // 62: server.Runner.GetSuggestedAPIs:input_type -> server.TestSuiteIdentity
+ 47, // 63: server.Runner.GetHistorySuites:input_type -> server.Empty
+ 24, // 64: server.Runner.GetHistoryTestCaseWithResult:input_type -> server.HistoryTestCase
+ 24, // 65: server.Runner.GetHistoryTestCase:input_type -> server.HistoryTestCase
+ 24, // 66: server.Runner.DeleteHistoryTestCase:input_type -> server.HistoryTestCase
+ 24, // 67: server.Runner.DeleteAllHistoryTestCase:input_type -> server.HistoryTestCase
+ 23, // 68: server.Runner.GetTestCaseAllHistory:input_type -> server.TestCase
+ 47, // 69: server.Runner.ListCodeGenerator:input_type -> server.Empty
+ 40, // 70: server.Runner.GenerateCode:input_type -> server.CodeGenerateRequest
+ 40, // 71: server.Runner.HistoryGenerateCode:input_type -> server.CodeGenerateRequest
+ 47, // 72: server.Runner.ListConverter:input_type -> server.Empty
+ 40, // 73: server.Runner.ConvertTestSuite:input_type -> server.CodeGenerateRequest
+ 47, // 74: server.Runner.PopularHeaders:input_type -> server.Empty
+ 32, // 75: server.Runner.FunctionsQuery:input_type -> server.SimpleQuery
+ 32, // 76: server.Runner.FunctionsQueryStream:input_type -> server.SimpleQuery
+ 47, // 77: server.Runner.GetVersion:input_type -> server.Empty
+ 47, // 78: server.Runner.Sample:input_type -> server.Empty
+ 23, // 79: server.Runner.DownloadResponseFile:input_type -> server.TestCase
+ 47, // 80: server.Runner.GetStoreKinds:input_type -> server.Empty
+ 47, // 81: server.Runner.GetStores:input_type -> server.Empty
+ 34, // 82: server.Runner.CreateStore:input_type -> server.Store
+ 34, // 83: server.Runner.UpdateStore:input_type -> server.Store
+ 34, // 84: server.Runner.DeleteStore:input_type -> server.Store
+ 32, // 85: server.Runner.VerifyStore:input_type -> server.SimpleQuery
+ 47, // 86: server.Runner.GetSecrets:input_type -> server.Empty
+ 42, // 87: server.Runner.CreateSecret:input_type -> server.Secret
+ 42, // 88: server.Runner.DeleteSecret:input_type -> server.Secret
+ 42, // 89: server.Runner.UpdateSecret:input_type -> server.Secret
+ 44, // 90: server.Runner.PProf:input_type -> server.PProfRequest
+ 8, // 91: server.RunnerExtension.Run:input_type -> server.TestSuiteWithCase
+ 48, // 92: server.Mock.Reload:input_type -> server.MockConfig
+ 47, // 93: server.Mock.GetConfig:input_type -> server.Empty
+ 16, // 94: server.Runner.Run:output_type -> server.TestResult
+ 16, // 95: server.Runner.RunTestSuite:output_type -> server.TestResult
+ 0, // 96: server.Runner.GetSuites:output_type -> server.Suites
+ 18, // 97: server.Runner.CreateTestSuite:output_type -> server.HelloReply
+ 37, // 98: server.Runner.ImportTestSuite:output_type -> server.CommonResult
+ 7, // 99: server.Runner.GetTestSuite:output_type -> server.TestSuite
+ 18, // 100: server.Runner.UpdateTestSuite:output_type -> server.HelloReply
+ 18, // 101: server.Runner.DeleteTestSuite:output_type -> server.HelloReply
+ 18, // 102: server.Runner.DuplicateTestSuite:output_type -> server.HelloReply
+ 19, // 103: server.Runner.GetTestSuiteYaml:output_type -> server.YamlData
+ 20, // 104: server.Runner.ListTestCase:output_type -> server.Suite
+ 29, // 105: server.Runner.RunTestCase:output_type -> server.TestCaseResult
+ 23, // 106: server.Runner.GetTestCase:output_type -> server.TestCase
+ 18, // 107: server.Runner.CreateTestCase:output_type -> server.HelloReply
+ 18, // 108: server.Runner.UpdateTestCase:output_type -> server.HelloReply
+ 18, // 109: server.Runner.DeleteTestCase:output_type -> server.HelloReply
+ 18, // 110: server.Runner.DuplicateTestCase:output_type -> server.HelloReply
+ 22, // 111: server.Runner.GetSuggestedAPIs:output_type -> server.TestCases
+ 2, // 112: server.Runner.GetHistorySuites:output_type -> server.HistorySuites
+ 17, // 113: server.Runner.GetHistoryTestCaseWithResult:output_type -> server.HistoryTestResult
+ 24, // 114: server.Runner.GetHistoryTestCase:output_type -> server.HistoryTestCase
+ 18, // 115: server.Runner.DeleteHistoryTestCase:output_type -> server.HelloReply
+ 18, // 116: server.Runner.DeleteAllHistoryTestCase:output_type -> server.HelloReply
+ 25, // 117: server.Runner.GetTestCaseAllHistory:output_type -> server.HistoryTestCases
+ 38, // 118: server.Runner.ListCodeGenerator:output_type -> server.SimpleList
+ 37, // 119: server.Runner.GenerateCode:output_type -> server.CommonResult
+ 37, // 120: server.Runner.HistoryGenerateCode:output_type -> server.CommonResult
+ 38, // 121: server.Runner.ListConverter:output_type -> server.SimpleList
+ 37, // 122: server.Runner.ConvertTestSuite:output_type -> server.CommonResult
+ 31, // 123: server.Runner.PopularHeaders:output_type -> server.Pairs
+ 31, // 124: server.Runner.FunctionsQuery:output_type -> server.Pairs
+ 31, // 125: server.Runner.FunctionsQueryStream:output_type -> server.Pairs
+ 49, // 126: server.Runner.GetVersion:output_type -> server.Version
+ 18, // 127: server.Runner.Sample:output_type -> server.HelloReply
+ 46, // 128: server.Runner.DownloadResponseFile:output_type -> server.FileData
+ 35, // 129: server.Runner.GetStoreKinds:output_type -> server.StoreKinds
+ 33, // 130: server.Runner.GetStores:output_type -> server.Stores
+ 34, // 131: server.Runner.CreateStore:output_type -> server.Store
+ 34, // 132: server.Runner.UpdateStore:output_type -> server.Store
+ 34, // 133: server.Runner.DeleteStore:output_type -> server.Store
+ 43, // 134: server.Runner.VerifyStore:output_type -> server.ExtensionStatus
+ 41, // 135: server.Runner.GetSecrets:output_type -> server.Secrets
+ 37, // 136: server.Runner.CreateSecret:output_type -> server.CommonResult
+ 37, // 137: server.Runner.DeleteSecret:output_type -> server.CommonResult
+ 37, // 138: server.Runner.UpdateSecret:output_type -> server.CommonResult
+ 45, // 139: server.Runner.PProf:output_type -> server.PProfData
+ 37, // 140: server.RunnerExtension.Run:output_type -> server.CommonResult
+ 47, // 141: server.Mock.Reload:output_type -> server.Empty
+ 48, // 142: server.Mock.GetConfig:output_type -> server.MockConfig
+ 94, // [94:143] is the sub-list for method output_type
+ 45, // [45:94] is the sub-list for method input_type
+ 45, // [45:45] is the sub-list for extension type_name
+ 45, // [45:45] is the sub-list for extension extendee
+ 0, // [0:45] is the sub-list for field type_name
}
func init() { file_pkg_server_server_proto_init() }
diff --git a/pkg/server/server.proto b/pkg/server/server.proto
index 1bf09e281..089c502f2 100644
--- a/pkg/server/server.proto
+++ b/pkg/server/server.proto
@@ -445,6 +445,7 @@ message HistoryTestCase {
Request request = 8;
Response response = 9;
string ID = 10;
+ repeated Pair historyHeader = 11;
}
message HistoryTestCases{
diff --git a/pkg/server/server.swagger.json b/pkg/server/server.swagger.json
index 82db45182..4a4185ae1 100644
--- a/pkg/server/server.swagger.json
+++ b/pkg/server/server.swagger.json
@@ -2738,6 +2738,13 @@
},
"ID": {
"type": "string"
+ },
+ "historyHeader": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/serverPair"
+ }
}
}
},
diff --git a/pkg/testing/case.go b/pkg/testing/case.go
index 0e83ae6b8..8eefd957b 100644
--- a/pkg/testing/case.go
+++ b/pkg/testing/case.go
@@ -55,6 +55,7 @@ type HistoryTestCase struct {
SuiteSpec APISpec `yaml:"spec,omitempty" json:"spec,omitempty"`
SuiteParam map[string]string `yaml:"param,omitempty" json:"param,omitempty"`
Data TestCase `yaml:"data,omitempty" json:"data,omitempty"`
+ HistoryHeader map[string]string `yaml:"historyHeader,omitempty" json:"historyHeader,omitempty"`
}
type HistoryTestResult struct {
diff --git a/pkg/testing/loader.go b/pkg/testing/loader.go
index 1e4b8ff5e..ef663acad 100644
--- a/pkg/testing/loader.go
+++ b/pkg/testing/loader.go
@@ -38,7 +38,7 @@ type Writer interface {
DeleteTestCase(suite, testcase string) (err error)
ListHistoryTestSuite() (suites []HistoryTestSuite, err error)
- CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error)
+ CreateHistoryTestCase(testcaseResult TestCaseResult, suite *TestSuite, historyHeader map[string]string) (err error)
GetHistoryTestCaseWithResult(id string) (historyTestCase HistoryTestResult, err error)
GetHistoryTestCase(id string) (historyTestCase HistoryTestCase, err error)
DeleteHistoryTestCase(id string) (err error)
diff --git a/pkg/testing/loader_file.go b/pkg/testing/loader_file.go
index 90f9783dd..f31653a4f 100644
--- a/pkg/testing/loader_file.go
+++ b/pkg/testing/loader_file.go
@@ -429,7 +429,7 @@ func (l *fileLoader) DeleteTestCase(suiteName, testcase string) (err error) {
return
}
-func (l *fileLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error) { // always be okay
+func (l *fileLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite, historyHeader map[string]string ) (err error) { // always be okay
return
}
diff --git a/pkg/testing/loader_non.go b/pkg/testing/loader_non.go
index d5dea821e..7faa25929 100644
--- a/pkg/testing/loader_non.go
+++ b/pkg/testing/loader_non.go
@@ -100,7 +100,7 @@ func (l *nonLoader) DeleteTestCase(suiteName, testcase string) (err error) {
return
}
-func (l *nonLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite) (err error) {
+func (l *nonLoader) CreateHistoryTestCase(testcaseResult TestCaseResult, suiteName *TestSuite, historyHeader map[string]string ) (err error) {
return
}
diff --git a/pkg/testing/remote/converter.go b/pkg/testing/remote/converter.go
index d9620d3a0..d94d4d88b 100644
--- a/pkg/testing/remote/converter.go
+++ b/pkg/testing/remote/converter.go
@@ -140,13 +140,14 @@ func ConvertToNormalTestCase(testcase *server.TestCase) (result testing.TestCase
func ConvertToNormalHistoryTestCase(testcase *server.HistoryTestCase) (result testing.HistoryTestCase) {
result = testing.HistoryTestCase{
- ID: testcase.ID,
- SuiteName: testcase.SuiteName,
- CaseName: testcase.CaseName,
- SuiteAPI: testcase.SuiteApi,
- SuiteParam: pairToMap(testcase.SuiteParam),
- SuiteSpec: ConvertToNormalTestSuiteSpec(testcase.SuiteSpec),
- CreateTime: testcase.CreateTime.AsTime(),
+ ID: testcase.ID,
+ SuiteName: testcase.SuiteName,
+ CaseName: testcase.CaseName,
+ SuiteAPI: testcase.SuiteApi,
+ SuiteParam: pairToMap(testcase.SuiteParam),
+ SuiteSpec: ConvertToNormalTestSuiteSpec(testcase.SuiteSpec),
+ CreateTime: testcase.CreateTime.AsTime(),
+ HistoryHeader: pairToMap(testcase.HistoryHeader),
}
result.Data.Name = testcase.CaseName
if testcase.Request != nil {
@@ -227,10 +228,11 @@ func ConvertToGRPCHistoryTestCase(historyTestcase testing.HistoryTestCase) (resu
req := historyTestcase.Data.Request
res := historyTestcase.Data.Expect
result = &server.HistoryTestCase{
- CaseName: historyTestcase.CaseName,
- SuiteName: historyTestcase.SuiteName,
- SuiteApi: historyTestcase.SuiteAPI,
- SuiteParam: mapToPair(historyTestcase.SuiteParam),
+ CaseName: historyTestcase.CaseName,
+ SuiteName: historyTestcase.SuiteName,
+ SuiteApi: historyTestcase.SuiteAPI,
+ SuiteParam: mapToPair(historyTestcase.SuiteParam),
+ HistoryHeader: mapToPair(historyTestcase.HistoryHeader),
Request: &server.Request{
Api: req.API,
@@ -300,7 +302,7 @@ func pairToInterMap(pairs []*server.Pair) (data map[string]interface{}) {
return
}
-func ConvertToGRPCHistoryTestCaseResult(testCaseResult testing.TestCaseResult, testSuite *testing.TestSuite) (result *server.HistoryTestResult) {
+func ConvertToGRPCHistoryTestCaseResult(testCaseResult testing.TestCaseResult, testSuite *testing.TestSuite, historyHeader map[string]string) (result *server.HistoryTestResult) {
result = &server.HistoryTestResult{
Error: testCaseResult.Error,
CreateTime: timestamppb.New(time.Now()),
@@ -318,12 +320,13 @@ func ConvertToGRPCHistoryTestCaseResult(testCaseResult testing.TestCaseResult, t
for _, testCase := range testSuite.Items {
data := testing.HistoryTestCase{
- CaseName: testCase.Name,
- SuiteName: testSuite.Name,
- SuiteAPI: testSuite.API,
- SuiteSpec: testSuite.Spec,
- SuiteParam: testSuite.Param,
- Data: testCase,
+ CaseName: testCase.Name,
+ SuiteName: testSuite.Name,
+ SuiteAPI: testSuite.API,
+ SuiteSpec: testSuite.Spec,
+ SuiteParam: testSuite.Param,
+ Data: testCase,
+ HistoryHeader: historyHeader,
}
result.Data = ConvertToGRPCHistoryTestCase(data)
diff --git a/pkg/testing/remote/converter_test.go b/pkg/testing/remote/converter_test.go
index a54f6e2ff..679671208 100644
--- a/pkg/testing/remote/converter_test.go
+++ b/pkg/testing/remote/converter_test.go
@@ -147,8 +147,9 @@ func TestConvert(t *testing.T) {
t.Run("convertToNormalHistoryTestCase", func(t *testing.T) {
assert.Equal(t, atest.HistoryTestCase{
- CreateTime: now,
- SuiteParam: defaultMap,
+ CreateTime: now,
+ SuiteParam: defaultMap,
+ HistoryHeader: map[string]string{},
SuiteSpec: atest.APISpec{
Kind: "http",
URL: "/v1",
@@ -204,8 +205,9 @@ func TestConvert(t *testing.T) {
HistorySuiteName: "fake",
Items: []atest.HistoryTestCase{
{
- CreateTime: now,
- SuiteParam: defaultMap,
+ CreateTime: now,
+ SuiteParam: defaultMap,
+ HistoryHeader: map[string]string{},
SuiteSpec: atest.APISpec{
Kind: "http",
URL: "/v1",
@@ -283,7 +285,7 @@ func TestConvert(t *testing.T) {
},
},
},
- })
+ }, map[string]string{})
assert.Equal(t, defaultPairs, result.Data.SuiteParam)
assert.Equal(t, defaultPairs, result.Data.Request.Header)
assert.Equal(t, defaultPairs, result.Data.Response.BodyFieldsExpect)
@@ -296,8 +298,9 @@ func TestConvert(t *testing.T) {
assert.Equal(t, atest.HistoryTestResult{
CreateTime: now,
Data: atest.HistoryTestCase{
- SuiteParam: defaultMap,
- CreateTime: now,
+ SuiteParam: defaultMap,
+ CreateTime: now,
+ HistoryHeader: map[string]string{},
},
TestCaseResult: []atest.TestCaseResult{
{
diff --git a/pkg/testing/remote/grpc_store.go b/pkg/testing/remote/grpc_store.go
index dd3410f23..b63f9ac11 100644
--- a/pkg/testing/remote/grpc_store.go
+++ b/pkg/testing/remote/grpc_store.go
@@ -163,8 +163,8 @@ func (g *gRPCLoader) DeleteTestCase(suite, testcase string) (err error) {
return
}
-func (g *gRPCLoader) CreateHistoryTestCase(testcaseResult testing.TestCaseResult, testSuite *testing.TestSuite) (err error) {
- payload := ConvertToGRPCHistoryTestCaseResult(testcaseResult, testSuite)
+func (g *gRPCLoader) CreateHistoryTestCase(testcaseResult testing.TestCaseResult, testSuite *testing.TestSuite, historyHeader map[string]string ) (err error) {
+ payload := ConvertToGRPCHistoryTestCaseResult(testcaseResult, testSuite, historyHeader)
_, err = g.client.CreateTestCaseHistory(g.ctx, payload)
return
}
diff --git a/pkg/testing/remote/grpc_store_test.go b/pkg/testing/remote/grpc_store_test.go
index f243a3092..bc0c2d710 100644
--- a/pkg/testing/remote/grpc_store_test.go
+++ b/pkg/testing/remote/grpc_store_test.go
@@ -90,7 +90,7 @@ func TestNewGRPCLoader(t *testing.T) {
_, err = writer.ListHistoryTestSuite()
assert.Error(t, err)
- err = writer.CreateHistoryTestCase(atest.TestCaseResult{}, &atest.TestSuite{})
+ err = writer.CreateHistoryTestCase(atest.TestCaseResult{}, &atest.TestSuite{}, map[string]string{})
assert.Error(t, err)
_, err = writer.GetHistoryTestCase("")
From 5b662f34c4ee008506b0d577b2c74ad426fa7e12 Mon Sep 17 00:00:00 2001
From: ysf <1807100869@qq.com>
Date: Sun, 15 Sep 2024 09:25:08 +0800
Subject: [PATCH 14/15] fix: add e2e image prefix
---
console/atest-ui/src/locales/zh.json | 2 +-
e2e/entrypoint.sh | 2 +-
pkg/server/convert.go | 1 -
3 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/console/atest-ui/src/locales/zh.json b/console/atest-ui/src/locales/zh.json
index 93801f5f5..3ab04e62f 100644
--- a/console/atest-ui/src/locales/zh.json
+++ b/console/atest-ui/src/locales/zh.json
@@ -26,7 +26,7 @@
"viewHistory": "查看历史记录",
"revert": "回退",
"goToHistory": "跳转历史记录",
- "deleteAllHistory": "删除所有历史记录"
+ "deleteAllHistory": "删除所有历史记录"
},
"title": {
"createTestSuite": "创建测试用例集",
diff --git a/e2e/entrypoint.sh b/e2e/entrypoint.sh
index 652df543d..d9845aaa9 100755
--- a/e2e/entrypoint.sh
+++ b/e2e/entrypoint.sh
@@ -26,7 +26,7 @@ openssl x509 -req -days 365 -in test.csr \
echo "start to download extenions"
atest extension --output /usr/local/bin --registry ghcr.io git
-atest extension --output /usr/local/bin --registry ghcr.io orm
+atest extension --output /usr/local/bin --registry registry-1.docker.io orm --image-prefix ysf233
atest extension --output /usr/local/bin --registry ghcr.io etcd
atest extension --output /usr/local/bin --registry ghcr.io mongodb
diff --git a/pkg/server/convert.go b/pkg/server/convert.go
index 4f1b9f158..96184e3f3 100644
--- a/pkg/server/convert.go
+++ b/pkg/server/convert.go
@@ -19,7 +19,6 @@ import (
"strings"
"google.golang.org/protobuf/types/known/timestamppb"
-
"github.com/linuxsuren/api-testing/pkg/testing"
"github.com/linuxsuren/api-testing/pkg/util"
)
From d689d3eb6532bf7b83c693d93ec1ede0afee3743 Mon Sep 17 00:00:00 2001
From: Rick <1450685+LinuxSuRen@users.noreply.github.com>
Date: Wed, 18 Sep 2024 17:09:54 +0800
Subject: [PATCH 15/15] Update entrypoint.sh
Signed-off-by: Rick <1450685+LinuxSuRen@users.noreply.github.com>
---
e2e/entrypoint.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/e2e/entrypoint.sh b/e2e/entrypoint.sh
index d9845aaa9..652df543d 100755
--- a/e2e/entrypoint.sh
+++ b/e2e/entrypoint.sh
@@ -26,7 +26,7 @@ openssl x509 -req -days 365 -in test.csr \
echo "start to download extenions"
atest extension --output /usr/local/bin --registry ghcr.io git
-atest extension --output /usr/local/bin --registry registry-1.docker.io orm --image-prefix ysf233
+atest extension --output /usr/local/bin --registry ghcr.io orm
atest extension --output /usr/local/bin --registry ghcr.io etcd
atest extension --output /usr/local/bin --registry ghcr.io mongodb