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 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 RelativeMovement(v int) bool
- func StripPanosPackaging(input []byte, tag string) []byte
- func TemplateXpathPrefix(tmpl, ts string) []string
- func ValidMovement(v int) bool
- func ValidateRulebase(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
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`.
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 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 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 TemplateXpathPrefix ¶
TemplateXpathPrefix returns the template xpath prefix of the given template name.
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 returns a nil error if the rulebase is valid.
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:"result>job>progress"` Details BasicJobDetails `xml:"result>job>details"` Devices []devJob `xml:"result>job>devices>entry"` }
BasicJob is a struct for parsing minimal information about a submitted job to PANOS.
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 LogAction(string, ...interface{}) LogQuery(string, ...interface{}) LogOp(string, ...interface{}) LogUid(string, ...interface{}) 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) Uid(interface{}, string, interface{}, interface{}) ([]byte, error) EntryListUsing(Retriever, []string) ([]string, error) MemberListUsing(Retriever, []string) ([]string, error) RequestPasswordHash(string) (string, error) VsysImport(string, string, string, string, []string) error VsysUnimport(string, string, string, []string) error WaitForJob(uint, time.Duration, interface{}) error Commit(interface{}, string, interface{}) (uint, []byte, error) PositionFirstEntity(int, string, string, []string, []string) error }
XapiClient is the interface that describes an pango.Client.