github.com/vmware/govmomi@v0.51.0/simulator/host_firewall_system.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/simulator/esx"
     9  	"github.com/vmware/govmomi/vim25/methods"
    10  	"github.com/vmware/govmomi/vim25/mo"
    11  	"github.com/vmware/govmomi/vim25/soap"
    12  	"github.com/vmware/govmomi/vim25/types"
    13  )
    14  
    15  type HostFirewallSystem struct {
    16  	mo.HostFirewallSystem
    17  }
    18  
    19  func NewHostFirewallSystem(_ *mo.HostSystem) *HostFirewallSystem {
    20  	info := esx.HostFirewallInfo
    21  
    22  	return &HostFirewallSystem{
    23  		HostFirewallSystem: mo.HostFirewallSystem{
    24  			FirewallInfo: &info,
    25  		},
    26  	}
    27  }
    28  
    29  func DisableRuleset(info *types.HostFirewallInfo, id string) bool {
    30  	for i := range info.Ruleset {
    31  		if info.Ruleset[i].Key == id {
    32  			info.Ruleset[i].Enabled = false
    33  			return true
    34  		}
    35  	}
    36  
    37  	return false
    38  }
    39  
    40  func (s *HostFirewallSystem) DisableRuleset(req *types.DisableRuleset) soap.HasFault {
    41  	body := &methods.DisableRulesetBody{}
    42  
    43  	if DisableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) {
    44  		body.Res = new(types.DisableRulesetResponse)
    45  		return body
    46  	}
    47  
    48  	body.Fault_ = Fault("", &types.NotFound{})
    49  
    50  	return body
    51  }
    52  
    53  func EnableRuleset(info *types.HostFirewallInfo, id string) bool {
    54  	for i := range info.Ruleset {
    55  		if info.Ruleset[i].Key == id {
    56  			info.Ruleset[i].Enabled = true
    57  			return true
    58  		}
    59  	}
    60  
    61  	return false
    62  }
    63  
    64  func (s *HostFirewallSystem) EnableRuleset(req *types.EnableRuleset) soap.HasFault {
    65  	body := &methods.EnableRulesetBody{}
    66  
    67  	if EnableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) {
    68  		body.Res = new(types.EnableRulesetResponse)
    69  		return body
    70  	}
    71  
    72  	body.Fault_ = Fault("", &types.NotFound{})
    73  
    74  	return body
    75  }