| @@ -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, | 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, | 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, | 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{}{ | var file_idl_slurm_proto_goTypes = []interface{}{ | ||||
| @@ -65,12 +69,14 @@ var file_idl_slurm_proto_goTypes = []interface{}{ | |||||
| (*GetAssociationReq)(nil), // 3: slurm.GetAssociationReq | (*GetAssociationReq)(nil), // 3: slurm.GetAssociationReq | ||||
| (*ListAccountsReq)(nil), // 4: slurm.ListAccountsReq | (*ListAccountsReq)(nil), // 4: slurm.ListAccountsReq | ||||
| (*GetAccountReq)(nil), // 5: slurm.GetAccountReq | (*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{ | var file_idl_slurm_proto_depIdxs = []int32{ | ||||
| 0, // 0: slurm.SlurmService.ListUsers:input_type -> slurm.ListUsersReq | 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 | 3, // 3: slurm.SlurmService.GetAssociation:input_type -> slurm.GetAssociationReq | ||||
| 4, // 4: slurm.SlurmService.ListAccounts:input_type -> slurm.ListAccountsReq | 4, // 4: slurm.SlurmService.ListAccounts:input_type -> slurm.ListAccountsReq | ||||
| 5, // 5: slurm.SlurmService.GetAccount:input_type -> slurm.GetAccountReq | 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 type_name | ||||
| 0, // [0:0] is the sub-list for extension extendee | 0, // [0:0] is the sub-list for extension extendee | ||||
| 0, // [0:0] is the sub-list for field type_name | 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_user_proto_init() | ||||
| file_idl_slurmdb_assoc_proto_init() | file_idl_slurmdb_assoc_proto_init() | ||||
| file_idl_slurmdb_account_proto_init() | file_idl_slurmdb_account_proto_init() | ||||
| file_idl_slurmdb_qos_proto_init() | |||||
| type x struct{} | type x struct{} | ||||
| out := protoimpl.TypeBuilder{ | out := protoimpl.TypeBuilder{ | ||||
| File: protoimpl.DescBuilder{ | 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". | // RegisterSlurmServiceHandlerServer registers the http handlers for service SlurmService to "mux". | ||||
| // UnaryRPC :call SlurmServiceServer directly. | // UnaryRPC :call SlurmServiceServer directly. | ||||
| // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. | // 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 | 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 | 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_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_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 ( | var ( | ||||
| @@ -605,4 +690,6 @@ var ( | |||||
| forward_SlurmService_ListAccounts_0 = runtime.ForwardResponseMessage | forward_SlurmService_ListAccounts_0 = runtime.ForwardResponseMessage | ||||
| forward_SlurmService_GetAccount_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) | ListAccounts(ctx context.Context, in *ListAccountsReq, opts ...grpc.CallOption) (*ListAccountsResp, error) | ||||
| // get specific account info from slurmdb | // get specific account info from slurmdb | ||||
| GetAccount(ctx context.Context, in *GetAccountReq, opts ...grpc.CallOption) (*GetAccountResp, error) | 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 { | type slurmServiceClient struct { | ||||
| @@ -98,6 +100,15 @@ func (c *slurmServiceClient) GetAccount(ctx context.Context, in *GetAccountReq, | |||||
| return out, nil | 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. | // SlurmServiceServer is the server API for SlurmService service. | ||||
| // All implementations must embed UnimplementedSlurmServiceServer | // All implementations must embed UnimplementedSlurmServiceServer | ||||
| // for forward compatibility | // for forward compatibility | ||||
| @@ -114,6 +125,8 @@ type SlurmServiceServer interface { | |||||
| ListAccounts(context.Context, *ListAccountsReq) (*ListAccountsResp, error) | ListAccounts(context.Context, *ListAccountsReq) (*ListAccountsResp, error) | ||||
| // get specific account info from slurmdb | // get specific account info from slurmdb | ||||
| GetAccount(context.Context, *GetAccountReq) (*GetAccountResp, error) | GetAccount(context.Context, *GetAccountReq) (*GetAccountResp, error) | ||||
| // list all qos info from slurmdb | |||||
| ListQoss(context.Context, *ListQossReq) (*ListQossResp, error) | |||||
| mustEmbedUnimplementedSlurmServiceServer() | mustEmbedUnimplementedSlurmServiceServer() | ||||
| } | } | ||||
| @@ -139,6 +152,9 @@ func (UnimplementedSlurmServiceServer) ListAccounts(context.Context, *ListAccoun | |||||
| func (UnimplementedSlurmServiceServer) GetAccount(context.Context, *GetAccountReq) (*GetAccountResp, error) { | func (UnimplementedSlurmServiceServer) GetAccount(context.Context, *GetAccountReq) (*GetAccountResp, error) { | ||||
| return nil, status.Errorf(codes.Unimplemented, "method GetAccount not implemented") | 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() {} | func (UnimplementedSlurmServiceServer) mustEmbedUnimplementedSlurmServiceServer() {} | ||||
| // UnsafeSlurmServiceServer may be embedded to opt out of forward compatibility for this service. | // 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) | 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. | // SlurmService_ServiceDesc is the grpc.ServiceDesc for SlurmService service. | ||||
| // It's only intended for direct use with grpc.RegisterService, | // It's only intended for direct use with grpc.RegisterService, | ||||
| // and not to be introspected or modified (even as a copy) | // and not to be introspected or modified (even as a copy) | ||||
| @@ -291,6 +325,10 @@ var SlurmService_ServiceDesc = grpc.ServiceDesc{ | |||||
| MethodName: "GetAccount", | MethodName: "GetAccount", | ||||
| Handler: _SlurmService_GetAccount_Handler, | Handler: _SlurmService_GetAccount_Handler, | ||||
| }, | }, | ||||
| { | |||||
| MethodName: "ListQoss", | |||||
| Handler: _SlurmService_ListQoss_Handler, | |||||
| }, | |||||
| }, | }, | ||||
| Streams: []grpc.StreamDesc{}, | Streams: []grpc.StreamDesc{}, | ||||
| Metadata: "idl/slurm.proto", | Metadata: "idl/slurm.proto", | ||||
| @@ -322,6 +322,100 @@ func (x *QosInfo) GetUsageThres() float64 { | |||||
| return 0 | 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 protoreflect.FileDescriptor | ||||
| var file_idl_slurmdb_qos_proto_rawDesc = []byte{ | 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, | 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, | 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, | 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 ( | var ( | ||||
| @@ -403,18 +505,23 @@ func file_idl_slurmdb_qos_proto_rawDescGZIP() []byte { | |||||
| return file_idl_slurmdb_qos_proto_rawDescData | 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{}{ | var file_idl_slurmdb_qos_proto_goTypes = []interface{}{ | ||||
| (*QosUsageInfo)(nil), // 0: slurm.QosUsageInfo | (*QosUsageInfo)(nil), // 0: slurm.QosUsageInfo | ||||
| (*QosInfo)(nil), // 1: slurm.QosInfo | (*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{ | var file_idl_slurmdb_qos_proto_depIdxs = []int32{ | ||||
| 0, // 0: slurm.QosInfo.usage:type_name -> slurm.QosUsageInfo | 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() } | func init() { file_idl_slurmdb_qos_proto_init() } | ||||
| @@ -448,6 +555,30 @@ func file_idl_slurmdb_qos_proto_init() { | |||||
| return nil | 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{} | type x struct{} | ||||
| out := protoimpl.TypeBuilder{ | out := protoimpl.TypeBuilder{ | ||||
| @@ -455,7 +586,7 @@ func file_idl_slurmdb_qos_proto_init() { | |||||
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | ||||
| RawDescriptor: file_idl_slurmdb_qos_proto_rawDesc, | RawDescriptor: file_idl_slurmdb_qos_proto_rawDesc, | ||||
| NumEnums: 0, | NumEnums: 0, | ||||
| NumMessages: 2, | |||||
| NumMessages: 4, | |||||
| NumExtensions: 0, | NumExtensions: 0, | ||||
| NumServices: 0, | NumServices: 0, | ||||
| }, | }, | ||||
| @@ -284,6 +284,17 @@ | |||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| "slurmListQossResp": { | |||||
| "type": "object", | |||||
| "properties": { | |||||
| "qosInfos": { | |||||
| "type": "array", | |||||
| "items": { | |||||
| "$ref": "#/definitions/slurmQosInfo" | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| "slurmListUsersResp": { | "slurmListUsersResp": { | ||||
| "type": "object", | "type": "object", | ||||
| "properties": { | "properties": { | ||||
| @@ -6,6 +6,7 @@ import "idl/node.proto"; | |||||
| import "idl/slurmdb_user.proto"; | import "idl/slurmdb_user.proto"; | ||||
| import "idl/slurmdb_assoc.proto"; | import "idl/slurmdb_assoc.proto"; | ||||
| import "idl/slurmdb_account.proto"; | import "idl/slurmdb_account.proto"; | ||||
| import "idl/slurmdb_qos.proto"; | |||||
| // Slurm Services | // Slurm Services | ||||
| @@ -29,4 +30,7 @@ service SlurmService { | |||||
| // get specific account info from slurmdb | // get specific account info from slurmdb | ||||
| rpc GetAccount(GetAccountReq) returns (GetAccountResp); | 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" | get: "/apis/slurm/listAccounts" | ||||
| - selector: slurm.SlurmService.GetAccount | - selector: slurm.SlurmService.GetAccount | ||||
| get: "/apis/slurm/getAccount" | get: "/apis/slurm/getAccount" | ||||
| - selector: slurm.SlurmService.ListQoss | |||||
| get: "/apis/slurm/listQoss" | |||||
| @@ -39,3 +39,11 @@ message QosInfo{ | |||||
| double usageFactor = 27 ; | double usageFactor = 27 ; | ||||
| double usageThres = 28 ; | 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 | 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) | resp, _ := slurm.GetAccount(ctx, req) | ||||
| return resp, nil | 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 | 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 | 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 | 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) { | func SelectSlurmVersion(slurmVersion pbslurm.SlurmVersion) (slurmer Slurmer, err error) { | ||||