From fa65fb87f1a40b7c06417a992f86fb224132e82f Mon Sep 17 00:00:00 2001 From: linfengjun Date: Tue, 19 Apr 2022 12:50:31 +0800 Subject: [PATCH 01/23] =?UTF-8?q?openaiserver=E6=8E=A5=E5=8F=A3=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0imageUrl=E5=8F=82=E6=95=B0=E3=80=81=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E7=AD=89=E5=8F=82=E6=95=B0=E6=94=B9=E4=B8=BA=E9=80=89?= =?UTF-8?q?=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/base-server/api/v1/trainJob.proto | 12 +-- .../internal/data/dao/model/train_job.go | 1 + .../internal/service/trainjob/train_job.go | 76 ++++++++++++------- server/openai-server/api/v1/trainJob.proto | 22 +++--- 4 files changed, 68 insertions(+), 43 deletions(-) diff --git a/server/base-server/api/v1/trainJob.proto b/server/base-server/api/v1/trainJob.proto index a182581e..e74dea72 100644 --- a/server/base-server/api/v1/trainJob.proto +++ b/server/base-server/api/v1/trainJob.proto @@ -39,15 +39,17 @@ service TrainJobService { message TrainJobRequest { string name = 1[(validate.rules).string = {min_len: 1,max_len: 30}]; string desc = 2; - string algorithmId = 3[(validate.rules).string = {min_len: 1}]; - string algorithmVersion = 4[(validate.rules).string = {min_len: 1}]; - string imageId = 5[(validate.rules).string = {min_len: 1}]; - string dataSetId = 6[(validate.rules).string = {min_len: 1}]; - string dataSetVersion = 7[(validate.rules).string = {min_len: 1}]; + string algorithmId = 3[(validate.rules).string = {min_len: 0}]; + string algorithmVersion = 4[(validate.rules).string = {min_len: 0}]; + string imageId = 5[(validate.rules).string = {min_len: 0}]; + string dataSetId = 6[(validate.rules).string = {min_len: 0}]; + string dataSetVersion = 7[(validate.rules).string = {min_len: 0}]; bool isDistributed = 8; repeated Config config = 9[(validate.rules).repeated.min_items = 1]; string userId = 10[(validate.rules).string = {min_len: 1}]; string workspaceId =11[(validate.rules).string = {min_len: 1}]; + //镜像地址,非必填,镜像地址和镜像ID填一个 + string imageUrl = 12[(validate.rules).string = {min_len: 0}]; } message TrainJobTemplateRequest { diff --git a/server/base-server/internal/data/dao/model/train_job.go b/server/base-server/internal/data/dao/model/train_job.go index e30ebe1b..4d2984dc 100644 --- a/server/base-server/internal/data/dao/model/train_job.go +++ b/server/base-server/internal/data/dao/model/train_job.go @@ -28,6 +28,7 @@ type TrainJob struct { ImageId string `gorm:"type:varchar(100);not null;default:'';comment:'镜像Id'"` ImageName string `gorm:"type:varchar(100);not null;default:'';comment: '镜像名称''"` ImageVersion string `gorm:"type:varchar(100);not null;default:'';comment:'镜像版本'"` + ImageUrl string `gorm:"type:varchar(300);not null;default:'';comment:'镜像版本'"` DataSetId string `gorm:"type:varchar(100);not null;default:'';comment:'数据集Id'"` DataSetVersion string `gorm:"type:varchar(100);not null;default:'';comment:'数据集版本'"` DatasetName string `gorm:"type:varchar(100);not null;default:'';comment:'数据集名称''"` diff --git a/server/base-server/internal/service/trainjob/train_job.go b/server/base-server/internal/service/trainjob/train_job.go index 41d79405..82d45630 100644 --- a/server/base-server/internal/service/trainjob/train_job.go +++ b/server/base-server/internal/service/trainjob/train_job.go @@ -302,35 +302,55 @@ func (s *trainJobService) checkPermForJob(ctx context.Context, job *model.TrainJ queue = workspace.Workspace.ResourcePoolId } - //image - image, err := s.getImageAndCheckPerm(ctx, job.UserId, job.WorkspaceId, job.ImageId) - if err != nil { - return nil, err - } - if image.Image.ImageStatus != api.ImageStatus_IMAGE_STATUS_MADE { - return nil, errors.Errorf(nil, errors.ErrorJobImageStatusForbidden) - } - job.ImageName = image.Image.ImageName - job.ImageVersion = image.Image.ImageVersion - //algorithm - algorithmVersion, err := s.getAlgorithmAndCheckPerm(ctx, job.UserId, job.WorkspaceId, job.AlgorithmId, job.AlgorithmVersion) - if err != nil { - return nil, err - } - if algorithmVersion.Algorithm.FileStatus != int64(algorithm.FILESTATUS_FINISH) { - return nil, errors.Errorf(err, errors.ErrorJobAlgorithmStatusForbidden) + imageAddr := "" + if job.ImageId != "" { //判空,允许通过API调用不传此参数 + //image + image, err := s.getImageAndCheckPerm(ctx, job.UserId, job.WorkspaceId, job.ImageId) + if err != nil { + return nil, err + } + + if image.Image.ImageStatus != api.ImageStatus_IMAGE_STATUS_MADE { + return nil, errors.Errorf(nil, errors.ErrorJobImageStatusForbidden) + } + job.ImageName = image.Image.ImageName + job.ImageVersion = image.Image.ImageVersion + imageAddr = image.ImageFullAddr + } else if job.ImageUrl != "" { + imageAddr = job.ImageUrl + } else { + return nil, errors.Errorf(nil, errors.ErrorInvalidRequestParameter) } - job.AlgorithmName = algorithmVersion.Algorithm.AlgorithmName - //dataSet - dataSetVersion, err := s.getDatasetAndCheckPerm(ctx, job.UserId, job.WorkspaceId, job.DataSetId, job.DataSetVersion) - if err != nil { - return nil, err + + algorithmPath := "" + if job.AlgorithmId != "" { //判空,允许通过API调用不传此参数 + //algorithm + algorithmVersion, err := s.getAlgorithmAndCheckPerm(ctx, job.UserId, job.WorkspaceId, job.AlgorithmId, job.AlgorithmVersion) + if err != nil { + return nil, err + } + if algorithmVersion.Algorithm.FileStatus != int64(algorithm.FILESTATUS_FINISH) { + return nil, errors.Errorf(err, errors.ErrorJobAlgorithmStatusForbidden) + } + job.AlgorithmName = algorithmVersion.Algorithm.AlgorithmName + algorithmPath = algorithmVersion.Algorithm.Path } - if dataSetVersion.Version.Status != int32(api.DatasetVersionStatus_DVS_Unzipped) { - return nil, errors.Errorf(err, errors.ErrorJobImageStatusForbidden) + + datasetPath := "" + if job.DataSetId != "" { //判空,允许通过API调用不传此参数 + //dataSet + dataSetVersion, err := s.getDatasetAndCheckPerm(ctx, job.UserId, job.WorkspaceId, job.DataSetId, job.DataSetVersion) + if err != nil { + return nil, err + } + if dataSetVersion.Version.Status != int32(api.DatasetVersionStatus_DVS_Unzipped) { + return nil, errors.Errorf(err, errors.ErrorJobImageStatusForbidden) + } + job.DatasetName = dataSetVersion.Dataset.Name + datasetPath = dataSetVersion.Version.Path } - job.DatasetName = dataSetVersion.Dataset.Name + //resource spec info startJobSpecs := map[string]*startJobInfoSpec{} specs, err := s.resourceSpecService.ListResourceSpec(ctx, &api.ListResourceSpecRequest{}) @@ -436,9 +456,9 @@ func (s *trainJobService) checkPermForJob(ctx context.Context, job *model.TrainJ return &startJobInfo{ queue: queue, - imageAddr: image.ImageFullAddr, - algorithmPath: algorithmVersion.Algorithm.Path, - datasetPath: dataSetVersion.Version.Path, + imageAddr: imageAddr, + algorithmPath: algorithmPath, + datasetPath: datasetPath, specs: startJobSpecs, }, nil } diff --git a/server/openai-server/api/v1/trainJob.proto b/server/openai-server/api/v1/trainJob.proto index affffdae..bc1499a4 100644 --- a/server/openai-server/api/v1/trainJob.proto +++ b/server/openai-server/api/v1/trainJob.proto @@ -93,20 +93,22 @@ message TrainJobRequest { string name = 1[(validate.rules).string = {min_len: 1, max_len: 30}]; //训练任务描述,非必填 string desc = 2[(validate.rules).string = {max_len: 300}]; - //算法ID,必填 - string algorithmId = 3[(validate.rules).string = {min_len: 1}]; - //算法版本,必填 - string algorithmVersion = 4[(validate.rules).string = {min_len: 1}]; - //镜像ID,必填 - string imageId = 5[(validate.rules).string = {min_len: 1}]; - //数据集ID,必填 - string dataSetId = 7[(validate.rules).string = {min_len: 1}]; - //数据集版本,必填 - string dataSetVersion = 8[(validate.rules).string = {min_len: 1}]; + //算法ID,非必填 + string algorithmId = 3[(validate.rules).string = {min_len: 0}]; + //算法版本,非必填 + string algorithmVersion = 4[(validate.rules).string = {min_len: 0}]; + //镜像ID,非必填,镜像地址和镜像ID填一个 + string imageId = 5[(validate.rules).string = {min_len: 0}]; + //数据集ID,非必填 + string dataSetId = 7[(validate.rules).string = {min_len: 0}]; + //数据集版本,非必填 + string dataSetVersion = 8[(validate.rules).string = {min_len: 0}]; //是否分布式任务,非必填,默认false,若为分布式任务则为true bool isDistributed = 9; //job子任务及其配置信息,必填 repeated Config config = 10[(validate.rules).repeated.min_items = 1]; + //镜像地址,非必填,镜像地址和镜像ID填一个 + string imageUrl = 11[(validate.rules).string = {min_len: 0}]; } message Config { -- 2.34.1 From 02e90dbee72a6926f1fad92760cb83f24c7f19ff Mon Sep 17 00:00:00 2001 From: linfengjun Date: Tue, 19 Apr 2022 15:06:03 +0800 Subject: [PATCH 02/23] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=8C=A4=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/common/jwt/jwt.go | 3 +++ server/openai-server/internal/server/http.go | 8 ++++---- server/openai-server/internal/service/auth.go | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/server/common/jwt/jwt.go b/server/common/jwt/jwt.go index a478e4f5..300bba13 100644 --- a/server/common/jwt/jwt.go +++ b/server/common/jwt/jwt.go @@ -41,6 +41,9 @@ func ParseToken(tokenStr string, secret string) (*TokenClaims, error) { return nil, errors.Errorf(err, errors.ErrorParseTokenFailed) } if claims, ok := token.Claims.(*TokenClaims); ok && token.Valid { + if time.Now().Unix() > claims.ExpiresAt { + return nil, errors.Errorf(err, errors.ErrorParseTokenFailed) + } return claims, nil } else { return nil, errors.Errorf(err, errors.ErrorTokenInvalid) diff --git a/server/openai-server/internal/server/http.go b/server/openai-server/internal/server/http.go index 334ebdc0..1ee267fb 100644 --- a/server/openai-server/internal/server/http.go +++ b/server/openai-server/internal/server/http.go @@ -5,7 +5,6 @@ import ( nethttp "net/http" innterapi "server/base-server/api/v1" "server/common/constant/userconfig" - comCtx "server/common/context" "server/common/errors" comHttp "server/common/http" "server/common/middleware/jwt" @@ -53,9 +52,10 @@ func NewHTTPServer(c *conf.Server, service *service.Service) *http.Server { return errors.Errorf(nil, errors.ErrorAuthenticationForbidden) } - if comCtx.CreatedAtFromContext(ctx) != s.CreatedAt { - return errors.Errorf(nil, errors.ErrorTokenRenew) - } + //api开放给外部使用,去掉单端登录 + //if comCtx.CreatedAtFromContext(ctx) != s.CreatedAt { + // return errors.Errorf(nil, errors.ErrorTokenRenew) + //} return nil } }) diff --git a/server/openai-server/internal/service/auth.go b/server/openai-server/internal/service/auth.go index 6332f6ef..9fbc189f 100644 --- a/server/openai-server/internal/service/auth.go +++ b/server/openai-server/internal/service/auth.go @@ -72,7 +72,7 @@ func (s *AuthService) GetToken(ctx context.Context, req *api.GetTokenRequest) (* return &api.GetTokenReply{ Token: token, - Expiration: 0, + Expiration: s.conf.Service.TokenExpirationSec, }, nil } -- 2.34.1 From 35746918b419148c7dcf5a93b54befedd4acb025 Mon Sep 17 00:00:00 2001 From: linfengjun Date: Thu, 21 Apr 2022 11:31:50 +0800 Subject: [PATCH 03/23] =?UTF-8?q?=E5=A2=9E=E5=8A=A0imageUrl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/base-server/api/v1/trainJob.proto | 1 + server/openai-server/api/v1/trainJob.proto | 1 + 2 files changed, 2 insertions(+) diff --git a/server/base-server/api/v1/trainJob.proto b/server/base-server/api/v1/trainJob.proto index e74dea72..c0b0d597 100644 --- a/server/base-server/api/v1/trainJob.proto +++ b/server/base-server/api/v1/trainJob.proto @@ -229,6 +229,7 @@ message TrainJob{ string imageName = 20; string dataSetName = 21; int64 startedAt = 22; + string imageUrl = 23; } diff --git a/server/openai-server/api/v1/trainJob.proto b/server/openai-server/api/v1/trainJob.proto index bc1499a4..48cde012 100644 --- a/server/openai-server/api/v1/trainJob.proto +++ b/server/openai-server/api/v1/trainJob.proto @@ -329,6 +329,7 @@ message TrainJob{ string imageVersion = 21; //启动时间 int64 startedAt = 22; + string imageUrl = 23; } message TrainJobTemplate{ -- 2.34.1 From 320cb2180598a56a8104008c379cbf91998d0fa3 Mon Sep 17 00:00:00 2001 From: linfengjun Date: Mon, 25 Apr 2022 17:03:52 +0800 Subject: [PATCH 04/23] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/charts/octopus/templates/openai-server.yaml | 2 +- deploy/charts/octopus/values.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy/charts/octopus/templates/openai-server.yaml b/deploy/charts/octopus/templates/openai-server.yaml index 543740ed..a8ea919f 100644 --- a/deploy/charts/octopus/templates/openai-server.yaml +++ b/deploy/charts/octopus/templates/openai-server.yaml @@ -87,7 +87,7 @@ data: service: port: {{ template "openaiserver.port" . }} targetPort: {{ template "openaiserver.port" . }} - tokenExpirationSec: 86400 + tokenExpirationSec: {{ .Values.openaiserver.service.tokenExpirationSec }} webConfig: logoAddr: "{{ .Values.openaiserver.service.webConfig.logoAddr }}" themeColor: "{{ .Values.openaiserver.service.webConfig.themeColor }}" diff --git a/deploy/charts/octopus/values.yaml b/deploy/charts/octopus/values.yaml index 9c6cc206..4c63820c 100644 --- a/deploy/charts/octopus/values.yaml +++ b/deploy/charts/octopus/values.yaml @@ -163,6 +163,7 @@ openaiserver: username: "" password: "abcde" service: + tokenExpirationSec: 86400 webConfig: logoAddr: #格式如#94070a -- 2.34.1 From 053ee76c8692dfe18a70325c6524c774f08e2524 Mon Sep 17 00:00:00 2001 From: Liaoweisheng Date: Wed, 27 Apr 2022 09:58:43 +0800 Subject: [PATCH 05/23] update pytorch server verison --- deploy/charts/octopus/values.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/charts/octopus/values.yaml b/deploy/charts/octopus/values.yaml index eb0f8333..99b8d649 100644 --- a/deploy/charts/octopus/values.yaml +++ b/deploy/charts/octopus/values.yaml @@ -138,8 +138,8 @@ baseserver: ambassador: #需要修改为实际的值 baseUrl: 192.168.202.73 pytorchServer: - imageAddr: swr.cn-south-1.myhuaweicloud.com/openioctopus/pytorchserver - version: 2.0.3 + imageAddr: 192.168.202.110:5000/octopus/pytorchserver + version: 2.0.4 service: billingPeriodSec: 1800 develop: @@ -459,5 +459,5 @@ seldon-core-operator: PYTORCH_SERVER: protocols: seldon: - defaultImageVersion: "2.0.3" - image: "swr.cn-south-1.myhuaweicloud.com/openioctopus/pytorchserver" \ No newline at end of file + defaultImageVersion: "2.0.4" + image: "192.168.202.110:5000/octopus/pytorchserver" \ No newline at end of file -- 2.34.1 From 4420d3ed748d3489a364cac51b2fbb7e1ac0ffed Mon Sep 17 00:00:00 2001 From: Liaoweisheng Date: Wed, 27 Apr 2022 10:48:52 +0800 Subject: [PATCH 06/23] test gateway --- .../charts/octopus/templates/ambassador.yaml | 104 ------------------ 1 file changed, 104 deletions(-) delete mode 100644 deploy/charts/octopus/templates/ambassador.yaml diff --git a/deploy/charts/octopus/templates/ambassador.yaml b/deploy/charts/octopus/templates/ambassador.yaml deleted file mode 100644 index 75d37ae2..00000000 --- a/deploy/charts/octopus/templates/ambassador.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "ambassador.fullname" . }} - ---- - -apiVersion: v1 -kind: Service -metadata: - name: {{ template "ambassador.fullname" . }} - labels: -{{ include "ambassador.labels" . | indent 4 }} -spec: - ports: - - name: http - protocol: TCP - port: {{ template "ambassador.port" . }} - targetPort: {{ template "ambassador.targetPort" . }} - selector: -{{ include "ambassador.select-labels" . | indent 8 }} - - ---- - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ template "ambassador.fullname" . }} -subjects: -- kind: ServiceAccount - name: {{ template "ambassador.fullname" . }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: cluster-admin - apiGroup: rbac.authorization.k8s.io - ---- - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ template "ambassador.fullname" . }} -rules: - - apiGroups: - - '*' - resources: - - '*' - verbs: - - get - - watch - - list - - create - - update - - patch - - delete - ---- - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "ambassador.fullname" . }} -spec: - selector: - matchLabels: -{{ include "ambassador.select-labels" . | indent 8 }} - replicas: 1 - template: - metadata: - labels: -{{ include "ambassador.labels" . | indent 8 }} - spec: - serviceAccountName: {{ template "ambassador.fullname" . }} - volumes: - - name: localtime - hostPath: - path: /etc/localtime - containers: - - name: {{ .Chart.Name }} - image: "datawire/ambassador:1.14.2" - imagePullPolicy: {{ .Values.global.image.pullPolicy }} - args: [] - volumeMounts: - - name: localtime - mountPath: /etc/localtime - ports: - - name: {{ template "ambassador.name" . }} - containerPort: {{ template "ambassador.port" . }} - resources: -{{ toYaml .Values.resources | indent 10 }} -{{- with .Values.global.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} \ No newline at end of file -- 2.34.1 From 78304b838272f58b58aef80172d7fdc08987e8b9 Mon Sep 17 00:00:00 2001 From: Liaoweisheng Date: Wed, 27 Apr 2022 11:24:10 +0800 Subject: [PATCH 07/23] Revert "test gateway" This reverts commit 4420d3ed748d3489a364cac51b2fbb7e1ac0ffed. --- .../charts/octopus/templates/ambassador.yaml | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 deploy/charts/octopus/templates/ambassador.yaml diff --git a/deploy/charts/octopus/templates/ambassador.yaml b/deploy/charts/octopus/templates/ambassador.yaml new file mode 100644 index 00000000..75d37ae2 --- /dev/null +++ b/deploy/charts/octopus/templates/ambassador.yaml @@ -0,0 +1,104 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "ambassador.fullname" . }} + +--- + +apiVersion: v1 +kind: Service +metadata: + name: {{ template "ambassador.fullname" . }} + labels: +{{ include "ambassador.labels" . | indent 4 }} +spec: + ports: + - name: http + protocol: TCP + port: {{ template "ambassador.port" . }} + targetPort: {{ template "ambassador.targetPort" . }} + selector: +{{ include "ambassador.select-labels" . | indent 8 }} + + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "ambassador.fullname" . }} +subjects: +- kind: ServiceAccount + name: {{ template "ambassador.fullname" . }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: cluster-admin + apiGroup: rbac.authorization.k8s.io + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "ambassador.fullname" . }} +rules: + - apiGroups: + - '*' + resources: + - '*' + verbs: + - get + - watch + - list + - create + - update + - patch + - delete + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "ambassador.fullname" . }} +spec: + selector: + matchLabels: +{{ include "ambassador.select-labels" . | indent 8 }} + replicas: 1 + template: + metadata: + labels: +{{ include "ambassador.labels" . | indent 8 }} + spec: + serviceAccountName: {{ template "ambassador.fullname" . }} + volumes: + - name: localtime + hostPath: + path: /etc/localtime + containers: + - name: {{ .Chart.Name }} + image: "datawire/ambassador:1.14.2" + imagePullPolicy: {{ .Values.global.image.pullPolicy }} + args: [] + volumeMounts: + - name: localtime + mountPath: /etc/localtime + ports: + - name: {{ template "ambassador.name" . }} + containerPort: {{ template "ambassador.port" . }} + resources: +{{ toYaml .Values.resources | indent 10 }} +{{- with .Values.global.nodeSelector }} + nodeSelector: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} \ No newline at end of file -- 2.34.1 From bec6a59859772fe6e79339ace39783b0a6c0f60e Mon Sep 17 00:00:00 2001 From: denglei <2522636547@qq.com> Date: Wed, 27 Apr 2022 14:14:19 +0800 Subject: [PATCH 08/23] =?UTF-8?q?=E7=99=BE=E5=88=86=E6=AF=94=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-portal/src/utils/index.js | 2 +- admin-portal/src/views/resourceManager/components/nodeList.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/admin-portal/src/utils/index.js b/admin-portal/src/utils/index.js index 52faf01a..32fa6247 100644 --- a/admin-portal/src/utils/index.js +++ b/admin-portal/src/utils/index.js @@ -117,7 +117,7 @@ export function param2Obj(url) { } export function formatSize(size) { if (size.indexOf('m') !== -1) { - size = size.substring(0, size.length - 2) + size = size.substring(0, size.length - 1) size = size * 0.001 return size } else if (size.indexOf('Ki') !== -1) { diff --git a/admin-portal/src/views/resourceManager/components/nodeList.vue b/admin-portal/src/views/resourceManager/components/nodeList.vue index 499cb05d..fdbeb50e 100644 --- a/admin-portal/src/views/resourceManager/components/nodeList.vue +++ b/admin-portal/src/views/resourceManager/components/nodeList.vue @@ -83,7 +83,7 @@ let percentage if (parseInt(val.allocated[key1]) === 0) { 0 - } else if ((/^\d+$/.test(val.allocated[key1])) && (/^\d+$/.test(val.capacity[key1]))) { + } else if ((/^\d+$/.test(val.allocated[key1])) && (/^\d+$/.test(val.capacity[key1]))) { percentage = val.allocated[key1] / val.capacity[key1] * 100 percentage = parseFloat(percentage.toFixed(2)) } else { -- 2.34.1 From 39cc709b87a042be8291a7799fe5de6c6da4d3e0 Mon Sep 17 00:00:00 2001 From: denglei <2522636547@qq.com> Date: Wed, 27 Apr 2022 16:18:02 +0800 Subject: [PATCH 09/23] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openai-portal/src/views/Home/firstPage.vue | 28 +++++++++++++--------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/openai-portal/src/views/Home/firstPage.vue b/openai-portal/src/views/Home/firstPage.vue index 91a316ab..7865fea8 100644 --- a/openai-portal/src/views/Home/firstPage.vue +++ b/openai-portal/src/views/Home/firstPage.vue @@ -30,16 +30,13 @@ - -
第三方登录
-
- -
+ +
- -
{{interfaceName}}
+ + 使用{{interfaceName}}账号登录
@@ -78,7 +75,7 @@ loginForm: { email: undefined, password: undefined, - bind: { platform: '', userId:'', userName: '' } + bind: { platform: '', userId: '', userName: '' } }, rules: { email: [{ required: true, message: "请输入用户账号", trigger: "blur" }, @@ -145,6 +142,7 @@ }, jumpThird() { getInterface(this.interfaceName).then(res => { + window.close() }) }, } @@ -262,8 +260,16 @@ } .name { - font-weight: 800; + height: 40px; + line-height: 40px; position: relative; - top: -20px; + top: -10px; + margin-left: 5px; + font-size: 22px; + font-weight: 300; + } + + .PCLlogin { + margin-top: 20px; } \ No newline at end of file -- 2.34.1 From 7558116affc5fc9ba11600d05325bad4064e0950 Mon Sep 17 00:00:00 2001 From: linfengjun Date: Wed, 27 Apr 2022 18:02:35 +0800 Subject: [PATCH 10/23] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/openai-server/internal/server/http.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/openai-server/internal/server/http.go b/server/openai-server/internal/server/http.go index 1ee267fb..08ae5c71 100644 --- a/server/openai-server/internal/server/http.go +++ b/server/openai-server/internal/server/http.go @@ -2,7 +2,10 @@ package server import ( "context" + "fmt" nethttp "net/http" + "net/http/httputil" + "net/url" innterapi "server/base-server/api/v1" "server/common/constant/userconfig" "server/common/errors" @@ -17,6 +20,8 @@ import ( "server/openai-server/internal/service" "strings" + "github.com/gorilla/mux" + "github.com/go-kratos/kratos/v2/middleware" "github.com/go-kratos/kratos/v2/middleware/recovery" "github.com/go-kratos/kratos/v2/middleware/tracing" @@ -83,6 +88,12 @@ func NewHTTPServer(c *conf.Server, service *service.Service) *http.Server { srv.HandlePrefix("/v1/authmanage", api.NewAuthHandler(service.AuthService, options...)) srv.HandlePrefix("/v1/algorithmmanage", api.NewAlgorithmHandler(service.AlgorithmService, options...)) srv.HandlePrefix("/v1/developmanage", api.NewDevelopHandler(service.DevelopService, options...)) + srv.HandleFunc("/v1/trainmanage/trainjob/{id}/task/{taskId}/replica/{replicaIdx}/log", func(w nethttp.ResponseWriter, r *nethttp.Request) { + url, _ := url.Parse(fmt.Sprintf("%s/log/user/trainjob/%s/%s/%s/index.log", r.Host, mux.Vars(r)["id"], mux.Vars(r)["taskId"], mux.Vars(r)["replicaIdx"])) + proxy := httputil.NewSingleHostReverseProxy(url) + + proxy.ServeHTTP(w, r) + }) srv.HandlePrefix("/v1/trainmanage", api.NewTrainJobServiceHandler(service.TrainJobService, options...)) srv.HandlePrefix("/v1/modelmanage", api.NewModelHandler(service.ModelService, options...)) srv.HandlePrefix("/v1/datasetmanage", api.NewDatasetServiceHandler(service.DatasetService, options...)) @@ -92,6 +103,7 @@ func NewHTTPServer(c *conf.Server, service *service.Service) *http.Server { srv.HandlePrefix("/v1/jointcloudmanage", api.NewJointCloudServiceHandler(service.JointCloudService, options...)) srv.HandlePrefix("/v1/systemmanage", api.NewSystemServiceHandler(service.SystemService, options...)) srv.HandlePrefix("/v1/deploymanage", api.NewModelDeployServiceHandler(service.ModelDeployService, options...)) + return srv } -- 2.34.1 From 78b1e076a8a7e2d24a62d9b83d58e0b2bc369a03 Mon Sep 17 00:00:00 2001 From: denglei <2522636547@qq.com> Date: Thu, 28 Apr 2022 14:43:35 +0800 Subject: [PATCH 11/23] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openai-portal/src/views/Home/firstPage.vue | 4 +++- .../src/views/deployManager/components/dialogForm.vue | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/openai-portal/src/views/Home/firstPage.vue b/openai-portal/src/views/Home/firstPage.vue index 7865fea8..2db11d54 100644 --- a/openai-portal/src/views/Home/firstPage.vue +++ b/openai-portal/src/views/Home/firstPage.vue @@ -142,7 +142,9 @@ }, jumpThird() { getInterface(this.interfaceName).then(res => { - window.close() + window.opener = null; + window.open("about:blank", "_top").close() + }) }, } diff --git a/openai-portal/src/views/deployManager/components/dialogForm.vue b/openai-portal/src/views/deployManager/components/dialogForm.vue index c0b7a155..9f4e168e 100644 --- a/openai-portal/src/views/deployManager/components/dialogForm.vue +++ b/openai-portal/src/views/deployManager/components/dialogForm.vue @@ -345,7 +345,7 @@ } else { if (response.error.subcode == 15011) { this.$message({ - message: '服务器名称重名', + message: '服务名称已存在', type: 'warning' }); } -- 2.34.1 From 6b32b44730dfb08c77366bf13529537ef9c561c5 Mon Sep 17 00:00:00 2001 From: xulf <250328898@qq.com> Date: Thu, 28 Apr 2022 15:37:35 +0800 Subject: [PATCH 12/23] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E4=BA=91=E8=84=91=E8=B4=A6=E5=8F=B7=E8=A2=AB=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?OA=E7=BB=91=E5=AE=9A=E4=BB=A5=E5=8F=8A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=9C=BA=E6=97=B6=E5=88=9D=E5=A7=8B=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/base-server/internal/data/dao/user.go | 28 ++++++++++--------- server/openai-server/internal/service/auth.go | 26 +++++++++++++++-- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/server/base-server/internal/data/dao/user.go b/server/base-server/internal/data/dao/user.go index 91928d22..5ec0d533 100644 --- a/server/base-server/internal/data/dao/user.go +++ b/server/base-server/internal/data/dao/user.go @@ -76,21 +76,23 @@ func (d *userDao) Find(ctx context.Context, condition *model.UserQuery) (*model. } else { querySql := "1 = 1" params := make([]interface{}, 0) - querySql += " and (JSON_CONTAINS(bind,JSON_OBJECT('platform', ?))" - params = append(params, condition.Bind.Platform) - querySql += " and JSON_CONTAINS(bind,JSON_OBJECT('userId', ?)))" - params = append(params, condition.Bind.UserId) - if condition.Id != "" { - querySql += " or id = ? " - params = append(params, condition.Id) - } if condition.Email != "" { - querySql += " or email = ? " + querySql += " and email = ? " params = append(params, condition.Email) - } - if condition.Phone != "" { - querySql += " or phone = ? " - params = append(params, condition.Phone) + if condition.Bind.UserId != "" { + querySql += " or (JSON_CONTAINS(bind,JSON_OBJECT('platform', ?))" + params = append(params, condition.Bind.Platform) + querySql += " and JSON_CONTAINS(bind,JSON_OBJECT('userId', ?)))" + params = append(params, condition.Bind.UserId) + } else { + querySql += " and JSON_CONTAINS(bind,JSON_OBJECT('platform', ?))" + params = append(params, condition.Bind.Platform) + } + } else { + querySql += " and JSON_CONTAINS(bind,JSON_OBJECT('platform', ?))" + params = append(params, condition.Bind.Platform) + querySql += " and JSON_CONTAINS(bind,JSON_OBJECT('userId', ?))" + params = append(params, condition.Bind.UserId) } result = db.Where(querySql, params...).First(&user) } diff --git a/server/openai-server/internal/service/auth.go b/server/openai-server/internal/service/auth.go index 622525a5..66b45a3d 100644 --- a/server/openai-server/internal/service/auth.go +++ b/server/openai-server/internal/service/auth.go @@ -60,11 +60,13 @@ func (s *AuthService) GetToken(ctx context.Context, req *api.GetTokenRequest) (* } reqBind := &innterapi.Bind{ Platform: req.Bind.Platform, - UserId: string(userId), + UserId: "", UserName: req.Bind.UserName, } + //判断该云脑账号是否已绑定第三方平台的其他账号 rep, err := s.data.UserClient.FindUser(ctx, &innterapi.FindUserRequest{ - Bind: reqBind, + Email: req.Username, + Bind: reqBind, }) if err != nil { return nil, err @@ -72,6 +74,18 @@ func (s *AuthService) GetToken(ctx context.Context, req *api.GetTokenRequest) (* if rep.User != nil { return nil, errors.Errorf(nil, errors.ErrorUserAccountBinded) } + //判断第三方平台账号是否已绑定其他云脑账号 + reqBind.UserId = string(userId) + reps, err := s.data.UserClient.FindUser(ctx, &innterapi.FindUserRequest{ + Bind: reqBind, + }) + if err != nil { + return nil, err + } + if reps.User != nil { + return nil, errors.Errorf(nil, errors.ErrorUserAccountBinded) + } + bindInfo := make([]*innterapi.Bind, 0) bindInfo = append(bindInfo, reqBind) if reply.User.Bind != nil { @@ -146,6 +160,14 @@ func (s *AuthService) RegisterAndBind(ctx context.Context, req *api.RegisterRequ if err != nil { return nil, err } + //初始化用户机时数据 + _, err = s.data.BillingClient.CreateBillingOwner(ctx, &innterapi.CreateBillingOwnerRequest{ + OwnerId: newUser.User.Id, + OwnerType: innterapi.BillingOwnerType_BOT_USER, + }) + if err != nil { + return nil, err + } //生成token token, err := jwt.CreateToken(newUser.User.Id, s.conf.Server.Http.JwtSecrect, time.Second*time.Duration(s.conf.Service.TokenExpirationSec)) if err != nil { -- 2.34.1 From ba88ae7273fe5b9ce2828da0dced34682fe68a19 Mon Sep 17 00:00:00 2001 From: denglei <2522636547@qq.com> Date: Thu, 28 Apr 2022 17:09:20 +0800 Subject: [PATCH 13/23] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openai-portal/src/views/Home/firstPage.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openai-portal/src/views/Home/firstPage.vue b/openai-portal/src/views/Home/firstPage.vue index 2db11d54..4b7e3a07 100644 --- a/openai-portal/src/views/Home/firstPage.vue +++ b/openai-portal/src/views/Home/firstPage.vue @@ -142,8 +142,8 @@ }, jumpThird() { getInterface(this.interfaceName).then(res => { - window.opener = null; - window.open("about:blank", "_top").close() + // window.opener = null; + // window.open("about:blank", "_top").close() }) }, -- 2.34.1 From 7198f8aeeeb4dea83155077f2402cb034edee347 Mon Sep 17 00:00:00 2001 From: linfengjun Date: Fri, 29 Apr 2022 09:29:14 +0800 Subject: [PATCH 14/23] =?UTF-8?q?=E8=AE=AD=E7=BB=83=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/openai-server/internal/server/http.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/server/openai-server/internal/server/http.go b/server/openai-server/internal/server/http.go index 08ae5c71..427fdbd4 100644 --- a/server/openai-server/internal/server/http.go +++ b/server/openai-server/internal/server/http.go @@ -10,6 +10,7 @@ import ( "server/common/constant/userconfig" "server/common/errors" comHttp "server/common/http" + "server/common/log" "server/common/middleware/jwt" "server/common/middleware/logging" "server/common/middleware/session" @@ -89,8 +90,17 @@ func NewHTTPServer(c *conf.Server, service *service.Service) *http.Server { srv.HandlePrefix("/v1/algorithmmanage", api.NewAlgorithmHandler(service.AlgorithmService, options...)) srv.HandlePrefix("/v1/developmanage", api.NewDevelopHandler(service.DevelopService, options...)) srv.HandleFunc("/v1/trainmanage/trainjob/{id}/task/{taskId}/replica/{replicaIdx}/log", func(w nethttp.ResponseWriter, r *nethttp.Request) { - url, _ := url.Parse(fmt.Sprintf("%s/log/user/trainjob/%s/%s/%s/index.log", r.Host, mux.Vars(r)["id"], mux.Vars(r)["taskId"], mux.Vars(r)["replicaIdx"])) - proxy := httputil.NewSingleHostReverseProxy(url) + proto := "http" + if strings.Contains(r.Proto, "HTTPS") { + proto = "https" + } + url, _ := url.Parse(fmt.Sprintf("%s://%s/log/user/trainjob/%s/%s/%s/index.log", proto, r.Host, mux.Vars(r)["id"], mux.Vars(r)["taskId"], mux.Vars(r)["replicaIdx"])) + log.Info(context.TODO(), url) + proxy := httputil.ReverseProxy{ + Director: func(request *nethttp.Request) { + request.URL = url + }, + } proxy.ServeHTTP(w, r) }) -- 2.34.1 From 31e5605fe7d1d02b81c2df9380f6c680243f84a5 Mon Sep 17 00:00:00 2001 From: linfengjun Date: Thu, 5 May 2022 11:36:32 +0800 Subject: [PATCH 15/23] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E5=BD=93=E5=89=8Dspace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/common/context/context.go | 21 ++ .../common/middleware/session/jwt_session.go | 132 +++++------ server/common/session/context.go | 46 ++-- server/common/session/session.go | 106 ++++----- server/common/session/store.go | 216 +++++++++--------- server/openai-server/api/v1/user.proto | 16 -- server/openai-server/internal/data/data.go | 3 - .../internal/data/session/session.go | 51 ----- server/openai-server/internal/server/http.go | 21 -- .../internal/service/algorithm.go | 102 ++------- server/openai-server/internal/service/auth.go | 20 -- .../openai-server/internal/service/billing.go | 52 ++--- .../openai-server/internal/service/dataset.go | 147 ++++-------- .../openai-server/internal/service/develop.go | 63 ++--- .../openai-server/internal/service/image.go | 40 +--- .../internal/service/jointcloud.go | 37 +-- .../openai-server/internal/service/model.go | 64 +----- .../internal/service/modeldeploy.go | 45 ++-- .../internal/service/resourcespec.go | 27 +-- .../internal/service/trainjob.go | 92 +++----- server/openai-server/internal/service/user.go | 62 +---- 21 files changed, 430 insertions(+), 933 deletions(-) delete mode 100644 server/openai-server/internal/data/session/session.go diff --git a/server/common/context/context.go b/server/common/context/context.go index 96b1f1f8..eaa62464 100644 --- a/server/common/context/context.go +++ b/server/common/context/context.go @@ -15,6 +15,7 @@ const ( CTX_DB_TX_KEY CtxKey = "dbTx" //数据库事务 存在于common.Transaction() CTX_CREATED_AT_KEY CtxKey = "createdAt" CTX_PLATFORM_ID CtxKey = "platformId" //第三方平台Id + CTX_SPACEID_KEY CtxKey = "spaceId" //群组id ) func RequestIdKey() CtxKey { @@ -53,6 +54,26 @@ func UserIdFromContext(ctx context.Context) string { return "" } +func SpaceIdKey() CtxKey { + return CTX_SPACEID_KEY +} + +func SpaceIdToContext(ctx context.Context, val interface{}) context.Context { + return context.WithValue(ctx, SpaceIdKey(), val) +} + +func SpaceIdFromContext(ctx context.Context) string { + id, ok := ctx.Value(SpaceIdKey()).(string) + if ok { + return id + } + return "" +} + +func UserIdAndSpaceIdFromContext(ctx context.Context) (string, string) { + return UserIdFromContext(ctx), SpaceIdFromContext(ctx) +} + func PlatformIdKey() CtxKey { return CTX_PLATFORM_ID } diff --git a/server/common/middleware/session/jwt_session.go b/server/common/middleware/session/jwt_session.go index c485a82f..528e0805 100644 --- a/server/common/middleware/session/jwt_session.go +++ b/server/common/middleware/session/jwt_session.go @@ -1,68 +1,68 @@ package session -import ( - "context" - "net/http" - commctx "server/common/context" - "server/common/errors" - ss "server/common/session" - "strings" - - "github.com/go-kratos/kratos/v2/middleware" - kratosHttp "github.com/go-kratos/kratos/v2/transport/http" -) - -// Option is HTTP logging option. -type Option func(*Options) - -type Options struct { - NoAuthUris []string - Store ss.SessionStore - CheckSession func(ctx context.Context, s *ss.Session) error -} - -// Server is an server logging middleware. -func Server(opts ...Option) middleware.Middleware { - options := Options{} - for _, o := range opts { - o(&options) - } - return func(handler middleware.Handler) middleware.Handler { - return func(ctx context.Context, req interface{}) (interface{}, error) { - var request *http.Request - if info, ok := kratosHttp.FromServerContext(ctx); ok { - request = info.Request - } else { - return handler(ctx, req) - } - - needAuth := true - for _, i := range options.NoAuthUris { - if strings.Contains(request.RequestURI, i) { - needAuth = false - } - } - - if needAuth { - userId := commctx.UserIdFromContext(ctx) - store := options.Store - session, err := store.Get(ctx, userId) - if err != nil { - return nil, errors.Errorf(err, errors.ErrorUserGetAuthSessionFailed) - } - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - if options.CheckSession != nil { - if err := options.CheckSession(ctx, session); err != nil { - return nil, err - } - } - - ctx = ss.SessionToContext(ctx, session) - } - - return handler(ctx, req) - } - } -} +//import ( +// "context" +// "net/http" +// commctx "server/common/context" +// "server/common/errors" +// ss "server/common/session" +// "strings" +// +// "github.com/go-kratos/kratos/v2/middleware" +// kratosHttp "github.com/go-kratos/kratos/v2/transport/http" +//) +// +//// Option is HTTP logging option. +//type Option func(*Options) +// +//type Options struct { +// NoAuthUris []string +// Store ss.SessionStore +// CheckSession func(ctx context.Context, s *ss.Session) error +//} +// +//// Server is an server logging middleware. +//func Server(opts ...Option) middleware.Middleware { +// options := Options{} +// for _, o := range opts { +// o(&options) +// } +// return func(handler middleware.Handler) middleware.Handler { +// return func(ctx context.Context, req interface{}) (interface{}, error) { +// var request *http.Request +// if info, ok := kratosHttp.FromServerContext(ctx); ok { +// request = info.Request +// } else { +// return handler(ctx, req) +// } +// +// needAuth := true +// for _, i := range options.NoAuthUris { +// if strings.Contains(request.RequestURI, i) { +// needAuth = false +// } +// } +// +// if needAuth { +// userId := commctx.UserIdFromContext(ctx) +// store := options.Store +// session, err := store.Get(ctx, userId) +// if err != nil { +// return nil, errors.Errorf(err, errors.ErrorUserGetAuthSessionFailed) +// } +// if session == nil { +// return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) +// } +// if options.CheckSession != nil { +// if err := options.CheckSession(ctx, session); err != nil { +// return nil, err +// } +// } +// +// ctx = ss.SessionToContext(ctx, session) +// } +// +// return handler(ctx, req) +// } +// } +//} diff --git a/server/common/session/context.go b/server/common/session/context.go index be1573a7..acdf5fe0 100644 --- a/server/common/session/context.go +++ b/server/common/session/context.go @@ -1,25 +1,25 @@ package session -import "context" - -type CtxSession string - -const ( - CTX_SESSION_KEY CtxSession = "CtxSessionKey" -) - -func CtxSessionKey() CtxSession { - return CTX_SESSION_KEY -} - -func SessionToContext(ctx context.Context, val interface{}) context.Context { - return context.WithValue(ctx, CtxSessionKey(), val) -} - -func SessionFromContext(ctx context.Context) *Session { - session, ok := ctx.Value(CtxSessionKey()).(*Session) - if ok { - return session - } - return nil -} +//import "context" +// +//type CtxSession string +// +//const ( +// CTX_SESSION_KEY CtxSession = "CtxSessionKey" +//) +// +//func CtxSessionKey() CtxSession { +// return CTX_SESSION_KEY +//} +// +//func SessionToContext(ctx context.Context, val interface{}) context.Context { +// return context.WithValue(ctx, CtxSessionKey(), val) +//} +// +//func SessionFromContext(ctx context.Context) *Session { +// session, ok := ctx.Value(CtxSessionKey()).(*Session) +// if ok { +// return session +// } +// return nil +//} diff --git a/server/common/session/session.go b/server/common/session/session.go index 9aa1b0ad..f29a5376 100644 --- a/server/common/session/session.go +++ b/server/common/session/session.go @@ -1,55 +1,55 @@ package session -import ( - "context" - "server/common/constant" -) - -const ( - SESSION_WORKSPACE = "workspace" -) - -type Session struct { - ctx context.Context `json:"-"` - store SessionStore `json:"-"` - Id string `json:"id"` - UserId string `json:"userId"` - Status int32 `json:"status"` - CreatedAt int64 `json:"createdAt"` - Attributes map[string]string `json:"attributes"` -} - -func (s *Session) GetWorkspace() string { - if workspaceId, ok := s.Attributes[SESSION_WORKSPACE]; !ok { - return constant.SYSTEM_WORKSPACE_DEFAULT - } else { - return workspaceId - } -} - -func (s *Session) SetWorkspace(workspaceId string) error { - if workspaceId == constant.SYSTEM_WORKSPACE_DEFAULT { - delete(s.Attributes, SESSION_WORKSPACE) - } else { - s.Attributes[SESSION_WORKSPACE] = workspaceId - } - return s.sync() -} - -func (s *Session) IsDefaultWorkspace() bool { - if workspaceId, ok := s.Attributes[SESSION_WORKSPACE]; !ok { - return true - } else { - return workspaceId == constant.SYSTEM_WORKSPACE_DEFAULT - } -} - -func (s *Session) sync() error { - if s.store == nil { - return nil - } - if err := s.store.Update(s.ctx, s); err != nil { - return err - } - return nil -} +//import ( +// "context" +// "server/common/constant" +//) +// +//const ( +// SESSION_WORKSPACE = "workspace" +//) +// +//type Session struct { +// ctx context.Context `json:"-"` +// store SessionStore `json:"-"` +// Id string `json:"id"` +// UserId string `json:"userId"` +// Status int32 `json:"status"` +// CreatedAt int64 `json:"createdAt"` +// Attributes map[string]string `json:"attributes"` +//} +// +//func (s *Session) GetWorkspace() string { +// if workspaceId, ok := s.Attributes[SESSION_WORKSPACE]; !ok { +// return constant.SYSTEM_WORKSPACE_DEFAULT +// } else { +// return workspaceId +// } +//} +// +//func (s *Session) SetWorkspace(workspaceId string) error { +// if workspaceId == constant.SYSTEM_WORKSPACE_DEFAULT { +// delete(s.Attributes, SESSION_WORKSPACE) +// } else { +// s.Attributes[SESSION_WORKSPACE] = workspaceId +// } +// return s.sync() +//} +// +//func (s *Session) IsDefaultWorkspace() bool { +// if workspaceId, ok := s.Attributes[SESSION_WORKSPACE]; !ok { +// return true +// } else { +// return workspaceId == constant.SYSTEM_WORKSPACE_DEFAULT +// } +//} +// +//func (s *Session) sync() error { +// if s.store == nil { +// return nil +// } +// if err := s.store.Update(s.ctx, s); err != nil { +// return err +// } +// return nil +//} diff --git a/server/common/session/store.go b/server/common/session/store.go index 7d926cbc..7fc5f6cc 100644 --- a/server/common/session/store.go +++ b/server/common/session/store.go @@ -1,110 +1,110 @@ package session -import ( - "context" - - "net/url" - "server/common/errors" - "server/common/redis" - - "github.com/go-kratos/kratos/v2/log" - redisLib "github.com/go-redis/redis/v8" - jsoniter "github.com/json-iterator/go" -) - -type SessionStore interface { - Create(ctx context.Context, session *Session) error - Get(ctx context.Context, sessionId string) (*Session, error) - Update(ctx context.Context, session *Session) error - Delete(ctx context.Context, sessionId string) error -} - -type SessionStoreConfig struct { - RedisAddr string - RedisUsername string - RedisPassword string - RedisDBIndex string -} - -func NewSessionStore(key string, config SessionStoreConfig, logger log.Logger) SessionStore { - logHelper := log.NewHelper("Session", logger) - - redisUrl := url.URL{ - Scheme: "redis", - Host: config.RedisAddr, - Path: config.RedisDBIndex, - User: url.UserPassword(config.RedisUsername, config.RedisPassword), - } - rdb, err := redis.GetRedisInstance(redisUrl.String()) - if err != nil { - panic(err) - } - - return &RemoteSessionStore{ - StoreKey: key, - config: config, - Instance: rdb, - logger: logHelper, - } -} - -type RemoteSessionStore struct { - StoreKey string - config SessionStoreConfig - Instance *redis.RedisInstance - logger *log.Helper -} - -func (s *RemoteSessionStore) Create(ctx context.Context, session *Session) error { - if session == nil || session.Id == "" { - return errors.Errorf(nil, errors.ErrorSessionIdNotFound) - } - sbytes, err := jsoniter.Marshal(&session) - if err != nil { - return errors.Errorf(err, errors.ErrorJsonMarshal) - } - - _, err = s.Instance.Redis.HSet(ctx, s.StoreKey, session.Id, sbytes).Result() - if err != nil { - return errors.Errorf(err, errors.ErroRedisHSetFailed) - } - return nil -} - -func (s *RemoteSessionStore) Get(ctx context.Context, sessionId string) (*Session, error) { - if sessionId == "" { - return nil, errors.Errorf(nil, errors.ErrorSessionIdNotFound) - } - resultStr, err := s.Instance.Redis.HGet(ctx, s.StoreKey, sessionId).Result() - if err != nil { - if redisLib.Nil == err { - return nil, nil - } - return nil, errors.Errorf(err, errors.ErroRedisHGetFailed) - } - - var session Session - err = jsoniter.Unmarshal([]byte(resultStr), &session) - if err != nil { - return nil, errors.Errorf(err, errors.ErrorJsonUnmarshal) - } - session.ctx = ctx - session.store = s - return &session, nil -} - -func (s *RemoteSessionStore) Update(ctx context.Context, session *Session) error { - return s.Create(ctx, session) -} - -func (s *RemoteSessionStore) Delete(ctx context.Context, sessionId string) error { - if sessionId == "" { - return errors.Errorf(nil, errors.ErrorSessionIdNotFound) - } - - _, err := s.Instance.Redis.HDel(ctx, s.StoreKey, sessionId).Result() - if err != nil { - return errors.Errorf(err, errors.ErroRedisHDelFailed) - } - return nil -} +//import ( +// "context" +// +// "net/url" +// "server/common/errors" +// "server/common/redis" +// +// "github.com/go-kratos/kratos/v2/log" +// redisLib "github.com/go-redis/redis/v8" +// jsoniter "github.com/json-iterator/go" +//) +// +//type SessionStore interface { +// Create(ctx context.Context, session *Session) error +// Get(ctx context.Context, sessionId string) (*Session, error) +// Update(ctx context.Context, session *Session) error +// Delete(ctx context.Context, sessionId string) error +//} +// +//type SessionStoreConfig struct { +// RedisAddr string +// RedisUsername string +// RedisPassword string +// RedisDBIndex string +//} +// +//func NewSessionStore(key string, config SessionStoreConfig, logger log.Logger) SessionStore { +// logHelper := log.NewHelper("Session", logger) +// +// redisUrl := url.URL{ +// Scheme: "redis", +// Host: config.RedisAddr, +// Path: config.RedisDBIndex, +// User: url.UserPassword(config.RedisUsername, config.RedisPassword), +// } +// rdb, err := redis.GetRedisInstance(redisUrl.String()) +// if err != nil { +// panic(err) +// } +// +// return &RemoteSessionStore{ +// StoreKey: key, +// config: config, +// Instance: rdb, +// logger: logHelper, +// } +//} +// +//type RemoteSessionStore struct { +// StoreKey string +// config SessionStoreConfig +// Instance *redis.RedisInstance +// logger *log.Helper +//} +// +//func (s *RemoteSessionStore) Create(ctx context.Context, session *Session) error { +// if session == nil || session.Id == "" { +// return errors.Errorf(nil, errors.ErrorSessionIdNotFound) +// } +// sbytes, err := jsoniter.Marshal(&session) +// if err != nil { +// return errors.Errorf(err, errors.ErrorJsonMarshal) +// } +// +// _, err = s.Instance.Redis.HSet(ctx, s.StoreKey, session.Id, sbytes).Result() +// if err != nil { +// return errors.Errorf(err, errors.ErroRedisHSetFailed) +// } +// return nil +//} +// +//func (s *RemoteSessionStore) Get(ctx context.Context, sessionId string) (*Session, error) { +// if sessionId == "" { +// return nil, errors.Errorf(nil, errors.ErrorSessionIdNotFound) +// } +// resultStr, err := s.Instance.Redis.HGet(ctx, s.StoreKey, sessionId).Result() +// if err != nil { +// if redisLib.Nil == err { +// return nil, nil +// } +// return nil, errors.Errorf(err, errors.ErroRedisHGetFailed) +// } +// +// var session Session +// err = jsoniter.Unmarshal([]byte(resultStr), &session) +// if err != nil { +// return nil, errors.Errorf(err, errors.ErrorJsonUnmarshal) +// } +// session.ctx = ctx +// session.store = s +// return &session, nil +//} +// +//func (s *RemoteSessionStore) Update(ctx context.Context, session *Session) error { +// return s.Create(ctx, session) +//} +// +//func (s *RemoteSessionStore) Delete(ctx context.Context, sessionId string) error { +// if sessionId == "" { +// return errors.Errorf(nil, errors.ErrorSessionIdNotFound) +// } +// +// _, err := s.Instance.Redis.HDel(ctx, s.StoreKey, sessionId).Result() +// if err != nil { +// return errors.Errorf(err, errors.ErroRedisHDelFailed) +// } +// return nil +//} diff --git a/server/openai-server/api/v1/user.proto b/server/openai-server/api/v1/user.proto index 2a15797f..96867d14 100644 --- a/server/openai-server/api/v1/user.proto +++ b/server/openai-server/api/v1/user.proto @@ -20,12 +20,6 @@ service User { get: "/v1/usermanage/user/{userId}/workspace" }; }; - rpc PutUserWorkspace (PutUserWorkspaceRequest) returns (PutUserWorkspaceReply) { - option (google.api.http) = { - put: "/v1/usermanage/user/{userId}/workspace" - body: "*" - }; - }; // 查询用户配置 rpc GetUserConfig (GetUserConfigRequest) returns (GetUserConfigReply) { option (google.api.http) = { @@ -50,7 +44,6 @@ message GetUserInfoRequest { message GetUserInfoReply { UserItem user = 1; - string workspaceId = 2; } message WorkspaceItem { @@ -74,15 +67,6 @@ message ListUserWorkspacesReply { repeated WorkspaceItem workspaces = 1; } -message PutUserWorkspaceRequest { - string userId = 1 [(validate.rules).string = {min_len: 1, max_len: 36}]; - string workspaceId = 2 [(validate.rules).string = {max_len: 36}]; -} - -message PutUserWorkspaceReply { - -} - message GetUserConfigRequest { } diff --git a/server/openai-server/internal/data/data.go b/server/openai-server/internal/data/data.go index e7de24b2..e5d353db 100644 --- a/server/openai-server/internal/data/data.go +++ b/server/openai-server/internal/data/data.go @@ -7,7 +7,6 @@ import ( "server/common/log" "server/common/middleware/ctxcopy" "server/openai-server/internal/conf" - "server/openai-server/internal/data/session" "time" "github.com/go-kratos/kratos/v2/middleware" @@ -24,7 +23,6 @@ type Data struct { DevelopClient api.DevelopClient ModelClient api.ModelServiceClient WorkspaceClient api.WorkspaceServiceClient - SessionClient session.SessionClient ImageClient api.ImageServiceClient DatasetClient api.DatasetServiceClient ResourceSpecClient api.ResourceSpecServiceClient @@ -66,7 +64,6 @@ func NewData(confData *conf.Data, logger log.Logger) (*Data, error) { TrainJobClient: api.NewTrainJobServiceClient(conn), ModelClient: api.NewModelServiceClient(conn), WorkspaceClient: api.NewWorkspaceServiceClient(conn), - SessionClient: session.NewSessionClient(confData, logger), ImageClient: api.NewImageServiceClient(conn), DatasetClient: api.NewDatasetServiceClient(conn), ResourceSpecClient: api.NewResourceSpecServiceClient(conn), diff --git a/server/openai-server/internal/data/session/session.go b/server/openai-server/internal/data/session/session.go deleted file mode 100644 index 25306406..00000000 --- a/server/openai-server/internal/data/session/session.go +++ /dev/null @@ -1,51 +0,0 @@ -package session - -import ( - "context" - "server/common/constant" - "server/common/log" - ss "server/common/session" - "server/openai-server/internal/conf" -) - -type SessionClient interface { - ss.SessionStore -} - -func NewSessionClient(config *conf.Data, logger log.Logger) SessionClient { - logHelper := log.NewHelper("Session", logger) - - storeConfig := ss.SessionStoreConfig{ - RedisAddr: config.Redis.Addr, - RedisPassword: config.Redis.Password, - RedisUsername: config.Redis.Username, - RedisDBIndex: "0", - } - return &SessionClientImpl{ - config: config, - store: ss.NewSessionStore(constant.SESSION_KEY, storeConfig, logger), - logger: logHelper, - } -} - -type SessionClientImpl struct { - config *conf.Data - store ss.SessionStore - logger *log.Helper -} - -func (s *SessionClientImpl) Create(ctx context.Context, session *ss.Session) error { - return s.store.Create(ctx, session) -} - -func (s *SessionClientImpl) Get(ctx context.Context, sessionId string) (*ss.Session, error) { - return s.store.Get(ctx, sessionId) -} - -func (s *SessionClientImpl) Update(ctx context.Context, session *ss.Session) error { - return s.store.Update(ctx, session) -} - -func (s *SessionClientImpl) Delete(ctx context.Context, sessionId string) error { - return s.store.Delete(ctx, sessionId) -} diff --git a/server/openai-server/internal/server/http.go b/server/openai-server/internal/server/http.go index 427fdbd4..11afa80c 100644 --- a/server/openai-server/internal/server/http.go +++ b/server/openai-server/internal/server/http.go @@ -6,16 +6,13 @@ import ( nethttp "net/http" "net/http/httputil" "net/url" - innterapi "server/base-server/api/v1" "server/common/constant/userconfig" "server/common/errors" comHttp "server/common/http" "server/common/log" "server/common/middleware/jwt" "server/common/middleware/logging" - "server/common/middleware/session" "server/common/middleware/validate" - ss "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/service" @@ -49,23 +46,6 @@ func NewHTTPServer(c *conf.Server, service *service.Service) *http.Server { options.NoAuthUris = noAuthUris }) - var sessionOpts = []session.Option{} - sessionOpts = append(sessionOpts, func(options *session.Options) { - options.Store = service.Data.SessionClient - options.NoAuthUris = noAuthUris - options.CheckSession = func(ctx context.Context, s *ss.Session) error { - if s.Status != int32(innterapi.UserStatus_ACTIVITY) { - return errors.Errorf(nil, errors.ErrorAuthenticationForbidden) - } - - //api开放给外部使用,去掉单端登录 - //if comCtx.CreatedAtFromContext(ctx) != s.CreatedAt { - // return errors.Errorf(nil, errors.ErrorTokenRenew) - //} - return nil - } - }) - handleOptions := comHttp.NewHandleOptions() options := []http.HandleOption{ http.Middleware( @@ -74,7 +54,6 @@ func NewHTTPServer(c *conf.Server, service *service.Service) *http.Server { tracing.Server(), logging.Server(), jwt.Server(jwtOpts...), - session.Server(sessionOpts...), checkJointCloudPerm(service), validate.Server(), ), diff --git a/server/openai-server/internal/service/algorithm.go b/server/openai-server/internal/service/algorithm.go index ca0993c7..6b39f0a6 100644 --- a/server/openai-server/internal/service/algorithm.go +++ b/server/openai-server/internal/service/algorithm.go @@ -7,7 +7,6 @@ import ( commctx "server/common/context" "server/common/errors" "server/common/log" - ss "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -106,11 +105,7 @@ func (s *AlgorithmService) ListPreAlgorithm(ctx context.Context, req *api.ListPr // 查询我的算法列表 func (s *AlgorithmService) ListMyAlgorithm(ctx context.Context, req *api.ListMyAlgorithmRequest) (*api.ListMyAlgorithmReply, error) { - - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.ListMyAlgorithm(ctx, &innterapi.ListMyAlgorithmRequest{ SpaceId: spaceId, @@ -142,10 +137,7 @@ func (s *AlgorithmService) ListMyAlgorithm(ctx context.Context, req *api.ListMyA // 查询公共算法列表 func (s *AlgorithmService) ListCommAlgorithm(ctx context.Context, req *api.ListCommAlgorithmRequest) (*api.ListCommAlgorithmReply, error) { - _, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.ListCommAlgorithm(ctx, &innterapi.ListCommAlgorithmRequest{ SpaceId: spaceId, @@ -176,11 +168,7 @@ func (s *AlgorithmService) ListCommAlgorithm(ctx context.Context, req *api.ListC // 查询算法版本列表 func (s *AlgorithmService) ListAlgorithmVersion(ctx context.Context, req *api.ListAlgorithmVersionRequest) (*api.ListAlgorithmVersionReply, error) { - - _, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.ListAlgorithmVersion(ctx, &innterapi.ListAlgorithmVersionRequest{ AlgorithmId: req.AlgorithmId, @@ -227,10 +215,7 @@ func (s *AlgorithmService) ListAlgorithmVersion(ctx context.Context, req *api.Li // 新增我的算法版本 func (s *AlgorithmService) AddMyAlgorithmVersion(ctx context.Context, req *api.AddMyAlgorithmVersionRequest) (*api.AddMyAlgorithmVersionReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.AddMyAlgorithmVersion(ctx, &innterapi.AddMyAlgorithmVersionRequest{ SpaceId: spaceId, @@ -253,11 +238,7 @@ func (s *AlgorithmService) AddMyAlgorithmVersion(ctx context.Context, req *api.A // 查询公共算法版本列表 func (s *AlgorithmService) ListCommAlgorithmVersion(ctx context.Context, req *api.ListCommAlgorithmVersionRequest) (*api.ListCommAlgorithmVersionReply, error) { - - _, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.ListCommAlgorithmVersion(ctx, &innterapi.ListCommAlgorithmVersionRequest{ SpaceId: spaceId, @@ -289,11 +270,7 @@ func (s *AlgorithmService) ListCommAlgorithmVersion(ctx context.Context, req *ap // 分享算法版本到公共算法 func (s *AlgorithmService) ShareAlgorithmVersion(ctx context.Context, req *api.ShareAlgorithmVersionRequest) (*api.ShareAlgorithmVersionReply, error) { - - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) ShareSpaceIdList := []string{} ShareSpaceIdList = append(ShareSpaceIdList, spaceId) @@ -316,11 +293,7 @@ func (s *AlgorithmService) ShareAlgorithmVersion(ctx context.Context, req *api.S // 取消分享算法版本到公共算法 func (s *AlgorithmService) CloseShareAlgorithmVersion(ctx context.Context, req *api.CloseShareAlgorithmVersionRequest) (*api.CloseShareAlgorithmVersionReply, error) { - - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) ShareSpaceIdList := []string{} ShareSpaceIdList = append(ShareSpaceIdList, spaceId) @@ -343,10 +316,7 @@ func (s *AlgorithmService) CloseShareAlgorithmVersion(ctx context.Context, req * // 删除我的算法版本 func (s *AlgorithmService) DeleteMyAlgorithmVersion(ctx context.Context, req *api.DeleteMyAlgorithmVersionRequest) (*api.DeleteMyAlgorithmVersionReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.DeleteMyAlgorithmVersion(ctx, &innterapi.DeleteMyAlgorithmVersionRequest{ SpaceId: spaceId, @@ -365,11 +335,7 @@ func (s *AlgorithmService) DeleteMyAlgorithmVersion(ctx context.Context, req *ap // 删除我的算法 func (s *AlgorithmService) DeleteMyAlgorithm(ctx context.Context, req *api.DeleteMyAlgorithmRequest) (*api.DeleteMyAlgorithmReply, error) { - - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.DeleteMyAlgorithm(ctx, &innterapi.DeleteMyAlgorithmRequest{ SpaceId: spaceId, @@ -404,11 +370,7 @@ func (s *AlgorithmService) DownloadAlgorithmVersionCompress(ctx context.Context, // 复制算法 func (s *AlgorithmService) CopyAlgorithmVersion(ctx context.Context, req *api.CopyAlgorithmVersionRequest) (*api.CopyAlgorithmVersionReply, error) { - - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.CopyAlgorithmVersion(ctx, &innterapi.CopyAlgorithmVersionRequest{ SpaceId: spaceId, @@ -449,10 +411,7 @@ func (s *AlgorithmService) DownloadAlgorithmVersion(ctx context.Context, req *ap // 新增我的算法 func (s *AlgorithmService) AddMyAlgorithm(ctx context.Context, req *api.AddMyAlgorithmRequest) (*api.AddMyAlgorithmReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.AddAlgorithm(ctx, &innterapi.AddAlgorithmRequest{ SpaceId: spaceId, UserId: userId, @@ -476,10 +435,7 @@ func (s *AlgorithmService) AddMyAlgorithm(ctx context.Context, req *api.AddMyAlg // 上传算法 func (s *AlgorithmService) UploadAlgorithm(ctx context.Context, req *api.UploadAlgorithmRequest) (*api.UploadAlgorithmReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.UploadAlgorithm(ctx, &innterapi.UploadAlgorithmRequest{ SpaceId: spaceId, @@ -500,11 +456,7 @@ func (s *AlgorithmService) UploadAlgorithm(ctx context.Context, req *api.UploadA // 上传算法确认 func (s *AlgorithmService) ConfirmUploadAlgorithm(ctx context.Context, req *api.ConfirmUploadAlgorithmRequest) (*api.ConfirmUploadAlgorithmReply, error) { - - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.ConfirmUploadAlgorithm(ctx, &innterapi.ConfirmUploadAlgorithmRequest{ SpaceId: spaceId, @@ -565,10 +517,7 @@ func (s *AlgorithmService) BatchQueryAlgorithm(ctx context.Context, req *api.Bat // 修改我的算法 func (s *AlgorithmService) UpdateMyAlgorithm(ctx context.Context, req *api.UpdateMyAlgorithmRequest) (*api.UpdateMyAlgorithmReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.UpdateAlgorithm(ctx, &innterapi.UpdateAlgorithmRequest{ SpaceId: spaceId, @@ -591,10 +540,7 @@ func (s *AlgorithmService) UpdateMyAlgorithm(ctx context.Context, req *api.Updat // 修改我的算法版本 func (s *AlgorithmService) UpdatePreAlgorithmVersion(ctx context.Context, req *api.UpdateMyAlgorithmVersionRequest) (*api.UpdateMyAlgorithmVersionReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.AlgorithmClient.UpdateAlgorithmVersion(ctx, &innterapi.UpdateAlgorithmVersionRequest{ SpaceId: spaceId, @@ -685,21 +631,3 @@ func (s *AlgorithmService) myAlgorithmTransfer(ctx context.Context, algorithm *i IsShared: isShared, } } - -func (s *AlgorithmService) getUserIdAndSpaceId(ctx context.Context) (string, string, error) { - userId := commctx.UserIdFromContext(ctx) - if userId == "" { - err := errors.Errorf(nil, errors.ErrorInvalidRequestParameter) - s.log.Errorw(ctx, err) - return "", "", err - } - - session := ss.SessionFromContext(ctx) - if session == nil { - err := errors.Errorf(nil, errors.ErrorUserNoAuthSession) - s.log.Errorw(ctx, err) - return "", "", err - } - - return userId, session.GetWorkspace(), nil -} diff --git a/server/openai-server/internal/service/auth.go b/server/openai-server/internal/service/auth.go index 9fbc189f..0368d24f 100644 --- a/server/openai-server/internal/service/auth.go +++ b/server/openai-server/internal/service/auth.go @@ -3,11 +3,9 @@ package service import ( "context" innterapi "server/base-server/api/v1" - commctx "server/common/context" "server/common/errors" "server/common/jwt" "server/common/log" - ss "server/common/session" "server/common/utils" api "server/openai-server/api/v1" "server/openai-server/internal/conf" @@ -55,20 +53,6 @@ func (s *AuthService) GetToken(ctx context.Context, req *api.GetTokenRequest) (* if err != nil { return nil, err } - tokenClaim, err := jwt.ParseToken(token, s.conf.Server.Http.JwtSecrect) - if err != nil { - return nil, err - } - // create user online session - if err = s.data.SessionClient.Create(ctx, &ss.Session{ - Id: reply.User.Id, - UserId: reply.User.Id, - Status: int32(reply.User.Status), - Attributes: make(map[string]string), - CreatedAt: tokenClaim.CreatedAt, - }); err != nil { - return nil, err - } return &api.GetTokenReply{ Token: token, @@ -77,9 +61,5 @@ func (s *AuthService) GetToken(ctx context.Context, req *api.GetTokenRequest) (* } func (s *AuthService) DeleteToken(ctx context.Context, req *api.DeleteTokenRequest) (*api.DeleteTokenReply, error) { - userId := commctx.UserIdFromContext(ctx) - if err := s.data.SessionClient.Delete(ctx, userId); err != nil { - return nil, err - } return &api.DeleteTokenReply{}, nil } diff --git a/server/openai-server/internal/service/billing.go b/server/openai-server/internal/service/billing.go index 87ce666e..9dcb1ed3 100644 --- a/server/openai-server/internal/service/billing.go +++ b/server/openai-server/internal/service/billing.go @@ -3,9 +3,9 @@ package service import ( "context" innerapi "server/base-server/api/v1" + commctx "server/common/context" "server/common/errors" "server/common/log" - "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -33,13 +33,9 @@ func NewBillingService(conf *conf.Bootstrap, logger log.Logger, data *data.Data) } func (s *billingService) GetBillingUser(ctx context.Context, req *api.GetBillingUserRequest) (*api.GetBillingUserReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) owner, err := s.data.BillingClient.GetBillingOwner(ctx, &innerapi.GetBillingOwnerRequest{ - OwnerId: session.UserId, + OwnerId: userId, OwnerType: innerapi.BillingOwnerType_BOT_USER, }) if err != nil { @@ -53,17 +49,13 @@ func (s *billingService) GetBillingUser(ctx context.Context, req *api.GetBilling }}, nil } func (s *billingService) ListUserPayRecord(ctx context.Context, req *api.ListUserPayRecordRequest) (*api.ListUserPayRecordReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ListBillingPayRecordRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.OwnerId = session.UserId + innerReq.OwnerId = userId innerReq.OwnerType = innerapi.BillingOwnerType_BOT_USER innerReply, err := s.data.BillingClient.ListBillingPayRecord(ctx, innerReq) @@ -80,17 +72,13 @@ func (s *billingService) ListUserPayRecord(ctx context.Context, req *api.ListUse return reply, nil } func (s *billingService) ListUserRechargeRecord(ctx context.Context, req *api.ListUserRechargeRecordRequest) (*api.ListUserRechargeRecordReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ListBillingRechargeRecordRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.OwnerId = session.UserId + innerReq.OwnerId = userId innerReq.OwnerType = innerapi.BillingOwnerType_BOT_USER innerReply, err := s.data.BillingClient.ListBillingRechargeRecord(ctx, innerReq) @@ -107,13 +95,9 @@ func (s *billingService) ListUserRechargeRecord(ctx context.Context, req *api.Li return reply, nil } func (s *billingService) GetBillingSpace(ctx context.Context, req *api.GetBillingSpaceRequest) (*api.GetBillingSpaceReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) owner, err := s.data.BillingClient.GetBillingOwner(ctx, &innerapi.GetBillingOwnerRequest{ - OwnerId: session.GetWorkspace(), + OwnerId: spaceId, OwnerType: innerapi.BillingOwnerType_BOT_SPACE, }) if err != nil { @@ -127,19 +111,15 @@ func (s *billingService) GetBillingSpace(ctx context.Context, req *api.GetBillin }}, nil } func (s *billingService) ListSpacePayRecord(ctx context.Context, req *api.ListSpacePayRecordRequest) (*api.ListSpacePayRecordReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ListBillingPayRecordRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.OwnerId = session.GetWorkspace() + innerReq.OwnerId = spaceId innerReq.OwnerType = innerapi.BillingOwnerType_BOT_SPACE - innerReq.ExtraInfo = map[string]string{"userId": session.UserId} + innerReq.ExtraInfo = map[string]string{"userId": userId} innerReply, err := s.data.BillingClient.ListBillingPayRecord(ctx, innerReq) if err != nil { @@ -155,17 +135,13 @@ func (s *billingService) ListSpacePayRecord(ctx context.Context, req *api.ListSp return reply, nil } func (s *billingService) ListSpaceRechargeRecord(ctx context.Context, req *api.ListSpaceRechargeRecordRequest) (*api.ListSpaceRechargeRecordReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ListBillingRechargeRecordRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.OwnerId = session.GetWorkspace() + innerReq.OwnerId = spaceId innerReq.OwnerType = innerapi.BillingOwnerType_BOT_SPACE innerReply, err := s.data.BillingClient.ListBillingRechargeRecord(ctx, innerReq) diff --git a/server/openai-server/internal/service/dataset.go b/server/openai-server/internal/service/dataset.go index 54dfd42f..582bd1c2 100644 --- a/server/openai-server/internal/service/dataset.go +++ b/server/openai-server/internal/service/dataset.go @@ -6,8 +6,6 @@ import ( commctx "server/common/context" "server/common/errors" "server/common/log" - "server/common/session" - ss "server/common/session" "server/common/utils/collections/set" api "server/openai-server/api/v1" "server/openai-server/internal/conf" @@ -31,27 +29,27 @@ func NewDatasetService(conf *conf.Bootstrap, logger log.Logger, data *data.Data) } } -func (s *DatasetService) checkDatasetPerm(ctx context.Context, datasetId string, session *session.Session) error { +func (s *DatasetService) checkDatasetPerm(ctx context.Context, datasetId string, userId string) error { reply, err := s.data.DatasetClient.GetDataset(ctx, &innerapi.GetDatasetRequest{Id: datasetId}) if err != nil { return err } - if reply.Dataset.UserId != session.UserId { + if reply.Dataset.UserId != userId { return errors.Errorf(nil, errors.ErrorNotAuthorized) } return nil } -func (s *DatasetService) checkVersionQueryPerm(ctx context.Context, datasetId string, version string, session *session.Session) error { +func (s *DatasetService) checkVersionQueryPerm(ctx context.Context, datasetId string, version string, userId string, spaceId string) error { reply, err := s.data.DatasetClient.GetDatasetVersion(ctx, &innerapi.GetDatasetVersionRequest{DatasetId: datasetId, Version: version}) if err != nil { return err } - if session.UserId != reply.Dataset.UserId && reply.Dataset.SourceType == innerapi.DatasetSourceType_DST_USER { + if userId != reply.Dataset.UserId && reply.Dataset.SourceType == innerapi.DatasetSourceType_DST_USER { hasPerm := false for _, i := range reply.VersionAccesses { - if session.GetWorkspace() == i.SpaceId { + if spaceId == i.SpaceId { hasPerm = true } } @@ -109,14 +107,11 @@ func (s *DatasetService) ListDatasetApply(ctx context.Context, req *api.ListData } func (s *DatasetService) CreateDataset(ctx context.Context, req *api.CreateDatasetRequest) (*api.CreateDatasetReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.CreateDatasetRequest{ - SpaceId: session.GetWorkspace(), - UserId: session.UserId, + SpaceId: spaceId, + UserId: userId, SourceType: innerapi.DatasetSourceType_DST_USER, Name: req.Name, TypeId: req.TypeId, @@ -139,10 +134,7 @@ func (s *DatasetService) CreateDataset(ctx context.Context, req *api.CreateDatas } func (s *DatasetService) ListMyDataset(ctx context.Context, req *api.ListMyDatasetRequest) (*api.ListMyDatasetReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ListDatasetRequest{} err := copier.Copy(innerReq, req) @@ -150,8 +142,8 @@ func (s *DatasetService) ListMyDataset(ctx context.Context, req *api.ListMyDatas return nil, errors.Errorf(err, errors.ErrorStructCopy) } innerReq.SourceType = innerapi.DatasetSourceType_DST_USER - innerReq.UserId = session.UserId - innerReq.SpaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.SpaceId = spaceId innerReply, err := s.data.DatasetClient.ListDataset(ctx, innerReq) if err != nil { @@ -168,11 +160,6 @@ func (s *DatasetService) ListMyDataset(ctx context.Context, req *api.ListMyDatas } func (s *DatasetService) ListPreDataset(ctx context.Context, req *api.ListPreDatasetRequest) (*api.ListPreDatasetReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - innerReq := &innerapi.ListDatasetRequest{} err := copier.Copy(innerReq, req) if err != nil { @@ -195,10 +182,7 @@ func (s *DatasetService) ListPreDataset(ctx context.Context, req *api.ListPreDat } func (s *DatasetService) ListCommDataset(ctx context.Context, req *api.ListCommDatasetRequest) (*api.ListCommDatasetReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ListCommDatasetRequest{} err := copier.Copy(innerReq, req) @@ -206,7 +190,7 @@ func (s *DatasetService) ListCommDataset(ctx context.Context, req *api.ListCommD return nil, errors.Errorf(err, errors.ErrorStructCopy) } innerReq.SourceType = innerapi.DatasetSourceType_DST_USER - innerReq.ShareSpaceId = session.GetWorkspace() + innerReq.ShareSpaceId = spaceId innerReply, err := s.data.DatasetClient.ListCommDataset(ctx, innerReq) if err != nil { @@ -251,12 +235,9 @@ func (s *DatasetService) listUserInCond(ctx context.Context, ids []string) (map[ } func (s *DatasetService) DeleteDataset(ctx context.Context, req *api.DeleteDatasetRequest) (*api.DeleteDatasetReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkDatasetPerm(ctx, req.Id, session) + err := s.checkDatasetPerm(ctx, req.Id, userId) if err != nil { return nil, err } @@ -272,12 +253,9 @@ func (s *DatasetService) DeleteDataset(ctx context.Context, req *api.DeleteDatas } func (s *DatasetService) CreateDatasetVersion(ctx context.Context, req *api.CreateDatasetVersionRequest) (*api.CreateDatasetVersionReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkDatasetPerm(ctx, req.DatasetId, session) + err := s.checkDatasetPerm(ctx, req.DatasetId, userId) if err != nil { return nil, err } @@ -297,19 +275,16 @@ func (s *DatasetService) CreateDatasetVersion(ctx context.Context, req *api.Crea } func (s *DatasetService) ListDatasetVersion(ctx context.Context, req *api.ListDatasetVersionRequest) (*api.ListDatasetVersionReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) if req.Shared { - return s.listCommDatasetVersion(ctx, session, req) + return s.listCommDatasetVersion(ctx, spaceId, req) } else { - return s.listDatasetVersion(ctx, session, req) + return s.listDatasetVersion(ctx, spaceId, req) } } -func (s *DatasetService) listDatasetVersion(ctx context.Context, session *session.Session, req *api.ListDatasetVersionRequest) (*api.ListDatasetVersionReply, error) { +func (s *DatasetService) listDatasetVersion(ctx context.Context, spaceId string, req *api.ListDatasetVersionRequest) (*api.ListDatasetVersionReply, error) { reply := &api.ListDatasetVersionReply{} innerReq := &innerapi.ListDatasetVersionRequest{} @@ -328,7 +303,7 @@ func (s *DatasetService) listDatasetVersion(ctx context.Context, session *sessio if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - commReq.ShareSpaceId = session.GetWorkspace() + commReq.ShareSpaceId = spaceId commReply, err := s.data.DatasetClient.ListCommDatasetVersion(ctx, commReq) if err != nil { return nil, err @@ -351,7 +326,7 @@ func (s *DatasetService) listDatasetVersion(ctx context.Context, session *sessio return reply, nil } -func (s *DatasetService) listCommDatasetVersion(ctx context.Context, session *session.Session, req *api.ListDatasetVersionRequest) (*api.ListDatasetVersionReply, error) { +func (s *DatasetService) listCommDatasetVersion(ctx context.Context, spaceId string, req *api.ListDatasetVersionRequest) (*api.ListDatasetVersionReply, error) { reply := &api.ListDatasetVersionReply{} innerReq := &innerapi.ListCommDatasetVersionRequest{} @@ -359,7 +334,7 @@ func (s *DatasetService) listCommDatasetVersion(ctx context.Context, session *se if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.ShareSpaceId = session.GetWorkspace() + innerReq.ShareSpaceId = spaceId innerReply, err := s.data.DatasetClient.ListCommDatasetVersion(ctx, innerReq) if err != nil { @@ -379,12 +354,9 @@ func (s *DatasetService) listCommDatasetVersion(ctx context.Context, session *se } func (s *DatasetService) DeleteDatasetVersion(ctx context.Context, req *api.DeleteDatasetVersionRequest) (*api.DeleteDatasetVersionReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkDatasetPerm(ctx, req.DatasetId, session) + err := s.checkDatasetPerm(ctx, req.DatasetId, userId) if err != nil { return nil, err } @@ -401,12 +373,9 @@ func (s *DatasetService) DeleteDatasetVersion(ctx context.Context, req *api.Dele } func (s *DatasetService) ShareDatasetVersion(ctx context.Context, req *api.ShareDatasetVersionRequest) (*api.ShareDatasetVersionReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkDatasetPerm(ctx, req.DatasetId, session) + err := s.checkDatasetPerm(ctx, req.DatasetId, userId) if err != nil { return nil, err } @@ -414,7 +383,7 @@ func (s *DatasetService) ShareDatasetVersion(ctx context.Context, req *api.Share reply, err := s.data.DatasetClient.ShareDatasetVersion(ctx, &innerapi.ShareDatasetVersionRequest{ DatasetId: req.DatasetId, Version: req.Version, - ShareSpaceId: session.GetWorkspace(), + ShareSpaceId: spaceId, }) if err != nil { return nil, err @@ -424,12 +393,9 @@ func (s *DatasetService) ShareDatasetVersion(ctx context.Context, req *api.Share } func (s *DatasetService) CloseShareDatasetVersion(ctx context.Context, req *api.CloseShareDatasetVersionRequest) (*api.CloseShareDatasetVersionReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkDatasetPerm(ctx, req.DatasetId, session) + err := s.checkDatasetPerm(ctx, req.DatasetId, userId) if err != nil { return nil, err } @@ -437,7 +403,7 @@ func (s *DatasetService) CloseShareDatasetVersion(ctx context.Context, req *api. reply, err := s.data.DatasetClient.CloseShareDatasetVersion(ctx, &innerapi.CloseShareDatasetVersionRequest{ DatasetId: req.DatasetId, Version: req.Version, - ShareSpaceId: session.GetWorkspace(), + ShareSpaceId: spaceId, }) if err != nil { return nil, err @@ -447,12 +413,9 @@ func (s *DatasetService) CloseShareDatasetVersion(ctx context.Context, req *api. } func (s *DatasetService) ConfirmUploadDatasetVersion(ctx context.Context, req *api.ConfirmUploadDatasetVersionRequest) (*api.ConfirmUploadDatasetVersionReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkDatasetPerm(ctx, req.DatasetId, session) + err := s.checkDatasetPerm(ctx, req.DatasetId, userId) if err != nil { return nil, err } @@ -470,12 +433,9 @@ func (s *DatasetService) ConfirmUploadDatasetVersion(ctx context.Context, req *a } func (s *DatasetService) UploadDatasetVersion(ctx context.Context, req *api.UploadDatasetVersionRequest) (*api.UploadDatasetVersionReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkDatasetPerm(ctx, req.DatasetId, session) + err := s.checkDatasetPerm(ctx, req.DatasetId, userId) if err != nil { return nil, err } @@ -496,12 +456,9 @@ func (s *DatasetService) UploadDatasetVersion(ctx context.Context, req *api.Uplo } func (s *DatasetService) ListDatasetVersionFile(ctx context.Context, req *api.ListDatasetVersionFileRequest) (*api.ListDatasetVersionFileReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkVersionQueryPerm(ctx, req.DatasetId, req.Version, session) + err := s.checkVersionQueryPerm(ctx, req.DatasetId, req.Version, userId, spaceId) if err != nil { return nil, err } @@ -525,10 +482,7 @@ func (s *DatasetService) ListDatasetVersionFile(ctx context.Context, req *api.Li } func (s *DatasetService) UpdateMyDataset(ctx context.Context, req *api.UpdateMyDatasetRequest) (*api.UpdateMyDatasetReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.DatasetClient.UpdateDataset(ctx, &innerapi.UpdateDatasetRequest{ SpaceId: spaceId, @@ -549,10 +503,7 @@ func (s *DatasetService) UpdateMyDataset(ctx context.Context, req *api.UpdateMyD } func (s *DatasetService) UpdateMyDatasetVersion(ctx context.Context, req *api.UpdateMyDatasetVersionRequest) (*api.UpdateMyDatasetVersionReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.DatasetClient.UpdateDatasetVersion(ctx, &innerapi.UpdateDatasetVersionRequest{ SpaceId: spaceId, @@ -570,21 +521,3 @@ func (s *DatasetService) UpdateMyDatasetVersion(ctx context.Context, req *api.Up UpdatedAt: reply.UpdatedAt, }, nil } - -func (s *DatasetService) getUserIdAndSpaceId(ctx context.Context) (string, string, error) { - userId := commctx.UserIdFromContext(ctx) - if userId == "" { - err := errors.Errorf(nil, errors.ErrorInvalidRequestParameter) - s.log.Errorw(ctx, err) - return "", "", err - } - - session := ss.SessionFromContext(ctx) - if session == nil { - err := errors.Errorf(nil, errors.ErrorUserNoAuthSession) - s.log.Errorw(ctx, err) - return "", "", err - } - - return userId, session.GetWorkspace(), nil -} diff --git a/server/openai-server/internal/service/develop.go b/server/openai-server/internal/service/develop.go index 99c1506b..a96400d1 100644 --- a/server/openai-server/internal/service/develop.go +++ b/server/openai-server/internal/service/develop.go @@ -3,9 +3,9 @@ package service import ( "context" innerapi "server/base-server/api/v1" + commctx "server/common/context" "server/common/errors" "server/common/log" - "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -29,18 +29,15 @@ func NewDevelopService(conf *conf.Bootstrap, logger log.Logger, data *data.Data) } func (s *DevelopService) CreateNotebook(ctx context.Context, req *api.CreateNotebookRequest) (*api.CreateNotebookReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.CreateNotebookRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, err } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.DevelopClient.CreateNotebook(ctx, innerReq) if err != nil { @@ -63,12 +60,9 @@ func (s *DevelopService) checkPermission(ctx context.Context, notebookId string, } func (s *DevelopService) StartNotebook(ctx context.Context, req *api.StartNotebookRequest) (*api.StartNotebookReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkPermission(ctx, req.Id, session.UserId) + err := s.checkPermission(ctx, req.Id, userId) if err != nil { return nil, err } @@ -82,12 +76,9 @@ func (s *DevelopService) StartNotebook(ctx context.Context, req *api.StartNotebo } func (s *DevelopService) StopNotebook(ctx context.Context, req *api.StopNotebookRequest) (*api.StopNotebookReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkPermission(ctx, req.Id, session.UserId) + err := s.checkPermission(ctx, req.Id, userId) if err != nil { return nil, err } @@ -101,12 +92,9 @@ func (s *DevelopService) StopNotebook(ctx context.Context, req *api.StopNotebook } func (s *DevelopService) DeleteNotebook(ctx context.Context, req *api.DeleteNotebookRequest) (*api.DeleteNotebookReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkPermission(ctx, req.Id, session.UserId) + err := s.checkPermission(ctx, req.Id, userId) if err != nil { return nil, err } @@ -120,18 +108,15 @@ func (s *DevelopService) DeleteNotebook(ctx context.Context, req *api.DeleteNote } func (s *DevelopService) ListNotebook(ctx context.Context, req *api.ListNotebookRequest) (*api.ListNotebookReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ListNotebookRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.DevelopClient.ListNotebook(ctx, innerReq) if err != nil { @@ -148,11 +133,6 @@ func (s *DevelopService) ListNotebook(ctx context.Context, req *api.ListNotebook } func (s *DevelopService) QueryNotebook(ctx context.Context, req *api.QueryNotebookRequest) (*api.QueryNotebookReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - innerReq := &innerapi.GetNotebookRequest{} err := copier.Copy(innerReq, req) if err != nil { @@ -175,11 +155,6 @@ func (s *DevelopService) QueryNotebook(ctx context.Context, req *api.QueryNotebo // Notebook事件列表 func (s *DevelopService) GetNotebookEventList(ctx context.Context, req *api.NotebookEventListRequest) (*api.NotebookEventListReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - innerReq := &innerapi.NotebookEventListRequest{} err := copier.Copy(innerReq, req) if err != nil { @@ -201,11 +176,6 @@ func (s *DevelopService) GetNotebookEventList(ctx context.Context, req *api.Note // 保存notebook func (s *DevelopService) SaveNotebook(ctx context.Context, req *api.SaveNotebookRequest) (*api.SaveNotebookReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - sReq := &innerapi.SaveNotebookRequest{ NotebookId: req.NotebookId, TaskName: req.TaskName, @@ -220,12 +190,9 @@ func (s *DevelopService) SaveNotebook(ctx context.Context, req *api.SaveNotebook } func (s *DevelopService) ListNotebookEventRecord(ctx context.Context, req *api.ListNotebookEventRecordRequest) (*api.ListNotebookEventRecordReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkPermission(ctx, req.NotebookId, session.UserId) + err := s.checkPermission(ctx, req.NotebookId, userId) if err != nil { return nil, err } diff --git a/server/openai-server/internal/service/image.go b/server/openai-server/internal/service/image.go index c8d8bf37..6cdfbb5d 100644 --- a/server/openai-server/internal/service/image.go +++ b/server/openai-server/internal/service/image.go @@ -6,7 +6,6 @@ import ( commctx "server/common/context" "server/common/errors" "server/common/log" - ss "server/common/session" "server/common/utils/collections/set" pb "server/openai-server/api/v1" "server/openai-server/internal/conf" @@ -70,11 +69,7 @@ func (s *ImageService) ListPreImage(ctx context.Context, req *pb.ListPreImageReq } func (s *ImageService) ListUserImage(ctx context.Context, req *pb.ListUserImageRequest) (*pb.ListUserImageReply, error) { - userId := commctx.UserIdFromContext(ctx) - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ImageClient.ListUserImage(ctx, &innterapi.ListUserImageRequest{ PageSize: req.PageSize, @@ -82,7 +77,7 @@ func (s *ImageService) ListUserImage(ctx context.Context, req *pb.ListUserImageR SortBy: req.SortBy, OrderBy: req.OrderBy, UserId: userId, - SpaceId: session.GetWorkspace(), + SpaceId: spaceId, ImageNameLike: req.ImageNameLike, NameVerLike: req.NameVerLike, SourceType: innterapi.ImageSourceType(req.SourceType), @@ -159,17 +154,14 @@ func (s *ImageService) ListUserImage(ctx context.Context, req *pb.ListUserImageR } func (s *ImageService) ListCommImage(ctx context.Context, req *pb.ListCommImageRequest) (*pb.ListCommImageReply, error) { - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ImageClient.ListCommImage(ctx, &innterapi.ListCommImageRequest{ PageSize: req.PageSize, PageIndex: req.PageIndex, SortBy: req.SortBy, OrderBy: req.OrderBy, - SpaceId: session.GetWorkspace(), + SpaceId: spaceId, ImageNameLike: req.ImageNameLike, NameVerLike: req.NameVerLike, SourceType: innterapi.ImageSourceType(req.SourceType), @@ -223,11 +215,7 @@ func (s *ImageService) ListCommImage(ctx context.Context, req *pb.ListCommImageR } func (s *ImageService) AddImage(ctx context.Context, req *pb.AddImageRequest) (*pb.AddImageReply, error) { - userId := commctx.UserIdFromContext(ctx) - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ImageClient.AddImage(ctx, &innterapi.AddImageRequest{ ImageName: req.ImageName, @@ -237,7 +225,7 @@ func (s *ImageService) AddImage(ctx context.Context, req *pb.AddImageRequest) (* SourceType: innterapi.ImageSourceType(req.SourceType), IsPrefab: innterapi.ImageIsPrefab_IMAGE_IS_PREFAB_NO, UserId: userId, - SpaceId: session.GetWorkspace(), + SpaceId: spaceId, }) if err != nil { @@ -320,12 +308,8 @@ func (s *ImageService) UpdateImage(ctx context.Context, req *pb.UpdateImageReque } func (s *ImageService) ShareImage(ctx context.Context, req *pb.ShareImageRequest) (*pb.ShareImageReply, error) { - userId := commctx.UserIdFromContext(ctx) - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - reply, err := s.data.ImageClient.ShareImage(ctx, &innterapi.ShareImageRequest{ImageId: req.ImageId, UserId: userId, SpaceId: session.GetWorkspace()}) + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) + reply, err := s.data.ImageClient.ShareImage(ctx, &innterapi.ShareImageRequest{ImageId: req.ImageId, UserId: userId, SpaceId: spaceId}) if err != nil { return nil, err } @@ -333,15 +317,11 @@ func (s *ImageService) ShareImage(ctx context.Context, req *pb.ShareImageRequest } func (s *ImageService) CloseShareImage(ctx context.Context, req *pb.CloseShareImageRequest) (*pb.CloseShareImageReply, error) { - userId := commctx.UserIdFromContext(ctx) - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ImageClient.CloseShareImage(ctx, &innterapi.CloseShareImageRequest{ ImageId: req.ImageId, UserId: userId, - SpaceId: session.GetWorkspace(), + SpaceId: spaceId, }) if err != nil { return nil, err diff --git a/server/openai-server/internal/service/jointcloud.go b/server/openai-server/internal/service/jointcloud.go index bbdb4a65..44758334 100644 --- a/server/openai-server/internal/service/jointcloud.go +++ b/server/openai-server/internal/service/jointcloud.go @@ -5,8 +5,6 @@ import ( innerapi "server/base-server/api/v1" commctx "server/common/context" "server/common/errors" - "server/common/session" - ss "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -136,18 +134,15 @@ func (s *JointCloudService) ListJointCloudInterpreterVersion(ctx context.Context //创建训练任务 func (s *JointCloudService) JointCloudTrainJob(ctx context.Context, req *api.JointCloudTrainJobRequest) (*api.JointCloudTrainJobReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.JointCloudTrainJobRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.JointCloudClient.TrainJob(ctx, innerReq) if err != nil { @@ -164,10 +159,7 @@ func (s *JointCloudService) ListJointCloudJob(ctx context.Context, req *api.List return nil, errors.Errorf(err, errors.ErrorStructCopy) } - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq.UserId = userId innerReq.SpaceId = spaceId @@ -188,11 +180,6 @@ func (s *JointCloudService) ListJointCloudJob(ctx context.Context, req *api.List // 停止训练任务 func (s *JointCloudService) StopJob(ctx context.Context, req *api.JointCloudStopJobRequest) (*api.JointCloudStopJobReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - //trainJob, err := s.data.JointCloudClient.GetTrainJobInfo(ctx, &innerapi.TrainJobInfoRequest{Id: req.Id}) //if err != nil { // return nil, err @@ -210,19 +197,3 @@ func (s *JointCloudService) StopJob(ctx context.Context, req *api.JointCloudStop } return &api.JointCloudStopJobReply{StoppedAt: reply.StoppedAt}, nil } - -func (s *JointCloudService) getUserIdAndSpaceId(ctx context.Context) (string, string, error) { - userId := commctx.UserIdFromContext(ctx) - if userId == "" { - err := errors.Errorf(nil, errors.ErrorInvalidRequestParameter) - return "", "", err - } - - session := ss.SessionFromContext(ctx) - if session == nil { - err := errors.Errorf(nil, errors.ErrorUserNoAuthSession) - return "", "", err - } - - return userId, session.GetWorkspace(), nil -} diff --git a/server/openai-server/internal/service/model.go b/server/openai-server/internal/service/model.go index d658584b..64aeac91 100644 --- a/server/openai-server/internal/service/model.go +++ b/server/openai-server/internal/service/model.go @@ -6,7 +6,6 @@ import ( commctx "server/common/context" "server/common/errors" "server/common/log" - ss "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -61,10 +60,7 @@ func (s *ModelService) ListPreModel(ctx context.Context, req *api.ListPreModelRe // 查询我的模型列表 func (s *ModelService) ListMyModel(ctx context.Context, req *api.ListMyModelRequest) (*api.ListMyModelReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.ListMyModel(ctx, &innterapi.ListMyModelRequest{ SpaceId: spaceId, @@ -98,10 +94,7 @@ func (s *ModelService) ListMyModel(ctx context.Context, req *api.ListMyModelRequ // 查询公共模型列表 func (s *ModelService) ListCommModel(ctx context.Context, req *api.ListCommModelRequest) (*api.ListCommModelReply, error) { - _, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.ListCommModel(ctx, &innterapi.ListCommModelRequest{ SpaceId: spaceId, @@ -134,10 +127,7 @@ func (s *ModelService) ListCommModel(ctx context.Context, req *api.ListCommModel // 查询模型版本列表 func (s *ModelService) ListModelVersion(ctx context.Context, req *api.ListModelVersionRequest) (*api.ListModelVersionReply, error) { - _, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.ListModelVersion(ctx, &innterapi.ListModelVersionRequest{ ModelId: req.ModelId, @@ -185,10 +175,7 @@ func (s *ModelService) ListModelVersion(ctx context.Context, req *api.ListModelV // 查询公共模型版本列表 func (s *ModelService) ListCommModelVersion(ctx context.Context, req *api.ListCommModelVersionRequest) (*api.ListCommModelVersionReply, error) { - _, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + _, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.ListCommModelVersion(ctx, &innterapi.ListCommModelVersionRequest{ SpaceId: spaceId, @@ -218,10 +205,7 @@ func (s *ModelService) ListCommModelVersion(ctx context.Context, req *api.ListCo // 分享模型版本到公共模型 func (s *ModelService) ShareModelVersion(ctx context.Context, req *api.ShareModelVersionRequest) (*api.ShareModelVersionReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.ShareModelVersion(ctx, &innterapi.ShareModelVersionRequest{ SpaceId: spaceId, @@ -241,10 +225,7 @@ func (s *ModelService) ShareModelVersion(ctx context.Context, req *api.ShareMode // 取消分享模型版本到公共模型 func (s *ModelService) CloseShareModelVersion(ctx context.Context, req *api.CloseShareModelVersionRequest) (*api.CloseShareModelVersionReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.CloseShareModelVersion(ctx, &innterapi.CloseShareModelVersionRequest{ SpaceId: spaceId, @@ -264,10 +245,7 @@ func (s *ModelService) CloseShareModelVersion(ctx context.Context, req *api.Clos // 删除我的模型版本 func (s *ModelService) DeleteMyModelVersion(ctx context.Context, req *api.DeleteMyModelVersionRequest) (*api.DeleteMyModelVersionReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.DeleteMyModelVersion(ctx, &innterapi.DeleteMyModelVersionRequest{ SpaceId: spaceId, @@ -286,10 +264,7 @@ func (s *ModelService) DeleteMyModelVersion(ctx context.Context, req *api.Delete // 删除我的模型 func (s *ModelService) DeleteMyModel(ctx context.Context, req *api.DeleteMyModelRequest) (*api.DeleteMyModelReply, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.DeleteMyModel(ctx, &innterapi.DeleteMyModelRequest{ SpaceId: spaceId, @@ -421,29 +396,8 @@ func (s *ModelService) modelVersionTransfer(modelVersion *innterapi.VersionDetai return modelVersionDetail, nil } -func (s *ModelService) getUserIdAndSpaceId(ctx context.Context) (string, string, error) { - userId := commctx.UserIdFromContext(ctx) - if userId == "" { - err := errors.Errorf(nil, errors.ErrorInvalidRequestParameter) - s.log.Errorw(ctx, err) - return "", "", err - } - - session := ss.SessionFromContext(ctx) - if session == nil { - err := errors.Errorf(nil, errors.ErrorUserNoAuthSession) - s.log.Errorw(ctx, err) - return "", "", err - } - - return userId, session.GetWorkspace(), nil -} - func (s *ModelService) viewCtrl(ctx context.Context, modelId string, version string) (bool, error) { - userId, spaceId, err := s.getUserIdAndSpaceId(ctx) - if err != nil { - return false, err - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) reply, err := s.data.ModelClient.QueryModelVersion(ctx, &innterapi.QueryModelVersionRequest{ ModelId: modelId, diff --git a/server/openai-server/internal/service/modeldeploy.go b/server/openai-server/internal/service/modeldeploy.go index 5b6777e5..3015fa1c 100644 --- a/server/openai-server/internal/service/modeldeploy.go +++ b/server/openai-server/internal/service/modeldeploy.go @@ -3,9 +3,9 @@ package service import ( "context" innerapi "server/base-server/api/v1" + commctx "server/common/context" "server/common/errors" "server/common/log" - "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -30,18 +30,15 @@ func NewModelDeployService(conf *conf.Bootstrap, logger log.Logger, data *data.D //创建模型服务 func (s *ModelDeployService) DeployModel(ctx context.Context, req *api.DepRequest) (*api.DepReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.DepRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.ModelDeployClient.DeployModel(ctx, innerReq) if err != nil { @@ -57,16 +54,13 @@ func (s *ModelDeployService) DeployModel(ctx context.Context, req *api.DepReques // 停止模型服务 func (s *ModelDeployService) StopDepModel(ctx context.Context, req *api.StopDepRequest) (*api.StopDepReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) //查询任务是否存在及用户是否一致 depInfo, err := s.data.ModelDeployClient.GetModelDepInfo(ctx, &innerapi.DepInfoRequest{Id: req.Id}) if err != nil { return nil, err } - if depInfo.DepInfo.UserId != session.UserId { + if depInfo.DepInfo.UserId != userId { return nil, errors.Errorf(nil, errors.ErrorNotAuthorized) } innerReq := &innerapi.StopDepRequest{ @@ -82,17 +76,14 @@ func (s *ModelDeployService) StopDepModel(ctx context.Context, req *api.StopDepR //删除模型服务 func (s *ModelDeployService) DeleteDepModel(ctx context.Context, req *api.DeleteDepRequest) (*api.DeleteDepReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkPermission(ctx, req.JobIds, session.UserId) + err := s.checkPermission(ctx, req.JobIds, userId) if err != nil { return nil, err } - innerReq := &innerapi.DeleteDepRequest{UserId: session.UserId, JobIds: req.JobIds} + innerReq := &innerapi.DeleteDepRequest{UserId: userId, JobIds: req.JobIds} reply, err := s.data.ModelDeployClient.DeleteDepModel(ctx, innerReq) if err != nil { return nil, err @@ -117,18 +108,15 @@ func (s *ModelDeployService) checkPermission(ctx context.Context, serviceIds []s // 模型服务调用 func (s *ModelDeployService) ModelServiceInfer(ctx context.Context, req *api.ServiceRequest) (*api.ServiceReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.ServiceRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.ModelDeployClient.ModelServiceInfer(ctx, innerReq) if err != nil { @@ -159,10 +147,7 @@ func (s *ModelDeployService) GetModelDepInfo(ctx context.Context, req *api.DepIn // 模型服务列表 func (s *ModelDeployService) ListDepModel(ctx context.Context, req *api.DepListRequest) (*api.DepListReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.DepListRequest{} err := copier.Copy(innerReq, req) @@ -170,8 +155,8 @@ func (s *ModelDeployService) ListDepModel(ctx context.Context, req *api.DepListR return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.ModelDeployClient.ListDepModel(ctx, innerReq) if err != nil { diff --git a/server/openai-server/internal/service/resourcespec.go b/server/openai-server/internal/service/resourcespec.go index 63a7c065..7faded95 100644 --- a/server/openai-server/internal/service/resourcespec.go +++ b/server/openai-server/internal/service/resourcespec.go @@ -3,10 +3,10 @@ package service import ( "context" innerapi "server/base-server/api/v1" + "server/common/constant" commctx "server/common/context" "server/common/errors" "server/common/log" - ss "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -32,14 +32,11 @@ func NewResourceSpecService(conf *conf.Bootstrap, logger log.Logger, data *data. func (rsvc *ResourceSpecService) ListResourceSpec(ctx context.Context, req *empty.Empty) (*api.ListResourceSpecReply, error) { - _, workSpaceId, isDefaultSpace, err := rsvc.getUserIdAndSpaceId(ctx) - if err != nil { - return nil, errors.Errorf(err, errors.ErrorListResourceSpec) - } + _, workSpaceId, isDefaultSpace := rsvc.getUserIdAndSpaceId(ctx) rq := &innerapi.GetResourcePoolReply{} if isDefaultSpace { - rq, err = rsvc.data.ResourcePoolClient.GetDefaultResourcePool(ctx, &empty.Empty{}) + _, err := rsvc.data.ResourcePoolClient.GetDefaultResourcePool(ctx, &empty.Empty{}) if err != nil { return nil, errors.Errorf(err, errors.ErrorListResourceSpec) @@ -101,20 +98,8 @@ func (rsvc *ResourceSpecService) ListResourceSpec(ctx context.Context, req *empt }, nil } -func (rsvc *ResourceSpecService) getUserIdAndSpaceId(ctx context.Context) (string, string, bool, error) { - userId := commctx.UserIdFromContext(ctx) - if userId == "" { - err := errors.Errorf(nil, errors.ErrorInvalidRequestParameter) - rsvc.log.Errorw(ctx, err) - return "", "", false, err - } - - session := ss.SessionFromContext(ctx) - if session == nil { - err := errors.Errorf(nil, errors.ErrorUserNoAuthSession) - rsvc.log.Errorw(ctx, err) - return "", "", false, err - } +func (rsvc *ResourceSpecService) getUserIdAndSpaceId(ctx context.Context) (string, string, bool) { + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) - return userId, session.GetWorkspace(), session.IsDefaultWorkspace(), nil + return userId, spaceId, spaceId == constant.SYSTEM_WORKSPACE_DEFAULT } diff --git a/server/openai-server/internal/service/trainjob.go b/server/openai-server/internal/service/trainjob.go index 3abd6659..0a1c2868 100644 --- a/server/openai-server/internal/service/trainjob.go +++ b/server/openai-server/internal/service/trainjob.go @@ -3,9 +3,9 @@ package service import ( "context" innerapi "server/base-server/api/v1" + commctx "server/common/context" "server/common/errors" "server/common/log" - "server/common/session" "server/common/utils" api "server/openai-server/api/v1" "server/openai-server/internal/conf" @@ -31,18 +31,15 @@ func NewTrainJobService(conf *conf.Bootstrap, logger log.Logger, data *data.Data //创建训练任务 func (s *TrainJobService) TrainJob(ctx context.Context, req *api.TrainJobRequest) (*api.TrainJobReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.TrainJobRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.TrainJobClient.TrainJob(ctx, innerReq) if err != nil { @@ -54,16 +51,14 @@ func (s *TrainJobService) TrainJob(ctx context.Context, req *api.TrainJobRequest // 停止训练任务 func (s *TrainJobService) StopJob(ctx context.Context, req *api.StopJobRequest) (*api.StopJobReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) + //查询任务是否存在及用户是否一直 trainJob, err := s.data.TrainJobClient.GetTrainJobInfo(ctx, &innerapi.TrainJobInfoRequest{Id: req.Id}) if err != nil { return nil, err } - if trainJob.TrainJob.UserId != session.UserId { + if trainJob.TrainJob.UserId != userId { return nil, errors.Errorf(nil, errors.ErrorNotAuthorized) } innerReq := &innerapi.StopJobRequest{ @@ -79,17 +74,14 @@ func (s *TrainJobService) StopJob(ctx context.Context, req *api.StopJobRequest) //删除训练任务 func (s *TrainJobService) DeleteJob(ctx context.Context, req *api.DeleteJobRequest) (*api.DeleteJobReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) - err := s.checkPermission(ctx, req.JobIds, session.UserId) + err := s.checkPermission(ctx, req.JobIds, userId) if err != nil { return nil, err } - innerReq := &innerapi.DeleteJobRequest{UserId: session.UserId, JobIds: req.JobIds} + innerReq := &innerapi.DeleteJobRequest{UserId: userId, JobIds: req.JobIds} reply, err := s.data.TrainJobClient.DeleteJob(ctx, innerReq) if err != nil { return nil, err @@ -100,17 +92,14 @@ func (s *TrainJobService) DeleteJob(ctx context.Context, req *api.DeleteJobReque // 获取训练任务详情 func (s *TrainJobService) GetJobInfo(ctx context.Context, req *api.TrainJobInfoRequest) (*api.TrainJobInfoReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) innerTrainJobInfo, err := s.data.TrainJobClient.GetTrainJobInfo(ctx, &innerapi.TrainJobInfoRequest{Id: req.Id}) if err != nil { return nil, err } - if innerTrainJobInfo.TrainJob.UserId != session.UserId { + if innerTrainJobInfo.TrainJob.UserId != userId { return nil, errors.Errorf(nil, errors.ErrorNotAuthorized) } @@ -130,18 +119,15 @@ func (s *TrainJobService) GetJobInfo(ctx context.Context, req *api.TrainJobInfoR // 训练任务列表 func (s *TrainJobService) TrainJobList(ctx context.Context, req *api.TrainJobListRequest) (*api.TrainJobListReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.TrainJobListRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.TrainJobClient.TrainJobList(ctx, innerReq) if err != nil { @@ -171,18 +157,15 @@ func (s *TrainJobService) TrainJobList(ctx context.Context, req *api.TrainJobLis // 创建训练任务模板 func (s *TrainJobService) CreateJobTemplate(ctx context.Context, req *api.TrainJobTemplateRequest) (*api.TrainJobTemplateReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.TrainJobTemplateRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, err } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.TrainJobClient.CreateJobTemplate(ctx, innerReq) if err != nil { @@ -202,21 +185,18 @@ func (s *TrainJobService) CopyJobTemplate(ctx context.Context, req *api.CopyJobT } return &api.CopyJobTemplateReply{ TemplateId: reply.TemplateId, - },nil + }, nil } //获取任务模板信息 func (s *TrainJobService) GetJobTemplate(ctx context.Context, req *api.GetJobTemplateRequest) (*api.GetJobTemplateReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) innerReply, err := s.data.TrainJobClient.GetJobTemplate(ctx, &innerapi.GetJobTemplateRequest{Id: req.Id}) if err != nil { return nil, err } - if innerReply.JobTemplate.UserId != session.UserId { + if innerReply.JobTemplate.UserId != userId { return nil, errors.Errorf(nil, errors.ErrorNotAuthorized) } @@ -236,16 +216,13 @@ func (s *TrainJobService) GetJobTemplate(ctx context.Context, req *api.GetJobTem //更新任务模板 func (s *TrainJobService) UpdateJobTemplate(ctx context.Context, req *api.TrainJobTemplate) (*api.TrainJobTemplateReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) innerJobTemplate, err := s.data.TrainJobClient.GetJobTemplate(ctx, &innerapi.GetJobTemplateRequest{Id: req.Id}) if err != nil { return nil, err } - if innerJobTemplate.JobTemplate.UserId != session.UserId { + if innerJobTemplate.JobTemplate.UserId != userId { return nil, errors.Errorf(nil, errors.ErrorNotAuthorized) } @@ -254,7 +231,7 @@ func (s *TrainJobService) UpdateJobTemplate(ctx context.Context, req *api.TrainJ if err != nil { return nil, err } - innerReq.UserId = session.UserId + innerReq.UserId = userId innerReq.WorkspaceId = innerJobTemplate.JobTemplate.WorkspaceId innerReply, err := s.data.TrainJobClient.UpdateJobTemplate(ctx, innerReq) @@ -269,13 +246,10 @@ func (s *TrainJobService) UpdateJobTemplate(ctx context.Context, req *api.TrainJ // 删除任务模板 func (s *TrainJobService) DeleteTemplate(ctx context.Context, req *api.DeleteJobTemplateRequest) (*api.DeleteJobTemplateReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.DeleteJobTemplateRequest{ - UserId: session.UserId, + UserId: userId, TemplateIds: req.TemplateIds, } @@ -290,18 +264,15 @@ func (s *TrainJobService) DeleteTemplate(ctx context.Context, req *api.DeleteJob // 任务模板列表 func (s *TrainJobService) TrainJobTemplateList(ctx context.Context, req *api.TrainJobTemplateListRequest) (*api.TrainJobTemplateListReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } + userId, spaceId := commctx.UserIdAndSpaceIdFromContext(ctx) innerReq := &innerapi.TrainJobTemplateListRequest{} err := copier.Copy(innerReq, req) if err != nil { return nil, errors.Errorf(err, errors.ErrorStructCopy) } - innerReq.UserId = session.UserId - innerReq.WorkspaceId = session.GetWorkspace() + innerReq.UserId = userId + innerReq.WorkspaceId = spaceId innerReply, err := s.data.TrainJobClient.ListJobTemplate(ctx, innerReq) if err != nil { @@ -475,11 +446,6 @@ func (s *TrainJobService) assignValueToTemplate(ctx context.Context, templates [ // 任务事件列表 func (s *TrainJobService) GetJobEventList(ctx context.Context, req *api.JobEventListRequest) (*api.JobEventListReply, error) { - session := session.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - innerReq := &innerapi.JobEventListRequest{} err := copier.Copy(innerReq, req) if err != nil { diff --git a/server/openai-server/internal/service/user.go b/server/openai-server/internal/service/user.go index d24107cf..8cc43781 100644 --- a/server/openai-server/internal/service/user.go +++ b/server/openai-server/internal/service/user.go @@ -7,7 +7,6 @@ import ( commctx "server/common/context" "server/common/errors" "server/common/log" - ss "server/common/session" api "server/openai-server/api/v1" "server/openai-server/internal/conf" "server/openai-server/internal/data" @@ -43,12 +42,6 @@ func (s *UserService) GetUserInfo(ctx context.Context, req *api.GetUserInfoReque return nil, errors.Errorf(nil, errors.ErrorUserAccountNotExisted) } - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - - workspaceId := session.GetWorkspace() return &api.GetUserInfoReply{ User: &api.UserItem{ Id: reply.User.Id, @@ -60,7 +53,6 @@ func (s *UserService) GetUserInfo(ctx context.Context, req *api.GetUserInfoReque Gender: int32(reply.User.Gender), Status: int32(reply.User.Status), }, - WorkspaceId: workspaceId, }, nil } @@ -99,59 +91,9 @@ func (s *UserService) ListUserWorkspaces(ctx context.Context, req *api.ListUserW }, nil } -func (s *UserService) PutUserWorkspace(ctx context.Context, req *api.PutUserWorkspaceRequest) (*api.PutUserWorkspaceReply, error) { - userId := commctx.UserIdFromContext(ctx) - if userId == "" { - return nil, errors.Errorf(nil, errors.ErrorInvalidRequestParameter) - } - if userId != req.UserId { - return nil, errors.Errorf(nil, errors.ErrorUserIdNotRight) - } - if req.WorkspaceId == "" { - req.WorkspaceId = constant.SYSTEM_WORKSPACE_DEFAULT - } - if req.WorkspaceId != constant.SYSTEM_WORKSPACE_DEFAULT { - // is it having workspace - result, err := s.data.WorkspaceClient.GetWorkspace(ctx, &innterapi.GetWorkspaceRequest{WorkspaceId: req.WorkspaceId}) - if err != nil { - return nil, err - } - if result.Workspace == nil { - return nil, errors.Errorf(nil, errors.ErrorWorkSpaceNotExist) - } - // is it user in workspace - userWorkspaces, err := s.data.WorkspaceClient.ListUserWorkspaces(ctx, &innterapi.ListUserWorkspacesRequest{UserId: userId}) - if err != nil { - return nil, err - } - var isInWorkspace bool - for _, w := range userWorkspaces.Workspaces { - if w.Id == req.WorkspaceId { - isInWorkspace = true - break - } - } - if !isInWorkspace { - return nil, errors.Errorf(nil, errors.ErrorUserWorkSpaceNoPermission) - } - } - - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - if err := session.SetWorkspace(req.WorkspaceId); err != nil { - return nil, err - } - return &api.PutUserWorkspaceReply{}, nil -} - func (s *UserService) GetUserConfig(ctx context.Context, req *api.GetUserConfigRequest) (*api.GetUserConfigReply, error) { - session := ss.SessionFromContext(ctx) - if session == nil { - return nil, errors.Errorf(nil, errors.ErrorUserNoAuthSession) - } - reply, err := s.data.UserClient.GetUserConfig(ctx, &innterapi.GetUserConfigRequest{UserId: session.UserId}) + userId, _ := commctx.UserIdAndSpaceIdFromContext(ctx) + reply, err := s.data.UserClient.GetUserConfig(ctx, &innterapi.GetUserConfigRequest{UserId: userId}) if err != nil { return nil, err } -- 2.34.1 From fc922f9c795222db28af160c4d9ae9caec075599 Mon Sep 17 00:00:00 2001 From: linfengjun Date: Thu, 5 May 2022 15:57:42 +0800 Subject: [PATCH 16/23] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E5=BD=93=E5=89=8Dspace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/admin-server/internal/data/data.go | 5 +- .../internal/data/session/session.go | 50 ------------------- server/admin-server/internal/service/user.go | 33 ------------ server/openai-server/internal/server/http.go | 24 +++++++++ 4 files changed, 25 insertions(+), 87 deletions(-) delete mode 100644 server/admin-server/internal/data/session/session.go diff --git a/server/admin-server/internal/data/data.go b/server/admin-server/internal/data/data.go index ba728276..ca71525a 100644 --- a/server/admin-server/internal/data/data.go +++ b/server/admin-server/internal/data/data.go @@ -3,7 +3,6 @@ package data import ( "context" "server/admin-server/internal/conf" - "server/admin-server/internal/data/session" api "server/base-server/api/v1" "server/common/errors" "server/common/log" @@ -31,7 +30,6 @@ type Data struct { ResourceSpecClient api.ResourceSpecServiceClient ResourcePoolClient api.ResourcePoolServiceClient DatasetClient api.DatasetServiceClient - SessionClient session.SessionClient BillingClient api.BillingServiceClient LableClient api.LableServiceClient PlatformClient api.PlatformServiceClient @@ -78,12 +76,11 @@ func NewData(confData *conf.Data, logger log.Logger) (*Data, error) { ResourceSpecClient: api.NewResourceSpecServiceClient(conn), ResourcePoolClient: api.NewResourcePoolServiceClient(conn), DatasetClient: api.NewDatasetServiceClient(conn), - SessionClient: session.NewSessionClient(confData, logger), BillingClient: api.NewBillingServiceClient(conn), LableClient: api.NewLableServiceClient(conn), PlatformClient: api.NewPlatformServiceClient(conn), JointCloudClient: api.NewJointCloudServiceClient(conn), PlatformTrainJobClient: api.NewPlatformTrainJobServiceClient(conn), - ModelDeployClient: api.NewModelDeployServiceClient(conn), + ModelDeployClient: api.NewModelDeployServiceClient(conn), }, nil } diff --git a/server/admin-server/internal/data/session/session.go b/server/admin-server/internal/data/session/session.go deleted file mode 100644 index 2110aaf1..00000000 --- a/server/admin-server/internal/data/session/session.go +++ /dev/null @@ -1,50 +0,0 @@ -package session - -import ( - "context" - "server/admin-server/internal/conf" - "server/common/constant" - "server/common/log" - ss "server/common/session" -) - -type SessionClient interface { - ss.SessionStore -} - -func NewSessionClient(config *conf.Data, logger log.Logger) SessionClient { - logHelper := log.NewHelper("Session", logger) - - storeConfig := ss.SessionStoreConfig{ - RedisAddr: config.Redis.Addr, - RedisPassword: config.Redis.Password, - RedisDBIndex: "0", - } - return &SessionClientImpl{ - config: config, - store: ss.NewSessionStore(constant.SESSION_KEY, storeConfig, logger), - logger: logHelper, - } -} - -type SessionClientImpl struct { - config *conf.Data - store ss.SessionStore - logger *log.Helper -} - -func (s *SessionClientImpl) Create(ctx context.Context, session *ss.Session) error { - return s.store.Create(ctx, session) -} - -func (s *SessionClientImpl) Get(ctx context.Context, sessionId string) (*ss.Session, error) { - return s.store.Get(ctx, sessionId) -} - -func (s *SessionClientImpl) Update(ctx context.Context, session *ss.Session) error { - return s.store.Update(ctx, session) -} - -func (s *SessionClientImpl) Delete(ctx context.Context, sessionId string) error { - return s.store.Delete(ctx, sessionId) -} diff --git a/server/admin-server/internal/service/user.go b/server/admin-server/internal/service/user.go index a1a746c8..89e8baff 100644 --- a/server/admin-server/internal/service/user.go +++ b/server/admin-server/internal/service/user.go @@ -146,19 +146,6 @@ func (s *UserService) UpdateUser(ctx context.Context, req *pb.UpdateUserRequest) return nil, err } - // if updated password, reset session for user - if req.User.Password != "" { - userSession, err := s.data.SessionClient.Get(ctx, req.UserId) - if err != nil { - return nil, err - } - if userSession != nil { - if err = s.data.SessionClient.Delete(ctx, req.UserId); err != nil { - return nil, err - } - } - } - return &pb.UpdateUserReply{ User: &pb.UserItem{ Id: result.User.Id, @@ -183,16 +170,6 @@ func (s *UserService) FreezeUser(ctx context.Context, req *pb.FreezeUserRequest) return nil, err } - userSession, err := s.data.SessionClient.Get(ctx, req.UserId) - if err != nil { - return nil, err - } - if userSession != nil { - userSession.Status = int32(innterapi.UserStatus_FREEZE) - if err = s.data.SessionClient.Update(ctx, userSession); err != nil { - return nil, err - } - } return &pb.FreezeUserReply{FreezedAt: time.Now().Unix()}, nil } @@ -206,16 +183,6 @@ func (s *UserService) ThawUser(ctx context.Context, req *pb.ThawUserRequest) (*p return nil, err } - userSession, err := s.data.SessionClient.Get(ctx, req.UserId) - if err != nil { - return nil, err - } - if userSession != nil { - userSession.Status = int32(innterapi.UserStatus_ACTIVITY) - if err = s.data.SessionClient.Update(ctx, userSession); err != nil { - return nil, err - } - } return &pb.ThawUserReply{ThawedAt: time.Now().Unix()}, nil } diff --git a/server/openai-server/internal/server/http.go b/server/openai-server/internal/server/http.go index 11afa80c..bd8943ac 100644 --- a/server/openai-server/internal/server/http.go +++ b/server/openai-server/internal/server/http.go @@ -6,7 +6,9 @@ import ( nethttp "net/http" "net/http/httputil" "net/url" + "server/common/constant" "server/common/constant/userconfig" + commctx "server/common/context" "server/common/errors" comHttp "server/common/http" "server/common/log" @@ -54,6 +56,7 @@ func NewHTTPServer(c *conf.Server, service *service.Service) *http.Server { tracing.Server(), logging.Server(), jwt.Server(jwtOpts...), + handleHeader(), checkJointCloudPerm(service), validate.Server(), ), @@ -120,3 +123,24 @@ func checkJointCloudPerm(service *service.Service) middleware.Middleware { } } } + +func handleHeader() middleware.Middleware { + return func(handler middleware.Handler) middleware.Handler { + return func(ctx context.Context, req interface{}) (interface{}, error) { + var request *nethttp.Request + if info, ok := http.FromServerContext(ctx); ok { + request = info.Request + } else { + return handler(ctx, req) + } + + spaceId := request.Header.Get("Octopus-Space-Id") + if spaceId == "" { + spaceId = constant.SYSTEM_WORKSPACE_DEFAULT + } + + ctx = commctx.SpaceIdToContext(ctx, spaceId) + return handler(ctx, req) + } + } +} -- 2.34.1 From 617a4b68aa17d900f5cd5bd44a38069e17adca80 Mon Sep 17 00:00:00 2001 From: denglei <2522636547@qq.com> Date: Thu, 5 May 2022 16:14:20 +0800 Subject: [PATCH 17/23] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openai-portal/src/views/Home/firstPage.vue | 3 --- 1 file changed, 3 deletions(-) diff --git a/openai-portal/src/views/Home/firstPage.vue b/openai-portal/src/views/Home/firstPage.vue index 4b7e3a07..a2f5d360 100644 --- a/openai-portal/src/views/Home/firstPage.vue +++ b/openai-portal/src/views/Home/firstPage.vue @@ -142,9 +142,6 @@ }, jumpThird() { getInterface(this.interfaceName).then(res => { - // window.opener = null; - // window.open("about:blank", "_top").close() - }) }, } -- 2.34.1 From e6d1dd3bc67023fd4298b3ac58d03c599946c258 Mon Sep 17 00:00:00 2001 From: denglei <2522636547@qq.com> Date: Thu, 5 May 2022 17:49:44 +0800 Subject: [PATCH 18/23] =?UTF-8?q?=E7=BE=A4=E7=BB=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openai-portal/src/App.vue | 119 +++++++++--------- openai-portal/src/api/Home.js | 7 -- .../src/layout/components/Navbar.vue | 37 +++--- openai-portal/src/store/getters.js | 1 - openai-portal/src/store/modules/user.js | 6 - openai-portal/src/utils/request.js | 5 +- openai-portal/src/views/GeneralView/index.vue | 2 +- 7 files changed, 85 insertions(+), 92 deletions(-) diff --git a/openai-portal/src/App.vue b/openai-portal/src/App.vue index e1cb86e2..9d36bfb1 100644 --- a/openai-portal/src/App.vue +++ b/openai-portal/src/App.vue @@ -5,68 +5,69 @@ + \ No newline at end of file diff --git a/openai-portal/src/api/Home.js b/openai-portal/src/api/Home.js index afabdaf7..62fae392 100644 --- a/openai-portal/src/api/Home.js +++ b/openai-portal/src/api/Home.js @@ -27,13 +27,6 @@ export function getSpace(params) { method: 'get' }) } -export function changeSpace(data) { - return request({ - url: `/v1/usermanage/user/${data.userId}/workspace`, - method: 'put', - data: { workspaceId: data.workspaceId } - }) -} // 查询用户配置 export function getUserConfig() { return request({ diff --git a/openai-portal/src/layout/components/Navbar.vue b/openai-portal/src/layout/components/Navbar.vue index 5292248f..26290a96 100644 --- a/openai-portal/src/layout/components/Navbar.vue +++ b/openai-portal/src/layout/components/Navbar.vue @@ -7,9 +7,11 @@ @@ -56,7 +58,7 @@ options: [], circleUrl: "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png", size: 'small', - current: '默认群组', + current: '', userMsg: undefined, fontColor: this.GLOBAL.THEME_COLOR ? '#FFFFFF' : '' // mainColor: curColor @@ -69,7 +71,6 @@ 'name', 'workspaces', 'id', - 'workspaceId' ]) }, created() { @@ -100,6 +101,15 @@ } ) }) + if (JSON.parse(localStorage.getItem('space'))) { + this.current = JSON.parse(localStorage.getItem('space')).workspaceName + } + else { + this.current = '默认群组' + let data = { workspaceName: '默认群组', workspaceId: 'default-workspace' } + data = JSON.stringify(data) + localStorage.setItem('space', data) + } }, toggleSideBar() { this.$store.dispatch('app/toggleSideBar') @@ -107,24 +117,16 @@ async logout() { await this.$store.dispatch('user/logout') this.$router.push(`/?redirect=${this.$route.fullPath}`) + localStorage.clear(); }, handleCommand(command) { // 切换群组页面刷新但是保留页面当前群组状态 - const data = { userId: this.id, workspaceId: command.id } + let data = { workspaceName: command.name, workspaceId: command.id } + data = JSON.stringify(data) this.current = command.name - changeSpace(data).then(response => { - this.$message({ - message: '切换成功', - type: 'success' - }); - location.reload() - }) + localStorage.setItem('space', data) + location.reload(); }, - // changeColor(newColor) { - // changeThemeColor(newColor).then(() => { - // this.$message.success('主题色切换成功') - // }) - // } }, } @@ -181,6 +183,7 @@ } } } + .pkuNavbar { height: 60px; overflow: hidden; diff --git a/openai-portal/src/store/getters.js b/openai-portal/src/store/getters.js index be3dea1d..41e52e4d 100644 --- a/openai-portal/src/store/getters.js +++ b/openai-portal/src/store/getters.js @@ -6,7 +6,6 @@ const getters = { name: state => state.user.name, workspaces: state => state.user.workspaces, id: state => state.user.id, - workspaceId: state => state.user.workspaceId, progressId: state => state.user.progressId } diff --git a/openai-portal/src/store/modules/user.js b/openai-portal/src/store/modules/user.js index 2a7afeba..63fe3702 100644 --- a/openai-portal/src/store/modules/user.js +++ b/openai-portal/src/store/modules/user.js @@ -10,7 +10,6 @@ const getDefaultState = () => { avatar: '', id: '', workspaces: [], - workspaceId: '', progressId: undefined } } @@ -36,9 +35,6 @@ const mutations = { SET_SPACE: (state, workspaces) => { state.workspaces = workspaces }, - SET_WORKSPACEID: (state, workspaceId) => { - state.workspaceId = workspaceId - }, SET_PROGRESSID: (state, progressId) => { state.progressId = progressId } @@ -76,10 +72,8 @@ const actions = { return reject('验证失败,请重新登录。') } const { fullName, id } = data.user - const workspaceId = data.workspaceId commit('SET_NAME', fullName) commit('SET_ID', id) - commit('SET_WORKSPACEID', workspaceId) resolve() }).catch(error => { reject(error) diff --git a/openai-portal/src/utils/request.js b/openai-portal/src/utils/request.js index 15dff118..fb9bde42 100644 --- a/openai-portal/src/utils/request.js +++ b/openai-portal/src/utils/request.js @@ -19,6 +19,9 @@ service.interceptors.request.use( // ['X-Token'] is a custom headers key // please modify it according to the actual situation config.headers['Authorization'] = 'Bearer ' + getToken() + if (localStorage.getItem('space')) { + config.headers['Octopus-Space-Id'] = JSON.parse(localStorage.getItem('space')).workspaceId + } } // eslint-disable-next-line no-undef return config @@ -47,7 +50,7 @@ service.interceptors.response.use( const res = response.data res.data = response.data.payload if (!response.data.success && (response.data.error.subcode === 16004 || response.data.error.subcode === 16010 || response.data.error.subcode === 16007)) { - setTimeout(function() { + setTimeout(function () { removeToken() router.replace({ path: '/' }) }, 1000) diff --git a/openai-portal/src/views/GeneralView/index.vue b/openai-portal/src/views/GeneralView/index.vue index 10ec1302..b44bf39b 100644 --- a/openai-portal/src/views/GeneralView/index.vue +++ b/openai-portal/src/views/GeneralView/index.vue @@ -330,7 +330,7 @@ }; }, computed: { - ...mapGetters(["name", "workspaceId"]) + ...mapGetters(["name"]) }, created() { this.getTrainingTask(); -- 2.34.1 From 43f0beb0a731b51c4538a3fd704a419732afe1c1 Mon Sep 17 00:00:00 2001 From: denglei <2522636547@qq.com> Date: Thu, 5 May 2022 18:06:14 +0800 Subject: [PATCH 19/23] =?UTF-8?q?=E7=BE=A4=E7=BB=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openai-portal/src/App.vue | 1 - openai-portal/src/views/Home/firstPage.vue | 56 +++++++++------------- 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/openai-portal/src/App.vue b/openai-portal/src/App.vue index 9d36bfb1..e7257fe2 100644 --- a/openai-portal/src/App.vue +++ b/openai-portal/src/App.vue @@ -17,7 +17,6 @@ } }, created() { - // localStorage.clear(); this.themeChange() }, methods: { diff --git a/openai-portal/src/views/Home/firstPage.vue b/openai-portal/src/views/Home/firstPage.vue index c0e2781c..467f26d6 100644 --- a/openai-portal/src/views/Home/firstPage.vue +++ b/openai-portal/src/views/Home/firstPage.vue @@ -7,36 +7,24 @@