github.com/vmware/govmomi@v0.51.0/simulator/tenant_manager.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package simulator 6 7 import ( 8 "github.com/vmware/govmomi/vim25/methods" 9 "github.com/vmware/govmomi/vim25/mo" 10 "github.com/vmware/govmomi/vim25/soap" 11 "github.com/vmware/govmomi/vim25/types" 12 ) 13 14 type TenantManager struct { 15 mo.TenantTenantManager 16 17 spEntities map[types.ManagedObjectReference]bool 18 } 19 20 func (t *TenantManager) init(r *Registry) { 21 t.spEntities = make(map[types.ManagedObjectReference]bool) 22 } 23 24 func (t *TenantManager) markEntities(entities []types.ManagedObjectReference) { 25 for _, e := range entities { 26 t.spEntities[e] = true 27 } 28 } 29 30 func (t *TenantManager) unmarkEntities(entities []types.ManagedObjectReference) { 31 for _, e := range entities { 32 _, ok := t.spEntities[e] 33 if ok { 34 delete(t.spEntities, e) 35 } 36 } 37 } 38 39 func (t *TenantManager) getEntities() []types.ManagedObjectReference { 40 entities := []types.ManagedObjectReference{} 41 for e := range t.spEntities { 42 entities = append(entities, e) 43 } 44 return entities 45 } 46 47 func (t *TenantManager) MarkServiceProviderEntities(req *types.MarkServiceProviderEntities) soap.HasFault { 48 body := new(methods.MarkServiceProviderEntitiesBody) 49 t.markEntities(req.Entity) 50 body.Res = &types.MarkServiceProviderEntitiesResponse{} 51 return body 52 } 53 54 func (t *TenantManager) UnmarkServiceProviderEntities(req *types.UnmarkServiceProviderEntities) soap.HasFault { 55 body := new(methods.UnmarkServiceProviderEntitiesBody) 56 t.unmarkEntities(req.Entity) 57 body.Res = &types.UnmarkServiceProviderEntitiesResponse{} 58 return body 59 } 60 61 func (t *TenantManager) RetrieveServiceProviderEntities(req *types.RetrieveServiceProviderEntities) soap.HasFault { 62 body := new(methods.RetrieveServiceProviderEntitiesBody) 63 body.Res = &types.RetrieveServiceProviderEntitiesResponse{ 64 Returnval: t.getEntities(), 65 } 66 return body 67 }