Documentation ¶
Overview ¶
Package util contains various shared structs and functions used across the pango package.
Index ¶
- Constants
- func AsBool(val string) bool
- func AsEntryXpath(vals []string) string
- func AsMemberXpath(vals []string) string
- func AsXpath(i interface{}) string
- func CleanRawXml(v string) string
- func CopyStringSlice(v []string) []string
- func CopyTargets(v map[string][]string) map[string][]string
- func DeviceGroupXpathPrefix(dg string) []string
- func EntToOneStr(e *EntryType) string
- func EntToStr(e *EntryType) []string
- func MemToOneStr(e *MemberType) string
- func MemToStr(e *MemberType) []string
- func NewHitCountRequest(rulebase, vsys string, rules []string) interface{}
- func OrderedListsMatch(a, b []string) bool
- func PanoramaXpathPrefix() []string
- func RelativeMovement(v int) bool
- func StripPanosPackaging(input []byte, tag string) []byte
- func TargetsMatch(a, b map[string][]string) bool
- func TemplateXpathPrefix(tmpl, ts string) []string
- func UnorderedListsMatch(a, b []string) bool
- func ValidMovement(v int) bool
- func ValidateRulebase(dg, base string) error
- func VsysEntToMap(ve *VsysEntryType) map[string][]string
- func VsysXpathPrefix(vsys string) []string
- func YesNo(v bool) string
- type Actioner
- type BasicJob
- type BasicJobDetails
- type BulkElement
- type CdataText
- type Elementer
- type Entry
- type EntryType
- type HitCount
- type HitCountResponse
- type JobResponse
- type License
- type LineOrCdata
- type Lock
- type Member
- type MemberType
- type RawXml
- type Retriever
- type VsysEntry
- type VsysEntryType
- type XapiClient
- type XmlNode
Constants ¶
const ( Rulebase = "rulebase" PreRulebase = "pre-rulebase" PostRulebase = "post-rulebase" )
Rulebase constants for various policies.
const ( InterfaceImport = "interface" VirtualRouterImport = "virtual-router" VirtualWireImport = "virtual-wire" VlanImport = "vlan" )
Valid values to use for VsysImport() or VsysUnimport().
const ( MoveSkip = iota MoveBefore MoveDirectlyBefore MoveAfter MoveDirectlyAfter MoveTop MoveBottom )
These constants are valid move locations to pass to various movement functions (aka - policy management).
const ( Get = "get" Show = "show" )
Valid values to use for any function expecting a pango query type `qt`.
const PanosTimeWithoutTimezoneFormat = "2006/01/02 15:04:05"
PanosTimeWithoutTimezoneFormat is a time (missing the timezone) that PAN-OS will give sometimes. Combining this with `Clock()` to get a usable time. report that does not contain
Variables ¶
This section is empty.
Functions ¶
func AsEntryXpath ¶
AsEntryXpath returns the given values as an entry xpath segment.
func AsMemberXpath ¶
AsMemberXpath returns the given values as a member xpath segment.
func AsXpath ¶
func AsXpath(i interface{}) string
AsXpath makes an xpath out of the given interface.
func CleanRawXml ¶
CleanRawXml removes extra XML attributes from RawXml objects without requiring us to have to parse everything.
func CopyStringSlice ¶ added in v0.7.0
func DeviceGroupXpathPrefix ¶ added in v0.2.0
DeviceGroupXpathPrefix returns a device group xpath prefix. If the device group is empty, then the default is "shared".
func EntToOneStr ¶
EntToOneStr normalizes an EntryType pointer for a max_items=1 XML node into a string.
func MemToOneStr ¶
func MemToOneStr(e *MemberType) string
MemToOneStr normalizes a MemberType pointer for a max_items=1 XML node into a string.
func MemToStr ¶
func MemToStr(e *MemberType) []string
MemToStr normalizes a MemberType pointer into a list of strings.
func NewHitCountRequest ¶ added in v0.5.0
NewHitCountRequest returns a new hit count request struct.
If the rules param is nil, then the hit count for all rules is returned.
func OrderedListsMatch ¶ added in v0.7.0
func PanoramaXpathPrefix ¶ added in v0.6.0
func PanoramaXpathPrefix() []string
PanoramaXpathPrefix returns the panorama xpath prefix.
func RelativeMovement ¶ added in v0.5.0
RelativeMovement returns if the movement constant is a relative movement.
func StripPanosPackaging ¶ added in v0.5.0
StripPanosPackaging removes the response / result and an optional third containing XML tag from the given byte slice.
func TargetsMatch ¶ added in v0.7.0
func TemplateXpathPrefix ¶
TemplateXpathPrefix returns the template xpath prefix of the given template name.
func UnorderedListsMatch ¶ added in v0.7.0
func ValidMovement ¶ added in v0.5.0
ValidMovement returns if the movement constant is valid or not.
func ValidateRulebase ¶ added in v0.5.0
ValidateRulebase validates the device group and rulebase pairing for Panorama policies.
func VsysEntToMap ¶
func VsysEntToMap(ve *VsysEntryType) map[string][]string
VsysEntToMap normalizes a VsysEntryType pointer into a map.
func VsysXpathPrefix ¶ added in v0.2.0
VsysXpathPrefix returns a vsys xpath prefix.
Types ¶
type BasicJob ¶
type BasicJob struct { XMLName xml.Name `xml:"response"` Result string `xml:"result>job>result"` Progress uint `xml:"-"` Details BasicJobDetails `xml:"result>job>details"` Devices []devJob `xml:"result>job>devices>entry"` Status string `xml:"result>job>status"` // For log retrieval jobs. ProgressRaw string `xml:"result>job>progress"` }
BasicJob is a struct for parsing minimal information about a submitted job to PANOS.
func (*BasicJob) UnmarshalXML ¶ added in v0.6.0
type BasicJobDetails ¶ added in v0.5.0
type BasicJobDetails struct {
Lines []LineOrCdata `xml:"line"`
}
func (*BasicJobDetails) String ¶ added in v0.5.0
func (o *BasicJobDetails) String() string
type BulkElement ¶
BulkElement is a generic bulk container for bulk operations.
func (BulkElement) Config ¶
func (o BulkElement) Config() interface{}
Config returns an interface to be Marshaled.
type CdataText ¶
type CdataText struct {
Text string `xml:",cdata"`
}
CdataText is for getting CDATA contents of XML docs.
type Elementer ¶ added in v0.5.0
type Elementer interface {
Element() interface{}
}
Elementer is an interface for commits.
type EntryType ¶
type EntryType struct {
Entries []Entry `xml:"entry"`
}
EntryType defines an entry config node used for sending and receiving XML from PAN-OS.
func OneStrToEnt ¶
OneStrToEnt converts a string into an EntryType pointer for a max_items=1 XML node.
type HitCount ¶ added in v0.5.0
type HitCount struct { Name string `xml:"name,attr"` Latest string `xml:"latest"` HitCount uint `xml:"hit-count"` LastHitTimestamp int `xml:"last-hit-timestamp"` LastResetTimestamp int `xml:"last-reset-timestamp"` FirstHitTimestamp int `xml:"first-hit-timestamp"` RuleCreationTimestamp int `xml:"rule-creation-timestamp"` RuleModificationTimestamp int `xml:"rule-modification-timestamp"` }
HitCount is the hit count data for a specific rule.
type HitCountResponse ¶ added in v0.5.0
type HitCountResponse struct { XMLName xml.Name `xml:"response"` Results []HitCount `xml:"result>rule-hit-count>vsys>entry>rule-base>entry>rules>entry"` }
HitCountResponse is the hit count response struct.
type JobResponse ¶
JobResponse parses a XML response that includes a job ID.
type License ¶
type License struct { XMLName xml.Name `xml:"entry"` Feature string `xml:"feature"` Description string `xml:"description"` Serial string `xml:"serial"` Issued string `xml:"issued"` Expires string `xml:"expires"` Expired string `xml:"expired"` AuthCode string `xml:"authcode"` }
License defines a license entry.
type LineOrCdata ¶ added in v0.5.0
type Lock ¶
type Lock struct { XMLName xml.Name `xml:"entry"` Owner string `xml:"name,attr"` Name string `xml:"name"` Type string `xml:"type"` LoggedIn string `xml:"loggedin"` Comment CdataText `xml:"comment"` }
Lock represents either a config lock or a commit lock.
type MemberType ¶
type MemberType struct {
Members []Member `xml:"member"`
}
MemberType defines a member config node used for sending and receiving XML from PAN-OS.
func OneStrToMem ¶
func OneStrToMem(e string) *MemberType
OneStrToMem converts a string into a MemberType pointer for a max_items=1 XML node.
func StrToMem ¶
func StrToMem(e []string) *MemberType
StrToMem converts a list of strings into a MemberType pointer.
type RawXml ¶
type RawXml struct {
Text string `xml:",innerxml"`
}
RawXml is what allows the use of Edit commands on a XPATH without truncating any other child objects that may be attached to it.
type Retriever ¶
Retriever is a type that is intended to act as a stand-in for using either the Get or Show pango Client functions.
type VsysEntry ¶
type VsysEntry struct { XMLName xml.Name `xml:"entry"` Serial string `xml:"name,attr"` Vsys *EntryType `xml:"vsys"` }
VsysEntry defines the "vsys" xpath node under a VsysEntryType config node.
type VsysEntryType ¶
type VsysEntryType struct {
Entries []VsysEntry `xml:"entry"`
}
VsysEntryType defines an entry config node with vsys entries underneath.
func MapToVsysEnt ¶
func MapToVsysEnt(e map[string][]string) *VsysEntryType
MapToVsysEnt converts a map into a VsysEntryType pointer.
This struct is used for "Target" information on Panorama when dealing with various policies. Maps are unordered, but FWICT Panorama doesn't seem to order anything anyways when doing things in the GUI, so hopefully this is ok...?
type XapiClient ¶
type XapiClient interface { String() string Versioning() version.Number Plugins() []plugin.Info // Logging functions. LogAction(string, ...interface{}) LogQuery(string, ...interface{}) LogOp(string, ...interface{}) LogUid(string, ...interface{}) LogLog(string, ...interface{}) LogExport(string, ...interface{}) LogImport(string, ...interface{}) // PAN-OS API calls. Op(interface{}, string, interface{}, interface{}) ([]byte, error) Show(interface{}, interface{}, interface{}) ([]byte, error) Get(interface{}, interface{}, interface{}) ([]byte, error) Delete(interface{}, interface{}, interface{}) ([]byte, error) Set(interface{}, interface{}, interface{}, interface{}) ([]byte, error) Edit(interface{}, interface{}, interface{}, interface{}) ([]byte, error) Move(interface{}, string, string, interface{}, interface{}) ([]byte, error) Log(string, string, string, string, int, int, interface{}, interface{}) ([]byte, error) Export(string, time.Duration, interface{}, interface{}) (string, []byte, error) Import(string, string, string, string, time.Duration, interface{}, interface{}) ([]byte, error) Commit(interface{}, string, interface{}) (uint, []byte, error) Uid(interface{}, string, interface{}, interface{}) ([]byte, error) // Vsys importables. VsysImport(string, string, string, string, []string) error VsysUnimport(string, string, string, []string) error // Extras. EntryListUsing(Retriever, []string) ([]string, error) MemberListUsing(Retriever, []string) ([]string, error) RequestPasswordHash(string) (string, error) WaitForJob(uint, time.Duration, interface{}, interface{}) error WaitForLogs(uint, time.Duration, time.Duration, interface{}) ([]byte, error) Clock() (time.Time, error) PositionFirstEntity(int, string, string, []string, []string) error ConfigTree() *XmlNode }
XapiClient is the interface that describes an pango.Client.
type XmlNode ¶ added in v0.7.0
type XmlNode struct { XMLName xml.Name Attributes []xml.Attr `xml:",any,attr"` Text []byte `xml:",innerxml"` Nodes []XmlNode `xml:",any"` }
XmlNode is a generic XML node.
func FindXmlNodeInTree ¶ added in v0.7.0
FindXmlNodeInTree finds a given path in the specified XmlNode tree.