Documentation
¶
Index ¶
- Variables
- type GremlinQueryHelper
- func (g *GremlinQueryHelper) GetFlowMetric(query string) (m *flow.FlowMetric, _ error)
- func (g *GremlinQueryHelper) GetFlows(query string) (flows []*flow.Flow, err error)
- func (g *GremlinQueryHelper) GetMetric(query string) (*common.TimedMetric, error)
- func (g *GremlinQueryHelper) GetMetrics(query string) (map[string][]*common.TimedMetric, error)
- func (g *GremlinQueryHelper) GetNode(query string) (node *graph.Node, _ error)
- func (g *GremlinQueryHelper) GetNodes(query string) ([]*graph.Node, error)
- func (g *GremlinQueryHelper) Query(query string, values interface{}) error
- type Session
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrContinue = errors.New("<continue input>") ErrQuit = errors.New("<quit session>") )
View Source
var AlertCmd = &cobra.Command{ Use: "alert", Short: "Manage alerts", Long: "Manage alerts", SilenceUsage: false, }
View Source
var AlertCreate = &cobra.Command{ Use: "create", Short: "Create alert", Long: "Create alert", Run: func(cmd *cobra.Command, args []string) { client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Criticalf(err.Error()) } alert := api.NewAlert() alert.Name = alertName alert.Description = alertDescription alert.Expression = alertExpression alert.Trigger = alertTrigger alert.Action = alertAction if errs := validator.Validate(alert); errs != nil { fmt.Println("Error: ", errs) cmd.Usage() os.Exit(1) } if err := client.Create("alert", &alert); err != nil { logging.GetLogger().Errorf(err.Error()) os.Exit(1) } printJSON(&alert) }, }
View Source
var AlertDelete = &cobra.Command{ Use: "delete [alert]", Short: "Delete alert", Long: "Delete alert", PreRun: func(cmd *cobra.Command, args []string) { if len(args) == 0 { cmd.Usage() os.Exit(1) } }, Run: func(cmd *cobra.Command, args []string) { client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Criticalf(err.Error()) } if err := client.Delete("alert", args[0]); err != nil { logging.GetLogger().Errorf(err.Error()) os.Exit(1) } }, }
View Source
var AlertGet = &cobra.Command{ Use: "get [alert]", Short: "Display alert", Long: "Display alert", PreRun: func(cmd *cobra.Command, args []string) { if len(args) == 0 { cmd.Usage() os.Exit(1) } }, Run: func(cmd *cobra.Command, args []string) { var alert api.Alert client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Criticalf(err.Error()) } if err := client.Get("alert", args[0], &alert); err != nil { logging.GetLogger().Errorf(err.Error()) os.Exit(1) } printJSON(&alert) }, }
View Source
var AlertList = &cobra.Command{ Use: "list", Short: "List alerts", Long: "List alerts", Run: func(cmd *cobra.Command, args []string) { var alerts map[string]api.Alert client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Criticalf(err.Error()) } if err := client.List("alert", &alerts); err != nil { logging.GetLogger().Errorf(err.Error()) os.Exit(1) } printJSON(alerts) }, }
View Source
var (
AuthenticationOpts shttp.AuthenticationOpts
)
View Source
var CaptureCmd = &cobra.Command{ Use: "capture", Short: "Manage captures", Long: "Manage captures", SilenceUsage: false, }
View Source
var CaptureCreate = &cobra.Command{ Use: "create", Short: "Create capture", Long: "Create capture", PreRun: func(cmd *cobra.Command, args []string) { if nodeTID != "" { if gremlinQuery != "" { logging.GetLogger().Fatal("Options --node and --gremlin are exclusive") } gremlinQuery = fmt.Sprintf("g.V().Has('TID', '%s')", nodeTID) } }, Run: func(cmd *cobra.Command, args []string) { client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Fatalf(err.Error()) } capture := api.NewCapture(gremlinQuery, bpfFilter) capture.Name = captureName capture.Description = captureDescription capture.Type = captureType if err := validator.Validate(capture); err != nil { logging.GetLogger().Fatalf(err.Error()) } if err := client.Create("capture", &capture); err != nil { logging.GetLogger().Fatalf(err.Error()) } printJSON(&capture) }, }
View Source
var CaptureDelete = &cobra.Command{ Use: "delete [capture]", Short: "Delete capture", Long: "Delete capture", PreRun: func(cmd *cobra.Command, args []string) { if len(args) == 0 { cmd.Usage() os.Exit(1) } }, Run: func(cmd *cobra.Command, args []string) { client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Fatalf(err.Error()) } if err := client.Delete("capture", args[0]); err != nil { logging.GetLogger().Fatalf(err.Error()) } }, }
View Source
var CaptureGet = &cobra.Command{ Use: "get [capture]", Short: "Display capture", Long: "Display capture", PreRun: func(cmd *cobra.Command, args []string) { if len(args) == 0 { cmd.Usage() os.Exit(1) } }, Run: func(cmd *cobra.Command, args []string) { var capture api.Capture client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Fatalf(err.Error()) } if err := client.Get("capture", args[0], &capture); err != nil { logging.GetLogger().Fatalf(err.Error()) } printJSON(&capture) }, }
View Source
var CaptureList = &cobra.Command{ Use: "list", Short: "List captures", Long: "List captures", Run: func(cmd *cobra.Command, args []string) { var captures map[string]api.Capture client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Fatalf(err.Error()) } if err := client.List("capture", &captures); err != nil { logging.GetLogger().Fatalf(err.Error()) } printJSON(captures) }, }
View Source
var PacketInjectorCmd = &cobra.Command{ Use: "inject-packet", Short: "inject packets", Long: "inject packets", SilenceUsage: false, Run: func(cmd *cobra.Command, args []string) { client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Criticalf(err.Error()) } packet := &api.PacketParamsReq{} packet.Src = srcNode packet.Dst = dstNode packet.SrcIP = srcIP packet.SrcMAC = srcMAC packet.DstIP = dstIP packet.DstMAC = dstMAC packet.Type = packetType packet.Payload = payload packet.Count = count if errs := validator.Validate(packet); errs != nil { fmt.Println("Error: ", errs) cmd.Usage() os.Exit(1) } if err := client.Create("injectpacket", &packet); err != nil { logging.GetLogger().Errorf(err.Error()) os.Exit(1) } }, }
View Source
var PcapCmd = &cobra.Command{ Use: "pcap", Short: "Import flows from PCAP file", Long: "Import flows from PCAP file", PreRun: func(cmd *cobra.Command, args []string) { if pcapTrace == "" { logging.GetLogger().Error("You need to specify a PCAP file") cmd.Usage() os.Exit(1) } }, Run: func(cmd *cobra.Command, args []string) { client, err := api.NewCrudClientFromConfig(&AuthenticationOpts) if err != nil { logging.GetLogger().Fatal(err) } file, err := os.Open(pcapTrace) if err != nil { logging.GetLogger().Fatal(err) } defer file.Close() resp, err := client.Request("POST", "api/pcap", file) if err != nil { logging.GetLogger().Fatal(err) } if resp.StatusCode == http.StatusOK { fmt.Printf("%s was successfully imported\n", pcapTrace) } else { content, _ := ioutil.ReadAll(resp.Body) logging.GetLogger().Errorf("Failed to import %s: %s", pcapTrace, string(content)) } }, }
View Source
var ShellCmd = &cobra.Command{ Use: "shell", Short: "Shell Command Line Interface", Long: "Skydive Shell Command Line Interface, yet another shell", SilenceUsage: false, Run: func(cmd *cobra.Command, args []string) { shellMain() }, }
View Source
var TopologyCmd = &cobra.Command{ Use: "topology", Short: "Request on topology", Long: "Request on topology", SilenceUsage: false, }
View Source
var TopologyRequest = &cobra.Command{ Use: "query", Short: "query topology", Long: "query topology", Run: func(cmd *cobra.Command, args []string) { var value interface{} queryHelper := NewGremlinQueryHelper(&AuthenticationOpts) if err := queryHelper.Query(gremlinQuery, &value); err != nil { logging.GetLogger().Errorf(err.Error()) os.Exit(1) } printJSON(value) }, }
Functions ¶
This section is empty.
Types ¶
type GremlinQueryHelper ¶ added in v0.10.0
type GremlinQueryHelper struct {
// contains filtered or unexported fields
}
func NewGremlinQueryHelper ¶ added in v0.10.0
func NewGremlinQueryHelper(authOptions *shttp.AuthenticationOpts) *GremlinQueryHelper
func (*GremlinQueryHelper) GetFlowMetric ¶ added in v0.10.0
func (g *GremlinQueryHelper) GetFlowMetric(query string) (m *flow.FlowMetric, _ error)
func (*GremlinQueryHelper) GetFlows ¶ added in v0.10.0
func (g *GremlinQueryHelper) GetFlows(query string) (flows []*flow.Flow, err error)
func (*GremlinQueryHelper) GetMetric ¶ added in v0.10.0
func (g *GremlinQueryHelper) GetMetric(query string) (*common.TimedMetric, error)
func (*GremlinQueryHelper) GetMetrics ¶ added in v0.10.0
func (g *GremlinQueryHelper) GetMetrics(query string) (map[string][]*common.TimedMetric, error)
func (*GremlinQueryHelper) GetNode ¶ added in v0.10.0
func (g *GremlinQueryHelper) GetNode(query string) (node *graph.Node, _ error)
func (*GremlinQueryHelper) GetNodes ¶ added in v0.10.0
func (g *GremlinQueryHelper) GetNodes(query string) ([]*graph.Node, error)
func (*GremlinQueryHelper) Query ¶ added in v0.10.0
func (g *GremlinQueryHelper) Query(query string, values interface{}) error
Source Files
¶
- alert.go
- capture.go
- common.go
- gremlin.go
- liner.go
- packet_injector.go
- pcap.go
- shell.go
- terminal_unix.go
- topology.go
Click to show internal directories.
Click to hide internal directories.