forked from JointCloud/pcm-coordinator
68 lines
2.4 KiB
Go
68 lines
2.4 KiB
Go
package slurmer
|
|
|
|
import "C"
|
|
import (
|
|
pbslurm "code.gitlink.org.cn/JCCE/PCM.git/adaptor/pcm_slurm/gen/idl"
|
|
"code.gitlink.org.cn/JCCE/PCM.git/adaptor/pcm_slurm/service/tianhe"
|
|
"context"
|
|
"strings"
|
|
)
|
|
|
|
func (slurmStruct SlurmStruct) ListReservations(ctx context.Context, req *pbslurm.ListReservationsReq) (*pbslurm.ListReservationsResp, error) {
|
|
reservationList := tianhe.Get_all_reservation()
|
|
|
|
var resp = pbslurm.ListReservationsResp{}
|
|
for _, reservation := range reservationList.ReservationList {
|
|
reservationInfoResult := reservation
|
|
resp.ReservationList = append(resp.ReservationList, &reservationInfoResult)
|
|
}
|
|
return &resp, nil
|
|
}
|
|
|
|
func (slurmStruct SlurmStruct) GetReservation(ctx context.Context, req *pbslurm.GetReservationReq) (*pbslurm.GetReservationResp, error) {
|
|
ReservationList := tianhe.GetReservationsInfo()
|
|
resp := pbslurm.GetReservationResp{}
|
|
for _, reservation := range ReservationList.ReservationList {
|
|
reservationInfoResult := reservation
|
|
if strings.Contains(reservation.Name, req.ReservationName) {
|
|
resp.ReservationInfos = append(resp.ReservationInfos, &reservationInfoResult)
|
|
}
|
|
}
|
|
return &resp, nil
|
|
}
|
|
|
|
/*func (slurmStruct SlurmStruct) GetReservationByName(ctx context.Context, req *pbslurm.ReservationInfoMsgReq) (*pbslurm.ReservationInfoMsgResp, error) {
|
|
reservation := Get_reservation_info(req.ReservationName)
|
|
var resp = pbslurm.ReservationInfoMsgResp{}
|
|
for _, reservation := range reservation.Reservation_list {
|
|
reservationInfoResult := pbslurm.Reservation_Info{}
|
|
reservationInfoResult.Name = reservation.Name
|
|
/*nodeInfoResult.Boards = uint32(node.Boards)
|
|
nodeInfoResult.RealMemory = node.Real_memory
|
|
nodeInfoResult.Sockets = uint32(node.Sockets)
|
|
nodeInfoResult.Threads = uint32(node.Threads)*
|
|
resp.ReservationList = append(resp.ReservationList, &reservationInfoResult)
|
|
}
|
|
return &resp, nil
|
|
}
|
|
|
|
func Get_reservation_info(name string) ReserveInfoMsg {
|
|
go_reservation_buffer := Get_all_reservation()
|
|
//partitionList := list.New()
|
|
for i := range go_reservation_buffer.ReservationList {
|
|
//遍历nodeList集合
|
|
reservation := go_reservation_buffer.ReservationList[i]
|
|
fmt.Println("reservationName: " + reservation.Name)
|
|
//当集合中的名字等于传过来的值
|
|
if name == reservation.Name {
|
|
/*partitionList.PushFront(partition.Name)
|
|
partitionList.PushFront(partition.Nodes)*
|
|
} else {
|
|
|
|
}
|
|
//fmt.Println(partition.Node_inx)
|
|
}
|
|
return go_reservation_buffer
|
|
|
|
}*/
|