70 lines
1.5 KiB
Go
70 lines
1.5 KiB
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"io"
|
|
"net/url"
|
|
|
|
"github.com/hyperhq/hyper-api/types"
|
|
)
|
|
|
|
func (cli *Client) SgCreate(ctx context.Context, name string, data io.Reader) error {
|
|
var v = url.Values{}
|
|
serverResp, err := cli.postRaw(ctx, "/sg/"+name, v, data, nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ensureReaderClosed(serverResp)
|
|
return nil
|
|
}
|
|
|
|
func (cli *Client) SgRm(ctx context.Context, name string) error {
|
|
var v = url.Values{}
|
|
serverResp, err := cli.delete(ctx, "/sg/"+name, v, nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ensureReaderClosed(serverResp)
|
|
return nil
|
|
}
|
|
|
|
func (cli *Client) SgUpdate(ctx context.Context, name string, data io.Reader) error {
|
|
var v = url.Values{}
|
|
serverResp, err := cli.putRaw(ctx, "/sg/"+name, v, data, nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ensureReaderClosed(serverResp)
|
|
return nil
|
|
}
|
|
|
|
func (cli *Client) SgInspect(ctx context.Context, name string) (*types.SecurityGroup, error) {
|
|
var v = url.Values{}
|
|
serverResp, err := cli.get(ctx, "/sg/"+name, v, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var sg types.SecurityGroup
|
|
err = json.NewDecoder(serverResp.body).Decode(&sg)
|
|
ensureReaderClosed(serverResp)
|
|
return &sg, nil
|
|
}
|
|
|
|
func (cli *Client) SgLs(ctx context.Context) ([]types.SecurityGroup, error) {
|
|
var v = url.Values{}
|
|
serverResp, err := cli.get(ctx, "/sg", v, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var sgs []types.SecurityGroup
|
|
err = json.NewDecoder(serverResp.body).Decode(&sgs)
|
|
ensureReaderClosed(serverResp)
|
|
return sgs, nil
|
|
}
|