Documentation ¶
Overview ¶
Package util contains various shared structs and functions used across the pango package.
Index ¶
- Constants
- func AsBool(val string) bool
- func AsBoolEmpty(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 LogCollectorGroupDeviceXpathPrefix(logcollectorgroup, device string) []string
- func LogCollectorGroupXpathPrefix(logcollectorgroup string) []string
- func LogCollectorXpathPrefix(logcollector string) []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 RefactorElement(str string) 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
- func YesNoEmpty(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 ( EmptyString = "" EntryV1 = "entry_v1" )
Values of general application constants
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 AsBoolEmpty ¶ added in v0.11.2
AsBoolEmpty returns true on yes, false on no and nil on empty string
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 ¶
func DeviceGroupXpathPrefix ¶
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 LogCollectorGroupDeviceXpathPrefix ¶ added in v0.10.5
LogCollectorGroupDeviceXpathPrefix returns the logcollector xpath prefix of the given logcollector name.
func LogCollectorGroupXpathPrefix ¶ added in v0.10.5
LogCollectorGroupXpathPrefix returns the logcollector xpath prefix of the given logcollector name.
func LogCollectorXpathPrefix ¶ added in v0.10.5
LogCollectorXpathPrefix returns the logcollector xpath prefix of the given logcollector name.
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 ¶
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 ¶
func PanoramaXpathPrefix ¶
func PanoramaXpathPrefix() []string
PanoramaXpathPrefix returns the panorama xpath prefix.
func RefactorElement ¶ added in v0.11.0
RefactorElement for removing default struct tag name in case it was auto append
func RelativeMovement ¶
RelativeMovement returns if the movement constant is a relative movement.
func StripPanosPackaging ¶
StripPanosPackaging removes the response / result and an optional third containing XML tag from the given byte slice.
func TargetsMatch ¶
func TemplateXpathPrefix ¶
TemplateXpathPrefix returns the template xpath prefix of the given template name.
func UnorderedListsMatch ¶
func ValidMovement ¶
ValidMovement returns if the movement constant is valid or not.
func ValidateRulebase ¶
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 ¶
VsysXpathPrefix returns a vsys xpath prefix.
func YesNoEmpty ¶ added in v0.11.2
YesNoEmpty returns "yes" on true, "no" on false and empty string if null
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 ¶
type BasicJobDetails ¶
type BasicJobDetails struct {
Lines []LineOrCdata `xml:"line"`
}
func (*BasicJobDetails) String ¶
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 ¶
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 ¶
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 ¶
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 ¶
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.