| @@ -3,3 +3,9 @@ package imsdk | |||||
| type Config struct { | type Config struct { | ||||
| URL string `json:"url"` | URL string `json:"url"` | ||||
| } | } | ||||
| type ProxyConfig struct { | |||||
| IP string `json:"ip"` | |||||
| ClientPort string `json:"clientPort"` | |||||
| NodePort string `json:"nodePort"` | |||||
| } | |||||
| @@ -1,5 +1,7 @@ | |||||
| package imsdk | package imsdk | ||||
| import schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler" | |||||
| const ( | const ( | ||||
| EnvPackageList = "IMFS_PACKAGE_LIST" | EnvPackageList = "IMFS_PACKAGE_LIST" | ||||
| EnvServiceAddress = "IMFS_SERVICE_ADDRESS" | EnvServiceAddress = "IMFS_SERVICE_ADDRESS" | ||||
| @@ -9,3 +11,19 @@ const ( | |||||
| EnvClientServiceList = "CLENT_SERVICE_LIST" | EnvClientServiceList = "CLENT_SERVICE_LIST" | ||||
| EnvServerServiceList = "SERVER_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 | |||||
| } | |||||
| @@ -8,19 +8,19 @@ import ( | |||||
| myhttp "gitlink.org.cn/cloudream/common/utils/http" | 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"` | ServiceName string `json:"serviceName"` | ||||
| JobSetID schsdk.JobSetID `json:"jobSetID"` | JobSetID schsdk.JobSetID `json:"jobSetID"` | ||||
| } | } | ||||
| type ProxyGetServiceInfoResp struct { | |||||
| type ProxyGetJobIDResp struct { | |||||
| LocalJobID string `json:"localJobID"` | 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 { | if err != nil { | ||||
| return nil, err | return nil, err | ||||
| } | } | ||||
| @@ -32,7 +32,7 @@ func (c *Client) ProxyGetJobID(req ProxyGetServiceInfo) (*ProxyGetServiceInfoRes | |||||
| return nil, err | return nil, err | ||||
| } | } | ||||
| jsonResp, err := myhttp.ParseJSONResponse[response[ProxyGetServiceInfoResp]](resp) | |||||
| jsonResp, err := myhttp.ParseJSONResponse[response[ProxyGetJobIDResp]](resp) | |||||
| if err != nil { | if err != nil { | ||||
| return nil, err | return nil, err | ||||
| } | } | ||||
| @@ -61,6 +61,26 @@ func ReadUint32Field(reader *bufio.Reader) (uint32, error) { | |||||
| return binary.LittleEndian.Uint32(dataBytes), nil | 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 { | func WriteStringField(writer *bufio.Writer, data string) error { | ||||
| dataBytes := []byte(data) | dataBytes := []byte(data) | ||||
| if err := writer.WriteByte(byte(len(dataBytes))); err != nil { | if err := writer.WriteByte(byte(len(dataBytes))); err != nil { | ||||