package node import ( "context" "net/http" "strconv" "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" ) type VFParam struct { // Number of VF to assign // Required: true VFNum uint64 `url:"vfNum" json:"vfNum" validate:"required"` // Trust // Required: true Trust bool `url:"trust" json:"trust" validate:"required"` // Enable spoof checking // Required: true SpoofChk bool `url:"spoofchk" json:"spoofchk" validate:"required"` } // SetVFsParamsRequest struct to set params of VFs for individual NIC on node type SetVFsParamsRequest struct { // Node ID // Required: true NID uint64 `url:"nid" json:"nid" validate:"required"` // PCI address or NIC name // Required: true NICID string `url:"nicId" json:"nicId" validate:"required"` // Number of VF to assign // Required: true VFParams []VFParam `url:"vfParams" json:"vfParams" validate:"required"` } // SetVFsParams sets params of VFs for individual NIC on node func (n Node) SetVFsParams(ctx context.Context, req SetVFsParamsRequest) (bool, error) { err := validators.ValidateRequest(req) if err != nil { return false, validators.ValidationErrors(validators.GetErrors(err)) } url := "/cloudbroker/node/setVFsParams" res, err := n.client.DecortApiCall(ctx, http.MethodPost, url, req) if err != nil { return false, err } result, err := strconv.ParseBool(string(res)) if err != nil { return false, err } return result, nil }