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  }