Browse Source

增加storage api

pull/8/head
songjc 2 years ago
parent
commit
c4c996a29c
3 changed files with 93 additions and 1 deletions
  1. +74
    -0
      api/storage/package.go
  2. +19
    -0
      api/storage/storage_test.go
  3. +0
    -1
      api/unifyops/unifyops.go

+ 74
- 0
api/storage/package.go View File

@@ -108,3 +108,77 @@ func (c *Client) PackageDelete(req PackageDeleteReq) error {

return fmt.Errorf("unknow response content type: %s", contType)
}

type PackageReq struct {
PackageID int64 `json:"packageID"`
UserID int64 `json:"userID"`
}

type CacheLocations struct {
NodeIDs []int64 `json:"nodeIDs"`
RedunancyType string `json:"redunancyType"`
}

func (c *Client) GetCacheNodesByPackage(req PackageReq) (*CacheLocations, error) {
url, err := url.JoinPath(c.baseURL, "/package/getCacheNodeIDs")
if err != nil {
return nil, err
}
resp, err := myhttp.GetJSON(url, myhttp.RequestParam{
Body: req,
})
if err != nil {
return nil, err
}

contType := resp.Header.Get("Content-Type")
if strings.Contains(contType, myhttp.ContentTypeJSON) {

var codeResp response[CacheLocations]
if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil {
return nil, fmt.Errorf("parsing response: %w", err)
}

if codeResp.Code == errorcode.OK {
return &codeResp.Data, nil
}

return nil, codeResp.ToError()
}

return nil, fmt.Errorf("unknow response content type: %s", contType)
}

type StorageLocations struct {
NodeIDs []int64 `json:"nodeIDs"`
}

func (c *Client) GetStorageNodesByPackage(req PackageReq) (*StorageLocations, error) {
url, err := url.JoinPath(c.baseURL, "/package/getStorageNodeIDs")
if err != nil {
return nil, err
}
resp, err := myhttp.GetJSON(url, myhttp.RequestParam{
Body: req,
})
if err != nil {
return nil, err
}

contType := resp.Header.Get("Content-Type")
if strings.Contains(contType, myhttp.ContentTypeJSON) {

var codeResp response[StorageLocations]
if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil {
return nil, fmt.Errorf("parsing response: %w", err)
}

if codeResp.Code == errorcode.OK {
return &codeResp.Data, nil
}

return nil, codeResp.ToError()
}

return nil, fmt.Errorf("unknow response content type: %s", contType)
}

+ 19
- 0
api/storage/storage_test.go View File

@@ -153,3 +153,22 @@ func Test_Cache(t *testing.T) {
So(err, ShouldBeNil)
})
}

func Test_GetNodeIDs(t *testing.T) {
Convey("测试获取node信息", t, func() {
cli := NewClient(&Config{
URL: "http://localhost:7890",
})
_, err := cli.GetCacheNodesByPackage(PackageReq{
PackageID: 4,
UserID: 0,
})
So(err, ShouldBeNil)

_, err = cli.GetStorageNodesByPackage(PackageReq{
PackageID: 4,
UserID: 0,
})
So(err, ShouldBeNil)
})
}

+ 0
- 1
api/unifyops/unifyops.go View File

@@ -60,7 +60,6 @@ type DetailType[T any] struct {
}

func (c *Client) GetCPUData(node Node) (*ResourceData[int64], error) {
//TODO 整合成一个接口,参数增加一个resourceType,根据type调用不同的接口
url, err := url.JoinPath(c.baseURL, "/cmdb/resApi/getCPUData")
if err != nil {
return nil, err


Loading…
Cancel
Save