| @@ -29,33 +29,37 @@ var file_idl_slurm_proto_rawDesc = []byte{ | |||
| 0x1a, 0x17, 0x69, 0x64, 0x6c, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x64, 0x62, 0x5f, 0x61, 0x73, | |||
| 0x73, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x69, 0x64, 0x6c, 0x2f, 0x73, | |||
| 0x6c, 0x75, 0x72, 0x6d, 0x64, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, | |||
| 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x88, 0x03, 0x0a, 0x0c, 0x53, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x65, | |||
| 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, | |||
| 0x72, 0x73, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, | |||
| 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, | |||
| 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, | |||
| 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x11, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, | |||
| 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, | |||
| 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, | |||
| 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, | |||
| 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, | |||
| 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, | |||
| 0x1b, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x6f, | |||
| 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, | |||
| 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, | |||
| 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, | |||
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, | |||
| 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, | |||
| 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, | |||
| 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, | |||
| 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, | |||
| 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, | |||
| 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, | |||
| 0x6e, 0x74, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, | |||
| 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, | |||
| 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, | |||
| 0x0a, 0x5a, 0x08, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, | |||
| 0x74, 0x6f, 0x33, | |||
| 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x69, 0x64, 0x6c, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x64, | |||
| 0x62, 0x5f, 0x71, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xbd, 0x03, 0x0a, 0x0c, | |||
| 0x53, 0x6c, 0x75, 0x72, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x09, | |||
| 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x75, 0x72, | |||
| 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, | |||
| 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, | |||
| 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, | |||
| 0x11, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, | |||
| 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, | |||
| 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, | |||
| 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x73, 0x6c, 0x75, | |||
| 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, | |||
| 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, | |||
| 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, | |||
| 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, | |||
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, | |||
| 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, | |||
| 0x19, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x6f, 0x63, | |||
| 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, 0x69, | |||
| 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x75, | |||
| 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, | |||
| 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, | |||
| 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0a, 0x47, | |||
| 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x75, 0x72, | |||
| 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, | |||
| 0x15, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, | |||
| 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x6f, | |||
| 0x73, 0x73, 0x12, 0x12, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, | |||
| 0x6f, 0x73, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x4c, | |||
| 0x69, 0x73, 0x74, 0x51, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2f, | |||
| 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | |||
| } | |||
| var file_idl_slurm_proto_goTypes = []interface{}{ | |||
| @@ -65,12 +69,14 @@ var file_idl_slurm_proto_goTypes = []interface{}{ | |||
| (*GetAssociationReq)(nil), // 3: slurm.GetAssociationReq | |||
| (*ListAccountsReq)(nil), // 4: slurm.ListAccountsReq | |||
| (*GetAccountReq)(nil), // 5: slurm.GetAccountReq | |||
| (*ListUsersResp)(nil), // 6: slurm.ListUsersResp | |||
| (*GetUserResp)(nil), // 7: slurm.GetUserResp | |||
| (*ListAssociationsResp)(nil), // 8: slurm.ListAssociationsResp | |||
| (*GetAssociationResp)(nil), // 9: slurm.GetAssociationResp | |||
| (*ListAccountsResp)(nil), // 10: slurm.ListAccountsResp | |||
| (*GetAccountResp)(nil), // 11: slurm.GetAccountResp | |||
| (*ListQossReq)(nil), // 6: slurm.ListQossReq | |||
| (*ListUsersResp)(nil), // 7: slurm.ListUsersResp | |||
| (*GetUserResp)(nil), // 8: slurm.GetUserResp | |||
| (*ListAssociationsResp)(nil), // 9: slurm.ListAssociationsResp | |||
| (*GetAssociationResp)(nil), // 10: slurm.GetAssociationResp | |||
| (*ListAccountsResp)(nil), // 11: slurm.ListAccountsResp | |||
| (*GetAccountResp)(nil), // 12: slurm.GetAccountResp | |||
| (*ListQossResp)(nil), // 13: slurm.ListQossResp | |||
| } | |||
| var file_idl_slurm_proto_depIdxs = []int32{ | |||
| 0, // 0: slurm.SlurmService.ListUsers:input_type -> slurm.ListUsersReq | |||
| @@ -79,14 +85,16 @@ var file_idl_slurm_proto_depIdxs = []int32{ | |||
| 3, // 3: slurm.SlurmService.GetAssociation:input_type -> slurm.GetAssociationReq | |||
| 4, // 4: slurm.SlurmService.ListAccounts:input_type -> slurm.ListAccountsReq | |||
| 5, // 5: slurm.SlurmService.GetAccount:input_type -> slurm.GetAccountReq | |||
| 6, // 6: slurm.SlurmService.ListUsers:output_type -> slurm.ListUsersResp | |||
| 7, // 7: slurm.SlurmService.GetUser:output_type -> slurm.GetUserResp | |||
| 8, // 8: slurm.SlurmService.ListAssociations:output_type -> slurm.ListAssociationsResp | |||
| 9, // 9: slurm.SlurmService.GetAssociation:output_type -> slurm.GetAssociationResp | |||
| 10, // 10: slurm.SlurmService.ListAccounts:output_type -> slurm.ListAccountsResp | |||
| 11, // 11: slurm.SlurmService.GetAccount:output_type -> slurm.GetAccountResp | |||
| 6, // [6:12] is the sub-list for method output_type | |||
| 0, // [0:6] is the sub-list for method input_type | |||
| 6, // 6: slurm.SlurmService.ListQoss:input_type -> slurm.ListQossReq | |||
| 7, // 7: slurm.SlurmService.ListUsers:output_type -> slurm.ListUsersResp | |||
| 8, // 8: slurm.SlurmService.GetUser:output_type -> slurm.GetUserResp | |||
| 9, // 9: slurm.SlurmService.ListAssociations:output_type -> slurm.ListAssociationsResp | |||
| 10, // 10: slurm.SlurmService.GetAssociation:output_type -> slurm.GetAssociationResp | |||
| 11, // 11: slurm.SlurmService.ListAccounts:output_type -> slurm.ListAccountsResp | |||
| 12, // 12: slurm.SlurmService.GetAccount:output_type -> slurm.GetAccountResp | |||
| 13, // 13: slurm.SlurmService.ListQoss:output_type -> slurm.ListQossResp | |||
| 7, // [7:14] is the sub-list for method output_type | |||
| 0, // [0:7] is the sub-list for method input_type | |||
| 0, // [0:0] is the sub-list for extension type_name | |||
| 0, // [0:0] is the sub-list for extension extendee | |||
| 0, // [0:0] is the sub-list for field type_name | |||
| @@ -101,6 +109,7 @@ func file_idl_slurm_proto_init() { | |||
| file_idl_slurmdb_user_proto_init() | |||
| file_idl_slurmdb_assoc_proto_init() | |||
| file_idl_slurmdb_account_proto_init() | |||
| file_idl_slurmdb_qos_proto_init() | |||
| type x struct{} | |||
| out := protoimpl.TypeBuilder{ | |||
| File: protoimpl.DescBuilder{ | |||
| @@ -247,6 +247,42 @@ func local_request_SlurmService_GetAccount_0(ctx context.Context, marshaler runt | |||
| } | |||
| var ( | |||
| filter_SlurmService_ListQoss_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} | |||
| ) | |||
| func request_SlurmService_ListQoss_0(ctx context.Context, marshaler runtime.Marshaler, client SlurmServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { | |||
| var protoReq ListQossReq | |||
| var metadata runtime.ServerMetadata | |||
| if err := req.ParseForm(); err != nil { | |||
| return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | |||
| } | |||
| if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SlurmService_ListQoss_0); err != nil { | |||
| return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | |||
| } | |||
| msg, err := client.ListQoss(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) | |||
| return msg, metadata, err | |||
| } | |||
| func local_request_SlurmService_ListQoss_0(ctx context.Context, marshaler runtime.Marshaler, server SlurmServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { | |||
| var protoReq ListQossReq | |||
| var metadata runtime.ServerMetadata | |||
| if err := req.ParseForm(); err != nil { | |||
| return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | |||
| } | |||
| if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SlurmService_ListQoss_0); err != nil { | |||
| return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) | |||
| } | |||
| msg, err := server.ListQoss(ctx, &protoReq) | |||
| return msg, metadata, err | |||
| } | |||
| // RegisterSlurmServiceHandlerServer registers the http handlers for service SlurmService to "mux". | |||
| // UnaryRPC :call SlurmServiceServer directly. | |||
| // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. | |||
| @@ -403,6 +439,31 @@ func RegisterSlurmServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu | |||
| }) | |||
| mux.Handle("GET", pattern_SlurmService_ListQoss_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { | |||
| ctx, cancel := context.WithCancel(req.Context()) | |||
| defer cancel() | |||
| var stream runtime.ServerTransportStream | |||
| ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) | |||
| inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) | |||
| var err error | |||
| var annotatedContext context.Context | |||
| annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/slurm.SlurmService/ListQoss", runtime.WithHTTPPathPattern("/apis/slurm/listQoss")) | |||
| if err != nil { | |||
| runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) | |||
| return | |||
| } | |||
| resp, md, err := local_request_SlurmService_ListQoss_0(annotatedContext, inboundMarshaler, server, req, pathParams) | |||
| md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) | |||
| annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) | |||
| if err != nil { | |||
| runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) | |||
| return | |||
| } | |||
| forward_SlurmService_ListQoss_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) | |||
| }) | |||
| return nil | |||
| } | |||
| @@ -576,6 +637,28 @@ func RegisterSlurmServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu | |||
| }) | |||
| mux.Handle("GET", pattern_SlurmService_ListQoss_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { | |||
| ctx, cancel := context.WithCancel(req.Context()) | |||
| defer cancel() | |||
| inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) | |||
| var err error | |||
| var annotatedContext context.Context | |||
| annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/slurm.SlurmService/ListQoss", runtime.WithHTTPPathPattern("/apis/slurm/listQoss")) | |||
| if err != nil { | |||
| runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) | |||
| return | |||
| } | |||
| resp, md, err := request_SlurmService_ListQoss_0(annotatedContext, inboundMarshaler, client, req, pathParams) | |||
| annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) | |||
| if err != nil { | |||
| runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) | |||
| return | |||
| } | |||
| forward_SlurmService_ListQoss_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) | |||
| }) | |||
| return nil | |||
| } | |||
| @@ -591,6 +674,8 @@ var ( | |||
| pattern_SlurmService_ListAccounts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"apis", "slurm", "listAccounts"}, "")) | |||
| pattern_SlurmService_GetAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"apis", "slurm", "getAccount"}, "")) | |||
| pattern_SlurmService_ListQoss_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"apis", "slurm", "listQoss"}, "")) | |||
| ) | |||
| var ( | |||
| @@ -605,4 +690,6 @@ var ( | |||
| forward_SlurmService_ListAccounts_0 = runtime.ForwardResponseMessage | |||
| forward_SlurmService_GetAccount_0 = runtime.ForwardResponseMessage | |||
| forward_SlurmService_ListQoss_0 = runtime.ForwardResponseMessage | |||
| ) | |||
| @@ -34,6 +34,8 @@ type SlurmServiceClient interface { | |||
| ListAccounts(ctx context.Context, in *ListAccountsReq, opts ...grpc.CallOption) (*ListAccountsResp, error) | |||
| // get specific account info from slurmdb | |||
| GetAccount(ctx context.Context, in *GetAccountReq, opts ...grpc.CallOption) (*GetAccountResp, error) | |||
| // list all qos info from slurmdb | |||
| ListQoss(ctx context.Context, in *ListQossReq, opts ...grpc.CallOption) (*ListQossResp, error) | |||
| } | |||
| type slurmServiceClient struct { | |||
| @@ -98,6 +100,15 @@ func (c *slurmServiceClient) GetAccount(ctx context.Context, in *GetAccountReq, | |||
| return out, nil | |||
| } | |||
| func (c *slurmServiceClient) ListQoss(ctx context.Context, in *ListQossReq, opts ...grpc.CallOption) (*ListQossResp, error) { | |||
| out := new(ListQossResp) | |||
| err := c.cc.Invoke(ctx, "/slurm.SlurmService/ListQoss", in, out, opts...) | |||
| if err != nil { | |||
| return nil, err | |||
| } | |||
| return out, nil | |||
| } | |||
| // SlurmServiceServer is the server API for SlurmService service. | |||
| // All implementations must embed UnimplementedSlurmServiceServer | |||
| // for forward compatibility | |||
| @@ -114,6 +125,8 @@ type SlurmServiceServer interface { | |||
| ListAccounts(context.Context, *ListAccountsReq) (*ListAccountsResp, error) | |||
| // get specific account info from slurmdb | |||
| GetAccount(context.Context, *GetAccountReq) (*GetAccountResp, error) | |||
| // list all qos info from slurmdb | |||
| ListQoss(context.Context, *ListQossReq) (*ListQossResp, error) | |||
| mustEmbedUnimplementedSlurmServiceServer() | |||
| } | |||
| @@ -139,6 +152,9 @@ func (UnimplementedSlurmServiceServer) ListAccounts(context.Context, *ListAccoun | |||
| func (UnimplementedSlurmServiceServer) GetAccount(context.Context, *GetAccountReq) (*GetAccountResp, error) { | |||
| return nil, status.Errorf(codes.Unimplemented, "method GetAccount not implemented") | |||
| } | |||
| func (UnimplementedSlurmServiceServer) ListQoss(context.Context, *ListQossReq) (*ListQossResp, error) { | |||
| return nil, status.Errorf(codes.Unimplemented, "method ListQoss not implemented") | |||
| } | |||
| func (UnimplementedSlurmServiceServer) mustEmbedUnimplementedSlurmServiceServer() {} | |||
| // UnsafeSlurmServiceServer may be embedded to opt out of forward compatibility for this service. | |||
| @@ -260,6 +276,24 @@ func _SlurmService_GetAccount_Handler(srv interface{}, ctx context.Context, dec | |||
| return interceptor(ctx, in, info, handler) | |||
| } | |||
| func _SlurmService_ListQoss_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |||
| in := new(ListQossReq) | |||
| if err := dec(in); err != nil { | |||
| return nil, err | |||
| } | |||
| if interceptor == nil { | |||
| return srv.(SlurmServiceServer).ListQoss(ctx, in) | |||
| } | |||
| info := &grpc.UnaryServerInfo{ | |||
| Server: srv, | |||
| FullMethod: "/slurm.SlurmService/ListQoss", | |||
| } | |||
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |||
| return srv.(SlurmServiceServer).ListQoss(ctx, req.(*ListQossReq)) | |||
| } | |||
| return interceptor(ctx, in, info, handler) | |||
| } | |||
| // SlurmService_ServiceDesc is the grpc.ServiceDesc for SlurmService service. | |||
| // It's only intended for direct use with grpc.RegisterService, | |||
| // and not to be introspected or modified (even as a copy) | |||
| @@ -291,6 +325,10 @@ var SlurmService_ServiceDesc = grpc.ServiceDesc{ | |||
| MethodName: "GetAccount", | |||
| Handler: _SlurmService_GetAccount_Handler, | |||
| }, | |||
| { | |||
| MethodName: "ListQoss", | |||
| Handler: _SlurmService_ListQoss_Handler, | |||
| }, | |||
| }, | |||
| Streams: []grpc.StreamDesc{}, | |||
| Metadata: "idl/slurm.proto", | |||
| @@ -322,6 +322,100 @@ func (x *QosInfo) GetUsageThres() float64 { | |||
| return 0 | |||
| } | |||
| type ListQossReq struct { | |||
| state protoimpl.MessageState | |||
| sizeCache protoimpl.SizeCache | |||
| unknownFields protoimpl.UnknownFields | |||
| SlurmVersion SlurmVersion `protobuf:"varint,1,opt,name=slurm_version,json=slurmVersion,proto3,enum=slurm.SlurmVersion" json:"slurm_version,omitempty"` | |||
| } | |||
| func (x *ListQossReq) Reset() { | |||
| *x = ListQossReq{} | |||
| if protoimpl.UnsafeEnabled { | |||
| mi := &file_idl_slurmdb_qos_proto_msgTypes[2] | |||
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |||
| ms.StoreMessageInfo(mi) | |||
| } | |||
| } | |||
| func (x *ListQossReq) String() string { | |||
| return protoimpl.X.MessageStringOf(x) | |||
| } | |||
| func (*ListQossReq) ProtoMessage() {} | |||
| func (x *ListQossReq) ProtoReflect() protoreflect.Message { | |||
| mi := &file_idl_slurmdb_qos_proto_msgTypes[2] | |||
| if protoimpl.UnsafeEnabled && x != nil { | |||
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |||
| if ms.LoadMessageInfo() == nil { | |||
| ms.StoreMessageInfo(mi) | |||
| } | |||
| return ms | |||
| } | |||
| return mi.MessageOf(x) | |||
| } | |||
| // Deprecated: Use ListQossReq.ProtoReflect.Descriptor instead. | |||
| func (*ListQossReq) Descriptor() ([]byte, []int) { | |||
| return file_idl_slurmdb_qos_proto_rawDescGZIP(), []int{2} | |||
| } | |||
| func (x *ListQossReq) GetSlurmVersion() SlurmVersion { | |||
| if x != nil { | |||
| return x.SlurmVersion | |||
| } | |||
| return SlurmVersion_tianhe | |||
| } | |||
| type ListQossResp struct { | |||
| state protoimpl.MessageState | |||
| sizeCache protoimpl.SizeCache | |||
| unknownFields protoimpl.UnknownFields | |||
| QosInfos []*QosInfo `protobuf:"bytes,1,rep,name=qos_infos,json=qosInfos,proto3" json:"qos_infos,omitempty"` | |||
| } | |||
| func (x *ListQossResp) Reset() { | |||
| *x = ListQossResp{} | |||
| if protoimpl.UnsafeEnabled { | |||
| mi := &file_idl_slurmdb_qos_proto_msgTypes[3] | |||
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |||
| ms.StoreMessageInfo(mi) | |||
| } | |||
| } | |||
| func (x *ListQossResp) String() string { | |||
| return protoimpl.X.MessageStringOf(x) | |||
| } | |||
| func (*ListQossResp) ProtoMessage() {} | |||
| func (x *ListQossResp) ProtoReflect() protoreflect.Message { | |||
| mi := &file_idl_slurmdb_qos_proto_msgTypes[3] | |||
| if protoimpl.UnsafeEnabled && x != nil { | |||
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |||
| if ms.LoadMessageInfo() == nil { | |||
| ms.StoreMessageInfo(mi) | |||
| } | |||
| return ms | |||
| } | |||
| return mi.MessageOf(x) | |||
| } | |||
| // Deprecated: Use ListQossResp.ProtoReflect.Descriptor instead. | |||
| func (*ListQossResp) Descriptor() ([]byte, []int) { | |||
| return file_idl_slurmdb_qos_proto_rawDescGZIP(), []int{3} | |||
| } | |||
| func (x *ListQossResp) GetQosInfos() []*QosInfo { | |||
| if x != nil { | |||
| return x.QosInfos | |||
| } | |||
| return nil | |||
| } | |||
| var File_idl_slurmdb_qos_proto protoreflect.FileDescriptor | |||
| var file_idl_slurmdb_qos_proto_rawDesc = []byte{ | |||
| @@ -386,9 +480,17 @@ var file_idl_slurmdb_qos_proto_rawDesc = []byte{ | |||
| 0x73, 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x01, | |||
| 0x52, 0x0b, 0x75, 0x73, 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, | |||
| 0x0a, 0x75, 0x73, 0x61, 0x67, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, | |||
| 0x01, 0x52, 0x0a, 0x75, 0x73, 0x61, 0x67, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x42, 0x0a, 0x5a, | |||
| 0x08, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, | |||
| 0x33, | |||
| 0x01, 0x52, 0x0a, 0x75, 0x73, 0x61, 0x67, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x22, 0x47, 0x0a, | |||
| 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x38, 0x0a, 0x0d, | |||
| 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, | |||
| 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x2e, 0x53, 0x6c, 0x75, 0x72, | |||
| 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x56, | |||
| 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x6f, | |||
| 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x09, 0x71, 0x6f, 0x73, 0x5f, 0x69, 0x6e, | |||
| 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x6c, 0x75, 0x72, | |||
| 0x6d, 0x2e, 0x51, 0x6f, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x6f, 0x73, 0x49, 0x6e, | |||
| 0x66, 0x6f, 0x73, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x73, 0x6c, 0x75, 0x72, 0x6d, 0x70, 0x62, 0x62, | |||
| 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | |||
| } | |||
| var ( | |||
| @@ -403,18 +505,23 @@ func file_idl_slurmdb_qos_proto_rawDescGZIP() []byte { | |||
| return file_idl_slurmdb_qos_proto_rawDescData | |||
| } | |||
| var file_idl_slurmdb_qos_proto_msgTypes = make([]protoimpl.MessageInfo, 2) | |||
| var file_idl_slurmdb_qos_proto_msgTypes = make([]protoimpl.MessageInfo, 4) | |||
| var file_idl_slurmdb_qos_proto_goTypes = []interface{}{ | |||
| (*QosUsageInfo)(nil), // 0: slurm.QosUsageInfo | |||
| (*QosInfo)(nil), // 1: slurm.QosInfo | |||
| (*ListQossReq)(nil), // 2: slurm.ListQossReq | |||
| (*ListQossResp)(nil), // 3: slurm.ListQossResp | |||
| (SlurmVersion)(0), // 4: slurm.SlurmVersion | |||
| } | |||
| var file_idl_slurmdb_qos_proto_depIdxs = []int32{ | |||
| 0, // 0: slurm.QosInfo.usage:type_name -> slurm.QosUsageInfo | |||
| 1, // [1:1] is the sub-list for method output_type | |||
| 1, // [1:1] is the sub-list for method input_type | |||
| 1, // [1:1] is the sub-list for extension type_name | |||
| 1, // [1:1] is the sub-list for extension extendee | |||
| 0, // [0:1] is the sub-list for field type_name | |||
| 4, // 1: slurm.ListQossReq.slurm_version:type_name -> slurm.SlurmVersion | |||
| 1, // 2: slurm.ListQossResp.qos_infos:type_name -> slurm.QosInfo | |||
| 3, // [3:3] is the sub-list for method output_type | |||
| 3, // [3:3] is the sub-list for method input_type | |||
| 3, // [3:3] is the sub-list for extension type_name | |||
| 3, // [3:3] is the sub-list for extension extendee | |||
| 0, // [0:3] is the sub-list for field type_name | |||
| } | |||
| func init() { file_idl_slurmdb_qos_proto_init() } | |||
| @@ -448,6 +555,30 @@ func file_idl_slurmdb_qos_proto_init() { | |||
| return nil | |||
| } | |||
| } | |||
| file_idl_slurmdb_qos_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { | |||
| switch v := v.(*ListQossReq); i { | |||
| case 0: | |||
| return &v.state | |||
| case 1: | |||
| return &v.sizeCache | |||
| case 2: | |||
| return &v.unknownFields | |||
| default: | |||
| return nil | |||
| } | |||
| } | |||
| file_idl_slurmdb_qos_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { | |||
| switch v := v.(*ListQossResp); i { | |||
| case 0: | |||
| return &v.state | |||
| case 1: | |||
| return &v.sizeCache | |||
| case 2: | |||
| return &v.unknownFields | |||
| default: | |||
| return nil | |||
| } | |||
| } | |||
| } | |||
| type x struct{} | |||
| out := protoimpl.TypeBuilder{ | |||
| @@ -455,7 +586,7 @@ func file_idl_slurmdb_qos_proto_init() { | |||
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | |||
| RawDescriptor: file_idl_slurmdb_qos_proto_rawDesc, | |||
| NumEnums: 0, | |||
| NumMessages: 2, | |||
| NumMessages: 4, | |||
| NumExtensions: 0, | |||
| NumServices: 0, | |||
| }, | |||
| @@ -284,6 +284,17 @@ | |||
| } | |||
| } | |||
| }, | |||
| "slurmListQossResp": { | |||
| "type": "object", | |||
| "properties": { | |||
| "qosInfos": { | |||
| "type": "array", | |||
| "items": { | |||
| "$ref": "#/definitions/slurmQosInfo" | |||
| } | |||
| } | |||
| } | |||
| }, | |||
| "slurmListUsersResp": { | |||
| "type": "object", | |||
| "properties": { | |||
| @@ -6,6 +6,7 @@ import "idl/node.proto"; | |||
| import "idl/slurmdb_user.proto"; | |||
| import "idl/slurmdb_assoc.proto"; | |||
| import "idl/slurmdb_account.proto"; | |||
| import "idl/slurmdb_qos.proto"; | |||
| // Slurm Services | |||
| @@ -29,4 +30,7 @@ service SlurmService { | |||
| // get specific account info from slurmdb | |||
| rpc GetAccount(GetAccountReq) returns (GetAccountResp); | |||
| // list all qos info from slurmdb | |||
| rpc ListQoss(ListQossReq) returns (ListQossResp); | |||
| } | |||
| @@ -15,4 +15,6 @@ http: | |||
| get: "/apis/slurm/listAccounts" | |||
| - selector: slurm.SlurmService.GetAccount | |||
| get: "/apis/slurm/getAccount" | |||
| - selector: slurm.SlurmService.ListQoss | |||
| get: "/apis/slurm/listQoss" | |||
| @@ -39,3 +39,11 @@ message QosInfo{ | |||
| double usageFactor = 27 ; | |||
| double usageThres = 28 ; | |||
| } | |||
| message ListQossReq{ | |||
| SlurmVersion slurm_version = 1; | |||
| } | |||
| message ListQossResp { | |||
| repeated QosInfo qos_infos =1; | |||
| } | |||
| @@ -71,3 +71,13 @@ func (s *Server) GetAccount(ctx context.Context, req *slurmpb.GetAccountReq) (*s | |||
| } | |||
| return resp, nil | |||
| } | |||
| // ListQoss return all slurm qos | |||
| func (s *Server) ListQoss(ctx context.Context, req *slurmpb.ListQossReq) (*slurmpb.ListQossResp, error) { | |||
| resp, err := ListQoss(ctx, req) | |||
| if err != nil { | |||
| glog.Errorf("ListSlurmQoss error %+v", err) | |||
| return nil, status.Errorf(codes.Internal, err.Error()) | |||
| } | |||
| return resp, nil | |||
| } | |||
| @@ -59,3 +59,12 @@ func GetAccount(ctx context.Context, req *pbslurm.GetAccountReq) (*pbslurm.GetAc | |||
| resp, _ := slurm.GetAccount(ctx, req) | |||
| return resp, nil | |||
| } | |||
| func ListQoss(ctx context.Context, req *pbslurm.ListQossReq) (*pbslurm.ListQossResp, error) { | |||
| slurm, _ := slurmer.SelectSlurmVersion(req.SlurmVersion) | |||
| if slurm == nil { | |||
| return nil, nil | |||
| } | |||
| resp, _ := slurm.ListQoss(ctx, req) | |||
| return resp, nil | |||
| } | |||
| @@ -0,0 +1,158 @@ | |||
| package slurmer | |||
| import "C" | |||
| import pbslurm "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pcm_slurm/gen/idl" | |||
| /* | |||
| #cgo LDFLAGS: -lslurmdb | |||
| #include <stdio.h> | |||
| #include <stdlib.h> | |||
| #include <stdint.h> | |||
| #include <slurm/slurm.h> | |||
| #include <slurm/slurmdb.h> | |||
| #include<slurm/slurm_errno.h> | |||
| #include <memory.h> | |||
| #include <malloc.h> | |||
| typedef struct slurmdb_qos_rec { | |||
| char *description; | |||
| uint32_t id; | |||
| uint32_t flags; | |||
| uint32_t grace_time; | |||
| uint64_t grp_cpu_mins; | |||
| uint64_t grp_cpu_run_mins; | |||
| uint32_t grp_cpus; | |||
| uint32_t grp_jobs; | |||
| uint32_t grp_mem; | |||
| uint32_t grp_nodes; | |||
| uint32_t grp_submit_jobs; | |||
| uint32_t grp_wall; | |||
| uint64_t max_cpu_mins_pj; | |||
| uint64_t max_cpu_run_mins_pu; | |||
| uint32_t max_cpus_pj; | |||
| uint32_t max_cpus_pu; | |||
| uint32_t max_jobs_pu; | |||
| uint32_t max_nodes_pj; | |||
| uint32_t max_nodes_pu; | |||
| uint32_t max_submit_jobs_pu; | |||
| uint32_t max_wall_pj; | |||
| char *name; | |||
| bitstr_t *preempt_bitstr; | |||
| List preempt_list; | |||
| uint16_t preempt_mode; | |||
| uint32_t priority; | |||
| assoc_mgr_qos_usage_t *usage; | |||
| double usage_factor; | |||
| double usage_thres; | |||
| } slurmdb_qos_rec_a; | |||
| typedef struct qos_info { | |||
| uint32_t record_count; | |||
| slurmdb_qos_rec_t *array; | |||
| } qos_info_t; | |||
| struct qos_info get_qos_list() { | |||
| struct qos_info qosinfo; | |||
| slurmdb_qos_cond_t *qos_cond = NULL; | |||
| void *conn = slurmdb_connection_get(); | |||
| List qoslist = slurmdb_qos_get(conn, qos_cond); | |||
| uint16_t size = slurm_list_count(qoslist); | |||
| qosinfo.record_count = size; | |||
| qosinfo.array = malloc(size * sizeof(slurmdb_qos_rec_t)); | |||
| //slurmdb_qos_rec_t qosArray[size]; | |||
| slurmdb_qos_rec_t *rec = NULL; | |||
| ListIterator itr = slurm_list_iterator_create(qoslist); | |||
| int i = 0; | |||
| while ((rec = slurm_list_next(itr))) { | |||
| qosinfo.array[i] = *rec; | |||
| i++; | |||
| } | |||
| slurmdb_connection_close(&conn); | |||
| slurm_list_destroy(qoslist); | |||
| return qosinfo; | |||
| } | |||
| struct slurmdb_qos_rec *qos_from_list(struct qos_info *qos_rec_t, int i) { | |||
| return (struct slurmdb_qos_rec *) &qos_rec_t->array[i]; | |||
| } | |||
| */ | |||
| import "C" | |||
| import ( | |||
| "context" | |||
| ) | |||
| type Slurmdb_qos_rec struct { | |||
| Description string | |||
| Id uint32 | |||
| Flags uint32 | |||
| GraceTime uint32 | |||
| GrpCpuMins uint64 | |||
| GrpCpuRunMins uint64 | |||
| GrpCpus uint32 | |||
| GrpJobs uint32 | |||
| GrpMem uint32 | |||
| GrpNodes uint32 | |||
| GrpSubmitJobs uint32 | |||
| MaxCpuMinsPj uint64 | |||
| MaxCpuRunMinsPu uint64 | |||
| MaxCpusPj uint32 | |||
| MaxCpusPu uint32 | |||
| MaxJobsPu uint32 | |||
| MaxNodesPj uint32 | |||
| MaxNodesPu uint32 | |||
| MaxSubmitJobsPu uint32 | |||
| MaxWallPj uint32 | |||
| Name string | |||
| preemptList []string | |||
| preempt_mode uint16 | |||
| priority uint32 | |||
| usage_factor float64 | |||
| usage_thres float64 | |||
| } | |||
| type QosInfoMsg struct { | |||
| RecordCount uint32 | |||
| QosList []pbslurm.QosInfo | |||
| } | |||
| func QosDescriptorConvertCToGo(cStruct *C.struct_slurmdb_qos_rec) pbslurm.QosInfo { | |||
| var goStruct pbslurm.QosInfo | |||
| goStruct.Name = C.GoString(cStruct.name) | |||
| return goStruct | |||
| } | |||
| func GetQosInfo() QosInfoMsg { | |||
| var goQosBuffer QosInfoMsg | |||
| cQosBuffer := C.get_qos_list() | |||
| goQosBuffer.RecordCount = uint32(cQosBuffer.record_count) | |||
| goQosBuffer.QosList = make([]pbslurm.QosInfo, cQosBuffer.record_count, cQosBuffer.record_count) | |||
| for i := uint32(0); i < goQosBuffer.RecordCount; i++ { | |||
| qos := C.qos_from_list(&cQosBuffer, C.int(i)) | |||
| goQos := QosDescriptorConvertCToGo(qos) | |||
| goQosBuffer.QosList[i] = goQos | |||
| } | |||
| return goQosBuffer | |||
| } | |||
| func (slurmStruct SlurmStruct) ListQoss(ctx context.Context, req *pbslurm.ListQossReq) (*pbslurm.ListQossResp, error) { | |||
| qosList := GetQosInfo() | |||
| resp := pbslurm.ListQossResp{} | |||
| for _, qos := range qosList.QosList { | |||
| qosInfoResult := qos | |||
| //userInfoResult.Name = user.Name | |||
| resp.QosInfos = append(resp.QosInfos, &qosInfoResult) | |||
| } | |||
| return &resp, nil | |||
| } | |||
| @@ -12,6 +12,7 @@ type Slurmer interface { | |||
| 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 | |||
| GetAccount(ctx context.Context, req *pbslurm.GetAccountReq) (resp *pbslurm.GetAccountResp, err error) //get specific slurm account | |||
| ListQoss(ctx context.Context, req *pbslurm.ListQossReq) (resp *pbslurm.ListQossResp, err error) //list slurm accounts | |||
| } | |||
| func SelectSlurmVersion(slurmVersion pbslurm.SlurmVersion) (slurmer Slurmer, err error) { | |||