From 2188834cd6e59cefcecf1ceaa63693a2d9bb6454 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Mon, 24 Nov 2025 14:17:57 +0800 Subject: [PATCH] fix(region): vendor update (#23819) --- go.mod | 2 +- go.sum | 4 +- vendor/modules.txt | 2 +- .../pkg/multicloud/aws/organizations.go | 14 +- .../x/cloudmux/pkg/multicloud/esxi/cluster.go | 79 ------- .../pkg/multicloud/esxi/datacenter.go | 10 +- .../x/cloudmux/pkg/multicloud/esxi/host.go | 193 +++--------------- .../pkg/multicloud/esxi/resourcepool.go | 47 +++-- .../x/cloudmux/pkg/multicloud/esxi/tags.go | 8 - .../x/cloudmux/pkg/multicloud/oracle/tag.go | 14 +- 10 files changed, 83 insertions(+), 290 deletions(-) diff --git a/go.mod b/go.mod index 8b0e1685ed..1d6da0517e 100644 --- a/go.mod +++ b/go.mod @@ -98,7 +98,7 @@ require ( k8s.io/cri-api v0.28.15 k8s.io/klog/v2 v2.20.0 moul.io/http2curl/v2 v2.3.0 - yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251117093436-5d20ee2245bf + yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251124060311-cef8482caf89 yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1 yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91 diff --git a/go.sum b/go.sum index 29c120e4cf..1fdeff3734 100644 --- a/go.sum +++ b/go.sum @@ -1672,8 +1672,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251117093436-5d20ee2245bf h1:gf0g/dfVIr77Uh+V7/YcY99GGqKYEwvYcUNirx50+aM= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251117093436-5d20ee2245bf/go.mod h1:MeA5UnvNhLXMvy+xPMOzRqjWMWMkZ3QXZP0u1bYEM0M= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251124060311-cef8482caf89 h1:v4dD4xxL5EU/LaQVsCMR5z6GON2CTzH4tcGG9smv9vU= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251124060311-cef8482caf89/go.mod h1:JlmQ8iuGdaAlUkivFVcUAJgi6QYr5jz1vKv7pQ5m7p8= yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 h1:msG4SiDSVU7CrXH06WuHlNEZXIooTcmNbfrIGHuIHBU= yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws= yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= diff --git a/vendor/modules.txt b/vendor/modules.txt index 9f8bdd343e..650523edfa 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2264,7 +2264,7 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.2.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251117093436-5d20ee2245bf +# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251124060311-cef8482caf89 ## explicit; go 1.24 yunion.io/x/cloudmux/pkg/apis yunion.io/x/cloudmux/pkg/apis/billing diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aws/organizations.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aws/organizations.go index d8dd228543..0b5251a4b9 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aws/organizations.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aws/organizations.go @@ -35,11 +35,11 @@ import ( * {"arn":"arn:aws:organizations::285906155448:account/o-vgh74bqhdw/285906155448","email":"swordqiu@gmail.com","id":"285906155448","joined_method":"INVITED","joined_timestamp":"2021-02-09T03:55:27.724000Z","name":"qiu jian","status":"ACTIVE"} */ type SAccount struct { - ID string `json:"id"` - Name string `json:"name"` - Arn string `json:"arn"` - Email string `json:"email"` - Status string `json:"status"` + ID string `json:"id"` + Name string `json:"name"` + Arn string `json:"arn"` + Email string `json:"email"` + State string `json:"state"` JoinedMethod string `json:"joined_method"` JoinedTimestamp time.Time `json:"joined_timestamp"` @@ -201,7 +201,7 @@ func (r *SRegion) ListAccounts() ([]SAccount, error) { Name: *actPtr.Name, Arn: *actPtr.Arn, Email: *actPtr.Email, - Status: string(actPtr.Status), + State: string(actPtr.State), JoinedMethod: string(actPtr.JoinedMethod), JoinedTimestamp: *actPtr.JoinedTimestamp, } @@ -253,7 +253,7 @@ func (awscli *SAwsClient) GetSubAccounts() ([]cloudprovider.SSubAccount, error) subAccounts := []cloudprovider.SSubAccount{} for _, account := range accounts { subAccount := cloudprovider.SSubAccount{} - switch account.Status { + switch account.State { case "ACTIVE": subAccount.HealthStatus = api.CLOUD_PROVIDER_HEALTH_NORMAL case "PENDING_ACTIVATION": diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/cluster.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/cluster.go index aa9b66e4db..fff57b5649 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/cluster.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/cluster.go @@ -15,16 +15,7 @@ package esxi import ( - "context" - "fmt" - - "github.com/vmware/govmomi/object" "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" - - "yunion.io/x/pkg/errors" - - "yunion.io/x/cloudmux/pkg/cloudprovider" ) type SCluster struct { @@ -35,76 +26,6 @@ func NewCluster(manager *SESXiClient, cluster *mo.ClusterComputeResource, dc *SD return &SCluster{SManagedObject: newManagedObject(manager, cluster, dc)} } -func (cluster *SCluster) ListResourcePools() ([]mo.ResourcePool, error) { - var pools, result []mo.ResourcePool - err := cluster.manager.scanMObjects(cluster.object.Entity().Self, RESOURCEPOOL_PROPS, &pools) - if err != nil { - return nil, errors.Wrap(err, "scanMObjects") - } - for i := range pools { - if pools[i].Parent.Type == "ClusterComputeResource" { - continue - } - result = append(result, pools[i]) - } - return result, nil -} - -func (cluster *SCluster) getDefaultResourcePool() (mo.ResourcePool, error) { - pools := []mo.ResourcePool{} - err := cluster.manager.scanMObjects(cluster.object.Entity().Self, RESOURCEPOOL_PROPS, &pools) - if err != nil { - return mo.ResourcePool{}, errors.Wrap(err, "scanMObjects") - } - for i := range pools { - if pools[i].Parent.Type == "ClusterComputeResource" { - return pools[i], nil - } - } - return mo.ResourcePool{}, cloudprovider.ErrNotFound -} - -func (cluster *SCluster) CreateResourcePool(name string) (*mo.ResourcePool, error) { - if len(name) == 0 { - return nil, errors.Error("empty name str") - } - root, err := cluster.getDefaultResourcePool() - if err != nil { - return nil, errors.Wrap(err, "getDefaultResourcePool") - } - pool := object.NewResourcePool(cluster.manager.client.Client, root.Reference()) - pool.InventoryPath = fmt.Sprintf("/%s/host/%s/Resources", cluster.datacenter.GetName(), cluster.GetName()) - _, err = pool.Create(context.Background(), name, types.DefaultResourceConfigSpec()) - if err != nil { - return nil, errors.Wrap(err, "pool.Create") - } - - pools, err := cluster.ListResourcePools() - if err != nil { - return nil, errors.Wrap(err, "listResourcePools") - } - for i := range pools { - p := NewResourcePool(cluster.manager, &pools[i], cluster.datacenter) - if p.GetName() == name { - return &pools[i], nil - } - } - return nil, errors.Wrap(cloudprovider.ErrNotFound, "AfterCreate") -} - -func (cluster *SCluster) SyncResourcePool(name string) (*mo.ResourcePool, error) { - pools, err := cluster.ListResourcePools() - if err != nil { - return nil, errors.Wrap(err, "ListResourcePools") - } - for i := range pools { - if pools[i].Entity().Name == name { - return &pools[i], nil - } - } - return cluster.CreateResourcePool(name) -} - func (cluster *SCluster) getoCluster() *mo.ClusterComputeResource { return cluster.object.(*mo.ClusterComputeResource) } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/datacenter.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/datacenter.go index e74f8dd059..6379d26425 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/datacenter.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/datacenter.go @@ -118,18 +118,12 @@ func (dc *SDatacenter) GetResourcePools() ([]cloudprovider.ICloudProject, error) } func (dc *SDatacenter) listResourcePools() ([]mo.ResourcePool, error) { - var pools, result []mo.ResourcePool + var pools []mo.ResourcePool err := dc.manager.scanMObjects(dc.object.Entity().Self, RESOURCEPOOL_PROPS, &pools) if err != nil { return nil, errors.Wrap(err, "scanMObjects") } - for i := range pools { - if pools[i].Parent.Type == "ClusterComputeResource" { - continue - } - result = append(result, pools[i]) - } - return result, nil + return pools, nil } func (dc *SDatacenter) ListClusters() ([]*SCluster, error) { diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/host.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/host.go index 7e6ddb2380..3dfb886de0 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/host.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/host.go @@ -145,31 +145,6 @@ func (host *SHost) GetName() string { return formatName(host.SManagedObject.GetName()) } -func (host *SHost) GetSchedtags() ([]string, error) { - clusters, err := host.datacenter.listClusters() - if err != nil { - return nil, err - } - cpName := host.datacenter.manager.cpcfg.Name - reference := host.GetHostSystem().Reference() - tags := make([]string, 0, 1) - oDatacenter := host.datacenter.getDatacenter() -Loop: - for i := range clusters { - oc := clusters[i].getoCluster() - if len(oc.Host) == 0 { - continue - } - for _, h := range oc.Host { - if h == reference { - tags = append(tags, fmt.Sprintf("cluster:/%s/%s/%s", cpName, oDatacenter.Name, oc.Name)) - continue Loop - } - } - } - return tags, nil -} - func (host *SHost) getHostSystem() *mo.HostSystem { return host.object.(*mo.HostSystem) } @@ -330,10 +305,7 @@ func (host *SHost) GetIStorageById(id string) (cloudprovider.ICloudStorage, erro } func (host *SHost) GetEnabled() bool { - if host.getHostSystem().Summary.Runtime.InMaintenanceMode { - return false - } - return true + return !host.getHostSystem().Summary.Runtime.InMaintenanceMode } func (host *SHost) GetHostStatus() string { @@ -784,6 +756,7 @@ type SCreateVMParam struct { Disks []SDiskInfo Nics []jsonutils.JSONObject ProjectId string + ResourcePool string InstanceSnapshotInfo SEsxiInstanceSnapshotInfo EnableEsxiSwap bool } @@ -868,7 +841,7 @@ func (host *SHost) needScsi(disks []SDiskInfo) bool { return false } -func (host *SHost) addDisks(ctx context.Context, dc *SDatacenter, ds *SDatastore, disks []SDiskInfo, uuid string, objectVm *object.VirtualMachine) (*SVirtualMachine, error) { +func (host *SHost) addDisks(ctx context.Context, ds *SDatastore, disks []SDiskInfo, uuid string, objectVm *object.VirtualMachine) (*SVirtualMachine, error) { getVM := func() (*SVirtualMachine, error) { var moVM mo.VirtualMachine err := host.manager.reference2Object(objectVm.Reference(), VIRTUAL_MACHINE_PROPS, &moVM) @@ -1054,9 +1027,10 @@ func (host *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat firmware := "" if len(params.Bios) != 0 { - if params.Bios == "BIOS" { + switch params.Bios { + case "BIOS": firmware = "bios" - } else if params.Bios == "UEFI" { + case "UEFI": firmware = "efi" } } @@ -1165,7 +1139,7 @@ func (host *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat return } - pool, err := host.GetResourcePool() + pool, err := host.SyncResourcePool(params.ResourcePool) if err != nil { err = errors.Wrap(err, "GetResourcePool") return @@ -1183,7 +1157,7 @@ func (host *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat } vmRef := info.Result.(types.ManagedObjectReference) objectVM := object.NewVirtualMachine(host.manager.client.Client, vmRef) - vm, err = host.addDisks(ctx, dc, ds, params.Disks, params.Uuid, objectVM) + vm, err = host.addDisks(ctx, ds, params.Disks, params.Uuid, objectVM) return } @@ -1288,9 +1262,9 @@ func (host *SHost) CloneVM(ctx context.Context, from *SVirtualMachine, snapshot return nil, errors.Wrap(err, "GetFolder") } - resourcePool, err := host.GetResourcePool() + resourcePool, err := host.SyncResourcePool(params.ResourcePool) if err != nil { - return nil, errors.Wrap(err, "GetResourcePool") + return nil, errors.Wrap(err, "SyncResourcePool") } poolref := resourcePool.Reference() @@ -1504,10 +1478,7 @@ func (host *SHost) changeNic(device types.BaseVirtualDevice, update types.BaseVi func (host *SHost) isVersion50() bool { version := host.GetVersion() - if strings.HasPrefix(version, "5.") { - return true - } - return false + return strings.HasPrefix(version, "5.") } func (host *SHost) getVmVersion() string { @@ -1684,33 +1655,6 @@ func (host *SHost) FileUrlPathToDsPath(path string) (string, error) { return newPath, nil } -/*func (host *SHost) FindNetworkByVlanID(vlanID int32) (IVMNetwork, error) { - if host.IsActiveVlanID(vlanID) { - net, err := host.findBasicNetwork(vlanID) - if err != nil { - return nil, errors.Wrap(err, "findBasicNetwork error") - } - if net != nil { - return net, nil - } - - // no found in basic network - dvpg, err := host.findVlanDVPG(vlanID) - if err != nil { - return nil, errors.Wrap(err, "findVlanDVPG") - } - return dvpg, nil - } - n, err := host.findBasicNetwork(vlanID) - if err != nil { - return nil, errors.Wrap(err, "find Basic network") - } - if n != nil { - return n, err - } - return host.findNovlanDVPG() -}*/ - // IsActiveVlanID will detect if vlanID is active that means vlanID in (1, 4095). func (host *SHost) IsActiveVlanID(vlanID int32) bool { if vlanID > 1 && vlanID < 4095 { @@ -1719,25 +1663,6 @@ func (host *SHost) IsActiveVlanID(vlanID int32) bool { return false } -/*func (host *SHost) findBasicNetwork(vlanID int32) (IVMNetwork, error) { - nets, err := host.getBasicNetworks() - if err != nil { - return nil, err - } - if len(nets) == 0 { - return nil, nil - } - if !host.IsActiveVlanID(vlanID) { - return nets[0], nil - } - for i := range nets { - if nets[i].GetVlanId() == vlanID { - return nets[i], nil - } - } - return nil, nil -}*/ - func (host *SHost) getBasicNetworks() ([]IVMNetwork, error) { nets, err := host.GetNetworks() if err != nil { @@ -1784,24 +1709,6 @@ func (host *SHost) getNetworkById(netId string) (IVMNetwork, error) { return nil, errors.ErrNotFound } -/*func (host *SHost) findNovlanDVPG() (*SDistributedVirtualPortgroup, error) { - nets, err := host.datacenter.GetNetworks() - if err != nil { - return nil, errors.Wrap(err, "SHost.datacenter.GetNetworks") - } - for _, net := range nets { - dvpg, ok := net.(*SDistributedVirtualPortgroup) - if !ok || !dvpg.ContainHost(host) || len(dvpg.GetActivePorts()) == 0 { - continue - } - nvlan := dvpg.GetVlanId() - if !host.IsActiveVlanID(nvlan) { - return dvpg, nil - } - } - return nil, nil -}*/ - func (host *SHost) findDVPGById(id string) (*SDistributedVirtualPortgroup, error) { nets, err := host.datacenter.GetNetworks() if err != nil { @@ -1815,34 +1722,6 @@ func (host *SHost) findDVPGById(id string) (*SDistributedVirtualPortgroup, error return nil, nil } -/*func (host *SHost) findVlanDVPG(vlanId int32) (*SDistributedVirtualPortgroup, error) { - nets, err := host.datacenter.GetNetworks() - if err != nil { - return nil, errors.Wrap(err, "SHost.datacenter.GetNetworks") - } - for _, net := range nets { - dvpg, ok := net.(*SDistributedVirtualPortgroup) - if !ok || len(dvpg.GetActivePorts()) == 0 { - continue - } - nvlan := dvpg.GetVlanId() - if nvlan == vlanId { - if dvpg.ContainHost(host) { - return dvpg, nil - } - msg := "Find dvpg with correct vlan but it didn't contain this host" - log.Debugf(msg) - // add host to dvg - // err := dvpg.AddHostToDVS(host) - // if err != nil { - // return nil, errors.Wrapf(err, "dvpg %s add host to dvs error", dvpg.GetName()) - // } - continue - } - } - return nil, nil -}*/ - func (host *SHost) GetHostSystem() *object.HostSystem { return object.NewHostSystem(host.manager.client.Client, host.getHostSystem().Reference()) } @@ -1883,47 +1762,29 @@ func (host *SHost) getParent() (*mo.ComputeResource, error) { return mcr, nil } -func (host *SHost) GetResourcePools() ([]mo.ResourcePool, error) { - cluster, err := host.GetCluster() - if err != nil { - return nil, errors.Wrap(err, "GetCluster") - } - return cluster.ListResourcePools() -} - -func (host *SHost) GetCluster() (*SCluster, error) { - cluster, err := host.getCluster() - if err != nil { - return nil, errors.Wrap(err, "getCluster") - } - return NewCluster(host.manager, cluster, host.datacenter), nil -} - func (host *SHost) SyncResourcePool(name string) (*object.ResourcePool, error) { - cluster, err := host.GetCluster() - if err != nil { - log.Errorf("failed to get host %s cluster info: %v", host.GetName(), err) + if len(name) == 0 { return host.GetResourcePool() } - pool, err := cluster.SyncResourcePool(name) + dc, err := host.GetDatacenter() if err != nil { - log.Errorf("failed to sync resourcePool(%s) for cluster %s error: %v", name, cluster.GetName(), err) - return host.GetResourcePool() + return nil, errors.Wrap(err, "GetDatacenter") } - return object.NewResourcePool(host.manager.client.Client, pool.Reference()), nil -} - -func (host *SHost) getCluster() (*mo.ClusterComputeResource, error) { - moHost := host.getHostSystem() - if moHost.Parent.Type != "ClusterComputeResource" { - return nil, fmt.Errorf("host %s parent is not the cluster resource", host.GetName()) - } - cluster := &mo.ClusterComputeResource{} - err := host.manager.reference2Object(*moHost.Parent, []string{"name", "resourcePool"}, cluster) + pools, err := dc.listResourcePools() if err != nil { - return nil, errors.Wrap(err, "SESXiClient.reference2Object") + return nil, errors.Wrap(err, "ListResourcePools") } - return cluster, nil + for i := range pools { + pool := NewResourcePool(host.manager, &pools[i], host.datacenter) + if strings.EqualFold(strings.Join(pool.GetPath(), "/"), name) || + strings.EqualFold(strings.Join(pool.GetPath(), "|"), name) || + strings.EqualFold(pool.GetName(), name) { + log.Debugf("SyncResourcePool: %s found", strings.Join(pool.GetPath(), "|")) + return object.NewResourcePool(host.manager.client.Client, pools[i].Reference()), nil + } + } + log.Errorf("SyncResourcePool: %s not found", name) + return host.GetResourcePool() } func (host *SHost) GetSiblingHosts() ([]*SHost, error) { diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/resourcepool.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/resourcepool.go index d692b03475..3d44f045b6 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/resourcepool.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/resourcepool.go @@ -15,20 +15,19 @@ package esxi import ( - "net/url" - "strings" - "github.com/vmware/govmomi/vim25/mo" api "yunion.io/x/cloudmux/pkg/apis/compute" "yunion.io/x/cloudmux/pkg/multicloud" + "yunion.io/x/log" ) -var RESOURCEPOOL_PROPS = []string{"name", "parent", "host"} +var RESOURCEPOOL_PROPS = []string{"resourcePool"} type SResourcePool struct { multicloud.SProjectBase multicloud.STagBase + SManagedObject } @@ -40,17 +39,39 @@ func (pool *SResourcePool) GetStatus() string { return api.EXTERNAL_PROJECT_STATUS_AVAILABLE } -func (pool *SResourcePool) GetName() string { - path := pool.GetPath() - if len(path) > 5 { - path = path[5:] +func (pool *SResourcePool) getParentEntity(obj *mo.ManagedEntity) *mo.ManagedEntity { + parent := obj.Parent + if parent != nil { + var entity mo.ManagedEntity + err := pool.manager.reference2Object(*parent, []string{"name", "parent"}, &entity) + if err != nil { + log.Errorf("%s", err) + return nil + } + return &entity } - name := []string{} - for _, _name := range path { - p, _ := url.PathUnescape(_name) - name = append([]string{p}, name...) + return nil +} + +func (pool *SResourcePool) fetchPath() []string { + path := []string{pool.GetName()} + obj := pool.object.Entity() + for obj != nil { + obj = pool.getParentEntity(obj) + if obj == nil || (obj.Self.Type == "ResourcePool" && obj.Name == "Resources") { + break + } + path = append(path, obj.Name) } - return strings.Join(name, "/") + reverseArray(path) + return path +} + +func (pool *SResourcePool) GetPath() []string { + if pool.path == nil { + pool.path = pool.fetchPath() + } + return pool.path } func NewResourcePool(manager *SESXiClient, rp *mo.ResourcePool, dc *SDatacenter) *SResourcePool { diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/tags.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/tags.go index 77767ce9d4..9a068d1f04 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/tags.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/tags.go @@ -44,14 +44,6 @@ func (host *SHost) GetSysTags() map[string]string { if dc != nil { tags["datacenter"] = dc.GetName() } - cluster, _ := host.GetCluster() - if cluster != nil { - tags["cluster"] = cluster.GetName() - } - resourcePool, _ := host.GetResourcePool() - if resourcePool != nil { - tags["resource_pool"] = resourcePool.Name() - } paths := host.GetPath() for i := 3; i < len(paths); i++ { tags[fmt.Sprintf("folder_%d", i-3)] = paths[i] diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/oracle/tag.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/oracle/tag.go index 5ed567c593..1730e5d971 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/oracle/tag.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/oracle/tag.go @@ -20,16 +20,20 @@ import ( ) type SOracleTag struct { + Tags map[string]string `json:"freeformTags"` + SysTags struct { + OracleTags map[string]string `json:"Oracle-Tags"` + } `json:"definedTags"` } -func (self SOracleTag) GetSysTags() map[string]string { - return nil +func (ot SOracleTag) GetSysTags() map[string]string { + return ot.SysTags.OracleTags } -func (self SOracleTag) GetTags() (map[string]string, error) { - return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "GetTags") +func (ot SOracleTag) GetTags() (map[string]string, error) { + return ot.Tags, nil } -func (self SOracleTag) SetTags(tags map[string]string, replace bool) error { +func (ot SOracleTag) SetTags(tags map[string]string, replace bool) error { return errors.Wrap(cloudprovider.ErrNotImplemented, "SetTags") }