From 8349c58d7653f9084d3e71d0f2ebfd297264dad6 Mon Sep 17 00:00:00 2001 From: zhouqunjie <450705171@qq.com> Date: Sun, 13 Nov 2022 06:31:02 -0800 Subject: [PATCH] filter for get logic --- adaptor/pcm_slurm/service/slurmdb_account.go | 6 ++++-- adaptor/pcm_slurm/service/slurmdb_association.go | 8 ++++---- adaptor/pcm_slurm/service/slurmdb_user.go | 10 +++++----- adaptor/pcm_slurm/service/slurmer.go | 1 - 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/adaptor/pcm_slurm/service/slurmdb_account.go b/adaptor/pcm_slurm/service/slurmdb_account.go index 4a66ce92..a44cd6b4 100644 --- a/adaptor/pcm_slurm/service/slurmdb_account.go +++ b/adaptor/pcm_slurm/service/slurmdb_account.go @@ -55,6 +55,7 @@ import ( pbslurm "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pcm_slurm/gen/idl" "code.gitlink.org.cn/JCCE/PCM.git/common/ssh" "context" + "strings" ) type AcctInfoMsg struct { @@ -106,8 +107,9 @@ func (slurmStruct SlurmStruct) GetAccount(ctx context.Context, req *pbslurm.GetA resp := pbslurm.GetAccountResp{} for _, acct := range acctList.AcctInfoList { acctInfoResult := acct - //todo add filter logic - resp.AccountInfos = append(resp.AccountInfos, &acctInfoResult) + if strings.Contains(acct.Name, req.AccountName) { + resp.AccountInfos = append(resp.AccountInfos, &acctInfoResult) + } } return &resp, nil diff --git a/adaptor/pcm_slurm/service/slurmdb_association.go b/adaptor/pcm_slurm/service/slurmdb_association.go index d0639225..242f0c3d 100644 --- a/adaptor/pcm_slurm/service/slurmdb_association.go +++ b/adaptor/pcm_slurm/service/slurmdb_association.go @@ -3,6 +3,7 @@ package slurmer import ( pbslurm "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pcm_slurm/gen/idl" "context" + "strings" ) /* @@ -191,11 +192,10 @@ func (slurmStruct SlurmStruct) GetAssociation(ctx context.Context, req *pbslurm. assocList := GetAssociationInfos() resp := pbslurm.GetAssociationResp{} - for _, assoc := range assocList.AssocInfoList { - assocResult := assoc - //todo add filter logic - if assocResult.Cluster == req.Cluster && assocResult.User == req.User && assocResult.Acct == assocResult.Acct && assocResult.Partition == req.Partition { + for _, assoc := range assocList.AssocInfoList { + if (len(req.Cluster) != 0 || len(req.User) != 0 || len(req.Account) != 0 || len(req.Partition) != 0) && strings.Contains(assoc.Cluster, req.Cluster) && strings.Contains(assoc.Acct, req.Account) && strings.Contains(assoc.User, req.User) && strings.Contains(assoc.Partition, req.Partition) { + assocResult := assoc resp.AssocInfos = append(resp.AssocInfos, &assocResult) } } diff --git a/adaptor/pcm_slurm/service/slurmdb_user.go b/adaptor/pcm_slurm/service/slurmdb_user.go index 35ff46f0..2b6a7fcc 100644 --- a/adaptor/pcm_slurm/service/slurmdb_user.go +++ b/adaptor/pcm_slurm/service/slurmdb_user.go @@ -59,6 +59,7 @@ import ( pbslurm "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pcm_slurm/gen/idl" ssh "code.gitlink.org.cn/JCCE/PCM.git/common/ssh" "context" + "strings" ) type UserInfoMsg struct { @@ -108,12 +109,11 @@ func (slurmStruct SlurmStruct) GetUser(ctx context.Context, req *pbslurm.GetUser resp := pbslurm.GetUserResp{} for _, user := range userList.UserInfoList { - //userInfoResult := pbslurm.UserInfo{} - //todo add filter logic - userInfoResult := user - //userInfoResult.Name = user.Name + if strings.Contains(user.Name, req.UserName) { + userInfoResult := user + resp.UserInfo = append(resp.UserInfo, &userInfoResult) + } - resp.UserInfo = append(resp.UserInfo, &userInfoResult) } return &resp, nil diff --git a/adaptor/pcm_slurm/service/slurmer.go b/adaptor/pcm_slurm/service/slurmer.go index bed1b147..6ed09730 100644 --- a/adaptor/pcm_slurm/service/slurmer.go +++ b/adaptor/pcm_slurm/service/slurmer.go @@ -10,7 +10,6 @@ type Slurmer interface { GetUser(ctx context.Context, req *pbslurm.GetUserReq) (resp *pbslurm.GetUserResp, err error) //get specific slurm user AddUser(ctx context.Context, req *pbslurm.AddUserReq) (resp *pbslurm.AddUserResp, err error) //add slurm user DeleteUser(ctx context.Context, req *pbslurm.DeleteUserReq) (resp *pbslurm.DeleteUserResp, err error) //delete slurm user - ListClusters(ctx context.Context, req *pbslurm.ClusterInfoMsgReq) (resp *pbslurm.ClusterInfoMsgResp, err error) //list slurm users ListAssociations(ctx context.Context, req *pbslurm.ListAssociationsReq) (resp *pbslurm.ListAssociationsResp, err error) //list slurm associations GetAssociation(ctx context.Context, req *pbslurm.GetAssociationReq) (resp *pbslurm.GetAssociationResp, err error) //get specific slurm associations ListAccounts(ctx context.Context, req *pbslurm.ListAccountsReq) (resp *pbslurm.ListAccountsResp, err error) //list slurm accounts