Browse Source

Merge pull request '多协议代理' (#38) from feature_sjc into master

pull/40/head
Sydonian 1 year ago
parent
commit
3f2286f389
4 changed files with 50 additions and 6 deletions
  1. +6
    -0
      sdks/imfs/config.go
  2. +18
    -0
      sdks/imfs/models.go
  3. +6
    -6
      sdks/imfs/proxy.go
  4. +20
    -0
      utils/io/binary.go

+ 6
- 0
sdks/imfs/config.go View File

@@ -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"`
}

+ 18
- 0
sdks/imfs/models.go View File

@@ -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
}

+ 6
- 6
sdks/imfs/proxy.go View File

@@ -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
}


+ 20
- 0
utils/io/binary.go View File

@@ -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 {


Loading…
Cancel
Save