diff --git a/sdks/imfs/config.go b/sdks/imfs/config.go index 2f0adce..9227153 100644 --- a/sdks/imfs/config.go +++ b/sdks/imfs/config.go @@ -3,3 +3,9 @@ package imsdk type Config struct { URL string `json:"url"` } + +type ProxyConfig struct { + IP string `json:"ip"` + ClientPort string `json:"clientPort"` + NodePort string `json:"nodePort"` +} diff --git a/sdks/imfs/models.go b/sdks/imfs/models.go index 4f6a03f..ca69c94 100644 --- a/sdks/imfs/models.go +++ b/sdks/imfs/models.go @@ -1,5 +1,7 @@ package imsdk +import schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler" + const ( EnvPackageList = "IMFS_PACKAGE_LIST" EnvServiceAddress = "IMFS_SERVICE_ADDRESS" @@ -9,3 +11,19 @@ const ( EnvClientServiceList = "CLENT_SERVICE_LIST" EnvServerServiceList = "SERVER_SERVICE_LIST" ) + +//代表本任务需要访问的服务 +type ClientService struct { + Name string `json:"name"` +} + +//代表任务给提供各服务的端口 +type ServerService struct { + Name string `json:"name"` + Port string `json:"port"` +} + +type FullJobID struct { + JobSetID schsdk.JobSetID + LocalJobID string +} diff --git a/sdks/imfs/proxy.go b/sdks/imfs/proxy.go index ec55f64..ff797b7 100644 --- a/sdks/imfs/proxy.go +++ b/sdks/imfs/proxy.go @@ -8,19 +8,19 @@ import ( myhttp "gitlink.org.cn/cloudream/common/utils/http" ) -const ProxyGetServiceInfoPath = "/proxy/getServiceInfo" +const ProxyGetJobIDPath = "/proxy/getJobID" -type ProxyGetServiceInfo struct { +type ProxyGetJobID struct { ServiceName string `json:"serviceName"` JobSetID schsdk.JobSetID `json:"jobSetID"` } -type ProxyGetServiceInfoResp struct { +type ProxyGetJobIDResp struct { LocalJobID string `json:"localJobID"` } -func (c *Client) ProxyGetJobID(req ProxyGetServiceInfo) (*ProxyGetServiceInfoResp, error) { - url, err := url.JoinPath(c.baseURL, ProxyGetServiceInfoPath) +func (c *Client) ProxyGetJobID(req ProxyGetJobID) (*ProxyGetJobIDResp, error) { + url, err := url.JoinPath(c.baseURL, ProxyGetJobIDPath) if err != nil { return nil, err } @@ -32,7 +32,7 @@ func (c *Client) ProxyGetJobID(req ProxyGetServiceInfo) (*ProxyGetServiceInfoRes return nil, err } - jsonResp, err := myhttp.ParseJSONResponse[response[ProxyGetServiceInfoResp]](resp) + jsonResp, err := myhttp.ParseJSONResponse[response[ProxyGetJobIDResp]](resp) if err != nil { return nil, err } diff --git a/utils/io/binary.go b/utils/io/binary.go index 6a42261..d2c28c6 100644 --- a/utils/io/binary.go +++ b/utils/io/binary.go @@ -61,6 +61,26 @@ func ReadUint32Field(reader *bufio.Reader) (uint32, error) { return binary.LittleEndian.Uint32(dataBytes), nil } +func WriteUint64Field(writer *bufio.Writer, data uint64) error { + dataBytes := make([]byte, 8) + binary.LittleEndian.PutUint64(dataBytes, data) + + err := WriteAll(writer, dataBytes) + if err != nil { + return err + } + return nil +} + +func ReadUint64Field(reader *bufio.Reader) (uint64, error) { + dataBytes := make([]byte, 8) + _, err := io.ReadFull(reader, dataBytes) + if err != nil { + return 0, err + } + return binary.LittleEndian.Uint64(dataBytes), nil +} + func WriteStringField(writer *bufio.Writer, data string) error { dataBytes := []byte(data) if err := writer.WriteByte(byte(len(dataBytes))); err != nil {