Merge pull request 'call ac-rpc in coordinator to get infer url' (#227) from zhouqunjie/pcm-coordinator:master into master
Former-commit-id: b8df4138915d10b4d139d1a53c416f2a7f97e7ef
This commit is contained in:
commit
63fab9b14c
|
@ -5,7 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/zeromicro/go-zero/core/logx"
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
"github.com/zeromicro/go-zero/zrpc"
|
"github.com/zeromicro/go-zero/zrpc"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/executor"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/executor"
|
||||||
|
|
|
@ -2,7 +2,7 @@ package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/zeromicro/go-zero/zrpc"
|
"github.com/zeromicro/go-zero/zrpc"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
||||||
|
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcAC"
|
"gitlink.org.cn/JointCloud/pcm-ac/hpcAC"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
|
@ -18,7 +18,7 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcAC"
|
"gitlink.org.cn/JointCloud/pcm-ac/hpcAC"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/common"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/common"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/schedulers/option"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/schedulers/option"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
||||||
|
@ -98,7 +98,7 @@ type ShuguangAi struct {
|
||||||
participantId int64
|
participantId int64
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewShuguangAi(aCRpc hpcacclient.HpcAC, name string, id int64) *ShuguangAi {
|
func NewShuguangAi(aCRpc hpcAC.HpcACClient, name string, id int64) *ShuguangAi {
|
||||||
return &ShuguangAi{aCRpc: aCRpc, platform: name, participantId: id}
|
return &ShuguangAi{aCRpc: aCRpc, platform: name, participantId: id}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -732,9 +732,17 @@ func (s *ShuguangAi) generateParams(option *option.AiOption) error {
|
||||||
|
|
||||||
func (s *ShuguangAi) GetImageInferUrl(ctx context.Context, option *option.InferOption) ([]*collector.ImageInferUrl, error) {
|
func (s *ShuguangAi) GetImageInferUrl(ctx context.Context, option *option.InferOption) ([]*collector.ImageInferUrl, error) {
|
||||||
var imageUrls []*collector.ImageInferUrl
|
var imageUrls []*collector.ImageInferUrl
|
||||||
|
|
||||||
|
urlReq := &hpcAC.GetInferUrlReq{
|
||||||
|
ModelName: option.ModelName,
|
||||||
|
Type: option.ModelType,
|
||||||
|
Card: "dcu",
|
||||||
|
}
|
||||||
|
|
||||||
|
urlResp, _ := s.aCRpc.GetInferUrl(ctx, urlReq)
|
||||||
imageUrl := &collector.ImageInferUrl{
|
imageUrl := &collector.ImageInferUrl{
|
||||||
Url: "http://0.0.0.0:8888/image",
|
Url: urlResp.Url,
|
||||||
Card: "dcu",
|
Card: option.ComputeCard,
|
||||||
}
|
}
|
||||||
imageUrls = append(imageUrls, imageUrl)
|
imageUrls = append(imageUrls, imageUrl)
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcAC"
|
"gitlink.org.cn/JointCloud/pcm-ac/hpcAC"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/common"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/common"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
|
||||||
|
|
|
@ -21,7 +21,7 @@ import (
|
||||||
"github.com/robfig/cron/v3"
|
"github.com/robfig/cron/v3"
|
||||||
"github.com/zeromicro/go-zero/core/logx"
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
"github.com/zeromicro/go-zero/zrpc"
|
"github.com/zeromicro/go-zero/zrpc"
|
||||||
"gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database"
|
||||||
|
|
5
go.mod
5
go.mod
|
@ -20,8 +20,7 @@ require (
|
||||||
github.com/prometheus/common v0.52.2
|
github.com/prometheus/common v0.52.2
|
||||||
github.com/robfig/cron/v3 v3.0.1
|
github.com/robfig/cron/v3 v3.0.1
|
||||||
github.com/zeromicro/go-zero v1.6.3
|
github.com/zeromicro/go-zero v1.6.3
|
||||||
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece
|
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c
|
||||||
gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c
|
|
||||||
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9
|
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9
|
||||||
gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35
|
gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35
|
||||||
gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203
|
gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203
|
||||||
|
@ -30,7 +29,7 @@ require (
|
||||||
go.opentelemetry.io/otel/trace v1.25.0
|
go.opentelemetry.io/otel/trace v1.25.0
|
||||||
gonum.org/v1/gonum v0.11.0
|
gonum.org/v1/gonum v0.11.0
|
||||||
google.golang.org/grpc v1.63.0
|
google.golang.org/grpc v1.63.0
|
||||||
google.golang.org/protobuf v1.33.0
|
google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002
|
||||||
gorm.io/datatypes v1.2.0
|
gorm.io/datatypes v1.2.0
|
||||||
gorm.io/driver/mysql v1.5.2
|
gorm.io/driver/mysql v1.5.2
|
||||||
gorm.io/gorm v1.25.5
|
gorm.io/gorm v1.25.5
|
||||||
|
|
10
go.sum
10
go.sum
|
@ -466,10 +466,8 @@ github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE
|
||||||
github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
|
github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
|
||||||
github.com/zeromicro/go-zero v1.6.3 h1:OL0NnHD5LdRNDolfcK9vUkJt7K8TcBE3RkzfM8poOVw=
|
github.com/zeromicro/go-zero v1.6.3 h1:OL0NnHD5LdRNDolfcK9vUkJt7K8TcBE3RkzfM8poOVw=
|
||||||
github.com/zeromicro/go-zero v1.6.3/go.mod h1:XZL435ZxVi9MSXXtw2MRQhHgx6OoX3++MRMOE9xU70c=
|
github.com/zeromicro/go-zero v1.6.3/go.mod h1:XZL435ZxVi9MSXXtw2MRQhHgx6OoX3++MRMOE9xU70c=
|
||||||
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece h1:W3yBnvAVV8dlRNQKYD6Mf8ySRrYsP0tPk7JjvqZzNHQ=
|
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c h1:HrU3GPuHWTAajQxbkDFygsAm/HURJFGT2yckUMdOdGM=
|
||||||
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece/go.mod h1:w3Nb5TNymCItQ7K3x4Q0JLuoq9OerwAzAWT2zsPE9Xo=
|
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c/go.mod h1:3eECiw9O2bIFkkePlloKyLNXiqBAhOxNrDoGaaGseGY=
|
||||||
gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c h1:2Wl/hvaSFjh6fmCSIQhjkr9llMRREQeqcXNLZ/HPY18=
|
|
||||||
gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c/go.mod h1:lSRfGs+PxFvw7CcndHWRd6UlLlGrZn0b0hp5cfaMNGw=
|
|
||||||
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9 h1:FRtOtI9vDFHcyPUdc4PL95CFi/DFk+HXT6JNTf/91d8=
|
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9 h1:FRtOtI9vDFHcyPUdc4PL95CFi/DFk+HXT6JNTf/91d8=
|
||||||
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9/go.mod h1:2WC5tDApfQNNIBfDNYwdaQiXhfCsG2n03P3ZxX9p9O4=
|
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9/go.mod h1:2WC5tDApfQNNIBfDNYwdaQiXhfCsG2n03P3ZxX9p9O4=
|
||||||
gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35 h1:E2QfpS3Y0FjR8Zyv5l2Ti/2NetQFqHG66c8+T/+J1u0=
|
gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35 h1:E2QfpS3Y0FjR8Zyv5l2Ti/2NetQFqHG66c8+T/+J1u0=
|
||||||
|
@ -851,8 +849,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
|
||||||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002 h1:V7Da7qt0MkY3noVANIMVBk28nOnijADeOR3i5Hcvpj4=
|
||||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
// - protoc-gen-go-grpc v1.2.0
|
||||||
// - protoc v3.19.4
|
// - protoc v3.19.4
|
||||||
// source: hpcAC.proto
|
// source: hpcAC.proto
|
||||||
|
|
||||||
|
@ -18,44 +18,6 @@ import (
|
||||||
// Requires gRPC-Go v1.32.0 or later.
|
// Requires gRPC-Go v1.32.0 or later.
|
||||||
const _ = grpc.SupportPackageIsVersion7
|
const _ = grpc.SupportPackageIsVersion7
|
||||||
|
|
||||||
const (
|
|
||||||
HpcAC_ListJob_FullMethodName = "/hpcAC.hpcAC/ListJob"
|
|
||||||
HpcAC_ListHistoryJob_FullMethodName = "/hpcAC.hpcAC/ListHistoryJob"
|
|
||||||
HpcAC_SubmitJob_FullMethodName = "/hpcAC.hpcAC/SubmitJob"
|
|
||||||
HpcAC_ListJobManager_FullMethodName = "/hpcAC.hpcAC/ListJobManager"
|
|
||||||
HpcAC_GetJobDetail_FullMethodName = "/hpcAC.hpcAC/GetJobDetail"
|
|
||||||
HpcAC_DeleteJob_FullMethodName = "/hpcAC.hpcAC/DeleteJob"
|
|
||||||
HpcAC_FileContent_FullMethodName = "/hpcAC.hpcAC/FileContent"
|
|
||||||
HpcAC_SelectQueueByUser_FullMethodName = "/hpcAC.hpcAC/SelectQueueByUser"
|
|
||||||
HpcAC_QueryQueueDetails_FullMethodName = "/hpcAC.hpcAC/QueryQueueDetails"
|
|
||||||
HpcAC_QueryUserQuotasLimit_FullMethodName = "/hpcAC.hpcAC/QueryUserQuotasLimit"
|
|
||||||
HpcAC_ParaStorQuota_FullMethodName = "/hpcAC.hpcAC/ParaStorQuota"
|
|
||||||
HpcAC_WallTime_FullMethodName = "/hpcAC.hpcAC/WallTime"
|
|
||||||
HpcAC_QueueJobs_FullMethodName = "/hpcAC.hpcAC/QueueJobs"
|
|
||||||
HpcAC_CpuCore_FullMethodName = "/hpcAC.hpcAC/CpuCore"
|
|
||||||
HpcAC_Jobs_FullMethodName = "/hpcAC.hpcAC/jobs"
|
|
||||||
HpcAC_HistoryJobDetail_FullMethodName = "/hpcAC.hpcAC/HistoryJobDetail"
|
|
||||||
HpcAC_GetACToken_FullMethodName = "/hpcAC.hpcAC/GetACToken"
|
|
||||||
HpcAC_GetACClusterId_FullMethodName = "/hpcAC.hpcAC/GetACClusterId"
|
|
||||||
HpcAC_GetComputingPower_FullMethodName = "/hpcAC.hpcAC/GetComputingPower"
|
|
||||||
HpcAC_GetGeneralInfo_FullMethodName = "/hpcAC.hpcAC/GetGeneralInfo"
|
|
||||||
HpcAC_SubmitPytorchTask_FullMethodName = "/hpcAC.hpcAC/SubmitPytorchTask"
|
|
||||||
HpcAC_SubmitTensorflowTask_FullMethodName = "/hpcAC.hpcAC/SubmitTensorflowTask"
|
|
||||||
HpcAC_GetImageListAi_FullMethodName = "/hpcAC.hpcAC/GetImageListAi"
|
|
||||||
HpcAC_GetImageAiById_FullMethodName = "/hpcAC.hpcAC/GetImageAiById"
|
|
||||||
HpcAC_GetPytorchTask_FullMethodName = "/hpcAC.hpcAC/GetPytorchTask"
|
|
||||||
HpcAC_GetTensorflowTask_FullMethodName = "/hpcAC.hpcAC/GetTensorflowTask"
|
|
||||||
HpcAC_DeleteTaskAi_FullMethodName = "/hpcAC.hpcAC/DeleteTaskAi"
|
|
||||||
HpcAC_GetResourceSpec_FullMethodName = "/hpcAC.hpcAC/GetResourceSpec"
|
|
||||||
HpcAC_GetInstanceLog_FullMethodName = "/hpcAC.hpcAC/GetInstanceLog"
|
|
||||||
HpcAC_GetFileList_FullMethodName = "/hpcAC.hpcAC/GetFileList"
|
|
||||||
HpcAC_GetFile_FullMethodName = "/hpcAC.hpcAC/GetFile"
|
|
||||||
HpcAC_UploadFile_FullMethodName = "/hpcAC.hpcAC/UploadFile"
|
|
||||||
HpcAC_GetUserInfo_FullMethodName = "/hpcAC.hpcAC/GetUserInfo"
|
|
||||||
HpcAC_GetMemberJobs_FullMethodName = "/hpcAC.hpcAC/GetMemberJobs"
|
|
||||||
HpcAC_GetNodeResources_FullMethodName = "/hpcAC.hpcAC/GetNodeResources"
|
|
||||||
)
|
|
||||||
|
|
||||||
// HpcACClient is the client API for HpcAC service.
|
// HpcACClient is the client API for HpcAC service.
|
||||||
//
|
//
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||||
|
@ -107,6 +69,8 @@ type HpcACClient interface {
|
||||||
DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error)
|
DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error)
|
||||||
GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error)
|
GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error)
|
||||||
GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error)
|
GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error)
|
||||||
|
GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error)
|
||||||
|
GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error)
|
||||||
// 曙光文件接口
|
// 曙光文件接口
|
||||||
GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error)
|
GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error)
|
||||||
GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error)
|
GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error)
|
||||||
|
@ -128,7 +92,7 @@ func NewHpcACClient(cc grpc.ClientConnInterface) HpcACClient {
|
||||||
|
|
||||||
func (c *hpcACClient) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) {
|
func (c *hpcACClient) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) {
|
||||||
out := new(ListJobResp)
|
out := new(ListJobResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_ListJob_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ListJob", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -137,7 +101,7 @@ func (c *hpcACClient) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.
|
||||||
|
|
||||||
func (c *hpcACClient) ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, opts ...grpc.CallOption) (*ListHistoryJobResp, error) {
|
func (c *hpcACClient) ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, opts ...grpc.CallOption) (*ListHistoryJobResp, error) {
|
||||||
out := new(ListHistoryJobResp)
|
out := new(ListHistoryJobResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_ListHistoryJob_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ListHistoryJob", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -146,7 +110,7 @@ func (c *hpcACClient) ListHistoryJob(ctx context.Context, in *ListHistoryJobReq,
|
||||||
|
|
||||||
func (c *hpcACClient) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) {
|
func (c *hpcACClient) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) {
|
||||||
out := new(SubmitJobResp)
|
out := new(SubmitJobResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_SubmitJob_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SubmitJob", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -155,7 +119,7 @@ func (c *hpcACClient) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...g
|
||||||
|
|
||||||
func (c *hpcACClient) ListJobManager(ctx context.Context, in *JobManagerReq, opts ...grpc.CallOption) (*ListJobManagerResp, error) {
|
func (c *hpcACClient) ListJobManager(ctx context.Context, in *JobManagerReq, opts ...grpc.CallOption) (*ListJobManagerResp, error) {
|
||||||
out := new(ListJobManagerResp)
|
out := new(ListJobManagerResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_ListJobManager_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ListJobManager", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -164,7 +128,7 @@ func (c *hpcACClient) ListJobManager(ctx context.Context, in *JobManagerReq, opt
|
||||||
|
|
||||||
func (c *hpcACClient) GetJobDetail(ctx context.Context, in *JobDetailReq, opts ...grpc.CallOption) (*GetJobDetailResp, error) {
|
func (c *hpcACClient) GetJobDetail(ctx context.Context, in *JobDetailReq, opts ...grpc.CallOption) (*GetJobDetailResp, error) {
|
||||||
out := new(GetJobDetailResp)
|
out := new(GetJobDetailResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetJobDetail_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetJobDetail", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -173,7 +137,7 @@ func (c *hpcACClient) GetJobDetail(ctx context.Context, in *JobDetailReq, opts .
|
||||||
|
|
||||||
func (c *hpcACClient) DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...grpc.CallOption) (*DeleteJobResp, error) {
|
func (c *hpcACClient) DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...grpc.CallOption) (*DeleteJobResp, error) {
|
||||||
out := new(DeleteJobResp)
|
out := new(DeleteJobResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_DeleteJob_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/DeleteJob", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -182,7 +146,7 @@ func (c *hpcACClient) DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...g
|
||||||
|
|
||||||
func (c *hpcACClient) FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) {
|
func (c *hpcACClient) FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) {
|
||||||
out := new(FileContentResp)
|
out := new(FileContentResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_FileContent_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/FileContent", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -191,7 +155,7 @@ func (c *hpcACClient) FileContent(ctx context.Context, in *FileDataReq, opts ...
|
||||||
|
|
||||||
func (c *hpcACClient) SelectQueueByUser(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueResp, error) {
|
func (c *hpcACClient) SelectQueueByUser(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueResp, error) {
|
||||||
out := new(QueueResp)
|
out := new(QueueResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_SelectQueueByUser_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SelectQueueByUser", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -200,7 +164,7 @@ func (c *hpcACClient) SelectQueueByUser(ctx context.Context, in *QueueReq, opts
|
||||||
|
|
||||||
func (c *hpcACClient) QueryQueueDetails(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueDetailsResp, error) {
|
func (c *hpcACClient) QueryQueueDetails(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueDetailsResp, error) {
|
||||||
out := new(QueueDetailsResp)
|
out := new(QueueDetailsResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_QueryQueueDetails_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueryQueueDetails", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -209,7 +173,7 @@ func (c *hpcACClient) QueryQueueDetails(ctx context.Context, in *QueueReq, opts
|
||||||
|
|
||||||
func (c *hpcACClient) QueryUserQuotasLimit(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*UserQuotasLimitResp, error) {
|
func (c *hpcACClient) QueryUserQuotasLimit(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*UserQuotasLimitResp, error) {
|
||||||
out := new(UserQuotasLimitResp)
|
out := new(UserQuotasLimitResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_QueryUserQuotasLimit_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueryUserQuotasLimit", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -218,7 +182,7 @@ func (c *hpcACClient) QueryUserQuotasLimit(ctx context.Context, in *QueueReq, op
|
||||||
|
|
||||||
func (c *hpcACClient) ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, opts ...grpc.CallOption) (*ParaStorQuotaResp, error) {
|
func (c *hpcACClient) ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, opts ...grpc.CallOption) (*ParaStorQuotaResp, error) {
|
||||||
out := new(ParaStorQuotaResp)
|
out := new(ParaStorQuotaResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_ParaStorQuota_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ParaStorQuota", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -227,7 +191,7 @@ func (c *hpcACClient) ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, o
|
||||||
|
|
||||||
func (c *hpcACClient) WallTime(ctx context.Context, in *WallTimeReq, opts ...grpc.CallOption) (*WallTimeResp, error) {
|
func (c *hpcACClient) WallTime(ctx context.Context, in *WallTimeReq, opts ...grpc.CallOption) (*WallTimeResp, error) {
|
||||||
out := new(WallTimeResp)
|
out := new(WallTimeResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_WallTime_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/WallTime", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -236,7 +200,7 @@ func (c *hpcACClient) WallTime(ctx context.Context, in *WallTimeReq, opts ...grp
|
||||||
|
|
||||||
func (c *hpcACClient) QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...grpc.CallOption) (*QueueJobsResp, error) {
|
func (c *hpcACClient) QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...grpc.CallOption) (*QueueJobsResp, error) {
|
||||||
out := new(QueueJobsResp)
|
out := new(QueueJobsResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_QueueJobs_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueueJobs", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -245,7 +209,7 @@ func (c *hpcACClient) QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...g
|
||||||
|
|
||||||
func (c *hpcACClient) CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.CallOption) (*CpuCoreResp, error) {
|
func (c *hpcACClient) CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.CallOption) (*CpuCoreResp, error) {
|
||||||
out := new(CpuCoreResp)
|
out := new(CpuCoreResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_CpuCore_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/CpuCore", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -254,7 +218,7 @@ func (c *hpcACClient) CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.
|
||||||
|
|
||||||
func (c *hpcACClient) Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOption) (*JobsResp, error) {
|
func (c *hpcACClient) Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOption) (*JobsResp, error) {
|
||||||
out := new(JobsResp)
|
out := new(JobsResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_Jobs_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/jobs", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -263,7 +227,7 @@ func (c *hpcACClient) Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOp
|
||||||
|
|
||||||
func (c *hpcACClient) HistoryJobDetail(ctx context.Context, in *HistoryJobDetailReq, opts ...grpc.CallOption) (*HistoryJobDetailResp, error) {
|
func (c *hpcACClient) HistoryJobDetail(ctx context.Context, in *HistoryJobDetailReq, opts ...grpc.CallOption) (*HistoryJobDetailResp, error) {
|
||||||
out := new(HistoryJobDetailResp)
|
out := new(HistoryJobDetailResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_HistoryJobDetail_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/HistoryJobDetail", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -272,7 +236,7 @@ func (c *hpcACClient) HistoryJobDetail(ctx context.Context, in *HistoryJobDetail
|
||||||
|
|
||||||
func (c *hpcACClient) GetACToken(ctx context.Context, in *ACTokenReq, opts ...grpc.CallOption) (*TokenResp, error) {
|
func (c *hpcACClient) GetACToken(ctx context.Context, in *ACTokenReq, opts ...grpc.CallOption) (*TokenResp, error) {
|
||||||
out := new(TokenResp)
|
out := new(TokenResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetACToken_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetACToken", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -281,7 +245,7 @@ func (c *hpcACClient) GetACToken(ctx context.Context, in *ACTokenReq, opts ...gr
|
||||||
|
|
||||||
func (c *hpcACClient) GetACClusterId(ctx context.Context, in *ACClusterReq, opts ...grpc.CallOption) (*ClusterResp, error) {
|
func (c *hpcACClient) GetACClusterId(ctx context.Context, in *ACClusterReq, opts ...grpc.CallOption) (*ClusterResp, error) {
|
||||||
out := new(ClusterResp)
|
out := new(ClusterResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetACClusterId_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetACClusterId", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -290,7 +254,7 @@ func (c *hpcACClient) GetACClusterId(ctx context.Context, in *ACClusterReq, opts
|
||||||
|
|
||||||
func (c *hpcACClient) GetComputingPower(ctx context.Context, in *ResourceReq, opts ...grpc.CallOption) (*CpResp, error) {
|
func (c *hpcACClient) GetComputingPower(ctx context.Context, in *ResourceReq, opts ...grpc.CallOption) (*CpResp, error) {
|
||||||
out := new(CpResp)
|
out := new(CpResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetComputingPower_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetComputingPower", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -299,7 +263,7 @@ func (c *hpcACClient) GetComputingPower(ctx context.Context, in *ResourceReq, op
|
||||||
|
|
||||||
func (c *hpcACClient) GetGeneralInfo(ctx context.Context, in *ResourceReq, opts ...grpc.CallOption) (*GiResp, error) {
|
func (c *hpcACClient) GetGeneralInfo(ctx context.Context, in *ResourceReq, opts ...grpc.CallOption) (*GiResp, error) {
|
||||||
out := new(GiResp)
|
out := new(GiResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetGeneralInfo_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetGeneralInfo", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -308,7 +272,7 @@ func (c *hpcACClient) GetGeneralInfo(ctx context.Context, in *ResourceReq, opts
|
||||||
|
|
||||||
func (c *hpcACClient) SubmitPytorchTask(ctx context.Context, in *SubmitPytorchTaskReq, opts ...grpc.CallOption) (*SubmitTaskAiResp, error) {
|
func (c *hpcACClient) SubmitPytorchTask(ctx context.Context, in *SubmitPytorchTaskReq, opts ...grpc.CallOption) (*SubmitTaskAiResp, error) {
|
||||||
out := new(SubmitTaskAiResp)
|
out := new(SubmitTaskAiResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_SubmitPytorchTask_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SubmitPytorchTask", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -317,7 +281,7 @@ func (c *hpcACClient) SubmitPytorchTask(ctx context.Context, in *SubmitPytorchTa
|
||||||
|
|
||||||
func (c *hpcACClient) SubmitTensorflowTask(ctx context.Context, in *SubmitTensorflowTaskReq, opts ...grpc.CallOption) (*SubmitTaskAiResp, error) {
|
func (c *hpcACClient) SubmitTensorflowTask(ctx context.Context, in *SubmitTensorflowTaskReq, opts ...grpc.CallOption) (*SubmitTaskAiResp, error) {
|
||||||
out := new(SubmitTaskAiResp)
|
out := new(SubmitTaskAiResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_SubmitTensorflowTask_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SubmitTensorflowTask", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -326,7 +290,7 @@ func (c *hpcACClient) SubmitTensorflowTask(ctx context.Context, in *SubmitTensor
|
||||||
|
|
||||||
func (c *hpcACClient) GetImageListAi(ctx context.Context, in *GetImageListAiReq, opts ...grpc.CallOption) (*GetImageListAiResp, error) {
|
func (c *hpcACClient) GetImageListAi(ctx context.Context, in *GetImageListAiReq, opts ...grpc.CallOption) (*GetImageListAiResp, error) {
|
||||||
out := new(GetImageListAiResp)
|
out := new(GetImageListAiResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetImageListAi_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetImageListAi", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -335,7 +299,7 @@ func (c *hpcACClient) GetImageListAi(ctx context.Context, in *GetImageListAiReq,
|
||||||
|
|
||||||
func (c *hpcACClient) GetImageAiById(ctx context.Context, in *GetImageAiByIdReq, opts ...grpc.CallOption) (*GetImageAiByIdResp, error) {
|
func (c *hpcACClient) GetImageAiById(ctx context.Context, in *GetImageAiByIdReq, opts ...grpc.CallOption) (*GetImageAiByIdResp, error) {
|
||||||
out := new(GetImageAiByIdResp)
|
out := new(GetImageAiByIdResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetImageAiById_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetImageAiById", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -344,7 +308,7 @@ func (c *hpcACClient) GetImageAiById(ctx context.Context, in *GetImageAiByIdReq,
|
||||||
|
|
||||||
func (c *hpcACClient) GetPytorchTask(ctx context.Context, in *GetPytorchTaskReq, opts ...grpc.CallOption) (*GetPytorchTaskResp, error) {
|
func (c *hpcACClient) GetPytorchTask(ctx context.Context, in *GetPytorchTaskReq, opts ...grpc.CallOption) (*GetPytorchTaskResp, error) {
|
||||||
out := new(GetPytorchTaskResp)
|
out := new(GetPytorchTaskResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetPytorchTask_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetPytorchTask", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -353,7 +317,7 @@ func (c *hpcACClient) GetPytorchTask(ctx context.Context, in *GetPytorchTaskReq,
|
||||||
|
|
||||||
func (c *hpcACClient) GetTensorflowTask(ctx context.Context, in *GetTensorflowTaskReq, opts ...grpc.CallOption) (*GetTensorflowTaskResp, error) {
|
func (c *hpcACClient) GetTensorflowTask(ctx context.Context, in *GetTensorflowTaskReq, opts ...grpc.CallOption) (*GetTensorflowTaskResp, error) {
|
||||||
out := new(GetTensorflowTaskResp)
|
out := new(GetTensorflowTaskResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetTensorflowTask_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetTensorflowTask", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -362,7 +326,7 @@ func (c *hpcACClient) GetTensorflowTask(ctx context.Context, in *GetTensorflowTa
|
||||||
|
|
||||||
func (c *hpcACClient) DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error) {
|
func (c *hpcACClient) DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error) {
|
||||||
out := new(DeleteTaskAiResp)
|
out := new(DeleteTaskAiResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_DeleteTaskAi_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/DeleteTaskAi", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -371,7 +335,7 @@ func (c *hpcACClient) DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opt
|
||||||
|
|
||||||
func (c *hpcACClient) GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error) {
|
func (c *hpcACClient) GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error) {
|
||||||
out := new(GetResourceSpecResp)
|
out := new(GetResourceSpecResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetResourceSpec_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetResourceSpec", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -380,7 +344,25 @@ func (c *hpcACClient) GetResourceSpec(ctx context.Context, in *GetResourceSpecRe
|
||||||
|
|
||||||
func (c *hpcACClient) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error) {
|
func (c *hpcACClient) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error) {
|
||||||
out := new(GetInstanceLogResp)
|
out := new(GetInstanceLogResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetInstanceLog_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetInstanceLog", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *hpcACClient) GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error) {
|
||||||
|
out := new(GetInstanceListResp)
|
||||||
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetInstanceListAi", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *hpcACClient) GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error) {
|
||||||
|
out := new(GetInferUrlResp)
|
||||||
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetInferUrl", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -389,7 +371,7 @@ func (c *hpcACClient) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq,
|
||||||
|
|
||||||
func (c *hpcACClient) GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) {
|
func (c *hpcACClient) GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) {
|
||||||
out := new(GetFileListResp)
|
out := new(GetFileListResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetFileList_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetFileList", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -398,7 +380,7 @@ func (c *hpcACClient) GetFileList(ctx context.Context, in *GetFileListReq, opts
|
||||||
|
|
||||||
func (c *hpcACClient) GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error) {
|
func (c *hpcACClient) GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error) {
|
||||||
out := new(GetFileResp)
|
out := new(GetFileResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetFile_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetFile", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -407,7 +389,7 @@ func (c *hpcACClient) GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.
|
||||||
|
|
||||||
func (c *hpcACClient) UploadFile(ctx context.Context, in *UploadFileReq, opts ...grpc.CallOption) (*UploadFileResp, error) {
|
func (c *hpcACClient) UploadFile(ctx context.Context, in *UploadFileReq, opts ...grpc.CallOption) (*UploadFileResp, error) {
|
||||||
out := new(UploadFileResp)
|
out := new(UploadFileResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_UploadFile_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/UploadFile", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -416,7 +398,7 @@ func (c *hpcACClient) UploadFile(ctx context.Context, in *UploadFileReq, opts ..
|
||||||
|
|
||||||
func (c *hpcACClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) {
|
func (c *hpcACClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) {
|
||||||
out := new(GetUserInfoResp)
|
out := new(GetUserInfoResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetUserInfo_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetUserInfo", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -425,7 +407,7 @@ func (c *hpcACClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts
|
||||||
|
|
||||||
func (c *hpcACClient) GetMemberJobs(ctx context.Context, in *GetMemberJobsReq, opts ...grpc.CallOption) (*GetMemberJobsResp, error) {
|
func (c *hpcACClient) GetMemberJobs(ctx context.Context, in *GetMemberJobsReq, opts ...grpc.CallOption) (*GetMemberJobsResp, error) {
|
||||||
out := new(GetMemberJobsResp)
|
out := new(GetMemberJobsResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetMemberJobs_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetMemberJobs", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -434,7 +416,7 @@ func (c *hpcACClient) GetMemberJobs(ctx context.Context, in *GetMemberJobsReq, o
|
||||||
|
|
||||||
func (c *hpcACClient) GetNodeResources(ctx context.Context, in *GetNodeResourcesReq, opts ...grpc.CallOption) (*GetNodeResourcesResp, error) {
|
func (c *hpcACClient) GetNodeResources(ctx context.Context, in *GetNodeResourcesReq, opts ...grpc.CallOption) (*GetNodeResourcesResp, error) {
|
||||||
out := new(GetNodeResourcesResp)
|
out := new(GetNodeResourcesResp)
|
||||||
err := c.cc.Invoke(ctx, HpcAC_GetNodeResources_FullMethodName, in, out, opts...)
|
err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetNodeResources", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -492,6 +474,8 @@ type HpcACServer interface {
|
||||||
DeleteTaskAi(context.Context, *DeleteTaskAiReq) (*DeleteTaskAiResp, error)
|
DeleteTaskAi(context.Context, *DeleteTaskAiReq) (*DeleteTaskAiResp, error)
|
||||||
GetResourceSpec(context.Context, *GetResourceSpecReq) (*GetResourceSpecResp, error)
|
GetResourceSpec(context.Context, *GetResourceSpecReq) (*GetResourceSpecResp, error)
|
||||||
GetInstanceLog(context.Context, *GetInstanceLogReq) (*GetInstanceLogResp, error)
|
GetInstanceLog(context.Context, *GetInstanceLogReq) (*GetInstanceLogResp, error)
|
||||||
|
GetInstanceListAi(context.Context, *GetInstanceListReq) (*GetInstanceListResp, error)
|
||||||
|
GetInferUrl(context.Context, *GetInferUrlReq) (*GetInferUrlResp, error)
|
||||||
// 曙光文件接口
|
// 曙光文件接口
|
||||||
GetFileList(context.Context, *GetFileListReq) (*GetFileListResp, error)
|
GetFileList(context.Context, *GetFileListReq) (*GetFileListResp, error)
|
||||||
GetFile(context.Context, *GetFileReq) (*GetFileResp, error)
|
GetFile(context.Context, *GetFileReq) (*GetFileResp, error)
|
||||||
|
@ -595,6 +579,12 @@ func (UnimplementedHpcACServer) GetResourceSpec(context.Context, *GetResourceSpe
|
||||||
func (UnimplementedHpcACServer) GetInstanceLog(context.Context, *GetInstanceLogReq) (*GetInstanceLogResp, error) {
|
func (UnimplementedHpcACServer) GetInstanceLog(context.Context, *GetInstanceLogReq) (*GetInstanceLogResp, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetInstanceLog not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method GetInstanceLog not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedHpcACServer) GetInstanceListAi(context.Context, *GetInstanceListReq) (*GetInstanceListResp, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method GetInstanceListAi not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedHpcACServer) GetInferUrl(context.Context, *GetInferUrlReq) (*GetInferUrlResp, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method GetInferUrl not implemented")
|
||||||
|
}
|
||||||
func (UnimplementedHpcACServer) GetFileList(context.Context, *GetFileListReq) (*GetFileListResp, error) {
|
func (UnimplementedHpcACServer) GetFileList(context.Context, *GetFileListReq) (*GetFileListResp, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetFileList not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method GetFileList not implemented")
|
||||||
}
|
}
|
||||||
|
@ -636,7 +626,7 @@ func _HpcAC_ListJob_Handler(srv interface{}, ctx context.Context, dec func(inter
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_ListJob_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/ListJob",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).ListJob(ctx, req.(*ListJobReq))
|
return srv.(HpcACServer).ListJob(ctx, req.(*ListJobReq))
|
||||||
|
@ -654,7 +644,7 @@ func _HpcAC_ListHistoryJob_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_ListHistoryJob_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/ListHistoryJob",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).ListHistoryJob(ctx, req.(*ListHistoryJobReq))
|
return srv.(HpcACServer).ListHistoryJob(ctx, req.(*ListHistoryJobReq))
|
||||||
|
@ -672,7 +662,7 @@ func _HpcAC_SubmitJob_Handler(srv interface{}, ctx context.Context, dec func(int
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_SubmitJob_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/SubmitJob",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).SubmitJob(ctx, req.(*SubmitJobReq))
|
return srv.(HpcACServer).SubmitJob(ctx, req.(*SubmitJobReq))
|
||||||
|
@ -690,7 +680,7 @@ func _HpcAC_ListJobManager_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_ListJobManager_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/ListJobManager",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).ListJobManager(ctx, req.(*JobManagerReq))
|
return srv.(HpcACServer).ListJobManager(ctx, req.(*JobManagerReq))
|
||||||
|
@ -708,7 +698,7 @@ func _HpcAC_GetJobDetail_Handler(srv interface{}, ctx context.Context, dec func(
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetJobDetail_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetJobDetail",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetJobDetail(ctx, req.(*JobDetailReq))
|
return srv.(HpcACServer).GetJobDetail(ctx, req.(*JobDetailReq))
|
||||||
|
@ -726,7 +716,7 @@ func _HpcAC_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(int
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_DeleteJob_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/DeleteJob",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).DeleteJob(ctx, req.(*DeleteJobReq))
|
return srv.(HpcACServer).DeleteJob(ctx, req.(*DeleteJobReq))
|
||||||
|
@ -744,7 +734,7 @@ func _HpcAC_FileContent_Handler(srv interface{}, ctx context.Context, dec func(i
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_FileContent_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/FileContent",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).FileContent(ctx, req.(*FileDataReq))
|
return srv.(HpcACServer).FileContent(ctx, req.(*FileDataReq))
|
||||||
|
@ -762,7 +752,7 @@ func _HpcAC_SelectQueueByUser_Handler(srv interface{}, ctx context.Context, dec
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_SelectQueueByUser_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/SelectQueueByUser",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).SelectQueueByUser(ctx, req.(*QueueReq))
|
return srv.(HpcACServer).SelectQueueByUser(ctx, req.(*QueueReq))
|
||||||
|
@ -780,7 +770,7 @@ func _HpcAC_QueryQueueDetails_Handler(srv interface{}, ctx context.Context, dec
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_QueryQueueDetails_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/QueryQueueDetails",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).QueryQueueDetails(ctx, req.(*QueueReq))
|
return srv.(HpcACServer).QueryQueueDetails(ctx, req.(*QueueReq))
|
||||||
|
@ -798,7 +788,7 @@ func _HpcAC_QueryUserQuotasLimit_Handler(srv interface{}, ctx context.Context, d
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_QueryUserQuotasLimit_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/QueryUserQuotasLimit",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).QueryUserQuotasLimit(ctx, req.(*QueueReq))
|
return srv.(HpcACServer).QueryUserQuotasLimit(ctx, req.(*QueueReq))
|
||||||
|
@ -816,7 +806,7 @@ func _HpcAC_ParaStorQuota_Handler(srv interface{}, ctx context.Context, dec func
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_ParaStorQuota_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/ParaStorQuota",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).ParaStorQuota(ctx, req.(*ParaStorQuotaReq))
|
return srv.(HpcACServer).ParaStorQuota(ctx, req.(*ParaStorQuotaReq))
|
||||||
|
@ -834,7 +824,7 @@ func _HpcAC_WallTime_Handler(srv interface{}, ctx context.Context, dec func(inte
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_WallTime_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/WallTime",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).WallTime(ctx, req.(*WallTimeReq))
|
return srv.(HpcACServer).WallTime(ctx, req.(*WallTimeReq))
|
||||||
|
@ -852,7 +842,7 @@ func _HpcAC_QueueJobs_Handler(srv interface{}, ctx context.Context, dec func(int
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_QueueJobs_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/QueueJobs",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).QueueJobs(ctx, req.(*QueueJobsReq))
|
return srv.(HpcACServer).QueueJobs(ctx, req.(*QueueJobsReq))
|
||||||
|
@ -870,7 +860,7 @@ func _HpcAC_CpuCore_Handler(srv interface{}, ctx context.Context, dec func(inter
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_CpuCore_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/CpuCore",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).CpuCore(ctx, req.(*CpuCoreReq))
|
return srv.(HpcACServer).CpuCore(ctx, req.(*CpuCoreReq))
|
||||||
|
@ -888,7 +878,7 @@ func _HpcAC_Jobs_Handler(srv interface{}, ctx context.Context, dec func(interfac
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_Jobs_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/jobs",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).Jobs(ctx, req.(*JobsReq))
|
return srv.(HpcACServer).Jobs(ctx, req.(*JobsReq))
|
||||||
|
@ -906,7 +896,7 @@ func _HpcAC_HistoryJobDetail_Handler(srv interface{}, ctx context.Context, dec f
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_HistoryJobDetail_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/HistoryJobDetail",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).HistoryJobDetail(ctx, req.(*HistoryJobDetailReq))
|
return srv.(HpcACServer).HistoryJobDetail(ctx, req.(*HistoryJobDetailReq))
|
||||||
|
@ -924,7 +914,7 @@ func _HpcAC_GetACToken_Handler(srv interface{}, ctx context.Context, dec func(in
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetACToken_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetACToken",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetACToken(ctx, req.(*ACTokenReq))
|
return srv.(HpcACServer).GetACToken(ctx, req.(*ACTokenReq))
|
||||||
|
@ -942,7 +932,7 @@ func _HpcAC_GetACClusterId_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetACClusterId_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetACClusterId",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetACClusterId(ctx, req.(*ACClusterReq))
|
return srv.(HpcACServer).GetACClusterId(ctx, req.(*ACClusterReq))
|
||||||
|
@ -960,7 +950,7 @@ func _HpcAC_GetComputingPower_Handler(srv interface{}, ctx context.Context, dec
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetComputingPower_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetComputingPower",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetComputingPower(ctx, req.(*ResourceReq))
|
return srv.(HpcACServer).GetComputingPower(ctx, req.(*ResourceReq))
|
||||||
|
@ -978,7 +968,7 @@ func _HpcAC_GetGeneralInfo_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetGeneralInfo_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetGeneralInfo",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetGeneralInfo(ctx, req.(*ResourceReq))
|
return srv.(HpcACServer).GetGeneralInfo(ctx, req.(*ResourceReq))
|
||||||
|
@ -996,7 +986,7 @@ func _HpcAC_SubmitPytorchTask_Handler(srv interface{}, ctx context.Context, dec
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_SubmitPytorchTask_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/SubmitPytorchTask",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).SubmitPytorchTask(ctx, req.(*SubmitPytorchTaskReq))
|
return srv.(HpcACServer).SubmitPytorchTask(ctx, req.(*SubmitPytorchTaskReq))
|
||||||
|
@ -1014,7 +1004,7 @@ func _HpcAC_SubmitTensorflowTask_Handler(srv interface{}, ctx context.Context, d
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_SubmitTensorflowTask_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/SubmitTensorflowTask",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).SubmitTensorflowTask(ctx, req.(*SubmitTensorflowTaskReq))
|
return srv.(HpcACServer).SubmitTensorflowTask(ctx, req.(*SubmitTensorflowTaskReq))
|
||||||
|
@ -1032,7 +1022,7 @@ func _HpcAC_GetImageListAi_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetImageListAi_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetImageListAi",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetImageListAi(ctx, req.(*GetImageListAiReq))
|
return srv.(HpcACServer).GetImageListAi(ctx, req.(*GetImageListAiReq))
|
||||||
|
@ -1050,7 +1040,7 @@ func _HpcAC_GetImageAiById_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetImageAiById_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetImageAiById",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetImageAiById(ctx, req.(*GetImageAiByIdReq))
|
return srv.(HpcACServer).GetImageAiById(ctx, req.(*GetImageAiByIdReq))
|
||||||
|
@ -1068,7 +1058,7 @@ func _HpcAC_GetPytorchTask_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetPytorchTask_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetPytorchTask",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetPytorchTask(ctx, req.(*GetPytorchTaskReq))
|
return srv.(HpcACServer).GetPytorchTask(ctx, req.(*GetPytorchTaskReq))
|
||||||
|
@ -1086,7 +1076,7 @@ func _HpcAC_GetTensorflowTask_Handler(srv interface{}, ctx context.Context, dec
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetTensorflowTask_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetTensorflowTask",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetTensorflowTask(ctx, req.(*GetTensorflowTaskReq))
|
return srv.(HpcACServer).GetTensorflowTask(ctx, req.(*GetTensorflowTaskReq))
|
||||||
|
@ -1104,7 +1094,7 @@ func _HpcAC_DeleteTaskAi_Handler(srv interface{}, ctx context.Context, dec func(
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_DeleteTaskAi_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/DeleteTaskAi",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).DeleteTaskAi(ctx, req.(*DeleteTaskAiReq))
|
return srv.(HpcACServer).DeleteTaskAi(ctx, req.(*DeleteTaskAiReq))
|
||||||
|
@ -1122,7 +1112,7 @@ func _HpcAC_GetResourceSpec_Handler(srv interface{}, ctx context.Context, dec fu
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetResourceSpec_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetResourceSpec",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetResourceSpec(ctx, req.(*GetResourceSpecReq))
|
return srv.(HpcACServer).GetResourceSpec(ctx, req.(*GetResourceSpecReq))
|
||||||
|
@ -1140,7 +1130,7 @@ func _HpcAC_GetInstanceLog_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetInstanceLog_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetInstanceLog",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetInstanceLog(ctx, req.(*GetInstanceLogReq))
|
return srv.(HpcACServer).GetInstanceLog(ctx, req.(*GetInstanceLogReq))
|
||||||
|
@ -1148,6 +1138,42 @@ func _HpcAC_GetInstanceLog_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _HpcAC_GetInstanceListAi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(GetInstanceListReq)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(HpcACServer).GetInstanceListAi(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/hpcAC.hpcAC/GetInstanceListAi",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(HpcACServer).GetInstanceListAi(ctx, req.(*GetInstanceListReq))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _HpcAC_GetInferUrl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(GetInferUrlReq)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(HpcACServer).GetInferUrl(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/hpcAC.hpcAC/GetInferUrl",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(HpcACServer).GetInferUrl(ctx, req.(*GetInferUrlReq))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
func _HpcAC_GetFileList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _HpcAC_GetFileList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(GetFileListReq)
|
in := new(GetFileListReq)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
|
@ -1158,7 +1184,7 @@ func _HpcAC_GetFileList_Handler(srv interface{}, ctx context.Context, dec func(i
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetFileList_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetFileList",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetFileList(ctx, req.(*GetFileListReq))
|
return srv.(HpcACServer).GetFileList(ctx, req.(*GetFileListReq))
|
||||||
|
@ -1176,7 +1202,7 @@ func _HpcAC_GetFile_Handler(srv interface{}, ctx context.Context, dec func(inter
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetFile_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetFile",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetFile(ctx, req.(*GetFileReq))
|
return srv.(HpcACServer).GetFile(ctx, req.(*GetFileReq))
|
||||||
|
@ -1194,7 +1220,7 @@ func _HpcAC_UploadFile_Handler(srv interface{}, ctx context.Context, dec func(in
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_UploadFile_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/UploadFile",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).UploadFile(ctx, req.(*UploadFileReq))
|
return srv.(HpcACServer).UploadFile(ctx, req.(*UploadFileReq))
|
||||||
|
@ -1212,7 +1238,7 @@ func _HpcAC_GetUserInfo_Handler(srv interface{}, ctx context.Context, dec func(i
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetUserInfo_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetUserInfo",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetUserInfo(ctx, req.(*GetUserInfoReq))
|
return srv.(HpcACServer).GetUserInfo(ctx, req.(*GetUserInfoReq))
|
||||||
|
@ -1230,7 +1256,7 @@ func _HpcAC_GetMemberJobs_Handler(srv interface{}, ctx context.Context, dec func
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetMemberJobs_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetMemberJobs",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetMemberJobs(ctx, req.(*GetMemberJobsReq))
|
return srv.(HpcACServer).GetMemberJobs(ctx, req.(*GetMemberJobsReq))
|
||||||
|
@ -1248,7 +1274,7 @@ func _HpcAC_GetNodeResources_Handler(srv interface{}, ctx context.Context, dec f
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: HpcAC_GetNodeResources_FullMethodName,
|
FullMethod: "/hpcAC.hpcAC/GetNodeResources",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(HpcACServer).GetNodeResources(ctx, req.(*GetNodeResourcesReq))
|
return srv.(HpcACServer).GetNodeResources(ctx, req.(*GetNodeResourcesReq))
|
||||||
|
@ -1379,6 +1405,14 @@ var HpcAC_ServiceDesc = grpc.ServiceDesc{
|
||||||
MethodName: "GetInstanceLog",
|
MethodName: "GetInstanceLog",
|
||||||
Handler: _HpcAC_GetInstanceLog_Handler,
|
Handler: _HpcAC_GetInstanceLog_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "GetInstanceListAi",
|
||||||
|
Handler: _HpcAC_GetInstanceListAi_Handler,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
MethodName: "GetInferUrl",
|
||||||
|
Handler: _HpcAC_GetInferUrl_Handler,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
MethodName: "GetFileList",
|
MethodName: "GetFileList",
|
||||||
Handler: _HpcAC_GetFileList_Handler,
|
Handler: _HpcAC_GetFileList_Handler,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by goctl. DO NOT EDIT.
|
// Code generated by goctl. DO NOT EDIT.
|
||||||
// Source: hpcAC.proto
|
// Source: hpcAC.proto
|
||||||
|
|
||||||
package hpcacclient
|
package hpcACClient
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -22,6 +22,7 @@ type (
|
||||||
ACTokenState = hpcAC.ACTokenState
|
ACTokenState = hpcAC.ACTokenState
|
||||||
Children = hpcAC.Children
|
Children = hpcAC.Children
|
||||||
ClusterResp = hpcAC.ClusterResp
|
ClusterResp = hpcAC.ClusterResp
|
||||||
|
ContainerPortInfo = hpcAC.ContainerPortInfo
|
||||||
CpResp = hpcAC.CpResp
|
CpResp = hpcAC.CpResp
|
||||||
CpuCore = hpcAC.CpuCore
|
CpuCore = hpcAC.CpuCore
|
||||||
CpuCoreReq = hpcAC.CpuCoreReq
|
CpuCoreReq = hpcAC.CpuCoreReq
|
||||||
|
@ -43,6 +44,13 @@ type (
|
||||||
GetImageAiByIdResp = hpcAC.GetImageAiByIdResp
|
GetImageAiByIdResp = hpcAC.GetImageAiByIdResp
|
||||||
GetImageListAiReq = hpcAC.GetImageListAiReq
|
GetImageListAiReq = hpcAC.GetImageListAiReq
|
||||||
GetImageListAiResp = hpcAC.GetImageListAiResp
|
GetImageListAiResp = hpcAC.GetImageListAiResp
|
||||||
|
GetInferUrlReq = hpcAC.GetInferUrlReq
|
||||||
|
GetInferUrlResp = hpcAC.GetInferUrlResp
|
||||||
|
GetInstanceDetailParams = hpcAC.GetInstanceDetailParams
|
||||||
|
GetInstanceDetailResp = hpcAC.GetInstanceDetailResp
|
||||||
|
GetInstanceListParams = hpcAC.GetInstanceListParams
|
||||||
|
GetInstanceListReq = hpcAC.GetInstanceListReq
|
||||||
|
GetInstanceListResp = hpcAC.GetInstanceListResp
|
||||||
GetInstanceLogReq = hpcAC.GetInstanceLogReq
|
GetInstanceLogReq = hpcAC.GetInstanceLogReq
|
||||||
GetInstanceLogResp = hpcAC.GetInstanceLogResp
|
GetInstanceLogResp = hpcAC.GetInstanceLogResp
|
||||||
GetJobDetailResp = hpcAC.GetJobDetailResp
|
GetJobDetailResp = hpcAC.GetJobDetailResp
|
||||||
|
@ -166,6 +174,8 @@ type (
|
||||||
DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error)
|
DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error)
|
||||||
GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error)
|
GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error)
|
||||||
GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error)
|
GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error)
|
||||||
|
GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error)
|
||||||
|
GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error)
|
||||||
// 曙光文件接口
|
// 曙光文件接口
|
||||||
GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error)
|
GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error)
|
||||||
GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error)
|
GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error)
|
||||||
|
@ -351,6 +361,16 @@ func (m *defaultHpcAC) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq
|
||||||
return client.GetInstanceLog(ctx, in, opts...)
|
return client.GetInstanceLog(ctx, in, opts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *defaultHpcAC) GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error) {
|
||||||
|
client := hpcAC.NewHpcACClient(m.cli.Conn())
|
||||||
|
return client.GetInstanceListAi(ctx, in, opts...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *defaultHpcAC) GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error) {
|
||||||
|
client := hpcAC.NewHpcACClient(m.cli.Conn())
|
||||||
|
return client.GetInferUrl(ctx, in, opts...)
|
||||||
|
}
|
||||||
|
|
||||||
// 曙光文件接口
|
// 曙光文件接口
|
||||||
func (m *defaultHpcAC) GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) {
|
func (m *defaultHpcAC) GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) {
|
||||||
client := hpcAC.NewHpcACClient(m.cli.Conn())
|
client := hpcAC.NewHpcACClient(m.cli.Conn())
|
||||||
|
|
|
@ -252,6 +252,7 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record fu
|
||||||
{rv.MethodByName("Values"), "Values"},
|
{rv.MethodByName("Values"), "Values"},
|
||||||
{rv.MethodByName("ReservedNames"), "ReservedNames"},
|
{rv.MethodByName("ReservedNames"), "ReservedNames"},
|
||||||
{rv.MethodByName("ReservedRanges"), "ReservedRanges"},
|
{rv.MethodByName("ReservedRanges"), "ReservedRanges"},
|
||||||
|
{rv.MethodByName("IsClosed"), "IsClosed"},
|
||||||
}...)
|
}...)
|
||||||
|
|
||||||
case protoreflect.EnumValueDescriptor:
|
case protoreflect.EnumValueDescriptor:
|
||||||
|
|
BIN
vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
generated
vendored
BIN
vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
generated
vendored
Binary file not shown.
13
vendor/google.golang.org/protobuf/internal/editionssupport/editions.go
generated
vendored
Normal file
13
vendor/google.golang.org/protobuf/internal/editionssupport/editions.go
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
// Copyright 2024 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Package editionssupport defines constants for editions that are supported.
|
||||||
|
package editionssupport
|
||||||
|
|
||||||
|
import descriptorpb "google.golang.org/protobuf/types/descriptorpb"
|
||||||
|
|
||||||
|
const (
|
||||||
|
Minimum = descriptorpb.Edition_EDITION_PROTO2
|
||||||
|
Maximum = descriptorpb.Edition_EDITION_2023
|
||||||
|
)
|
|
@ -32,6 +32,7 @@ var byteType = reflect.TypeOf(byte(0))
|
||||||
func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {
|
func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {
|
||||||
f := new(filedesc.Field)
|
f := new(filedesc.Field)
|
||||||
f.L0.ParentFile = filedesc.SurrogateProto2
|
f.L0.ParentFile = filedesc.SurrogateProto2
|
||||||
|
f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures
|
||||||
for len(tag) > 0 {
|
for len(tag) > 0 {
|
||||||
i := strings.IndexByte(tag, ',')
|
i := strings.IndexByte(tag, ',')
|
||||||
if i < 0 {
|
if i < 0 {
|
||||||
|
@ -107,8 +108,7 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri
|
||||||
f.L1.StringName.InitJSON(jsonName)
|
f.L1.StringName.InitJSON(jsonName)
|
||||||
}
|
}
|
||||||
case s == "packed":
|
case s == "packed":
|
||||||
f.L1.HasPacked = true
|
f.L1.EditionFeatures.IsPacked = true
|
||||||
f.L1.IsPacked = true
|
|
||||||
case strings.HasPrefix(s, "weak="):
|
case strings.HasPrefix(s, "weak="):
|
||||||
f.L1.IsWeak = true
|
f.L1.IsWeak = true
|
||||||
f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):]))
|
f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):]))
|
||||||
|
|
|
@ -7,6 +7,7 @@ package filedesc
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
|
@ -108,9 +109,12 @@ func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd }
|
||||||
func (fd *File) Parent() protoreflect.Descriptor { return nil }
|
func (fd *File) Parent() protoreflect.Descriptor { return nil }
|
||||||
func (fd *File) Index() int { return 0 }
|
func (fd *File) Index() int { return 0 }
|
||||||
func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax }
|
func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax }
|
||||||
func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() }
|
|
||||||
func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package }
|
// Not exported and just used to reconstruct the original FileDescriptor proto
|
||||||
func (fd *File) IsPlaceholder() bool { return false }
|
func (fd *File) Edition() int32 { return int32(fd.L1.Edition) }
|
||||||
|
func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() }
|
||||||
|
func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package }
|
||||||
|
func (fd *File) IsPlaceholder() bool { return false }
|
||||||
func (fd *File) Options() protoreflect.ProtoMessage {
|
func (fd *File) Options() protoreflect.ProtoMessage {
|
||||||
if f := fd.lazyInit().Options; f != nil {
|
if f := fd.lazyInit().Options; f != nil {
|
||||||
return f()
|
return f()
|
||||||
|
@ -202,6 +206,9 @@ func (ed *Enum) lazyInit() *EnumL2 {
|
||||||
ed.L0.ParentFile.lazyInit() // implicitly initializes L2
|
ed.L0.ParentFile.lazyInit() // implicitly initializes L2
|
||||||
return ed.L2
|
return ed.L2
|
||||||
}
|
}
|
||||||
|
func (ed *Enum) IsClosed() bool {
|
||||||
|
return !ed.L1.EditionFeatures.IsOpenEnum
|
||||||
|
}
|
||||||
|
|
||||||
func (ed *EnumValue) Options() protoreflect.ProtoMessage {
|
func (ed *EnumValue) Options() protoreflect.ProtoMessage {
|
||||||
if f := ed.L1.Options; f != nil {
|
if f := ed.L1.Options; f != nil {
|
||||||
|
@ -251,10 +258,6 @@ type (
|
||||||
StringName stringName
|
StringName stringName
|
||||||
IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
|
IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
|
||||||
IsWeak bool // promoted from google.protobuf.FieldOptions
|
IsWeak bool // promoted from google.protobuf.FieldOptions
|
||||||
HasPacked bool // promoted from google.protobuf.FieldOptions
|
|
||||||
IsPacked bool // promoted from google.protobuf.FieldOptions
|
|
||||||
HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions
|
|
||||||
EnforceUTF8 bool // promoted from google.protobuf.FieldOptions
|
|
||||||
Default defaultValue
|
Default defaultValue
|
||||||
ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields
|
ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields
|
||||||
Enum protoreflect.EnumDescriptor
|
Enum protoreflect.EnumDescriptor
|
||||||
|
@ -331,8 +334,7 @@ func (fd *Field) HasPresence() bool {
|
||||||
if fd.L1.Cardinality == protoreflect.Repeated {
|
if fd.L1.Cardinality == protoreflect.Repeated {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence
|
return fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil
|
||||||
return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil
|
|
||||||
}
|
}
|
||||||
func (fd *Field) HasOptionalKeyword() bool {
|
func (fd *Field) HasOptionalKeyword() bool {
|
||||||
return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional
|
return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional
|
||||||
|
@ -345,14 +347,7 @@ func (fd *Field) IsPacked() bool {
|
||||||
case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:
|
case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions {
|
return fd.L1.EditionFeatures.IsPacked
|
||||||
return fd.L1.EditionFeatures.IsPacked
|
|
||||||
}
|
|
||||||
if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 {
|
|
||||||
// proto3 repeated fields are packed by default.
|
|
||||||
return !fd.L1.HasPacked || fd.L1.IsPacked
|
|
||||||
}
|
|
||||||
return fd.L1.IsPacked
|
|
||||||
}
|
}
|
||||||
func (fd *Field) IsExtension() bool { return false }
|
func (fd *Field) IsExtension() bool { return false }
|
||||||
func (fd *Field) IsWeak() bool { return fd.L1.IsWeak }
|
func (fd *Field) IsWeak() bool { return fd.L1.IsWeak }
|
||||||
|
@ -399,13 +394,7 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {}
|
||||||
// WARNING: This method is exempt from the compatibility promise and may be
|
// WARNING: This method is exempt from the compatibility promise and may be
|
||||||
// removed in the future without warning.
|
// removed in the future without warning.
|
||||||
func (fd *Field) EnforceUTF8() bool {
|
func (fd *Field) EnforceUTF8() bool {
|
||||||
if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions {
|
return fd.L1.EditionFeatures.IsUTF8Validated
|
||||||
return fd.L1.EditionFeatures.IsUTF8Validated
|
|
||||||
}
|
|
||||||
if fd.L1.HasEnforceUTF8 {
|
|
||||||
return fd.L1.EnforceUTF8
|
|
||||||
}
|
|
||||||
return fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (od *Oneof) IsSynthetic() bool {
|
func (od *Oneof) IsSynthetic() bool {
|
||||||
|
@ -433,12 +422,19 @@ type (
|
||||||
Cardinality protoreflect.Cardinality
|
Cardinality protoreflect.Cardinality
|
||||||
Kind protoreflect.Kind
|
Kind protoreflect.Kind
|
||||||
EditionFeatures EditionFeatures
|
EditionFeatures EditionFeatures
|
||||||
|
// To resolve the EditionFeatures we need to resolve the Extendee which
|
||||||
|
// happens at the end of the initialization of L1. Thus, we need to buffer
|
||||||
|
// the unresolved features (which are parsed when starting to initialize
|
||||||
|
// L1). We cannot move this to L2 because it is required to initialize
|
||||||
|
// Kind properly. Because some of the options (i.e. packed) affect the
|
||||||
|
// EditionFeatures we need to unmarshal the full options after resolving
|
||||||
|
// the Extendee.
|
||||||
|
rawOptions []byte
|
||||||
}
|
}
|
||||||
ExtensionL2 struct {
|
ExtensionL2 struct {
|
||||||
Options func() protoreflect.ProtoMessage
|
Options func() protoreflect.ProtoMessage
|
||||||
StringName stringName
|
StringName stringName
|
||||||
IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
|
IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
|
||||||
IsPacked bool // promoted from google.protobuf.FieldOptions
|
|
||||||
Default defaultValue
|
Default defaultValue
|
||||||
Enum protoreflect.EnumDescriptor
|
Enum protoreflect.EnumDescriptor
|
||||||
Message protoreflect.MessageDescriptor
|
Message protoreflect.MessageDescriptor
|
||||||
|
@ -461,7 +457,7 @@ func (xd *Extension) HasPresence() bool { return xd.L1.Cardi
|
||||||
func (xd *Extension) HasOptionalKeyword() bool {
|
func (xd *Extension) HasOptionalKeyword() bool {
|
||||||
return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional
|
return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional
|
||||||
}
|
}
|
||||||
func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked }
|
func (xd *Extension) IsPacked() bool { return xd.L1.EditionFeatures.IsPacked }
|
||||||
func (xd *Extension) IsExtension() bool { return true }
|
func (xd *Extension) IsExtension() bool { return true }
|
||||||
func (xd *Extension) IsWeak() bool { return false }
|
func (xd *Extension) IsWeak() bool { return false }
|
||||||
func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated }
|
func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated }
|
||||||
|
@ -542,8 +538,9 @@ func (md *Method) ProtoInternal(pragma.DoNotImplement) {}
|
||||||
// Surrogate files are can be used to create standalone descriptors
|
// Surrogate files are can be used to create standalone descriptors
|
||||||
// where the syntax is only information derived from the parent file.
|
// where the syntax is only information derived from the parent file.
|
||||||
var (
|
var (
|
||||||
SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}}
|
SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}}
|
||||||
SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}}
|
SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}}
|
||||||
|
SurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}}
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
@ -585,6 +582,34 @@ func (s *stringName) InitJSON(name string) {
|
||||||
s.nameJSON = name
|
s.nameJSON = name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns true if this field is structured like the synthetic field of a proto2
|
||||||
|
// group. This allows us to expand our treatment of delimited fields without
|
||||||
|
// breaking proto2 files that have been upgraded to editions.
|
||||||
|
func isGroupLike(fd protoreflect.FieldDescriptor) bool {
|
||||||
|
// Groups are always group types.
|
||||||
|
if fd.Kind() != protoreflect.GroupKind {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Group fields are always the lowercase type name.
|
||||||
|
if strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Groups could only be defined in the same file they're used.
|
||||||
|
if fd.Message().ParentFile() != fd.ParentFile() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Group messages are always defined in the same scope as the field. File
|
||||||
|
// level extensions will compare NULL == NULL here, which is why the file
|
||||||
|
// comparison above is necessary to ensure both come from the same file.
|
||||||
|
if fd.IsExtension() {
|
||||||
|
return fd.Parent() == fd.Message().Parent()
|
||||||
|
}
|
||||||
|
return fd.ContainingMessage() == fd.Message().Parent()
|
||||||
|
}
|
||||||
|
|
||||||
func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {
|
func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {
|
||||||
s.once.Do(func() {
|
s.once.Do(func() {
|
||||||
if fd.IsExtension() {
|
if fd.IsExtension() {
|
||||||
|
@ -605,7 +630,7 @@ func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {
|
||||||
|
|
||||||
// Format the text name.
|
// Format the text name.
|
||||||
s.nameText = string(fd.Name())
|
s.nameText = string(fd.Name())
|
||||||
if fd.Kind() == protoreflect.GroupKind {
|
if isGroupLike(fd) {
|
||||||
s.nameText = string(fd.Message().Name())
|
s.nameText = string(fd.Message().Name())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,20 @@ func newRawFile(db Builder) *File {
|
||||||
for i := range fd.allExtensions {
|
for i := range fd.allExtensions {
|
||||||
xd := &fd.allExtensions[i]
|
xd := &fd.allExtensions[i]
|
||||||
xd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i))
|
xd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i))
|
||||||
|
|
||||||
|
// If the Extendee is not resolved, we cannot resolve the edition
|
||||||
|
// features of the parent. This should (to my knowledge) only happen
|
||||||
|
// for v1 messages for which we don't support editions. In v2 the
|
||||||
|
// Extendee should be resolved at binary start up time.
|
||||||
|
if _, ok := xd.L1.Extendee.(PlaceholderMessage); !ok {
|
||||||
|
xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee)
|
||||||
|
}
|
||||||
|
if xd.L1.rawOptions != nil {
|
||||||
|
xd.unmarshalOptions(xd.L1.rawOptions)
|
||||||
|
}
|
||||||
|
if xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded {
|
||||||
|
xd.L1.Kind = protoreflect.GroupKind
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fd.checkDecls()
|
fd.checkDecls()
|
||||||
|
@ -113,8 +127,10 @@ func (fd *File) unmarshalSeed(b []byte) {
|
||||||
switch string(v) {
|
switch string(v) {
|
||||||
case "proto2":
|
case "proto2":
|
||||||
fd.L1.Syntax = protoreflect.Proto2
|
fd.L1.Syntax = protoreflect.Proto2
|
||||||
|
fd.L1.Edition = EditionProto2
|
||||||
case "proto3":
|
case "proto3":
|
||||||
fd.L1.Syntax = protoreflect.Proto3
|
fd.L1.Syntax = protoreflect.Proto3
|
||||||
|
fd.L1.Edition = EditionProto3
|
||||||
case "editions":
|
case "editions":
|
||||||
fd.L1.Syntax = protoreflect.Editions
|
fd.L1.Syntax = protoreflect.Editions
|
||||||
default:
|
default:
|
||||||
|
@ -177,11 +193,10 @@ func (fd *File) unmarshalSeed(b []byte) {
|
||||||
// If syntax is missing, it is assumed to be proto2.
|
// If syntax is missing, it is assumed to be proto2.
|
||||||
if fd.L1.Syntax == 0 {
|
if fd.L1.Syntax == 0 {
|
||||||
fd.L1.Syntax = protoreflect.Proto2
|
fd.L1.Syntax = protoreflect.Proto2
|
||||||
|
fd.L1.Edition = EditionProto2
|
||||||
}
|
}
|
||||||
|
|
||||||
if fd.L1.Syntax == protoreflect.Editions {
|
fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition)
|
||||||
fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parse editions features from options if any
|
// Parse editions features from options if any
|
||||||
if options != nil {
|
if options != nil {
|
||||||
|
@ -267,6 +282,7 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protorefl
|
||||||
ed.L0.ParentFile = pf
|
ed.L0.ParentFile = pf
|
||||||
ed.L0.Parent = pd
|
ed.L0.Parent = pd
|
||||||
ed.L0.Index = i
|
ed.L0.Index = i
|
||||||
|
ed.L1.EditionFeatures = featuresFromParentDesc(ed.Parent())
|
||||||
|
|
||||||
var numValues int
|
var numValues int
|
||||||
for b := b; len(b) > 0; {
|
for b := b; len(b) > 0; {
|
||||||
|
@ -467,6 +483,34 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd prot
|
||||||
xd.L0.FullName = appendFullName(sb, pd.FullName(), v)
|
xd.L0.FullName = appendFullName(sb, pd.FullName(), v)
|
||||||
case genid.FieldDescriptorProto_Extendee_field_number:
|
case genid.FieldDescriptorProto_Extendee_field_number:
|
||||||
xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v))
|
xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v))
|
||||||
|
case genid.FieldDescriptorProto_Options_field_number:
|
||||||
|
xd.L1.rawOptions = v
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
m := protowire.ConsumeFieldValue(num, typ, b)
|
||||||
|
b = b[m:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (xd *Extension) unmarshalOptions(b []byte) {
|
||||||
|
for len(b) > 0 {
|
||||||
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
|
b = b[n:]
|
||||||
|
switch typ {
|
||||||
|
case protowire.VarintType:
|
||||||
|
v, m := protowire.ConsumeVarint(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FieldOptions_Packed_field_number:
|
||||||
|
xd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)
|
||||||
|
}
|
||||||
|
case protowire.BytesType:
|
||||||
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FieldOptions_Features_field_number:
|
||||||
|
xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
m := protowire.ConsumeFieldValue(num, typ, b)
|
m := protowire.ConsumeFieldValue(num, typ, b)
|
||||||
|
|
|
@ -466,10 +466,10 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref
|
||||||
b = b[m:]
|
b = b[m:]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded {
|
if fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded {
|
||||||
fd.L1.Kind = protoreflect.GroupKind
|
fd.L1.Kind = protoreflect.GroupKind
|
||||||
}
|
}
|
||||||
if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired {
|
if fd.L1.EditionFeatures.IsLegacyRequired {
|
||||||
fd.L1.Cardinality = protoreflect.Required
|
fd.L1.Cardinality = protoreflect.Required
|
||||||
}
|
}
|
||||||
if rawTypeName != nil {
|
if rawTypeName != nil {
|
||||||
|
@ -496,13 +496,11 @@ func (fd *Field) unmarshalOptions(b []byte) {
|
||||||
b = b[m:]
|
b = b[m:]
|
||||||
switch num {
|
switch num {
|
||||||
case genid.FieldOptions_Packed_field_number:
|
case genid.FieldOptions_Packed_field_number:
|
||||||
fd.L1.HasPacked = true
|
fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)
|
||||||
fd.L1.IsPacked = protowire.DecodeBool(v)
|
|
||||||
case genid.FieldOptions_Weak_field_number:
|
case genid.FieldOptions_Weak_field_number:
|
||||||
fd.L1.IsWeak = protowire.DecodeBool(v)
|
fd.L1.IsWeak = protowire.DecodeBool(v)
|
||||||
case FieldOptions_EnforceUTF8:
|
case FieldOptions_EnforceUTF8:
|
||||||
fd.L1.HasEnforceUTF8 = true
|
fd.L1.EditionFeatures.IsUTF8Validated = protowire.DecodeBool(v)
|
||||||
fd.L1.EnforceUTF8 = protowire.DecodeBool(v)
|
|
||||||
}
|
}
|
||||||
case protowire.BytesType:
|
case protowire.BytesType:
|
||||||
v, m := protowire.ConsumeBytes(b)
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
@ -548,7 +546,6 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref
|
||||||
func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
||||||
var rawTypeName []byte
|
var rawTypeName []byte
|
||||||
var rawOptions []byte
|
var rawOptions []byte
|
||||||
xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee)
|
|
||||||
xd.L2 = new(ExtensionL2)
|
xd.L2 = new(ExtensionL2)
|
||||||
for len(b) > 0 {
|
for len(b) > 0 {
|
||||||
num, typ, n := protowire.ConsumeTag(b)
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
|
@ -572,7 +569,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
||||||
case genid.FieldDescriptorProto_TypeName_field_number:
|
case genid.FieldDescriptorProto_TypeName_field_number:
|
||||||
rawTypeName = v
|
rawTypeName = v
|
||||||
case genid.FieldDescriptorProto_Options_field_number:
|
case genid.FieldDescriptorProto_Options_field_number:
|
||||||
xd.unmarshalOptions(v)
|
|
||||||
rawOptions = appendOptions(rawOptions, v)
|
rawOptions = appendOptions(rawOptions, v)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -580,12 +576,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
||||||
b = b[m:]
|
b = b[m:]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded {
|
|
||||||
xd.L1.Kind = protoreflect.GroupKind
|
|
||||||
}
|
|
||||||
if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired {
|
|
||||||
xd.L1.Cardinality = protoreflect.Required
|
|
||||||
}
|
|
||||||
if rawTypeName != nil {
|
if rawTypeName != nil {
|
||||||
name := makeFullName(sb, rawTypeName)
|
name := makeFullName(sb, rawTypeName)
|
||||||
switch xd.L1.Kind {
|
switch xd.L1.Kind {
|
||||||
|
@ -598,32 +588,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
||||||
xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions)
|
xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (xd *Extension) unmarshalOptions(b []byte) {
|
|
||||||
for len(b) > 0 {
|
|
||||||
num, typ, n := protowire.ConsumeTag(b)
|
|
||||||
b = b[n:]
|
|
||||||
switch typ {
|
|
||||||
case protowire.VarintType:
|
|
||||||
v, m := protowire.ConsumeVarint(b)
|
|
||||||
b = b[m:]
|
|
||||||
switch num {
|
|
||||||
case genid.FieldOptions_Packed_field_number:
|
|
||||||
xd.L2.IsPacked = protowire.DecodeBool(v)
|
|
||||||
}
|
|
||||||
case protowire.BytesType:
|
|
||||||
v, m := protowire.ConsumeBytes(b)
|
|
||||||
b = b[m:]
|
|
||||||
switch num {
|
|
||||||
case genid.FieldOptions_Features_field_number:
|
|
||||||
xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures)
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
m := protowire.ConsumeFieldValue(num, typ, b)
|
|
||||||
b = b[m:]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) {
|
func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) {
|
||||||
var rawMethods [][]byte
|
var rawMethods [][]byte
|
||||||
var rawOptions []byte
|
var rawOptions []byte
|
||||||
|
|
|
@ -14,9 +14,13 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var defaultsCache = make(map[Edition]EditionFeatures)
|
var defaultsCache = make(map[Edition]EditionFeatures)
|
||||||
|
var defaultsKeys = []Edition{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
unmarshalEditionDefaults(editiondefaults.Defaults)
|
unmarshalEditionDefaults(editiondefaults.Defaults)
|
||||||
|
SurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2)
|
||||||
|
SurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3)
|
||||||
|
SurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023)
|
||||||
}
|
}
|
||||||
|
|
||||||
func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures {
|
func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures {
|
||||||
|
@ -110,6 +114,7 @@ func unmarshalEditionDefault(b []byte) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
defaultsCache[ed] = fs
|
defaultsCache[ed] = fs
|
||||||
|
defaultsKeys = append(defaultsKeys, ed)
|
||||||
}
|
}
|
||||||
|
|
||||||
func unmarshalEditionDefaults(b []byte) {
|
func unmarshalEditionDefaults(b []byte) {
|
||||||
|
@ -135,8 +140,15 @@ func unmarshalEditionDefaults(b []byte) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getFeaturesFor(ed Edition) EditionFeatures {
|
func getFeaturesFor(ed Edition) EditionFeatures {
|
||||||
if def, ok := defaultsCache[ed]; ok {
|
match := EditionUnknown
|
||||||
return def
|
for _, key := range defaultsKeys {
|
||||||
|
if key > ed {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
match = key
|
||||||
}
|
}
|
||||||
panic(fmt.Sprintf("unsupported edition: %v", ed))
|
if match == EditionUnknown {
|
||||||
|
panic(fmt.Sprintf("unsupported edition: %v", ed))
|
||||||
|
}
|
||||||
|
return defaultsCache[match]
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,7 @@ func (e PlaceholderEnum) Options() protoreflect.ProtoMessage { return des
|
||||||
func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues }
|
func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues }
|
||||||
func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames }
|
func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames }
|
||||||
func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges }
|
func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges }
|
||||||
|
func (e PlaceholderEnum) IsClosed() bool { return false }
|
||||||
func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return }
|
func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return }
|
||||||
func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return }
|
func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return }
|
||||||
|
|
||||||
|
|
|
@ -167,6 +167,7 @@ func aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor {
|
||||||
ed := &filedesc.Enum{L2: new(filedesc.EnumL2)}
|
ed := &filedesc.Enum{L2: new(filedesc.EnumL2)}
|
||||||
ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum
|
ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum
|
||||||
ed.L0.ParentFile = filedesc.SurrogateProto3
|
ed.L0.ParentFile = filedesc.SurrogateProto3
|
||||||
|
ed.L1.EditionFeatures = ed.L0.ParentFile.L1.EditionFeatures
|
||||||
ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{})
|
ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{})
|
||||||
|
|
||||||
// TODO: Use the presence of a UnmarshalJSON method to determine proto2?
|
// TODO: Use the presence of a UnmarshalJSON method to determine proto2?
|
||||||
|
|
|
@ -118,7 +118,7 @@ func (xi *ExtensionInfo) initFromLegacy() {
|
||||||
xd.L1.Number = protoreflect.FieldNumber(xi.Field)
|
xd.L1.Number = protoreflect.FieldNumber(xi.Field)
|
||||||
xd.L1.Cardinality = fd.L1.Cardinality
|
xd.L1.Cardinality = fd.L1.Cardinality
|
||||||
xd.L1.Kind = fd.L1.Kind
|
xd.L1.Kind = fd.L1.Kind
|
||||||
xd.L2.IsPacked = fd.L1.IsPacked
|
xd.L1.EditionFeatures = fd.L1.EditionFeatures
|
||||||
xd.L2.Default = fd.L1.Default
|
xd.L2.Default = fd.L1.Default
|
||||||
xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType)
|
xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType)
|
||||||
xd.L2.Enum = ed
|
xd.L2.Enum = ed
|
||||||
|
|
|
@ -204,6 +204,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
md.L1.EditionFeatures = md.L0.ParentFile.L1.EditionFeatures
|
||||||
// Obtain a list of oneof wrapper types.
|
// Obtain a list of oneof wrapper types.
|
||||||
var oneofWrappers []reflect.Type
|
var oneofWrappers []reflect.Type
|
||||||
methods := make([]reflect.Method, 0, 2)
|
methods := make([]reflect.Method, 0, 2)
|
||||||
|
@ -250,6 +251,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName
|
||||||
od := &md.L2.Oneofs.List[n]
|
od := &md.L2.Oneofs.List[n]
|
||||||
od.L0.FullName = md.FullName().Append(protoreflect.Name(tag))
|
od.L0.FullName = md.FullName().Append(protoreflect.Name(tag))
|
||||||
od.L0.ParentFile = md.L0.ParentFile
|
od.L0.ParentFile = md.L0.ParentFile
|
||||||
|
od.L1.EditionFeatures = md.L1.EditionFeatures
|
||||||
od.L0.Parent = md
|
od.L0.Parent = md
|
||||||
od.L0.Index = n
|
od.L0.Index = n
|
||||||
|
|
||||||
|
@ -260,6 +262,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName
|
||||||
aberrantAppendField(md, f.Type, tag, "", "")
|
aberrantAppendField(md, f.Type, tag, "", "")
|
||||||
fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1]
|
fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1]
|
||||||
fd.L1.ContainingOneof = od
|
fd.L1.ContainingOneof = od
|
||||||
|
fd.L1.EditionFeatures = od.L1.EditionFeatures
|
||||||
od.L1.Fields.List = append(od.L1.Fields.List, fd)
|
od.L1.Fields.List = append(od.L1.Fields.List, fd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -307,14 +310,14 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey,
|
||||||
fd.L0.Parent = md
|
fd.L0.Parent = md
|
||||||
fd.L0.Index = n
|
fd.L0.Index = n
|
||||||
|
|
||||||
if fd.L1.IsWeak || fd.L1.HasPacked {
|
if fd.L1.IsWeak || fd.L1.EditionFeatures.IsPacked {
|
||||||
fd.L1.Options = func() protoreflect.ProtoMessage {
|
fd.L1.Options = func() protoreflect.ProtoMessage {
|
||||||
opts := descopts.Field.ProtoReflect().New()
|
opts := descopts.Field.ProtoReflect().New()
|
||||||
if fd.L1.IsWeak {
|
if fd.L1.IsWeak {
|
||||||
opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true))
|
opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true))
|
||||||
}
|
}
|
||||||
if fd.L1.HasPacked {
|
if fd.L1.EditionFeatures.IsPacked {
|
||||||
opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked))
|
opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked))
|
||||||
}
|
}
|
||||||
return opts.Interface()
|
return opts.Interface()
|
||||||
}
|
}
|
||||||
|
@ -344,6 +347,7 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey,
|
||||||
md2.L0.ParentFile = md.L0.ParentFile
|
md2.L0.ParentFile = md.L0.ParentFile
|
||||||
md2.L0.Parent = md
|
md2.L0.Parent = md
|
||||||
md2.L0.Index = n
|
md2.L0.Index = n
|
||||||
|
md2.L1.EditionFeatures = md.L1.EditionFeatures
|
||||||
|
|
||||||
md2.L1.IsMapEntry = true
|
md2.L1.IsMapEntry = true
|
||||||
md2.L2.Options = func() protoreflect.ProtoMessage {
|
md2.L2.Options = func() protoreflect.ProtoMessage {
|
||||||
|
|
|
@ -247,11 +247,10 @@ func (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.V
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) {
|
func (m *extensionMap) Has(xd protoreflect.ExtensionTypeDescriptor) (ok bool) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
xd := xt.TypeDescriptor()
|
|
||||||
x, ok := (*m)[int32(xd.Number())]
|
x, ok := (*m)[int32(xd.Number())]
|
||||||
if !ok {
|
if !ok {
|
||||||
return false
|
return false
|
||||||
|
@ -261,25 +260,22 @@ func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) {
|
||||||
return x.Value().List().Len() > 0
|
return x.Value().List().Len() > 0
|
||||||
case xd.IsMap():
|
case xd.IsMap():
|
||||||
return x.Value().Map().Len() > 0
|
return x.Value().Map().Len() > 0
|
||||||
case xd.Message() != nil:
|
|
||||||
return x.Value().Message().IsValid()
|
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
func (m *extensionMap) Clear(xt protoreflect.ExtensionType) {
|
func (m *extensionMap) Clear(xd protoreflect.ExtensionTypeDescriptor) {
|
||||||
delete(*m, int32(xt.TypeDescriptor().Number()))
|
delete(*m, int32(xd.Number()))
|
||||||
}
|
}
|
||||||
func (m *extensionMap) Get(xt protoreflect.ExtensionType) protoreflect.Value {
|
func (m *extensionMap) Get(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value {
|
||||||
xd := xt.TypeDescriptor()
|
|
||||||
if m != nil {
|
if m != nil {
|
||||||
if x, ok := (*m)[int32(xd.Number())]; ok {
|
if x, ok := (*m)[int32(xd.Number())]; ok {
|
||||||
return x.Value()
|
return x.Value()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return xt.Zero()
|
return xd.Type().Zero()
|
||||||
}
|
}
|
||||||
func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) {
|
func (m *extensionMap) Set(xd protoreflect.ExtensionTypeDescriptor, v protoreflect.Value) {
|
||||||
xd := xt.TypeDescriptor()
|
xt := xd.Type()
|
||||||
isValid := true
|
isValid := true
|
||||||
switch {
|
switch {
|
||||||
case !xt.IsValidValue(v):
|
case !xt.IsValidValue(v):
|
||||||
|
@ -292,7 +288,7 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value)
|
||||||
isValid = v.Message().IsValid()
|
isValid = v.Message().IsValid()
|
||||||
}
|
}
|
||||||
if !isValid {
|
if !isValid {
|
||||||
panic(fmt.Sprintf("%v: assigning invalid value", xt.TypeDescriptor().FullName()))
|
panic(fmt.Sprintf("%v: assigning invalid value", xd.FullName()))
|
||||||
}
|
}
|
||||||
|
|
||||||
if *m == nil {
|
if *m == nil {
|
||||||
|
@ -302,16 +298,15 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value)
|
||||||
x.Set(xt, v)
|
x.Set(xt, v)
|
||||||
(*m)[int32(xd.Number())] = x
|
(*m)[int32(xd.Number())] = x
|
||||||
}
|
}
|
||||||
func (m *extensionMap) Mutable(xt protoreflect.ExtensionType) protoreflect.Value {
|
func (m *extensionMap) Mutable(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value {
|
||||||
xd := xt.TypeDescriptor()
|
|
||||||
if xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() {
|
if xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() {
|
||||||
panic("invalid Mutable on field with non-composite type")
|
panic("invalid Mutable on field with non-composite type")
|
||||||
}
|
}
|
||||||
if x, ok := (*m)[int32(xd.Number())]; ok {
|
if x, ok := (*m)[int32(xd.Number())]; ok {
|
||||||
return x.Value()
|
return x.Value()
|
||||||
}
|
}
|
||||||
v := xt.New()
|
v := xd.Type().New()
|
||||||
m.Set(xt, v)
|
m.Set(xd, v)
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,7 +423,7 @@ func (m *messageIfaceWrapper) protoUnwrap() interface{} {
|
||||||
|
|
||||||
// checkField verifies that the provided field descriptor is valid.
|
// checkField verifies that the provided field descriptor is valid.
|
||||||
// Exactly one of the returned values is populated.
|
// Exactly one of the returned values is populated.
|
||||||
func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionType) {
|
func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionTypeDescriptor) {
|
||||||
var fi *fieldInfo
|
var fi *fieldInfo
|
||||||
if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) {
|
if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) {
|
||||||
fi = mi.denseFields[n]
|
fi = mi.denseFields[n]
|
||||||
|
@ -457,7 +452,7 @@ func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo,
|
||||||
if !ok {
|
if !ok {
|
||||||
panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName()))
|
panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName()))
|
||||||
}
|
}
|
||||||
return nil, xtd.Type()
|
return nil, xtd
|
||||||
}
|
}
|
||||||
panic(fmt.Sprintf("field %v is invalid", fd.FullName()))
|
panic(fmt.Sprintf("field %v is invalid", fd.FullName()))
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,8 +27,9 @@ func (m *messageState) protoUnwrap() interface{} {
|
||||||
return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
|
return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
|
||||||
}
|
}
|
||||||
func (m *messageState) ProtoMethods() *protoiface.Methods {
|
func (m *messageState) ProtoMethods() *protoiface.Methods {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
return &m.messageInfo().methods
|
mi.init()
|
||||||
|
return &mi.methods
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
|
// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
|
||||||
|
@ -41,8 +42,9 @@ func (m *messageState) ProtoMessageInfo() *MessageInfo {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
for _, ri := range m.messageInfo().rangeInfos {
|
mi.init()
|
||||||
|
for _, ri := range mi.rangeInfos {
|
||||||
switch ri := ri.(type) {
|
switch ri := ri.(type) {
|
||||||
case *fieldInfo:
|
case *fieldInfo:
|
||||||
if ri.has(m.pointer()) {
|
if ri.has(m.pointer()) {
|
||||||
|
@ -52,77 +54,86 @@ func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.V
|
||||||
}
|
}
|
||||||
case *oneofInfo:
|
case *oneofInfo:
|
||||||
if n := ri.which(m.pointer()); n > 0 {
|
if n := ri.which(m.pointer()); n > 0 {
|
||||||
fi := m.messageInfo().fields[n]
|
fi := mi.fields[n]
|
||||||
if !f(fi.fieldDesc, fi.get(m.pointer())) {
|
if !f(fi.fieldDesc, fi.get(m.pointer())) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.messageInfo().extensionMap(m.pointer()).Range(f)
|
mi.extensionMap(m.pointer()).Range(f)
|
||||||
}
|
}
|
||||||
func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool {
|
func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.has(m.pointer())
|
return fi.has(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
return m.messageInfo().extensionMap(m.pointer()).Has(xt)
|
return mi.extensionMap(m.pointer()).Has(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageState) Clear(fd protoreflect.FieldDescriptor) {
|
func (m *messageState) Clear(fd protoreflect.FieldDescriptor) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
fi.clear(m.pointer())
|
fi.clear(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
m.messageInfo().extensionMap(m.pointer()).Clear(xt)
|
mi.extensionMap(m.pointer()).Clear(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.get(m.pointer())
|
return fi.get(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
return m.messageInfo().extensionMap(m.pointer()).Get(xt)
|
return mi.extensionMap(m.pointer()).Get(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {
|
func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
fi.set(m.pointer(), v)
|
fi.set(m.pointer(), v)
|
||||||
} else {
|
} else {
|
||||||
m.messageInfo().extensionMap(m.pointer()).Set(xt, v)
|
mi.extensionMap(m.pointer()).Set(xd, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.mutable(m.pointer())
|
return fi.mutable(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
return m.messageInfo().extensionMap(m.pointer()).Mutable(xt)
|
return mi.extensionMap(m.pointer()).Mutable(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.newField()
|
return fi.newField()
|
||||||
} else {
|
} else {
|
||||||
return xt.New()
|
return xd.Type().New()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {
|
mi.init()
|
||||||
|
if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {
|
||||||
return od.Fields().ByNumber(oi.which(m.pointer()))
|
return od.Fields().ByNumber(oi.which(m.pointer()))
|
||||||
}
|
}
|
||||||
panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName()))
|
panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName()))
|
||||||
}
|
}
|
||||||
func (m *messageState) GetUnknown() protoreflect.RawFields {
|
func (m *messageState) GetUnknown() protoreflect.RawFields {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
return m.messageInfo().getUnknown(m.pointer())
|
mi.init()
|
||||||
|
return mi.getUnknown(m.pointer())
|
||||||
}
|
}
|
||||||
func (m *messageState) SetUnknown(b protoreflect.RawFields) {
|
func (m *messageState) SetUnknown(b protoreflect.RawFields) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
m.messageInfo().setUnknown(m.pointer(), b)
|
mi.init()
|
||||||
|
mi.setUnknown(m.pointer(), b)
|
||||||
}
|
}
|
||||||
func (m *messageState) IsValid() bool {
|
func (m *messageState) IsValid() bool {
|
||||||
return !m.pointer().IsNil()
|
return !m.pointer().IsNil()
|
||||||
|
@ -147,8 +158,9 @@ func (m *messageReflectWrapper) protoUnwrap() interface{} {
|
||||||
return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
|
return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods {
|
func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
return &m.messageInfo().methods
|
mi.init()
|
||||||
|
return &mi.methods
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
|
// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
|
||||||
|
@ -161,8 +173,9 @@ func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
for _, ri := range m.messageInfo().rangeInfos {
|
mi.init()
|
||||||
|
for _, ri := range mi.rangeInfos {
|
||||||
switch ri := ri.(type) {
|
switch ri := ri.(type) {
|
||||||
case *fieldInfo:
|
case *fieldInfo:
|
||||||
if ri.has(m.pointer()) {
|
if ri.has(m.pointer()) {
|
||||||
|
@ -172,77 +185,86 @@ func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, proto
|
||||||
}
|
}
|
||||||
case *oneofInfo:
|
case *oneofInfo:
|
||||||
if n := ri.which(m.pointer()); n > 0 {
|
if n := ri.which(m.pointer()); n > 0 {
|
||||||
fi := m.messageInfo().fields[n]
|
fi := mi.fields[n]
|
||||||
if !f(fi.fieldDesc, fi.get(m.pointer())) {
|
if !f(fi.fieldDesc, fi.get(m.pointer())) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.messageInfo().extensionMap(m.pointer()).Range(f)
|
mi.extensionMap(m.pointer()).Range(f)
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool {
|
func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.has(m.pointer())
|
return fi.has(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
return m.messageInfo().extensionMap(m.pointer()).Has(xt)
|
return mi.extensionMap(m.pointer()).Has(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) {
|
func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
fi.clear(m.pointer())
|
fi.clear(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
m.messageInfo().extensionMap(m.pointer()).Clear(xt)
|
mi.extensionMap(m.pointer()).Clear(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.get(m.pointer())
|
return fi.get(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
return m.messageInfo().extensionMap(m.pointer()).Get(xt)
|
return mi.extensionMap(m.pointer()).Get(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {
|
func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
fi.set(m.pointer(), v)
|
fi.set(m.pointer(), v)
|
||||||
} else {
|
} else {
|
||||||
m.messageInfo().extensionMap(m.pointer()).Set(xt, v)
|
mi.extensionMap(m.pointer()).Set(xd, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.mutable(m.pointer())
|
return fi.mutable(m.pointer())
|
||||||
} else {
|
} else {
|
||||||
return m.messageInfo().extensionMap(m.pointer()).Mutable(xt)
|
return mi.extensionMap(m.pointer()).Mutable(xd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
|
mi.init()
|
||||||
|
if fi, xd := mi.checkField(fd); fi != nil {
|
||||||
return fi.newField()
|
return fi.newField()
|
||||||
} else {
|
} else {
|
||||||
return xt.New()
|
return xd.Type().New()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {
|
mi.init()
|
||||||
|
if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {
|
||||||
return od.Fields().ByNumber(oi.which(m.pointer()))
|
return od.Fields().ByNumber(oi.which(m.pointer()))
|
||||||
}
|
}
|
||||||
panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName()))
|
panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName()))
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields {
|
func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
return m.messageInfo().getUnknown(m.pointer())
|
mi.init()
|
||||||
|
return mi.getUnknown(m.pointer())
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) {
|
func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) {
|
||||||
m.messageInfo().init()
|
mi := m.messageInfo()
|
||||||
m.messageInfo().setUnknown(m.pointer(), b)
|
mi.init()
|
||||||
|
mi.setUnknown(m.pointer(), b)
|
||||||
}
|
}
|
||||||
func (m *messageReflectWrapper) IsValid() bool {
|
func (m *messageReflectWrapper) IsValid() bool {
|
||||||
return !m.pointer().IsNil()
|
return !m.pointer().IsNil()
|
||||||
|
|
|
@ -53,7 +53,7 @@ const (
|
||||||
Major = 1
|
Major = 1
|
||||||
Minor = 33
|
Minor = 33
|
||||||
Patch = 0
|
Patch = 0
|
||||||
PreRelease = ""
|
PreRelease = "devel"
|
||||||
)
|
)
|
||||||
|
|
||||||
// String formats the version string for this module in semver format.
|
// String formats the version string for this module in semver format.
|
||||||
|
|
|
@ -51,6 +51,8 @@ type UnmarshalOptions struct {
|
||||||
|
|
||||||
// Unmarshal parses the wire-format message in b and places the result in m.
|
// Unmarshal parses the wire-format message in b and places the result in m.
|
||||||
// The provided message must be mutable (e.g., a non-nil pointer to a message).
|
// The provided message must be mutable (e.g., a non-nil pointer to a message).
|
||||||
|
//
|
||||||
|
// See the [UnmarshalOptions] type if you need more control.
|
||||||
func Unmarshal(b []byte, m Message) error {
|
func Unmarshal(b []byte, m Message) error {
|
||||||
_, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect())
|
_, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect())
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -71,6 +71,10 @@ type MarshalOptions struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Marshal returns the wire-format encoding of m.
|
// Marshal returns the wire-format encoding of m.
|
||||||
|
//
|
||||||
|
// This is the most common entry point for encoding a Protobuf message.
|
||||||
|
//
|
||||||
|
// See the [MarshalOptions] type if you need more control.
|
||||||
func Marshal(m Message) ([]byte, error) {
|
func Marshal(m Message) ([]byte, error) {
|
||||||
// Treat nil message interface as an empty message; nothing to output.
|
// Treat nil message interface as an empty message; nothing to output.
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
@ -116,6 +120,9 @@ func emptyBytesForMessage(m Message) []byte {
|
||||||
|
|
||||||
// MarshalAppend appends the wire-format encoding of m to b,
|
// MarshalAppend appends the wire-format encoding of m to b,
|
||||||
// returning the result.
|
// returning the result.
|
||||||
|
//
|
||||||
|
// This is a less common entry point than [Marshal], which is only needed if you
|
||||||
|
// need to supply your own buffers for performance reasons.
|
||||||
func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) {
|
func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) {
|
||||||
// Treat nil message interface as an empty message; nothing to append.
|
// Treat nil message interface as an empty message; nothing to append.
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|
|
@ -11,18 +11,21 @@ import (
|
||||||
// HasExtension reports whether an extension field is populated.
|
// HasExtension reports whether an extension field is populated.
|
||||||
// It returns false if m is invalid or if xt does not extend m.
|
// It returns false if m is invalid or if xt does not extend m.
|
||||||
func HasExtension(m Message, xt protoreflect.ExtensionType) bool {
|
func HasExtension(m Message, xt protoreflect.ExtensionType) bool {
|
||||||
// Treat nil message interface as an empty message; no populated fields.
|
// Treat nil message interface or descriptor as an empty message; no populated
|
||||||
if m == nil {
|
// fields.
|
||||||
|
if m == nil || xt == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// As a special-case, we reports invalid or mismatching descriptors
|
// As a special-case, we reports invalid or mismatching descriptors
|
||||||
// as always not being populated (since they aren't).
|
// as always not being populated (since they aren't).
|
||||||
if xt == nil || m.ProtoReflect().Descriptor() != xt.TypeDescriptor().ContainingMessage() {
|
mr := m.ProtoReflect()
|
||||||
|
xd := xt.TypeDescriptor()
|
||||||
|
if mr.Descriptor() != xd.ContainingMessage() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return m.ProtoReflect().Has(xt.TypeDescriptor())
|
return mr.Has(xd)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClearExtension clears an extension field such that subsequent
|
// ClearExtension clears an extension field such that subsequent
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
package protodesc
|
package protodesc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"google.golang.org/protobuf/internal/editionssupport"
|
||||||
"google.golang.org/protobuf/internal/errors"
|
"google.golang.org/protobuf/internal/errors"
|
||||||
"google.golang.org/protobuf/internal/filedesc"
|
"google.golang.org/protobuf/internal/filedesc"
|
||||||
"google.golang.org/protobuf/internal/pragma"
|
"google.golang.org/protobuf/internal/pragma"
|
||||||
|
@ -91,15 +92,17 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot
|
||||||
switch fd.GetSyntax() {
|
switch fd.GetSyntax() {
|
||||||
case "proto2", "":
|
case "proto2", "":
|
||||||
f.L1.Syntax = protoreflect.Proto2
|
f.L1.Syntax = protoreflect.Proto2
|
||||||
|
f.L1.Edition = filedesc.EditionProto2
|
||||||
case "proto3":
|
case "proto3":
|
||||||
f.L1.Syntax = protoreflect.Proto3
|
f.L1.Syntax = protoreflect.Proto3
|
||||||
|
f.L1.Edition = filedesc.EditionProto3
|
||||||
case "editions":
|
case "editions":
|
||||||
f.L1.Syntax = protoreflect.Editions
|
f.L1.Syntax = protoreflect.Editions
|
||||||
f.L1.Edition = fromEditionProto(fd.GetEdition())
|
f.L1.Edition = fromEditionProto(fd.GetEdition())
|
||||||
default:
|
default:
|
||||||
return nil, errors.New("invalid syntax: %q", fd.GetSyntax())
|
return nil, errors.New("invalid syntax: %q", fd.GetSyntax())
|
||||||
}
|
}
|
||||||
if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) {
|
if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < editionssupport.Minimum || fd.GetEdition() > editionssupport.Maximum) {
|
||||||
return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition())
|
return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition())
|
||||||
}
|
}
|
||||||
f.L1.Path = fd.GetName()
|
f.L1.Path = fd.GetName()
|
||||||
|
@ -114,9 +117,7 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot
|
||||||
opts = proto.Clone(opts).(*descriptorpb.FileOptions)
|
opts = proto.Clone(opts).(*descriptorpb.FileOptions)
|
||||||
f.L2.Options = func() protoreflect.ProtoMessage { return opts }
|
f.L2.Options = func() protoreflect.ProtoMessage { return opts }
|
||||||
}
|
}
|
||||||
if f.L1.Syntax == protoreflect.Editions {
|
initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures())
|
||||||
initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures())
|
|
||||||
}
|
|
||||||
|
|
||||||
f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency()))
|
f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency()))
|
||||||
for _, i := range fd.GetPublicDependency() {
|
for _, i := range fd.GetPublicDependency() {
|
||||||
|
@ -219,10 +220,10 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot
|
||||||
if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil {
|
if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil {
|
if err := validateMessageDeclarations(f, f.L1.Messages.List, fd.GetMessageType()); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil {
|
if err := validateExtensionDeclarations(f, f.L1.Extensions.List, fd.GetExtension()); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,9 +69,7 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt
|
||||||
if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {
|
if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions {
|
m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures())
|
||||||
m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures())
|
|
||||||
}
|
|
||||||
if opts := md.GetOptions(); opts != nil {
|
if opts := md.GetOptions(); opts != nil {
|
||||||
opts = proto.Clone(opts).(*descriptorpb.MessageOptions)
|
opts = proto.Clone(opts).(*descriptorpb.MessageOptions)
|
||||||
m.L2.Options = func() protoreflect.ProtoMessage { return opts }
|
m.L2.Options = func() protoreflect.ProtoMessage { return opts }
|
||||||
|
@ -146,13 +144,15 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc
|
||||||
if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil {
|
if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures())
|
||||||
f.L1.IsProto3Optional = fd.GetProto3Optional()
|
f.L1.IsProto3Optional = fd.GetProto3Optional()
|
||||||
if opts := fd.GetOptions(); opts != nil {
|
if opts := fd.GetOptions(); opts != nil {
|
||||||
opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
|
opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
|
||||||
f.L1.Options = func() protoreflect.ProtoMessage { return opts }
|
f.L1.Options = func() protoreflect.ProtoMessage { return opts }
|
||||||
f.L1.IsWeak = opts.GetWeak()
|
f.L1.IsWeak = opts.GetWeak()
|
||||||
f.L1.HasPacked = opts.Packed != nil
|
if opts.Packed != nil {
|
||||||
f.L1.IsPacked = opts.GetPacked()
|
f.L1.EditionFeatures.IsPacked = opts.GetPacked()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
f.L1.Number = protoreflect.FieldNumber(fd.GetNumber())
|
f.L1.Number = protoreflect.FieldNumber(fd.GetNumber())
|
||||||
f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel())
|
f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel())
|
||||||
|
@ -163,32 +163,12 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc
|
||||||
f.L1.StringName.InitJSON(fd.GetJsonName())
|
f.L1.StringName.InitJSON(fd.GetJsonName())
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions {
|
if f.L1.EditionFeatures.IsLegacyRequired {
|
||||||
f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures())
|
f.L1.Cardinality = protoreflect.Required
|
||||||
|
}
|
||||||
|
|
||||||
if f.L1.EditionFeatures.IsLegacyRequired {
|
if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded {
|
||||||
f.L1.Cardinality = protoreflect.Required
|
f.L1.Kind = protoreflect.GroupKind
|
||||||
}
|
|
||||||
// We reuse the existing field because the old option `[packed =
|
|
||||||
// true]` is mutually exclusive with the editions feature.
|
|
||||||
if canBePacked(fd) {
|
|
||||||
f.L1.HasPacked = true
|
|
||||||
f.L1.IsPacked = f.L1.EditionFeatures.IsPacked
|
|
||||||
}
|
|
||||||
|
|
||||||
// We pretend this option is always explicitly set because the only
|
|
||||||
// use of HasEnforceUTF8 is to determine whether to use EnforceUTF8
|
|
||||||
// or to return the appropriate default.
|
|
||||||
// When using editions we either parse the option or resolve the
|
|
||||||
// appropriate default here (instead of later when this option is
|
|
||||||
// requested from the descriptor).
|
|
||||||
// In proto2/proto3 syntax HasEnforceUTF8 might be false.
|
|
||||||
f.L1.HasEnforceUTF8 = true
|
|
||||||
f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated
|
|
||||||
|
|
||||||
if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded {
|
|
||||||
f.L1.Kind = protoreflect.GroupKind
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fs, nil
|
return fs, nil
|
||||||
|
@ -201,12 +181,10 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc
|
||||||
if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil {
|
if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
o.L1.EditionFeatures = mergeEditionFeatures(parent, od.GetOptions().GetFeatures())
|
||||||
if opts := od.GetOptions(); opts != nil {
|
if opts := od.GetOptions(); opts != nil {
|
||||||
opts = proto.Clone(opts).(*descriptorpb.OneofOptions)
|
opts = proto.Clone(opts).(*descriptorpb.OneofOptions)
|
||||||
o.L1.Options = func() protoreflect.ProtoMessage { return opts }
|
o.L1.Options = func() protoreflect.ProtoMessage { return opts }
|
||||||
if parent.Syntax() == protoreflect.Editions {
|
|
||||||
o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return os, nil
|
return os, nil
|
||||||
|
@ -223,7 +201,9 @@ func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescript
|
||||||
if opts := xd.GetOptions(); opts != nil {
|
if opts := xd.GetOptions(); opts != nil {
|
||||||
opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
|
opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
|
||||||
x.L2.Options = func() protoreflect.ProtoMessage { return opts }
|
x.L2.Options = func() protoreflect.ProtoMessage { return opts }
|
||||||
x.L2.IsPacked = opts.GetPacked()
|
if opts.Packed != nil {
|
||||||
|
x.L1.EditionFeatures.IsPacked = opts.GetPacked()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
x.L1.Number = protoreflect.FieldNumber(xd.GetNumber())
|
x.L1.Number = protoreflect.FieldNumber(xd.GetNumber())
|
||||||
x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel())
|
x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel())
|
||||||
|
|
|
@ -45,11 +45,11 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri
|
||||||
if allowAlias && !foundAlias {
|
if allowAlias && !foundAlias {
|
||||||
return errors.New("enum %q allows aliases, but none were found", e.FullName())
|
return errors.New("enum %q allows aliases, but none were found", e.FullName())
|
||||||
}
|
}
|
||||||
if e.Syntax() == protoreflect.Proto3 {
|
if !e.IsClosed() {
|
||||||
if v := e.Values().Get(0); v.Number() != 0 {
|
if v := e.Values().Get(0); v.Number() != 0 {
|
||||||
return errors.New("enum %q using proto3 semantics must have zero number for the first value", v.FullName())
|
return errors.New("enum %q using open semantics must have zero number for the first value", v.FullName())
|
||||||
}
|
}
|
||||||
// Verify that value names in proto3 do not conflict if the
|
// Verify that value names in open enums do not conflict if the
|
||||||
// case-insensitive prefix is removed.
|
// case-insensitive prefix is removed.
|
||||||
// See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055
|
// See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055
|
||||||
names := map[string]protoreflect.EnumValueDescriptor{}
|
names := map[string]protoreflect.EnumValueDescriptor{}
|
||||||
|
@ -58,7 +58,7 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri
|
||||||
v1 := e.Values().Get(i)
|
v1 := e.Values().Get(i)
|
||||||
s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix))
|
s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix))
|
||||||
if v2, ok := names[s]; ok && v1.Number() != v2.Number() {
|
if v2, ok := names[s]; ok && v1.Number() != v2.Number() {
|
||||||
return errors.New("enum %q using proto3 semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name())
|
return errors.New("enum %q using open semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name())
|
||||||
}
|
}
|
||||||
names[s] = v1
|
names[s] = v1
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,9 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error {
|
func validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error {
|
||||||
|
// There are a few limited exceptions only for proto3
|
||||||
|
isProto3 := file.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3)
|
||||||
for i, md := range mds {
|
for i, md := range mds {
|
||||||
m := &ms[i]
|
m := &ms[i]
|
||||||
|
|
||||||
|
@ -107,10 +109,10 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc
|
||||||
if isMessageSet && !flags.ProtoLegacy {
|
if isMessageSet && !flags.ProtoLegacy {
|
||||||
return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName())
|
return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName())
|
||||||
}
|
}
|
||||||
if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) {
|
if isMessageSet && (isProto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) {
|
||||||
return errors.New("message %q is an invalid proto1 MessageSet", m.FullName())
|
return errors.New("message %q is an invalid proto1 MessageSet", m.FullName())
|
||||||
}
|
}
|
||||||
if m.Syntax() == protoreflect.Proto3 {
|
if isProto3 {
|
||||||
if m.ExtensionRanges().Len() > 0 {
|
if m.ExtensionRanges().Len() > 0 {
|
||||||
return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName())
|
return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName())
|
||||||
}
|
}
|
||||||
|
@ -149,7 +151,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc
|
||||||
return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee())
|
return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee())
|
||||||
}
|
}
|
||||||
if f.L1.IsProto3Optional {
|
if f.L1.IsProto3Optional {
|
||||||
if f.Syntax() != protoreflect.Proto3 {
|
if !isProto3 {
|
||||||
return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName())
|
return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName())
|
||||||
}
|
}
|
||||||
if f.Cardinality() != protoreflect.Optional {
|
if f.Cardinality() != protoreflect.Optional {
|
||||||
|
@ -162,26 +164,29 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc
|
||||||
if f.IsWeak() && !flags.ProtoLegacy {
|
if f.IsWeak() && !flags.ProtoLegacy {
|
||||||
return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName())
|
return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName())
|
||||||
}
|
}
|
||||||
if f.IsWeak() && (f.Syntax() != protoreflect.Proto2 || !isOptionalMessage(f) || f.ContainingOneof() != nil) {
|
if f.IsWeak() && (!f.HasPresence() || !isOptionalMessage(f) || f.ContainingOneof() != nil) {
|
||||||
return errors.New("message field %q may only be weak for an optional message", f.FullName())
|
return errors.New("message field %q may only be weak for an optional message", f.FullName())
|
||||||
}
|
}
|
||||||
if f.IsPacked() && !isPackable(f) {
|
if f.IsPacked() && !isPackable(f) {
|
||||||
return errors.New("message field %q is not packable", f.FullName())
|
return errors.New("message field %q is not packable", f.FullName())
|
||||||
}
|
}
|
||||||
if err := checkValidGroup(f); err != nil {
|
if err := checkValidGroup(file, f); err != nil {
|
||||||
return errors.New("message field %q is an invalid group: %v", f.FullName(), err)
|
return errors.New("message field %q is an invalid group: %v", f.FullName(), err)
|
||||||
}
|
}
|
||||||
if err := checkValidMap(f); err != nil {
|
if err := checkValidMap(f); err != nil {
|
||||||
return errors.New("message field %q is an invalid map: %v", f.FullName(), err)
|
return errors.New("message field %q is an invalid map: %v", f.FullName(), err)
|
||||||
}
|
}
|
||||||
if f.Syntax() == protoreflect.Proto3 {
|
if isProto3 {
|
||||||
if f.Cardinality() == protoreflect.Required {
|
if f.Cardinality() == protoreflect.Required {
|
||||||
return errors.New("message field %q using proto3 semantics cannot be required", f.FullName())
|
return errors.New("message field %q using proto3 semantics cannot be required", f.FullName())
|
||||||
}
|
}
|
||||||
if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().Syntax() != protoreflect.Proto3 {
|
if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() {
|
||||||
return errors.New("message field %q using proto3 semantics may only depend on a proto3 enum", f.FullName())
|
return errors.New("message field %q using proto3 semantics may only depend on open enums", f.FullName())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if f.Cardinality() == protoreflect.Optional && !f.HasPresence() && f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() {
|
||||||
|
return errors.New("message field %q with implicit presence may only use open enums", f.FullName())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs
|
seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs
|
||||||
for j := range md.GetOneofDecl() {
|
for j := range md.GetOneofDecl() {
|
||||||
|
@ -215,17 +220,17 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc
|
||||||
if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil {
|
if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := validateMessageDeclarations(m.L1.Messages.List, md.GetNestedType()); err != nil {
|
if err := validateMessageDeclarations(file, m.L1.Messages.List, md.GetNestedType()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := validateExtensionDeclarations(m.L1.Extensions.List, md.GetExtension()); err != nil {
|
if err := validateExtensionDeclarations(file, m.L1.Extensions.List, md.GetExtension()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error {
|
func validateExtensionDeclarations(f *filedesc.File, xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error {
|
||||||
for i, xd := range xds {
|
for i, xd := range xds {
|
||||||
x := &xs[i]
|
x := &xs[i]
|
||||||
// NOTE: Avoid using the IsValid method since extensions to MessageSet
|
// NOTE: Avoid using the IsValid method since extensions to MessageSet
|
||||||
|
@ -267,13 +272,13 @@ func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.
|
||||||
if x.IsPacked() && !isPackable(x) {
|
if x.IsPacked() && !isPackable(x) {
|
||||||
return errors.New("extension field %q is not packable", x.FullName())
|
return errors.New("extension field %q is not packable", x.FullName())
|
||||||
}
|
}
|
||||||
if err := checkValidGroup(x); err != nil {
|
if err := checkValidGroup(f, x); err != nil {
|
||||||
return errors.New("extension field %q is an invalid group: %v", x.FullName(), err)
|
return errors.New("extension field %q is an invalid group: %v", x.FullName(), err)
|
||||||
}
|
}
|
||||||
if md := x.Message(); md != nil && md.IsMapEntry() {
|
if md := x.Message(); md != nil && md.IsMapEntry() {
|
||||||
return errors.New("extension field %q cannot be a map entry", x.FullName())
|
return errors.New("extension field %q cannot be a map entry", x.FullName())
|
||||||
}
|
}
|
||||||
if x.Syntax() == protoreflect.Proto3 {
|
if f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) {
|
||||||
switch x.ContainingMessage().FullName() {
|
switch x.ContainingMessage().FullName() {
|
||||||
case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName():
|
case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName():
|
||||||
case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName():
|
case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName():
|
||||||
|
@ -309,21 +314,25 @@ func isPackable(fd protoreflect.FieldDescriptor) bool {
|
||||||
|
|
||||||
// checkValidGroup reports whether fd is a valid group according to the same
|
// checkValidGroup reports whether fd is a valid group according to the same
|
||||||
// rules that protoc imposes.
|
// rules that protoc imposes.
|
||||||
func checkValidGroup(fd protoreflect.FieldDescriptor) error {
|
func checkValidGroup(f *filedesc.File, fd protoreflect.FieldDescriptor) error {
|
||||||
md := fd.Message()
|
md := fd.Message()
|
||||||
switch {
|
switch {
|
||||||
case fd.Kind() != protoreflect.GroupKind:
|
case fd.Kind() != protoreflect.GroupKind:
|
||||||
return nil
|
return nil
|
||||||
case fd.Syntax() == protoreflect.Proto3:
|
case f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3):
|
||||||
return errors.New("invalid under proto3 semantics")
|
return errors.New("invalid under proto3 semantics")
|
||||||
case md == nil || md.IsPlaceholder():
|
case md == nil || md.IsPlaceholder():
|
||||||
return errors.New("message must be resolvable")
|
return errors.New("message must be resolvable")
|
||||||
case fd.FullName().Parent() != md.FullName().Parent():
|
}
|
||||||
return errors.New("message and field must be declared in the same scope")
|
if f.L1.Edition < fromEditionProto(descriptorpb.Edition_EDITION_2023) {
|
||||||
case !unicode.IsUpper(rune(md.Name()[0])):
|
switch {
|
||||||
return errors.New("message name must start with an uppercase")
|
case fd.FullName().Parent() != md.FullName().Parent():
|
||||||
case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))):
|
return errors.New("message and field must be declared in the same scope")
|
||||||
return errors.New("field name must be lowercased form of the message name")
|
case !unicode.IsUpper(rune(md.Name()[0])):
|
||||||
|
return errors.New("message name must start with an uppercase")
|
||||||
|
case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))):
|
||||||
|
return errors.New("field name must be lowercased form of the message name")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,11 +17,6 @@ import (
|
||||||
gofeaturespb "google.golang.org/protobuf/types/gofeaturespb"
|
gofeaturespb "google.golang.org/protobuf/types/gofeaturespb"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2
|
|
||||||
SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023
|
|
||||||
)
|
|
||||||
|
|
||||||
var defaults = &descriptorpb.FeatureSetDefaults{}
|
var defaults = &descriptorpb.FeatureSetDefaults{}
|
||||||
var defaultsCacheMu sync.Mutex
|
var defaultsCacheMu sync.Mutex
|
||||||
var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet)
|
var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet)
|
||||||
|
|
|
@ -73,6 +73,16 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD
|
||||||
if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() {
|
if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() {
|
||||||
p.Syntax = proto.String(file.Syntax().String())
|
p.Syntax = proto.String(file.Syntax().String())
|
||||||
}
|
}
|
||||||
|
if file.Syntax() == protoreflect.Editions {
|
||||||
|
desc := file
|
||||||
|
if fileImportDesc, ok := file.(protoreflect.FileImport); ok {
|
||||||
|
desc = fileImportDesc.FileDescriptor
|
||||||
|
}
|
||||||
|
|
||||||
|
if editionsInterface, ok := desc.(interface{ Edition() int32 }); ok {
|
||||||
|
p.Edition = descriptorpb.Edition(editionsInterface.Edition()).Enum()
|
||||||
|
}
|
||||||
|
}
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +163,18 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi
|
||||||
if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() {
|
if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() {
|
||||||
p.Proto3Optional = proto.Bool(true)
|
p.Proto3Optional = proto.Bool(true)
|
||||||
}
|
}
|
||||||
|
if field.Syntax() == protoreflect.Editions {
|
||||||
|
// Editions have no group keyword, this type is only set so that downstream users continue
|
||||||
|
// treating this as delimited encoding.
|
||||||
|
if p.GetType() == descriptorpb.FieldDescriptorProto_TYPE_GROUP {
|
||||||
|
p.Type = descriptorpb.FieldDescriptorProto_TYPE_MESSAGE.Enum()
|
||||||
|
}
|
||||||
|
// Editions have no required keyword, this label is only set so that downstream users continue
|
||||||
|
// treating it as required.
|
||||||
|
if p.GetLabel() == descriptorpb.FieldDescriptorProto_LABEL_REQUIRED {
|
||||||
|
p.Label = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum()
|
||||||
|
}
|
||||||
|
}
|
||||||
if field.HasDefault() {
|
if field.HasDefault() {
|
||||||
def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor)
|
def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor)
|
||||||
if err != nil && field.DefaultEnumValue() != nil {
|
if err != nil && field.DefaultEnumValue() != nil {
|
||||||
|
|
|
@ -161,7 +161,7 @@ const (
|
||||||
// IsValid reports whether the syntax is valid.
|
// IsValid reports whether the syntax is valid.
|
||||||
func (s Syntax) IsValid() bool {
|
func (s Syntax) IsValid() bool {
|
||||||
switch s {
|
switch s {
|
||||||
case Proto2, Proto3:
|
case Proto2, Proto3, Editions:
|
||||||
return true
|
return true
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -544,6 +544,12 @@ type EnumDescriptor interface {
|
||||||
// ReservedRanges is a list of reserved ranges of enum numbers.
|
// ReservedRanges is a list of reserved ranges of enum numbers.
|
||||||
ReservedRanges() EnumRanges
|
ReservedRanges() EnumRanges
|
||||||
|
|
||||||
|
// IsClosed reports whether this enum uses closed semantics.
|
||||||
|
// See https://protobuf.dev/programming-guides/enum/#definitions.
|
||||||
|
// Note: the Go protobuf implementation is not spec compliant and treats
|
||||||
|
// all enums as open enums.
|
||||||
|
IsClosed() bool
|
||||||
|
|
||||||
isEnumDescriptor
|
isEnumDescriptor
|
||||||
}
|
}
|
||||||
type isEnumDescriptor interface{ ProtoType(EnumDescriptor) }
|
type isEnumDescriptor interface{ ProtoType(EnumDescriptor) }
|
||||||
|
|
|
@ -506,12 +506,10 @@ github.com/zeromicro/go-zero/zrpc/resolver
|
||||||
github.com/zeromicro/go-zero/zrpc/resolver/internal
|
github.com/zeromicro/go-zero/zrpc/resolver/internal
|
||||||
github.com/zeromicro/go-zero/zrpc/resolver/internal/kube
|
github.com/zeromicro/go-zero/zrpc/resolver/internal/kube
|
||||||
github.com/zeromicro/go-zero/zrpc/resolver/internal/targets
|
github.com/zeromicro/go-zero/zrpc/resolver/internal/targets
|
||||||
# gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece
|
# gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c
|
||||||
## explicit; go 1.21
|
## explicit; go 1.21
|
||||||
gitlink.org.cn/JointCloud/pcm-ac/hpcAC
|
gitlink.org.cn/JointCloud/pcm-ac/hpcAC
|
||||||
gitlink.org.cn/JointCloud/pcm-ac/hpcacclient
|
gitlink.org.cn/JointCloud/pcm-ac/hpcacclient
|
||||||
# gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c
|
|
||||||
## explicit; go 1.21
|
|
||||||
# gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9
|
# gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9
|
||||||
## explicit; go 1.21
|
## explicit; go 1.21
|
||||||
gitlink.org.cn/JointCloud/pcm-modelarts/client/imagesservice
|
gitlink.org.cn/JointCloud/pcm-modelarts/client/imagesservice
|
||||||
|
@ -817,7 +815,7 @@ google.golang.org/grpc/serviceconfig
|
||||||
google.golang.org/grpc/stats
|
google.golang.org/grpc/stats
|
||||||
google.golang.org/grpc/status
|
google.golang.org/grpc/status
|
||||||
google.golang.org/grpc/tap
|
google.golang.org/grpc/tap
|
||||||
# google.golang.org/protobuf v1.33.0
|
# google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002
|
||||||
## explicit; go 1.17
|
## explicit; go 1.17
|
||||||
google.golang.org/protobuf/encoding/protodelim
|
google.golang.org/protobuf/encoding/protodelim
|
||||||
google.golang.org/protobuf/encoding/protojson
|
google.golang.org/protobuf/encoding/protojson
|
||||||
|
@ -827,6 +825,7 @@ google.golang.org/protobuf/internal/descfmt
|
||||||
google.golang.org/protobuf/internal/descopts
|
google.golang.org/protobuf/internal/descopts
|
||||||
google.golang.org/protobuf/internal/detrand
|
google.golang.org/protobuf/internal/detrand
|
||||||
google.golang.org/protobuf/internal/editiondefaults
|
google.golang.org/protobuf/internal/editiondefaults
|
||||||
|
google.golang.org/protobuf/internal/editionssupport
|
||||||
google.golang.org/protobuf/internal/encoding/defval
|
google.golang.org/protobuf/internal/encoding/defval
|
||||||
google.golang.org/protobuf/internal/encoding/json
|
google.golang.org/protobuf/internal/encoding/json
|
||||||
google.golang.org/protobuf/internal/encoding/messageset
|
google.golang.org/protobuf/internal/encoding/messageset
|
||||||
|
|
Loading…
Reference in New Issue