1
0
mirror of https://github.com/gluster/glusterd2.git synced 2026-02-05 12:45:38 +01:00
Files
glusterd2/pkg/restclient/device.go
Aravinda VK bebbc65052 Support for loopback bricks
Register the Bricks hosting directory using,

```
glustercli device add <peerid> <path> --provisioner loop
```

Example:

```
glustercli device add 70d79c3f-e7af-43f6-8b65-05dff2423da1 \
	   /exports --provisioner loop
```

Now create the volume using,

```
glustercli volume create gv1 --size 1G \
	   --provisioner loop \
	   --replica 3
```

Fixes: #1418
Signed-off-by: Aravinda VK <avishwan@redhat.com>
2019-02-14 10:49:17 +05:30

47 lines
1.2 KiB
Go

package restclient
import (
"fmt"
"net/http"
"strings"
deviceapi "github.com/gluster/glusterd2/plugins/device/api"
)
// DeviceAdd registers device
func (c *Client) DeviceAdd(peerid, device, provType string) (deviceapi.AddDeviceResp, error) {
var deviceinfo deviceapi.AddDeviceResp
req := deviceapi.AddDeviceReq{
Device: device,
ProvisionerType: provType,
}
err := c.post("/v1/devices/"+peerid, req, http.StatusCreated, &deviceinfo)
return deviceinfo, err
}
// DeviceList lists the devices
func (c *Client) DeviceList(peerid, device string) ([]deviceapi.Info, error) {
var deviceList deviceapi.ListDeviceResp
url := "/v1/devices"
if peerid != "" {
url = fmt.Sprintf("%s/%s", url, peerid)
if device != "" {
url = fmt.Sprintf("%s/%s", url, strings.TrimPrefix(device, "/"))
}
}
err := c.get(url, nil, http.StatusOK, &deviceList)
return deviceList, err
}
// DeviceEdit edits device
func (c *Client) DeviceEdit(peerid, device, state string) error {
req := deviceapi.EditDeviceReq{
State: state,
}
device = strings.TrimLeft(device, "/")
url := fmt.Sprintf("/v1/devices/%s/%s", peerid, device)
err := c.post(url, req, http.StatusOK, nil)
return err
}