You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
decort-golang-sdk/pkg/cloudbroker/disks/get.go

44 lines
1012 B

package disks
import (
"context"
"encoding/json"
"net/http"
3 years ago
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
)
3 years ago
// Request struct for get information about disk
type GetRequest struct {
3 years ago
// ID of the disk
// Required: true
3 years ago
DiskID uint64 `url:"diskId" json:"diskId" validate:"required"`
}
3 years ago
// Get gets disk details
// Notice: the devicename field is the name as it is passed to the kernel (kname in linux) for unattached disks this field has no relevant value
func (d Disks) Get(ctx context.Context, req GetRequest) (*RecordDisk, error) {
3 years ago
err := validators.ValidateRequest(req)
if err != nil {
3 years ago
for _, validationError := range validators.GetErrors(err) {
return nil, validators.ValidationError(validationError)
}
}
url := "/cloudbroker/disks/get"
res, err := d.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return nil, err
}
3 years ago
info := RecordDisk{}
3 years ago
err = json.Unmarshal(res, &info)
if err != nil {
return nil, err
}
3 years ago
return &info, nil
}