From 84c0248019c3edc3453abe3d8d0e3e0491c1c8a1 Mon Sep 17 00:00:00 2001 From: Nikita Sorokin Date: Fri, 3 Nov 2023 11:17:45 +0300 Subject: [PATCH] v1.6.8 --- CHANGELOG.md | 23 ++----- README.md | 46 +++++++++++++ pkg/cloudapi/account/ids.go | 73 ++++++++++++++++++++ pkg/cloudapi/bservice/ids.go | 37 ++++++++++ pkg/cloudapi/compute/ids.go | 37 ++++++++++ pkg/cloudapi/compute/models.go | 5 +- pkg/cloudapi/disks/ids.go | 28 ++++++++ pkg/cloudapi/extnet/ids.go | 19 ++++++ pkg/cloudapi/flipgroup/ids.go | 10 +++ pkg/cloudapi/image/ids.go | 19 ++++++ pkg/cloudapi/image/models.go | 7 +- pkg/cloudapi/k8ci/ids.go | 10 +++ pkg/cloudapi/k8s/ids.go | 28 ++++++++ pkg/cloudapi/lb/ids.go | 10 +++ pkg/cloudapi/locations/ids.go | 10 +++ pkg/cloudapi/rg/ids.go | 55 +++++++++++++++ pkg/cloudapi/sizes/ids.go | 10 +++ pkg/cloudapi/stack/ids.go | 10 +++ pkg/cloudapi/vins/ids.go | 64 ++++++++++++++++++ pkg/cloudbroker/account/ids.go | 64 ++++++++++++++++++ pkg/cloudbroker/apiaccess/ids.go | 10 +++ pkg/cloudbroker/apiaccess/models.go | 100 ++++++++++++++-------------- pkg/cloudbroker/compute/ids.go | 46 +++++++++++++ pkg/cloudbroker/compute/models.go | 5 +- pkg/cloudbroker/disks/ids.go | 20 ++++++ pkg/cloudbroker/extnet/ids.go | 19 ++++++ pkg/cloudbroker/flipgroup/ids.go | 10 +++ pkg/cloudbroker/grid/ids.go | 19 ++++++ pkg/cloudbroker/image/ids.go | 28 ++++++++ pkg/cloudbroker/k8ci/ids.go | 10 +++ pkg/cloudbroker/k8s/ids.go | 30 +++++++++ pkg/cloudbroker/lb/ids.go | 10 +++ pkg/cloudbroker/pcidevice/ids.go | 10 +++ pkg/cloudbroker/rg/ids.go | 55 +++++++++++++++ pkg/cloudbroker/sep/ids.go | 10 +++ pkg/cloudbroker/stack/ids.go | 10 +++ pkg/cloudbroker/user/ids.go | 10 +++ pkg/cloudbroker/vgpu/ids.go | 10 +++ pkg/cloudbroker/vins/ids.go | 55 +++++++++++++++ pkg/cloudbroker/vins/models.go | 5 +- 40 files changed, 964 insertions(+), 73 deletions(-) create mode 100644 pkg/cloudapi/account/ids.go create mode 100644 pkg/cloudapi/bservice/ids.go create mode 100644 pkg/cloudapi/compute/ids.go create mode 100644 pkg/cloudapi/disks/ids.go create mode 100644 pkg/cloudapi/extnet/ids.go create mode 100644 pkg/cloudapi/flipgroup/ids.go create mode 100644 pkg/cloudapi/image/ids.go create mode 100644 pkg/cloudapi/k8ci/ids.go create mode 100644 pkg/cloudapi/k8s/ids.go create mode 100644 pkg/cloudapi/lb/ids.go create mode 100644 pkg/cloudapi/locations/ids.go create mode 100644 pkg/cloudapi/rg/ids.go create mode 100644 pkg/cloudapi/sizes/ids.go create mode 100644 pkg/cloudapi/stack/ids.go create mode 100644 pkg/cloudapi/vins/ids.go create mode 100644 pkg/cloudbroker/account/ids.go create mode 100644 pkg/cloudbroker/apiaccess/ids.go create mode 100644 pkg/cloudbroker/compute/ids.go create mode 100644 pkg/cloudbroker/disks/ids.go create mode 100644 pkg/cloudbroker/extnet/ids.go create mode 100644 pkg/cloudbroker/flipgroup/ids.go create mode 100644 pkg/cloudbroker/grid/ids.go create mode 100644 pkg/cloudbroker/image/ids.go create mode 100644 pkg/cloudbroker/k8ci/ids.go create mode 100644 pkg/cloudbroker/k8s/ids.go create mode 100644 pkg/cloudbroker/lb/ids.go create mode 100644 pkg/cloudbroker/pcidevice/ids.go create mode 100644 pkg/cloudbroker/rg/ids.go create mode 100644 pkg/cloudbroker/sep/ids.go create mode 100644 pkg/cloudbroker/stack/ids.go create mode 100644 pkg/cloudbroker/user/ids.go create mode 100644 pkg/cloudbroker/vgpu/ids.go create mode 100644 pkg/cloudbroker/vins/ids.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a87605..ab80af3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,7 @@ -## Version 1.6.7 +## Version 1.6.8 + +## Feature +- Add IDs() methods returning array of uint64 IDs for all List* structs in cloudapi/cloudbroker groups ## Bugfix -- Refactoring client and legacy-client -- Delete tag "required" in RecursiveDelete field model DeleteUserRequest in cloudbroker/account/delete_user -- Delete tag "omitempty" in RecursiveDelete field model DeleteUserRequest in cloudapi/account/delete_user -- Delete tag "required" in Ratio field model SetCPUAllocationRatioRequest in cloudbroker/account/set_cpu_allocation_ratio -- Change tag from "requireD" to "required" in K8SID field model WorkerRestartRequest in cloudbroker/k8s/worker_restart -- Add tag "required" in UserIDs field model DeleteUsersRequest in cloudbroker/users/delete_users -- Change tag "validate" in ComputeID field model SnapshotEvictDiskRequest in cloudbroker/compute/snapshot_evict_disk -- Delete unnecessary validation in ListRaw method in cloudbroker/apiaccess/list -- Delete unnecessary validation in ListDeleted method in cloudbroker/apiaccess/list_deleted -- Delete unnecessary validation in GetAudit method in cloudbroker/user/get_audit -- Delete unnecessary validation in ListRaw method in cloudbroker/user/list -- Delete unnecessary validation in ListTypes method in cloudbroker/disks/list_types -- Delete tag "required" in Active field model ListRequest in cloudbroker/group/list -- Delete unnecessary validation in List method in cloudbroker/group/list -- Change type from "APIsEndpoints" to "APIString" in APIs field in APIsIncludeRequest model in cloudbroker/apiaccess/apis_include -- Change type from "APIsEndpoints" to "APIString" in APIs field in APIsExcludeRequest model in cloudbroker/apiaccess/apis_exclude -- Refactoring multiple errors out put after validation in all cloudapi and cloudbroker groups, in client and legacy-client \ No newline at end of file +- Fix field Audit in CloudBrokerEndpoints model in cloudbroker/apiaccess diff --git a/README.md b/README.md index e27d329..9ce9989 100644 --- a/README.md +++ b/README.md @@ -766,6 +766,52 @@ func main() { ``` +### Получение списка уникальных идентификаторов (ID) объекта + +Для всех структур, имеющих поля со списками объектов с уникальными числовыми идентификаторами (ID), добавлены методы IDs(), возвращающие массивы уникальных идентификаторов объектов в этих списках. + +```go +package main + +import ( + "log" + "fmt" + + "repository.basistech.ru/BASIS/decort-golang-sdk/config" + decort "repository.basistech.ru/BASIS/decort-golang-sdk" + "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/bservice" +) + +func main() { + // Настройка конфигурации + cfg := config.Config{ + AppID: "", + AppSecret: "", + SSOURL: "https://sso.digitalenergy.online", + DecortURL: "https://mr4.digitalenergy.online", + Retries: 5, + } + + // Создание клиента + client := decort.New(cfg) + + // Создание структуры запроса GetRequest на получение информации о сервисе и выполнение запроса с помощью конвейера + req := bservice.GetRequest{ + ServiceID: 123, + } + res, err := client.CloudAPI().BService().Get(context.Background(), req) + if err != nil { + log.Fatal(err) + } + + // Получение списков ID ComputeIDs и GroupIDs экземпляра res типа RecordBasicService по полям Computes и Groups, соответственно + computeIDs := res.Computes.IDs() + groupIDs := res.Groups.IDs() + fmt.Println(computeIDs) + fmt.Println(groupIDs) +} +``` + ## Работа с legacy клиентом Работа с legacy клиентом применяется для пользователей, которые не используют для авторизации decs3o. diff --git a/pkg/cloudapi/account/ids.go b/pkg/cloudapi/account/ids.go new file mode 100644 index 0000000..a190de5 --- /dev/null +++ b/pkg/cloudapi/account/ids.go @@ -0,0 +1,73 @@ +package account + +// IDs gets array of AccountIDs from ListAccounts struct +func (la ListAccounts) IDs() []uint64 { + res := make([]uint64, 0, len(la.Data)) + for _, acc := range la.Data { + res = append(res, acc.ID) + } + return res +} + +// IDs gets array of ComputeIDs from ListComputes struct +func (lc ListComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lc.Data)) + for _, c := range lc.Data { + res = append(res, c.ComputeID) + } + return res +} + +// IDs gets array of DiskIDs from ListDisks struct +func (ld ListDisks) IDs() []uint64 { + res := make([]uint64, 0, len(ld.Data)) + for _, d := range ld.Data { + res = append(res, d.ID) + } + return res +} + +// IDs gets array of FLIPGroupIDs from ListFLIPGroups struct +func (fg ListFLIPGroups) IDs() []uint64 { + res := make([]uint64, 0, len(fg.Data)) + for _, g := range fg.Data { + res = append(res, g.ID) + } + return res +} + +// IDs gets array of AccountIDs from ListResourceConsumption struct +func (rc ListResourceConsumption) IDs() []uint64 { + res := make([]uint64, 0, len(rc.Data)) + for _, r := range rc.Data { + res = append(res, r.AccountID) + } + return res +} + +// IDs gets array of RGIDs from ListRG struct +func (rg ListRG) IDs() []uint64 { + res := make([]uint64, 0, len(rg.Data)) + for _, g := range rg.Data { + res = append(res, g.RGID) + } + return res +} + +// IDs gets array of TemplateIDs from ListTemplates struct +func (lt ListTemplates) IDs() []uint64 { + res := make([]uint64, 0, len(lt.Data)) + for _, t := range lt.Data { + res = append(res, t.ID) + } + return res +} + +// IDs gets array of VINSIDs from ListVINS struct +func (lv ListVINS) IDs() []uint64 { + res := make([]uint64, 0, len(lv.Data)) + for _, v := range lv.Data { + res = append(res, v.ID) + } + return res +} diff --git a/pkg/cloudapi/bservice/ids.go b/pkg/cloudapi/bservice/ids.go new file mode 100644 index 0000000..a204ed6 --- /dev/null +++ b/pkg/cloudapi/bservice/ids.go @@ -0,0 +1,37 @@ +package bservice + +// IDs gets array of BasicServiceIDs from ListBasicServices struct +func (lbs ListBasicServices) IDs() []uint64 { + res := make([]uint64, 0, len(lbs.Data)) + for _, bs := range lbs.Data { + res = append(res, bs.ID) + } + return res +} + +// IDs gets array of ComputeIDs from ListComputes struct +func (lc ListComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lc)) + for _, c := range lc { + res = append(res, c.ID) + } + return res +} + +// IDs gets array of GroupIDs from ListGroups struct +func (lg ListGroups) IDs() []uint64 { + res := make([]uint64, 0, len(lg)) + for _, g := range lg { + res = append(res, g.ID) + } + return res +} + +// IDs gets array of GroupComputeIDs from ListGroupComputes struct +func (lgc ListGroupComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lgc)) + for _, gc := range lgc { + res = append(res, gc.ID) + } + return res +} diff --git a/pkg/cloudapi/compute/ids.go b/pkg/cloudapi/compute/ids.go new file mode 100644 index 0000000..fa5c0f9 --- /dev/null +++ b/pkg/cloudapi/compute/ids.go @@ -0,0 +1,37 @@ +package compute + +// IDs gets array of ComputeIDs from ListComputes struct +func (lc ListComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lc.Data)) + for _, c := range lc.Data { + res = append(res, c.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListInfoDisks struct +func (li ListInfoDisks) IDs() []uint64 { + res := make([]uint64, 0, len(li)) + for _, i := range li { + res = append(res, i.ID) + } + return res +} + +// IDs gets array of PFWsIDs from ListPFWs struct +func (lp ListPFWs) IDs() []uint64 { + res := make([]uint64, 0, len(lp.Data)) + for _, p := range lp.Data { + res = append(res, p.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListComputeDisks struct +func (lcd ListComputeDisks) IDs() []uint64 { + res := make([]uint64, 0, len(lcd)) + for _, cd := range lcd { + res = append(res, cd.ID) + } + return res +} diff --git a/pkg/cloudapi/compute/models.go b/pkg/cloudapi/compute/models.go index 3a3c840..e7000bb 100644 --- a/pkg/cloudapi/compute/models.go +++ b/pkg/cloudapi/compute/models.go @@ -819,7 +819,7 @@ type ItemCompute struct { Devices interface{} `json:"devices"` // List disk items - Disks []InfoDisk `json:"disks"` + Disks ListInfoDisks `json:"disks"` // Driver Driver string `json:"driver"` @@ -918,6 +918,9 @@ type ItemCompute struct { VirtualImageID uint64 `json:"virtualImageId"` } +// ListInfoDisks +type ListInfoDisks []InfoDisk + // Information Disk type InfoDisk struct { // ID diff --git a/pkg/cloudapi/disks/ids.go b/pkg/cloudapi/disks/ids.go new file mode 100644 index 0000000..a904b38 --- /dev/null +++ b/pkg/cloudapi/disks/ids.go @@ -0,0 +1,28 @@ +package disks + +// IDs gets array of DiskIDs from ListDisks struct +func (ld ListDisks) IDs() []uint64 { + res := make([]uint64, 0, len(ld.Data)) + for _, d := range ld.Data { + res = append(res, d.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListDisksUnattached struct +func (ldu ListDisksUnattached) IDs() []uint64 { + res := make([]uint64, 0, len(ldu.Data)) + for _, d := range ldu.Data { + res = append(res, d.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListSearchDisks struct +func (lsd ListSearchDisks) IDs() []uint64 { + res := make([]uint64, 0, len(lsd)) + for _, d := range lsd { + res = append(res, d.ID) + } + return res +} \ No newline at end of file diff --git a/pkg/cloudapi/extnet/ids.go b/pkg/cloudapi/extnet/ids.go new file mode 100644 index 0000000..637c716 --- /dev/null +++ b/pkg/cloudapi/extnet/ids.go @@ -0,0 +1,19 @@ +package extnet + +// IDs gets array of ExtNetIDs from ListExtNets struct +func (le ListExtNets) IDs() []uint64 { + res := make([]uint64, 0, len(le.Data)) + for _, e := range le.Data { + res = append(res, e.ID) + } + return res +} + +// IDs gets array of ComputeIDs from ListExtNetComputes struct +func (le ListExtNetComputes) IDs() []uint64 { + res := make([]uint64, 0, len(le.Data)) + for _, e := range le.Data { + res = append(res, e.ID) + } + return res +} diff --git a/pkg/cloudapi/flipgroup/ids.go b/pkg/cloudapi/flipgroup/ids.go new file mode 100644 index 0000000..c326dcd --- /dev/null +++ b/pkg/cloudapi/flipgroup/ids.go @@ -0,0 +1,10 @@ +package flipgroup + +// IDs gets array of FLIPGroupIDs from ListFLIPGroups struct +func (le ListFLIPGroups) IDs() []uint64 { + res := make([]uint64, 0, len(le.Data)) + for _, e := range le.Data { + res = append(res, e.ID) + } + return res +} diff --git a/pkg/cloudapi/image/ids.go b/pkg/cloudapi/image/ids.go new file mode 100644 index 0000000..5c0577f --- /dev/null +++ b/pkg/cloudapi/image/ids.go @@ -0,0 +1,19 @@ +package image + +// IDs gets array of ImageIDs from ListImages struct +func (li ListImages) IDs() []uint64 { + res := make([]uint64, 0, len(li.Data)) + for _, i := range li.Data { + res = append(res, i.ID) + } + return res +} + +// IDs gets array of HistoryIDs from ListHistories struct +func (lh ListHistories) IDs() []uint64 { + res := make([]uint64, 0, len(lh)) + for _, h := range lh { + res = append(res, h.ID) + } + return res +} diff --git a/pkg/cloudapi/image/models.go b/pkg/cloudapi/image/models.go index 031f2dc..0260529 100644 --- a/pkg/cloudapi/image/models.go +++ b/pkg/cloudapi/image/models.go @@ -66,7 +66,10 @@ type ListImages struct { EntryCount uint64 `json:"entryCount"` } -// History +// ListHistories of record image +type ListHistories []History + +// History of record image type History struct { // GUID GUID string `json:"guid"` @@ -123,7 +126,7 @@ type RecordImage struct { GUID uint64 `json:"guid"` // History - History []History `json:"history"` + History ListHistories `json:"history"` // HotResize HotResize bool `json:"hotResize"` diff --git a/pkg/cloudapi/k8ci/ids.go b/pkg/cloudapi/k8ci/ids.go new file mode 100644 index 0000000..608f59e --- /dev/null +++ b/pkg/cloudapi/k8ci/ids.go @@ -0,0 +1,10 @@ +package k8ci + +// IDs gets array of K8CIIDs from ListK8CI struct +func (lk ListK8CI) IDs() []uint64 { + res := make([]uint64, 0, len(lk.Data)) + for _, k := range lk.Data { + res = append(res, k.ID) + } + return res +} diff --git a/pkg/cloudapi/k8s/ids.go b/pkg/cloudapi/k8s/ids.go new file mode 100644 index 0000000..bcb569f --- /dev/null +++ b/pkg/cloudapi/k8s/ids.go @@ -0,0 +1,28 @@ +package k8s + +// IDs gets array of K8SIDs from ListK8SClusters struct +func (lk ListK8SClusters) IDs() []uint64 { + res := make([]uint64, 0, len(lk.Data)) + for _, k := range lk.Data { + res = append(res, k.ID) + } + return res +} + +// IDs gets array of K8SWorkerGroupIDs from ListK8SGroups struct +func (lwg ListK8SGroups) IDs() []uint64 { + res := make([]uint64, 0, len(lwg)) + for _, wg := range lwg { + res = append(res, wg.ID) + } + return res +} + +// IDs gets array of Worker or Master ComputesIDs from ListDetailedInfo struct +func (ldi ListDetailedInfo) IDs() []uint64 { + res := make([]uint64, 0, len(ldi)) + for _, di := range ldi { + res = append(res, di.ID) + } + return res +} diff --git a/pkg/cloudapi/lb/ids.go b/pkg/cloudapi/lb/ids.go new file mode 100644 index 0000000..a610613 --- /dev/null +++ b/pkg/cloudapi/lb/ids.go @@ -0,0 +1,10 @@ +package lb + +// IDs gets array of LBIDs from ListLB struct +func (llb ListLB) IDs() []uint64 { + res := make([]uint64, 0, len(llb.Data)) + for _, lb := range llb.Data { + res = append(res, lb.ID) + } + return res +} diff --git a/pkg/cloudapi/locations/ids.go b/pkg/cloudapi/locations/ids.go new file mode 100644 index 0000000..0120234 --- /dev/null +++ b/pkg/cloudapi/locations/ids.go @@ -0,0 +1,10 @@ +package locations + +// IDs gets array of LocationIDs from ListLocations struct +func (ll ListLocations) IDs() []uint64 { + res := make([]uint64, 0, len(ll.Data)) + for _, l := range ll.Data { + res = append(res, l.GID) + } + return res +} diff --git a/pkg/cloudapi/rg/ids.go b/pkg/cloudapi/rg/ids.go new file mode 100644 index 0000000..3a875af --- /dev/null +++ b/pkg/cloudapi/rg/ids.go @@ -0,0 +1,55 @@ +package rg + +// IDs gets array of ResourceGroupIDs from ListResourceGroups struct +func (lrg ListResourceGroups) IDs() []uint64 { + res := make([]uint64, 0, len(lrg.Data)) + for _, rg := range lrg.Data { + res = append(res, rg.ID) + } + return res +} + +// IDs gets array of ComputeIDs from ListAffinityGroupsComputes struct +func (lag ListAffinityGroupsComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lag)) + for _, ag := range lag { + res = append(res, ag.ComputeID) + } + return res +} + +// IDs gets array of ComputeIDs from ListComputes struct +func (lc ListComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lc.Data)) + for _, c := range lc.Data { + res = append(res, c.ID) + } + return res +} + +// IDs gets array of LBIDs from ListLB struct +func (llb ListLB) IDs() []uint64 { + res := make([]uint64, 0, len(llb.Data)) + for _, lb := range llb.Data { + res = append(res, lb.ID) + } + return res +} + +// IDs gets array of VINSIDs from ListVINS struct +func (llb ListVINS) IDs() []uint64 { + res := make([]uint64, 0, len(llb.Data)) + for _, lb := range llb.Data { + res = append(res, lb.ID) + } + return res +} + +// IDs gets array of ResourceGroupIDs from ListResourceConsumption struct +func (lrc ListResourceConsumption) IDs() []uint64 { + res := make([]uint64, 0, len(lrc.Data)) + for _, rc := range lrc.Data { + res = append(res, rc.RGID) + } + return res +} diff --git a/pkg/cloudapi/sizes/ids.go b/pkg/cloudapi/sizes/ids.go new file mode 100644 index 0000000..c0f4ed5 --- /dev/null +++ b/pkg/cloudapi/sizes/ids.go @@ -0,0 +1,10 @@ +package sizes + +// IDs gets array of configured available flavours IDs from ListSizes struct +func (ls ListSizes) IDs() []uint64 { + res := make([]uint64, 0, len(ls.Data)) + for _, s := range ls.Data { + res = append(res, s.ID) + } + return res +} diff --git a/pkg/cloudapi/stack/ids.go b/pkg/cloudapi/stack/ids.go new file mode 100644 index 0000000..0a6cc9d --- /dev/null +++ b/pkg/cloudapi/stack/ids.go @@ -0,0 +1,10 @@ +package stack + +// IDs gets array of StackIDs from ListStacks struct +func (ls ListStacks) IDs() []uint64 { + res := make([]uint64, 0, len(ls.Data)) + for _, s := range ls.Data { + res = append(res, s.ID) + } + return res +} diff --git a/pkg/cloudapi/vins/ids.go b/pkg/cloudapi/vins/ids.go new file mode 100644 index 0000000..6ec9a3d --- /dev/null +++ b/pkg/cloudapi/vins/ids.go @@ -0,0 +1,64 @@ +package vins + +// IDs gets array of VINSIDs from ListVINS struct +func (lv ListVINS) IDs() []uint64 { + res := make([]uint64, 0, len(lv.Data)) + for _, v := range lv.Data { + res = append(res, v.ID) + } + return res +} + +// IDs gets array of ExtNetIDs from ListExtNets struct +func (le ListExtNets) IDs() []uint64 { + res := make([]uint64, 0, len(le.Data)) + for _, e := range le.Data { + res = append(res, e.ExtNetID) + } + return res +} + +// IDs gets array of ComputeIDs from ListVINSComputes struct +func (lvc ListVINSComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lvc)) + for _, vc := range lvc { + res = append(res, vc.ID) + } + return res +} + +// IDs gets array of NATRuleConfigIDs from ListNATRulesConfig struct +func (lnrc ListNATRulesConfig) IDs() []uint64 { + res := make([]uint64, 0, len(lnrc)) + for _, nrc := range lnrc { + res = append(res, nrc.ID) + } + return res +} + +// IDs gets array of NATRuleIDs from ListNATRules struct +func (lnr ListNATRules) IDs() []uint64 { + res := make([]uint64, 0, len(lnr.Data)) + for _, nr := range lnr.Data { + res = append(res, nr.ID) + } + return res +} + +// IDs gets array of StaticRouteIDs from ListStaticRoutes struct +func (lsr ListStaticRoutes) IDs() []uint64 { + res := make([]uint64, 0, len(lsr.Data)) + for _, sr := range lsr.Data { + res = append(res, sr.ID) + } + return res +} + +// IDs gets array of RouteIDs from ListRoutes struct +func (lr ListRoutes) IDs() []uint64 { + res := make([]uint64, 0, len(lr)) + for _, r := range lr { + res = append(res, r.ID) + } + return res +} diff --git a/pkg/cloudbroker/account/ids.go b/pkg/cloudbroker/account/ids.go new file mode 100644 index 0000000..7a7fe5b --- /dev/null +++ b/pkg/cloudbroker/account/ids.go @@ -0,0 +1,64 @@ +package account + +// IDs gets array of AccountIDs from ListAccounts struct +func (la ListAccounts) IDs() []uint64 { + res := make([]uint64, 0, len(la.Data)) + for _, acc := range la.Data { + res = append(res, acc.ID) + } + return res +} + +// IDs gets array of ComputeIDs from ListComputes struct +func (lc ListComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lc.Data)) + for _, c := range lc.Data { + res = append(res, c.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListDisks struct +func (ld ListDisks) IDs() []uint64 { + res := make([]uint64, 0, len(ld.Data)) + for _, d := range ld.Data { + res = append(res, d.ID) + } + return res +} + +// IDs gets array of FLIPGroupIDs from ListFLIPGroups struct +func (fg ListFLIPGroups) IDs() []uint64 { + res := make([]uint64, 0, len(fg.Data)) + for _, g := range fg.Data { + res = append(res, g.ID) + } + return res +} + +// IDs gets array of AccountIDs from ListResourceConsumption struct +func (rc ListResources) IDs() []uint64 { + res := make([]uint64, 0, len(rc.Data)) + for _, r := range rc.Data { + res = append(res, r.AccountID) + } + return res +} + +// IDs gets array of RGIDs from ListRG struct +func (rg ListRG) IDs() []uint64 { + res := make([]uint64, 0, len(rg.Data)) + for _, g := range rg.Data { + res = append(res, g.ID) + } + return res +} + +// IDs gets array of VINSIDs from ListVINS struct +func (lv ListVINS) IDs() []uint64 { + res := make([]uint64, 0, len(lv.Data)) + for _, v := range lv.Data { + res = append(res, v.ID) + } + return res +} diff --git a/pkg/cloudbroker/apiaccess/ids.go b/pkg/cloudbroker/apiaccess/ids.go new file mode 100644 index 0000000..ec571a3 --- /dev/null +++ b/pkg/cloudbroker/apiaccess/ids.go @@ -0,0 +1,10 @@ +package apiaccess + +// IDs gets array of APIAccessId from ListAPIAccess struct +func (laa ListAPIAccess) IDs() []uint64 { + res := make([]uint64, 0, len(laa.Data)) + for _, apiaccess := range laa.Data { + res = append(res, apiaccess.ID) + } + return res +} diff --git a/pkg/cloudbroker/apiaccess/models.go b/pkg/cloudbroker/apiaccess/models.go index c5f5905..220d175 100644 --- a/pkg/cloudbroker/apiaccess/models.go +++ b/pkg/cloudbroker/apiaccess/models.go @@ -103,56 +103,56 @@ type CloudAPIEndpoints struct { } type CloudBrokerEndpoints struct { - Account []string `json:"account,omitempty"` - APIAccess []string `json:"apiaccess,omitempty"` - Audit []string `json:"audit,omitempty"` - AuditBeat []string `json:"auditbeat,omitempty"` - AuditCollector []string `json:"auditcollector,omitempty"` - BackupCreator []string `json:"backupcreator,omitempty"` - BService []string `json:"bservice,omitempty"` - CloudSpace []string `json:"cloudspace,omitempty"` - Compute []string `json:"compute,omitempty"` - ComputeCI []string `json:"computeci,omitempty"` - Desnode []string `json:"desnode,omitempty"` - Diagnostics []string `json:"diagnostics,omitempty"` - Disks []string `json:"disks,omitempty"` - Eco []string `json:"eco,omitempty"` - ExtNet []string `json:"extnet,omitempty"` - FlIPgroup []string `json:"flipgroup,omitempty"` - Grid []string `json:"grid,omitempty"` - Group []string `json:"group,omitempty"` - Health []string `json:"health,omitempty"` - IaaS []string `json:"iaas,omitempty"` - Image []string `json:"image,omitempty"` - Job []string `json:"job,omitempty"` - K8CI []string `json:"k8ci,omitempty"` - K8S []string `json:"k8s,omitempty"` - KVMPPC []string `json:"kvmppc,omitempty"` - KVMX86 []string `json:"kvmx86,omitempty"` - LB []string `json:"lb,omitempty"` - Machine []string `json:"machine,omitempty"` - Metering []string `json:"metering,omitempty"` - Milestones []string `json:"milestones,omitempty"` - Node []string `json:"node,omitempty"` - Openshift []string `json:"openshift,omitempty"` - OpenshiftCI []string `json:"openshiftci,omitempty"` - Ovsnode []string `json:"ovsnode,omitempty"` - PCIDevice []string `json:"pcidevice,omitempty"` - PGPU []string `json:"pgpu,omitempty"` - Prometheus []string `json:"prometheus,omitempty"` - QOS []string `json:"qos,omitempty"` - Resmon []string `json:"resmon,omitempty"` - RG []string `json:"rg,omitempty"` - Sep []string `json:"sep,omitempty"` - Stack []string `json:"stack,omitempty"` - Tasks []string `json:"tasks,omitempty"` - TLock []string `json:"tlock,omitempty"` - User []string `json:"user,omitempty"` - VGPU []string `json:"vgpu,omitempty"` - VINS []string `json:"vins,omitempty"` - VNFDev []string `json:"vnfdev,omitempty"` - ZeroAccess []string `json:"zeroaccess,omitempty"` - All bool `json:"ALL,omitempty"` + Account []string `json:"account,omitempty"` + APIAccess []string `json:"apiaccess,omitempty"` + Audit interface{} `json:"audit,omitempty"` + AuditBeat []string `json:"auditbeat,omitempty"` + AuditCollector []string `json:"auditcollector,omitempty"` + BackupCreator []string `json:"backupcreator,omitempty"` + BService []string `json:"bservice,omitempty"` + CloudSpace []string `json:"cloudspace,omitempty"` + Compute []string `json:"compute,omitempty"` + ComputeCI []string `json:"computeci,omitempty"` + Desnode []string `json:"desnode,omitempty"` + Diagnostics []string `json:"diagnostics,omitempty"` + Disks []string `json:"disks,omitempty"` + Eco []string `json:"eco,omitempty"` + ExtNet []string `json:"extnet,omitempty"` + FlIPgroup []string `json:"flipgroup,omitempty"` + Grid []string `json:"grid,omitempty"` + Group []string `json:"group,omitempty"` + Health []string `json:"health,omitempty"` + IaaS []string `json:"iaas,omitempty"` + Image []string `json:"image,omitempty"` + Job []string `json:"job,omitempty"` + K8CI []string `json:"k8ci,omitempty"` + K8S []string `json:"k8s,omitempty"` + KVMPPC []string `json:"kvmppc,omitempty"` + KVMX86 []string `json:"kvmx86,omitempty"` + LB []string `json:"lb,omitempty"` + Machine []string `json:"machine,omitempty"` + Metering []string `json:"metering,omitempty"` + Milestones []string `json:"milestones,omitempty"` + Node []string `json:"node,omitempty"` + Openshift []string `json:"openshift,omitempty"` + OpenshiftCI []string `json:"openshiftci,omitempty"` + Ovsnode []string `json:"ovsnode,omitempty"` + PCIDevice []string `json:"pcidevice,omitempty"` + PGPU []string `json:"pgpu,omitempty"` + Prometheus []string `json:"prometheus,omitempty"` + QOS []string `json:"qos,omitempty"` + Resmon []string `json:"resmon,omitempty"` + RG []string `json:"rg,omitempty"` + Sep []string `json:"sep,omitempty"` + Stack []string `json:"stack,omitempty"` + Tasks []string `json:"tasks,omitempty"` + TLock []string `json:"tlock,omitempty"` + User []string `json:"user,omitempty"` + VGPU []string `json:"vgpu,omitempty"` + VINS []string `json:"vins,omitempty"` + VNFDev []string `json:"vnfdev,omitempty"` + ZeroAccess []string `json:"zeroaccess,omitempty"` + All bool `json:"ALL,omitempty"` } type LibCloudEndpoints struct { diff --git a/pkg/cloudbroker/compute/ids.go b/pkg/cloudbroker/compute/ids.go new file mode 100644 index 0000000..62e4c2f --- /dev/null +++ b/pkg/cloudbroker/compute/ids.go @@ -0,0 +1,46 @@ +package compute + +// IDs gets array of ComputeIDs from ListComputes struct +func (lc ListComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lc.Data)) + for _, c := range lc.Data { + res = append(res, c.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListInfoDisks struct +func (lid ListInfoDisks) IDs() []uint64 { + res := make([]uint64, 0, len(lid)) + for _, d := range lid { + res = append(res, d.ID) + } + return res +} + +// IDs gets array of PFWsIDs from ListPFW struct +func (lp ListPFW) IDs() []uint64 { + res := make([]uint64, 0, len(lp)) + for _, p := range lp { + res = append(res, p.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListDisks struct +func (ld ListDisks) IDs() []uint64 { + res := make([]uint64, 0, len(ld)) + for _, d := range ld { + res = append(res, d.ID) + } + return res +} + +// IDs gets array of PCIDeviceIDs from ListPCIDevices struct +func (lpd ListPCIDevices) IDs() []uint64 { + res := make([]uint64, 0, len(lpd.Data)) + for _, pd := range lpd.Data { + res = append(res, pd.ID) + } + return res +} \ No newline at end of file diff --git a/pkg/cloudbroker/compute/models.go b/pkg/cloudbroker/compute/models.go index 81bec91..cb29be0 100644 --- a/pkg/cloudbroker/compute/models.go +++ b/pkg/cloudbroker/compute/models.go @@ -720,10 +720,13 @@ type RecordCompute struct { InfoCompute } +// Information about of disk IDs +type ListInfoDisks []InfoDisk + // Main information about compute for list type ItemCompute struct { // List of disk IDs - Disks []InfoDisk `json:"disks"` + Disks ListInfoDisks `json:"disks"` // Main information about compute InfoCompute diff --git a/pkg/cloudbroker/disks/ids.go b/pkg/cloudbroker/disks/ids.go new file mode 100644 index 0000000..bed9508 --- /dev/null +++ b/pkg/cloudbroker/disks/ids.go @@ -0,0 +1,20 @@ +package disks + +// IDs gets array of DiskIDs from ListDisks struct +func (ld ListDisks) IDs() []uint64 { + res := make([]uint64, 0, len(ld.Data)) + for _, d := range ld.Data { + res = append(res, d.ID) + } + return res +} + +// IDs gets array of DiskIDs from ListUnattachedDisks struct +func (ldu ListUnattachedDisks) IDs() []uint64 { + res := make([]uint64, 0, len(ldu.Data)) + for _, d := range ldu.Data { + res = append(res, d.ID) + } + return res +} + diff --git a/pkg/cloudbroker/extnet/ids.go b/pkg/cloudbroker/extnet/ids.go new file mode 100644 index 0000000..d286a3c --- /dev/null +++ b/pkg/cloudbroker/extnet/ids.go @@ -0,0 +1,19 @@ +package extnet + +// IDs gets array of ExtNetIDs from ListExtNet struct +func (le ListExtNet) IDs() []uint64 { + res := make([]uint64, 0, len(le.Data)) + for _, e := range le.Data { + res = append(res, e.ID) + } + return res +} + +// IDs gets array of StaticRouteIDs from ListStaticRoutes struct +func (lsr ListStaticRoutes) IDs() []uint64 { + res := make([]uint64, 0, len(lsr.Data)) + for _, sr := range lsr.Data { + res = append(res, sr.ID) + } + return res +} diff --git a/pkg/cloudbroker/flipgroup/ids.go b/pkg/cloudbroker/flipgroup/ids.go new file mode 100644 index 0000000..c326dcd --- /dev/null +++ b/pkg/cloudbroker/flipgroup/ids.go @@ -0,0 +1,10 @@ +package flipgroup + +// IDs gets array of FLIPGroupIDs from ListFLIPGroups struct +func (le ListFLIPGroups) IDs() []uint64 { + res := make([]uint64, 0, len(le.Data)) + for _, e := range le.Data { + res = append(res, e.ID) + } + return res +} diff --git a/pkg/cloudbroker/grid/ids.go b/pkg/cloudbroker/grid/ids.go new file mode 100644 index 0000000..1f391cf --- /dev/null +++ b/pkg/cloudbroker/grid/ids.go @@ -0,0 +1,19 @@ +package grid + +// IDs gets array of GRIDID from ListGrids struct +func (lg ListGrids) IDs() []uint64 { + res := make([]uint64, 0, len(lg.Data)) + for _, e := range lg.Data { + res = append(res, e.GID) + } + return res +} + +// IDs gets array of GRIDID from ListResourceConsumption struct +func (lg ListResourceConsumption) IDs() []uint64 { + res := make([]uint64, 0, len(lg.Data)) + for _, e := range lg.Data { + res = append(res, e.GID) + } + return res +} \ No newline at end of file diff --git a/pkg/cloudbroker/image/ids.go b/pkg/cloudbroker/image/ids.go new file mode 100644 index 0000000..0b931bc --- /dev/null +++ b/pkg/cloudbroker/image/ids.go @@ -0,0 +1,28 @@ +package image + +// IDs gets array of ImageIDs from ListImages struct +func (li ListImages) IDs() []uint64 { + res := make([]uint64, 0, len(li.Data)) + for _, i := range li.Data { + res = append(res, i.ID) + } + return res +} + +// IDs gets array of StackIDs from ListStacks struct +func (ls ListStacks) IDs() []uint64 { + res := make([]uint64, 0, len(ls.Data)) + for _, h := range ls.Data { + res = append(res, h.ID) + } + return res +} + +// IDs gets array of HistoryIDs from ListHistory struct +func (lh ListHistory) IDs() []uint64 { + res := make([]uint64, 0, len(lh)) + for _, h := range lh { + res = append(res, h.ID) + } + return res +} diff --git a/pkg/cloudbroker/k8ci/ids.go b/pkg/cloudbroker/k8ci/ids.go new file mode 100644 index 0000000..75a3c8e --- /dev/null +++ b/pkg/cloudbroker/k8ci/ids.go @@ -0,0 +1,10 @@ +package k8ci + +// IDs gets array of K8CIIDs from ListK8CI struct +func (lk8ci ListK8CI) IDs() []uint64 { + res := make([]uint64, 0, len(lk8ci.Data)) + for _, i := range lk8ci.Data { + res = append(res, i.ID) + } + return res +} \ No newline at end of file diff --git a/pkg/cloudbroker/k8s/ids.go b/pkg/cloudbroker/k8s/ids.go new file mode 100644 index 0000000..10d465f --- /dev/null +++ b/pkg/cloudbroker/k8s/ids.go @@ -0,0 +1,30 @@ +package k8s + +// IDs gets array of K8SIDs from ListK8S struct +func (lk ListK8S) IDs() []uint64 { + res := make([]uint64, 0, len(lk.Data)) + for _, k := range lk.Data { + res = append(res, k.ID) + } + return res +} + +// IDs gets array of K8SWorkerGroupIDs from ListK8SGroups struct +func (lwg ListK8SGroup) IDs() []uint64 { + res := make([]uint64, 0, len(lwg)) + for _, wg := range lwg { + res = append(res, wg.ID) + } + return res +} + +// IDs gets array of Worker or Master ComputesIDs from ListDetailedInfo struct +func (ldi ListDetailedInfo) IDs() []uint64 { + res := make([]uint64, 0, len(ldi)) + for _, di := range ldi { + res = append(res, di.ID) + } + return res +} + + diff --git a/pkg/cloudbroker/lb/ids.go b/pkg/cloudbroker/lb/ids.go new file mode 100644 index 0000000..a610613 --- /dev/null +++ b/pkg/cloudbroker/lb/ids.go @@ -0,0 +1,10 @@ +package lb + +// IDs gets array of LBIDs from ListLB struct +func (llb ListLB) IDs() []uint64 { + res := make([]uint64, 0, len(llb.Data)) + for _, lb := range llb.Data { + res = append(res, lb.ID) + } + return res +} diff --git a/pkg/cloudbroker/pcidevice/ids.go b/pkg/cloudbroker/pcidevice/ids.go new file mode 100644 index 0000000..f558dbb --- /dev/null +++ b/pkg/cloudbroker/pcidevice/ids.go @@ -0,0 +1,10 @@ +package pcidevice + +// IDs gets array of PCIDeviceIDs from ListPCIDevices struct +func (lpd ListPCIDevices) IDs() []uint64 { + res := make([]uint64, 0, len(lpd.Data)) + for _, lb := range lpd.Data { + res = append(res, lb.ID) + } + return res +} diff --git a/pkg/cloudbroker/rg/ids.go b/pkg/cloudbroker/rg/ids.go new file mode 100644 index 0000000..1aa2d69 --- /dev/null +++ b/pkg/cloudbroker/rg/ids.go @@ -0,0 +1,55 @@ +package rg + +// IDs gets array of ResourceGroupIDs from ListRG struct +func (lrg ListRG) IDs() []uint64 { + res := make([]uint64, 0, len(lrg.Data)) + for _, rg := range lrg.Data { + res = append(res, rg.ID) + } + return res +} + +// IDs gets array of ComputeIDs from ListComputes struct +func (lc ListComputes) IDs() []uint64 { + res := make([]uint64, 0, len(lc.Data)) + for _, c := range lc.Data { + res = append(res, c.ID) + } + return res +} + +// IDs gets array of LBIDs from ListLB struct +func (llb ListLB) IDs() []uint64 { + res := make([]uint64, 0, len(llb.Data)) + for _, lb := range llb.Data { + res = append(res, lb.ID) + } + return res +} + +// IDs gets array of VINSIDs from ListVINS struct +func (llb ListVINS) IDs() []uint64 { + res := make([]uint64, 0, len(llb.Data)) + for _, vi := range llb.Data { + res = append(res, vi.ID) + } + return res +} + +// IDs gets array of ResourceGroupIDs from ListResourceConsumption struct +func (lrc ListResourceConsumption) IDs() []uint64 { + res := make([]uint64, 0, len(lrc.Data)) + for _, rg := range lrc.Data { + res = append(res, rg.RGID) + } + return res +} + +// IDs gets array of VINSIDs from ListPFW struct +func (lpfw ListPFW) IDs() []uint64 { + res := make([]uint64, 0, len(lpfw.Data)) + for _, pfw := range lpfw.Data { + res = append(res, pfw.VINSID) + } + return res +} diff --git a/pkg/cloudbroker/sep/ids.go b/pkg/cloudbroker/sep/ids.go new file mode 100644 index 0000000..ff461d6 --- /dev/null +++ b/pkg/cloudbroker/sep/ids.go @@ -0,0 +1,10 @@ +package sep + +// IDs gets array of SEPIDs from ListSEP struct +func (ls ListSEP) IDs() []uint64 { + res := make([]uint64, 0, len(ls.Data)) + for _, s := range ls.Data { + res = append(res, s.ID) + } + return res +} diff --git a/pkg/cloudbroker/stack/ids.go b/pkg/cloudbroker/stack/ids.go new file mode 100644 index 0000000..0a6cc9d --- /dev/null +++ b/pkg/cloudbroker/stack/ids.go @@ -0,0 +1,10 @@ +package stack + +// IDs gets array of StackIDs from ListStacks struct +func (ls ListStacks) IDs() []uint64 { + res := make([]uint64, 0, len(ls.Data)) + for _, s := range ls.Data { + res = append(res, s.ID) + } + return res +} diff --git a/pkg/cloudbroker/user/ids.go b/pkg/cloudbroker/user/ids.go new file mode 100644 index 0000000..35b9cd8 --- /dev/null +++ b/pkg/cloudbroker/user/ids.go @@ -0,0 +1,10 @@ +package user + +// IDs gets array of UserIDs from ListAPIAccess struct +func (us ListAPIAccess) IDs() []uint64 { + res := make([]uint64, 0, len(us)) + for _, us := range us { + res = append(res, us.ID) + } + return res +} diff --git a/pkg/cloudbroker/vgpu/ids.go b/pkg/cloudbroker/vgpu/ids.go new file mode 100644 index 0000000..810cde6 --- /dev/null +++ b/pkg/cloudbroker/vgpu/ids.go @@ -0,0 +1,10 @@ +package vgpu + +// IDs gets array of VGPUIDs from ListVGPU struct +func (lvg ListVGPU) IDs() []uint64 { + res := make([]uint64, 0, len(lvg.Data)) + for _, s := range lvg.Data { + res = append(res, s.ID) + } + return res +} diff --git a/pkg/cloudbroker/vins/ids.go b/pkg/cloudbroker/vins/ids.go new file mode 100644 index 0000000..77893bc --- /dev/null +++ b/pkg/cloudbroker/vins/ids.go @@ -0,0 +1,55 @@ +package vins + +// IDs gets array of VINSIDs from ListVINS struct +func (lv ListVINS) IDs() []uint64 { + res := make([]uint64, 0, len(lv.Data)) + for _, v := range lv.Data { + res = append(res, v.ID) + } + return res +} + +// IDs gets array of ExtNetIDs from ListExtNets struct +func (le ListExtNets) IDs() []uint64 { + res := make([]uint64, 0, len(le.Data)) + for _, e := range le.Data { + res = append(res, e.ExtNetID) + } + return res +} + +// IDs gets array of NATRuleIDs from ListNATRules struct +func (lnr ListNATRules) IDs() []uint64 { + res := make([]uint64, 0, len(lnr.Data)) + for _, nrc := range lnr.Data { + res = append(res, nrc.ID) + } + return res +} + +// IDs gets array of StaticRouteIDs from ListStaticRoutes struct +func (lsr ListStaticRoutes) IDs() []uint64 { + res := make([]uint64, 0, len(lsr.Data)) + for _, sr := range lsr.Data { + res = append(res, sr.ID) + } + return res +} + +// IDs gets array of RouteIDs from ListRoutes struct +func (lr ListRoutes) IDs() []uint64 { + res := make([]uint64, 0, len(lr)) + for _, r := range lr { + res = append(res, r.ID) + } + return res +} + +// IDs gets array of NATRuleConfigIDs from ListNatRule struct +func (lnrc ListNatRule) IDs() []uint64 { + res := make([]uint64, 0, len(lnrc)) + for _, nrc := range lnrc { + res = append(res, nrc.ID) + } + return res +} \ No newline at end of file diff --git a/pkg/cloudbroker/vins/models.go b/pkg/cloudbroker/vins/models.go index cf7d66b..9a99ab1 100644 --- a/pkg/cloudbroker/vins/models.go +++ b/pkg/cloudbroker/vins/models.go @@ -336,6 +336,9 @@ type RecordGW struct { InfoVNF } +// List NATRules +type ListNatRule []ItemNATRule + // NAT config type NATConfig struct { // Network mask @@ -345,7 +348,7 @@ type NATConfig struct { Network string `json:"network"` // Rules - Rules []ItemNATRule `json:"rules"` + Rules ListNatRule `json:"rules"` } // Main information about NAT