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.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							970 B
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							970 B
						
					
					
				package disks
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"encoding/json"
 | 
						|
	"errors"
 | 
						|
	"net/http"
 | 
						|
)
 | 
						|
 | 
						|
// Request struct for get information about disk
 | 
						|
type GetRequest struct {
 | 
						|
	// ID of the disk
 | 
						|
	// Required: true
 | 
						|
	DiskID uint64 `url:"diskId" json:"diskId"`
 | 
						|
}
 | 
						|
 | 
						|
func (drq GetRequest) validate() error {
 | 
						|
	if drq.DiskID == 0 {
 | 
						|
		return errors.New("validation-error: field DiskID can not be empty or equal to 0")
 | 
						|
	}
 | 
						|
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
// 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) {
 | 
						|
	err := req.validate()
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	url := "/cloudapi/disks/get"
 | 
						|
 | 
						|
	res, err := d.client.DecortApiCall(ctx, http.MethodPost, url, req)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	info := RecordDisk{}
 | 
						|
 | 
						|
	err = json.Unmarshal(res, &info)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	return &info, nil
 | 
						|
}
 |