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 }