Skip to content

Commit

Permalink
Use generate timeout from knapsack in tablewrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
RebeccaMahany committed Feb 3, 2025
1 parent 775f103 commit 5174044
Show file tree
Hide file tree
Showing 77 changed files with 442 additions and 271 deletions.
5 changes: 3 additions & 2 deletions ee/katc/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"fmt"
"log/slog"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/indexeddb"
"github.com/kolide/launcher/ee/tables/tablewrapper"
"github.com/osquery/osquery-go"
Expand Down Expand Up @@ -130,7 +131,7 @@ type (

// ConstructKATCTables takes stored configuration of KATC tables, parses the configuration,
// and returns the constructed tables.
func ConstructKATCTables(config map[string]string, slogger *slog.Logger) []osquery.OsqueryPlugin {
func ConstructKATCTables(config map[string]string, flags types.Flags, slogger *slog.Logger) []osquery.OsqueryPlugin {
plugins := make([]osquery.OsqueryPlugin, 0)

for tableName, tableConfigStr := range config {
Expand All @@ -145,7 +146,7 @@ func ConstructKATCTables(config map[string]string, slogger *slog.Logger) []osque
}

t, columns := newKatcTable(tableName, cfg, slogger)
plugins = append(plugins, tablewrapper.New(slogger, tableName, columns, t.generate))
plugins = append(plugins, tablewrapper.New(flags, slogger, tableName, columns, t.generate))
}

return plugins
Expand Down
10 changes: 9 additions & 1 deletion ee/katc/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@ import (
"fmt"
"runtime"
"testing"
"time"

"github.com/kolide/launcher/ee/agent/flags/keys"
typesmocks "github.com/kolide/launcher/ee/agent/types/mocks"
"github.com/kolide/launcher/pkg/log/multislogger"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
)

Expand Down Expand Up @@ -149,7 +153,11 @@ func TestConstructKATCTables(t *testing.T) {
t.Run(tt.testCaseName, func(t *testing.T) {
t.Parallel()

plugins := ConstructKATCTables(tt.katcConfig, multislogger.NewNopLogger())
mockFlags := typesmocks.NewFlags(t)
mockFlags.On("GenerateTimeout").Return(4 * time.Minute).Maybe()
mockFlags.On("RegisterChangeObserver", mock.Anything, keys.GenerateTimeout).Return().Maybe()

plugins := ConstructKATCTables(tt.katcConfig, mockFlags, multislogger.NewNopLogger())
require.Equal(t, tt.expectedPluginCount, len(plugins), "unexpected number of plugins")
})
}
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/airport/table_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"log/slog"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/dataflattentable"
Expand All @@ -32,7 +33,7 @@ type Table struct {

const tableName = "kolide_airport_util"

func TablePlugin(slogger *slog.Logger) *table.Plugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := dataflattentable.Columns(
table.TextColumn("option"),
)
Expand All @@ -42,7 +43,7 @@ func TablePlugin(slogger *slog.Logger) *table.Plugin {
slogger: slogger.With("name", tableName),
}

return tablewrapper.New(slogger, t.name, columns, t.generate)
return tablewrapper.New(flags, slogger, t.name, columns, t.generate)
}

type airportExecutor struct {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/app-icons/app_icons_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import (
"image/png"
"unsafe"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/tables/tablewrapper"
"github.com/kolide/launcher/pkg/traces"
"github.com/nfnt/resize"
Expand All @@ -45,13 +46,13 @@ import (

var crcTable = crc64.MakeTable(crc64.ECMA)

func AppIcons(slogger *slog.Logger) *table.Plugin {
func AppIcons(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := []table.ColumnDefinition{
table.TextColumn("path"),
table.TextColumn("icon"),
table.TextColumn("hash"),
}
return tablewrapper.New(slogger, "kolide_app_icons", columns, generateAppIcons)
return tablewrapper.New(flags, slogger, "kolide_app_icons", columns, generateAppIcons)
}

func generateAppIcons(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/apple_silicon_security_policy/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"log/slog"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/dataflattentable"
Expand All @@ -24,7 +25,7 @@ type Table struct {
slogger *slog.Logger
}

func TablePlugin(slogger *slog.Logger) *table.Plugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := dataflattentable.Columns()

tableName := "kolide_apple_silicon_security_policy"
Expand All @@ -33,7 +34,7 @@ func TablePlugin(slogger *slog.Logger) *table.Plugin {
slogger: slogger.With("table", tableName),
}

return tablewrapper.New(slogger, tableName, columns, t.generate)
return tablewrapper.New(flags, slogger, tableName, columns, t.generate)
}

func (t *Table) generate(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/crowdstrike/falcon_kernel_check/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"log/slog"
"regexp"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/tables/tablehelpers"
"github.com/kolide/launcher/ee/tables/tablewrapper"
Expand All @@ -20,7 +21,7 @@ type Table struct {
slogger *slog.Logger
}

func TablePlugin(slogger *slog.Logger) *table.Plugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := []table.ColumnDefinition{
table.TextColumn("kernel"),
table.IntegerColumn("supported"),
Expand All @@ -33,7 +34,7 @@ func TablePlugin(slogger *slog.Logger) *table.Plugin {
slogger: slogger.With("table", tableName),
}

return tablewrapper.New(slogger, tableName, columns, t.generate)
return tablewrapper.New(flags, slogger, tableName, columns, t.generate)
}

func (t *Table) generate(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/crowdstrike/falconctl/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"log/slog"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/dataflattentable"
Expand Down Expand Up @@ -48,7 +49,7 @@ type falconctlOptionsTable struct {
execFunc execFunc
}

func NewFalconctlOptionTable(slogger *slog.Logger) *table.Plugin {
func NewFalconctlOptionTable(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := dataflattentable.Columns(
table.TextColumn("options"),
)
Expand All @@ -59,7 +60,7 @@ func NewFalconctlOptionTable(slogger *slog.Logger) *table.Plugin {
execFunc: tablehelpers.RunSimple,
}

return tablewrapper.New(slogger, t.tableName, columns, t.generate)
return tablewrapper.New(flags, slogger, t.tableName, columns, t.generate)
}

func (t *falconctlOptionsTable) generate(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/cryptoinfotable/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"path/filepath"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/cryptoinfo"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/dataflattentable"
Expand All @@ -23,7 +24,7 @@ type Table struct {
slogger *slog.Logger
}

func TablePlugin(slogger *slog.Logger) *table.Plugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := dataflattentable.Columns(
table.TextColumn("passphrase"),
table.TextColumn("path"),
Expand All @@ -33,7 +34,7 @@ func TablePlugin(slogger *slog.Logger) *table.Plugin {
slogger: slogger.With("table", "kolide_cryptinfo"),
}

return tablewrapper.New(slogger, "kolide_cryptinfo", columns, t.generate)
return tablewrapper.New(flags, slogger, "kolide_cryptinfo", columns, t.generate)
}

func (t *Table) generate(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/cryptsetup/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"log/slog"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/dataflattentable"
Expand All @@ -25,7 +26,7 @@ type Table struct {
name string
}

func TablePlugin(slogger *slog.Logger) *table.Plugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := dataflattentable.Columns(
table.TextColumn("name"),
)
Expand All @@ -35,7 +36,7 @@ func TablePlugin(slogger *slog.Logger) *table.Plugin {
name: "kolide_cryptsetup_status",
}

return tablewrapper.New(slogger, t.name, columns, t.generate)
return tablewrapper.New(flags, slogger, t.name, columns, t.generate)
}

func (t *Table) generate(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/dataflattentable/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"os"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/tablehelpers"
Expand All @@ -26,7 +27,7 @@ func WithKVSeparator(separator string) ExecTableOpt {
}
}

func TablePluginExec(slogger *slog.Logger, tableName string, dataSourceType DataSourceType, cmdGen allowedcmd.AllowedCommand, execArgs []string, opts ...ExecTableOpt) *table.Plugin {
func TablePluginExec(flags types.Flags, slogger *slog.Logger, tableName string, dataSourceType DataSourceType, cmdGen allowedcmd.AllowedCommand, execArgs []string, opts ...ExecTableOpt) *table.Plugin {
columns := Columns()

t := &Table{
Expand All @@ -43,7 +44,7 @@ func TablePluginExec(slogger *slog.Logger, tableName string, dataSourceType Data

t.flattenBytesFunc = dataSourceType.FlattenBytesFunc(t.keyValueSeparator)

return tablewrapper.New(slogger, t.tableName, columns, t.generateExec)
return tablewrapper.New(flags, slogger, t.tableName, columns, t.generateExec)
}

func (t *Table) generateExec(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/dataflattentable/exec_and_parse.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"os"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/tablehelpers"
Expand Down Expand Up @@ -53,7 +54,7 @@ func WithIncludeStderr() execTableV2Opt {
}
}

func NewExecAndParseTable(slogger *slog.Logger, tableName string, p parser, cmd allowedcmd.AllowedCommand, execArgs []string, opts ...execTableV2Opt) *table.Plugin {
func NewExecAndParseTable(flags types.Flags, slogger *slog.Logger, tableName string, p parser, cmd allowedcmd.AllowedCommand, execArgs []string, opts ...execTableV2Opt) *table.Plugin {
t := &execTableV2{
slogger: slogger.With("table", tableName),
tableName: tableName,
Expand All @@ -67,7 +68,7 @@ func NewExecAndParseTable(slogger *slog.Logger, tableName string, p parser, cmd
opt(t)
}

return tablewrapper.New(slogger, t.tableName, Columns(), t.generate)
return tablewrapper.New(flags, slogger, t.tableName, Columns(), t.generate)
}

func (t *execTableV2) generate(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
17 changes: 9 additions & 8 deletions ee/tables/dataflattentable/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"path/filepath"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/dataflatten"
"github.com/kolide/launcher/ee/tables/tablehelpers"
Expand Down Expand Up @@ -105,17 +106,17 @@ type Table struct {
}

// AllTablePlugins is a helper to return all the expected flattening tables.
func AllTablePlugins(slogger *slog.Logger) []osquery.OsqueryPlugin {
func AllTablePlugins(flags types.Flags, slogger *slog.Logger) []osquery.OsqueryPlugin {
return []osquery.OsqueryPlugin{
TablePlugin(slogger, JsonType),
TablePlugin(slogger, XmlType),
TablePlugin(slogger, IniType),
TablePlugin(slogger, PlistType),
TablePlugin(slogger, JsonlType),
TablePlugin(flags, slogger, JsonType),
TablePlugin(flags, slogger, XmlType),
TablePlugin(flags, slogger, IniType),
TablePlugin(flags, slogger, PlistType),
TablePlugin(flags, slogger, JsonlType),
}
}

func TablePlugin(slogger *slog.Logger, dataSourceType DataSourceType) osquery.OsqueryPlugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger, dataSourceType DataSourceType) osquery.OsqueryPlugin {
columns := Columns(table.TextColumn("path"), table.TextColumn("raw_data"))

t := &Table{
Expand All @@ -126,7 +127,7 @@ func TablePlugin(slogger *slog.Logger, dataSourceType DataSourceType) osquery.Os

t.slogger = slogger.With("table", t.tableName)

return tablewrapper.New(slogger, t.tableName, columns, t.generate)
return tablewrapper.New(flags, slogger, t.tableName, columns, t.generate)

}

Expand Down
5 changes: 3 additions & 2 deletions ee/tables/desktopprocs/desktopprocs.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,21 @@ import (
"fmt"
"log/slog"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/desktop/runner"
"github.com/kolide/launcher/ee/tables/tablewrapper"
"github.com/kolide/launcher/pkg/traces"
"github.com/osquery/osquery-go/plugin/table"
)

func TablePlugin(slogger *slog.Logger) *table.Plugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := []table.ColumnDefinition{
table.TextColumn("uid"),
table.TextColumn("pid"),
table.TextColumn("start_time"),
table.TextColumn("last_health_check"),
}
return tablewrapper.New(slogger, "kolide_desktop_procs", columns, generate())
return tablewrapper.New(flags, slogger, "kolide_desktop_procs", columns, generate())
}

func generate() table.GenerateFunc {
Expand Down
5 changes: 3 additions & 2 deletions ee/tables/dev_table_tooling/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"log/slog"
"strings"

"github.com/kolide/launcher/ee/agent/types"
"github.com/kolide/launcher/ee/allowedcmd"
"github.com/kolide/launcher/ee/tables/tablehelpers"
"github.com/kolide/launcher/ee/tables/tablewrapper"
Expand All @@ -24,7 +25,7 @@ type Table struct {
slogger *slog.Logger
}

func TablePlugin(slogger *slog.Logger) *table.Plugin {
func TablePlugin(flags types.Flags, slogger *slog.Logger) *table.Plugin {
columns := []table.ColumnDefinition{
table.TextColumn("name"),
table.TextColumn("args"),
Expand All @@ -38,7 +39,7 @@ func TablePlugin(slogger *slog.Logger) *table.Plugin {
slogger: slogger.With("table", tableName),
}

return tablewrapper.New(slogger, tableName, columns, t.generate)
return tablewrapper.New(flags, slogger, tableName, columns, t.generate)
}

func (t *Table) generate(ctx context.Context, queryContext table.QueryContext) ([]map[string]string, error) {
Expand Down
Loading

0 comments on commit 5174044

Please sign in to comment.