diff --git a/CHANGELOG.md b/CHANGELOG.md index c3f640f..bb1ac9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,54 @@ -## Version 1.1.1 +## Version 1.1.2 + +### Feature + +#### Cloudbroker + +- Disks + - Add share method + - Add unshare method ### Bug fixes #### CloudAPI -- Disks - - Change the SizeUsed field type to float64 -- Compute - - Chnage the SizeUsed field type to float64 +- Account/Create + - Change the MaxMemoryCapacity field type to int64 + - Change the MaxVDiskCapacity field type to int64 + - Change the MaxCPUCapacity field type to int64 + - Change the MaxNetworkPeerTransfer field type to int64 + - Change the MaxNumPublicIP field type to int64 + - Change the GPUUnits field type to int64 + - Change url to cloudapi +- Account/Models + - Change the DiskSize field type to float64 + - Change the DiskSizeMax field type to uint64 +- RG/Create + - Change the MaxMemoryCapacity field type to int64 + - Change the MaxVDiskCapacity field type to int64 + - Change the MaxCPUCapacity field type to int64 + - Change the MaxNumPublicIP field type to int64 +- RG/Models + - Change the DiskSize field type to float64 + - Change the DiskSizeMax field type to uint64 #### Cloudbroker -- Disks - - Change the SizeUsed field type to float64 +- Account/Create + - Change the MaxMemoryCapacity field type to int64 + - Change the MaxVDiskCapacity field type to int64 + - Change the MaxCPUCapacity field type to int64 + - Change the MaxNetworkPeerTransfer field type to int64 + - Change the MaxNumPublicIP field type to int64 + - Change the GPUUnits field type to int64 +- Account/Models + - Change the DiskSize field type to float64 + - Change the DiskSizeMax field type to uint64 +- RG/Create + - Change the MaxMemoryCapacity field type to int64 + - Change the MaxVDiskCapacity field type to int64 + - Change the MaxCPUCapacity field type to int64 + - Change the MaxNumPublicIP field type to int64 +- RG/Models + - Change the DiskSize field type to float64 + - Change the DiskSizeMax field type to uint64 diff --git a/pkg/cloudapi/account/create.go b/pkg/cloudapi/account/create.go index 10961d5..69b8221 100644 --- a/pkg/cloudapi/account/create.go +++ b/pkg/cloudapi/account/create.go @@ -23,23 +23,23 @@ type CreateRequest struct { // Max size of memory in MB // Required: false - MaxMemoryCapacity uint64 `url:"maxMemoryCapacity,omitempty"` + MaxMemoryCapacity int64 `url:"maxMemoryCapacity,omitempty"` // Max size of aggregated vdisks in GB // Required: false - MaxVDiskCapacity uint64 `url:"maxVDiskCapacity,omitempty"` + MaxVDiskCapacity int64 `url:"maxVDiskCapacity,omitempty"` // Max number of CPU cores // Required: false - MaxCPUCapacity uint64 `url:"maxCPUCapacity,omitempty"` + MaxCPUCapacity int64 `url:"maxCPUCapacity,omitempty"` // Max sent/received network transfer peering // Required: false - MaxNetworkPeerTransfer uint64 `url:"maxNetworkPeerTransfer,omitempty"` + MaxNetworkPeerTransfer int64 `url:"maxNetworkPeerTransfer,omitempty"` // Max number of assigned public IPs // Required: false - MaxNumPublicIP uint64 `url:"maxNumPublicIP,omitempty"` + MaxNumPublicIP int64 `url:"maxNumPublicIP,omitempty"` // If true send emails when a user is granted access to resources // Required: false @@ -47,7 +47,7 @@ type CreateRequest struct { // Limit (positive) or disable (0) GPU resources // Required: false - GPUUnits uint64 `url:"gpu_units,omitempty"` + GPUUnits int64 `url:"gpu_units,omitempty"` } func (arq CreateRequest) validate() error { @@ -69,7 +69,7 @@ func (a Account) Create(ctx context.Context, req CreateRequest) (uint64, error) return 0, err } - url := "/cloudbroker/account/create" + url := "/cloudapi/account/create" res, err := a.client.DecortApiCall(ctx, http.MethodPost, url, req) if err != nil { diff --git a/pkg/cloudapi/account/models.go b/pkg/cloudapi/account/models.go index 46b0e65..c4fa599 100644 --- a/pkg/cloudapi/account/models.go +++ b/pkg/cloudapi/account/models.go @@ -78,10 +78,10 @@ type Resource struct { CPU int64 `json:"cpu"` // Disk size - DiskSize int64 `json:"disksize"` + DiskSize float64 `json:"disksize"` // Max disk size - DiskSizeMax int64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` // Number of External IPs ExtIPs int64 `json:"extips"` @@ -105,7 +105,7 @@ type DiskUsage struct { DiskSize float64 `json:"disksize"` // Disk size max - DiskSizeMax float64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` } // Information about resources diff --git a/pkg/cloudapi/rg/create.go b/pkg/cloudapi/rg/create.go index ee4f39d..e1218d9 100644 --- a/pkg/cloudapi/rg/create.go +++ b/pkg/cloudapi/rg/create.go @@ -23,23 +23,23 @@ type CreateRequest struct { // Max size of memory in MB // Required: false - MaxMemoryCapacity uint64 `url:"maxMemoryCapacity,omitempty"` + MaxMemoryCapacity int64 `url:"maxMemoryCapacity,omitempty"` // Max size of aggregated virtual disks in GB // Required: false - MaxVDiskCapacity uint64 `url:"maxVDiskCapacity,omitempty"` + MaxVDiskCapacity int64 `url:"maxVDiskCapacity,omitempty"` // Max number of CPU cores // Required: false - MaxCPUCapacity uint64 `url:"maxCPUCapacity,omitempty"` + MaxCPUCapacity int64 `url:"maxCPUCapacity,omitempty"` // Max sent/received network transfer peering // Required: false - MaxNetworkPeerTransfer uint64 `url:"maxNetworkPeerTransfer,omitempty"` + MaxNetworkPeerTransfer int64 `url:"maxNetworkPeerTransfer,omitempty"` // Max number of assigned public IPs // Required: false - MaxNumPublicIP uint64 `url:"maxNumPublicIP,omitempty"` + MaxNumPublicIP int64 `url:"maxNumPublicIP,omitempty"` // Username - owner of this resource group. // Leave blank to set current user as owner diff --git a/pkg/cloudapi/rg/models.go b/pkg/cloudapi/rg/models.go index 7f42d35..57c9290 100644 --- a/pkg/cloudapi/rg/models.go +++ b/pkg/cloudapi/rg/models.go @@ -6,10 +6,10 @@ type Resource struct { CPU int64 `json:"cpu"` // Disk size - DiskSize int64 `json:"disksize"` + DiskSize float64 `json:"disksize"` // Max disk size - DiskSizeMax int64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` // Number of External IPs ExtIPs int64 `json:"extips"` @@ -33,7 +33,7 @@ type DiskUsage struct { DiskSize float64 `json:"disksize"` // Disk size max - DiskSizeMax float64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` } // Information about resources @@ -315,6 +315,30 @@ type ItemAudit struct { // List of audits type ListAudits []ItemAudit +// Main information about affinity rules +type ItemRule struct { + // GUID + GUID string `json:"guid"` + + // Key + Key string `json:"key"` + + // Mode + Mode string `json:"mode"` + + // Policy + Policy string `json:"policy"` + + // Topology + Topology string `json:"topology"` + + // Value + Value string `json:"value"` +} + +// List of rules +type ListRules []ItemRule + // Main information about compute type ItemCompute struct { // Account ID @@ -327,13 +351,13 @@ type ItemCompute struct { AffinityLabel string `json:"affinityLabel"` // List of affinity rules - AffinityRules []interface{} `json:"affinityRules"` + AffinityRules ListRules `json:"affinityRules"` // Affinity weight AffinityWeight uint64 `json:"affinityWeight"` // List of anti affinity rules - AntiAffinityRules []interface{} `json:"antiAffinityRules"` + AntiAffinityRules ListRules `json:"antiAffinityRules"` // Number of CPU CPUs uint64 `json:"cpus"` diff --git a/pkg/cloudbroker/account/create.go b/pkg/cloudbroker/account/create.go index 4ffeec7..53080ae 100644 --- a/pkg/cloudbroker/account/create.go +++ b/pkg/cloudbroker/account/create.go @@ -23,23 +23,23 @@ type CreateRequest struct { // Max size of memory in MB // Required: false - MaxMemoryCapacity uint64 `url:"maxMemoryCapacity,omitempty"` + MaxMemoryCapacity int64 `url:"maxMemoryCapacity,omitempty"` // Max size of aggregated vdisks in GB // Required: false - MaxVDiskCapacity uint64 `url:"maxVDiskCapacity,omitempty"` + MaxVDiskCapacity int64 `url:"maxVDiskCapacity,omitempty"` // Max number of CPU cores // Required: false - MaxCPUCapacity uint64 `url:"maxCPUCapacity,omitempty"` + MaxCPUCapacity int64 `url:"maxCPUCapacity,omitempty"` // Max sent/received network transfer peering // Required: false - MaxNetworkPeerTransfer uint64 `url:"maxNetworkPeerTransfer,omitempty"` + MaxNetworkPeerTransfer int64 `url:"maxNetworkPeerTransfer,omitempty"` // Max number of assigned public IPs // Required: false - MaxNumPublicIP uint64 `url:"maxNumPublicIP,omitempty"` + MaxNumPublicIP int64 `url:"maxNumPublicIP,omitempty"` // If true send emails when a user is granted access to resources // Required: false @@ -47,7 +47,7 @@ type CreateRequest struct { // Limit (positive) or disable (0) GPU resources // Required: false - GPUUnits uint64 `url:"gpu_units,omitempty"` + GPUUnits int64 `url:"gpu_units,omitempty"` // List of strings with pools // i.e.: ["sep1_poolName1", "sep2_poolName2", etc] diff --git a/pkg/cloudbroker/account/models.go b/pkg/cloudbroker/account/models.go index 61981e6..d3acfb6 100644 --- a/pkg/cloudbroker/account/models.go +++ b/pkg/cloudbroker/account/models.go @@ -18,7 +18,7 @@ type ItemAudit struct { User string `json:"user"` } -// List of audirs +// List of audits type ListAudits []ItemAudit type RecordResources struct { @@ -34,10 +34,10 @@ type Resource struct { CPU int64 `json:"cpu"` // Disk size - DiskSize int64 `json:"disksize"` + DiskSize float64 `json:"disksize"` // Disk size max - DiskSizeMax int64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` // Number of External IPs ExtIPs int64 `json:"extips"` @@ -61,7 +61,7 @@ type DiskUsage struct { DiskSize float64 `json:"disksize"` // Disk size max - DiskSizeMax float64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` } // Access Control List diff --git a/pkg/cloudbroker/rg/create.go b/pkg/cloudbroker/rg/create.go index ddb900d..8bf05d8 100644 --- a/pkg/cloudbroker/rg/create.go +++ b/pkg/cloudbroker/rg/create.go @@ -23,23 +23,23 @@ type CreateRequest struct { // Max size of memory in MB // Required: false - MaxMemoryCapacity uint64 `url:"maxMemoryCapacity,omitempty"` + MaxMemoryCapacity int64 `url:"maxMemoryCapacity,omitempty"` // Max size of aggregated virtual disks in GB // Required: false - MaxVDiskCapacity uint64 `url:"maxVDiskCapacity,omitempty"` + MaxVDiskCapacity int64 `url:"maxVDiskCapacity,omitempty"` // Max number of CPU cores // Required: false - MaxCPUCapacity uint64 `url:"maxCPUCapacity,omitempty"` + MaxCPUCapacity int64 `url:"maxCPUCapacity,omitempty"` // Max sent/received network transfer peering // Required: false - MaxNetworkPeerTransfer uint64 `url:"maxNetworkPeerTransfer,omitempty"` + MaxNetworkPeerTransfer int64 `url:"maxNetworkPeerTransfer,omitempty"` // Max number of assigned public IPs // Required: false - MaxNumPublicIP uint64 `url:"maxNumPublicIP,omitempty"` + MaxNumPublicIP int64 `url:"maxNumPublicIP,omitempty"` // Username - owner of this resource group. // Leave blank to set current user as owner diff --git a/pkg/cloudbroker/rg/models.go b/pkg/cloudbroker/rg/models.go index d07ebd7..9461d2b 100644 --- a/pkg/cloudbroker/rg/models.go +++ b/pkg/cloudbroker/rg/models.go @@ -24,25 +24,25 @@ type ListAudits []ItemAudit // Reservation information of usage type Reservation struct { // Number of CPU - CPU uint64 `json:"cpu"` + CPU int64 `json:"cpu"` // Disk size - DiskSize uint64 `json:"disksize"` + DiskSize float64 `json:"disksize"` // Max disk size - DiskSizeMax int64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` // External IPs - ExtIPs uint64 `json:"extips"` + ExtIPs int64 `json:"extips"` // External traffic - ExtTraffic uint64 `json:"exttraffic"` + ExtTraffic int64 `json:"exttraffic"` // Number of GPU - GPU uint64 `json:"gpu"` + GPU int64 `json:"gpu"` // Number of RAM - RAM uint64 `json:"ram"` + RAM int64 `json:"ram"` // SEPs SEPs map[string]map[string]DiskUsage `json:"seps"` @@ -54,7 +54,7 @@ type DiskUsage struct { DiskSize float64 `json:"disksize"` // Disk size max - DiskSizeMax float64 `json:"disksizemax"` + DiskSizeMax uint64 `json:"disksizemax"` } // Resources usage information @@ -138,7 +138,7 @@ type ItemRG struct { CreatedTime uint64 `json:"createdTime"` // DefNet ID - DefNetID int64 `json:"def_net_id"` + DefNetID uint64 `json:"def_net_id"` // DefNet type DefNetType string `json:"def_net_type"` @@ -252,7 +252,7 @@ type ItemRule struct { Value string `json:"value"` } -// List rules +// List of rules type ListRules []ItemRule // Main information about compute