github.com/vmware/govmomi@v0.51.0/simulator/dvs_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 DistributedVirtualSwitchManager struct {
    15  	mo.DistributedVirtualSwitchManager
    16  }
    17  
    18  func (m *DistributedVirtualSwitchManager) DVSManagerLookupDvPortGroup(ctx *Context, req *types.DVSManagerLookupDvPortGroup) soap.HasFault {
    19  	body := &methods.DVSManagerLookupDvPortGroupBody{}
    20  
    21  	for _, obj := range ctx.Map.All("DistributedVirtualSwitch") {
    22  		dvs := obj.(*DistributedVirtualSwitch)
    23  		if dvs.Uuid == req.SwitchUuid {
    24  			for _, ref := range dvs.Portgroup {
    25  				pg := ctx.Map.Get(ref).(*DistributedVirtualPortgroup)
    26  				if pg.Key == req.PortgroupKey {
    27  					body.Res = &types.DVSManagerLookupDvPortGroupResponse{
    28  						Returnval: &ref,
    29  					}
    30  					return body
    31  				}
    32  			}
    33  		}
    34  	}
    35  
    36  	body.Fault_ = Fault("", new(types.NotFound))
    37  
    38  	return body
    39  }