github.com/vmware/govmomi@v0.51.0/simulator/host_local_account_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 // As of vSphere API 5.1, local groups operations are deprecated, so it's not supported here. 15 16 type HostLocalAccountManager struct { 17 mo.HostLocalAccountManager 18 } 19 20 func (h *HostLocalAccountManager) CreateUser(ctx *Context, req *types.CreateUser) soap.HasFault { 21 spec := req.User.GetHostAccountSpec() 22 userDirectory := ctx.Map.UserDirectory() 23 24 found := userDirectory.search(true, false, compareFunc(spec.Id, true)) 25 if len(found) > 0 { 26 return &methods.CreateUserBody{ 27 Fault_: Fault("", &types.AlreadyExists{}), 28 } 29 } 30 31 userDirectory.addUser(spec.Id) 32 33 return &methods.CreateUserBody{ 34 Res: &types.CreateUserResponse{}, 35 } 36 } 37 38 func (h *HostLocalAccountManager) RemoveUser(ctx *Context, req *types.RemoveUser) soap.HasFault { 39 userDirectory := ctx.Map.UserDirectory() 40 41 found := userDirectory.search(true, false, compareFunc(req.UserName, true)) 42 43 if len(found) == 0 { 44 return &methods.RemoveUserBody{ 45 Fault_: Fault("", &types.UserNotFound{}), 46 } 47 } 48 49 userDirectory.removeUser(req.UserName) 50 51 return &methods.RemoveUserBody{ 52 Res: &types.RemoveUserResponse{}, 53 } 54 } 55 56 func (h *HostLocalAccountManager) UpdateUser(req *types.UpdateUser) soap.HasFault { 57 return &methods.CreateUserBody{ 58 Res: &types.CreateUserResponse{}, 59 } 60 }