database

package
v1.6.3-rc2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2024 License: MIT Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CAPIPullLockTimeout = 10
	CapiPullLockName    = "pullCAPI"
)
View Source
const (
	CapiMachineID      = types.CAPIOrigin
	CapiListsMachineID = types.ListOrigin
)

Variables

View Source
var (
	UserExists        = errors.New("user already exist")
	UserNotExists     = errors.New("user doesn't exist")
	HashError         = errors.New("unable to hash")
	InsertFail        = errors.New("unable to insert row")
	QueryFail         = errors.New("unable to query")
	UpdateFail        = errors.New("unable to update")
	DeleteFail        = errors.New("unable to delete")
	ItemNotFound      = errors.New("object not found")
	ParseTimeFail     = errors.New("unable to parse time")
	ParseDurationFail = errors.New("unable to parse duration")
	MarshalFail       = errors.New("unable to marshal")
	UnmarshalFail     = errors.New("unable to unmarshal")
	BulkError         = errors.New("unable to insert bulk")
	ParseType         = errors.New("unable to parse type")
	InvalidIPOrRange  = errors.New("invalid ip address / range")
	InvalidFilter     = errors.New("invalid filter")
)

Functions

func AlertPredicatesFromFilter added in v1.4.2

func AlertPredicatesFromFilter(filter map[string][]string) ([]predicate.Alert, error)

func BuildAlertRequestFromFilter added in v1.0.0

func BuildAlertRequestFromFilter(alerts *ent.AlertQuery, filter map[string][]string) (*ent.AlertQuery, error)

func BuildDecisionRequestWithFilter added in v1.0.0

func BuildDecisionRequestWithFilter(query *ent.DecisionQuery, filter map[string][]string) (*ent.DecisionQuery, error)

func GetIpsFromIpRange added in v1.0.0

func GetIpsFromIpRange(host string) (int64, int64, error)

GetIpsFromIpRange takes a CIDR range and returns the start and end IP

func IP2Int added in v1.0.0

func IP2Int(ip net.IP) uint32

func Int2ip added in v1.0.0

func Int2ip(nn uint32) net.IP

func IsIpv4 added in v1.0.0

func IsIpv4(host string) bool

func LastAddress added in v1.0.0

func LastAddress(n *net.IPNet) net.IP

Stolen from : https://github.com/llimllib/ipaddress/ Return the final address of a net range. Convert to IPv4 if possible, otherwise return an ipv6

func ParseDuration added in v1.5.3

func ParseDuration(d string) (time.Duration, error)

Types

type Client added in v1.0.0

type Client struct {
	Ent      *ent.Client
	CTX      context.Context
	Log      *log.Logger
	CanFlush bool
	Type     string
	WalMode  *bool
	// contains filtered or unexported fields
}

func NewClient added in v1.0.0

func NewClient(ctx context.Context, config *csconfig.DatabaseCfg) (*Client, error)

func (*Client) AcquireLock added in v1.6.1

func (c *Client) AcquireLock(name string) error

func (*Client) AcquirePullCAPILock added in v1.6.1

func (c *Client) AcquirePullCAPILock() error

func (*Client) AlertsCountPerScenario added in v1.4.0

func (c *Client) AlertsCountPerScenario(filters map[string][]string) (map[string]int, error)

func (*Client) BouncerUpdateBaseMetrics added in v1.6.3

func (c *Client) BouncerUpdateBaseMetrics(bouncerName string, bouncerType string, baseMetrics models.BaseMetrics) error

func (*Client) BulkDeleteBouncers added in v1.5.3

func (c *Client) BulkDeleteBouncers(bouncers []*ent.Bouncer) (int, error)

func (*Client) BulkDeleteWatchers added in v1.5.3

func (c *Client) BulkDeleteWatchers(machines []*ent.Machine) (int, error)

func (*Client) CountActiveDecisionsByValue added in v1.6.2

func (c *Client) CountActiveDecisionsByValue(decisionValue string) (int, error)

func (*Client) CountDecisionsByValue added in v1.4.0

func (c *Client) CountDecisionsByValue(decisionValue string) (int, error)

func (*Client) CountDecisionsSinceByValue added in v1.4.0

func (c *Client) CountDecisionsSinceByValue(decisionValue string, since time.Time) (int, error)

func (*Client) CreateAlert added in v1.0.0

func (c *Client) CreateAlert(machineID string, alertList []*models.Alert) ([]string, error)

func (*Client) CreateBouncer added in v1.0.0

func (c *Client) CreateBouncer(name string, ipAddr string, apiKey string, authType string) (*ent.Bouncer, error)

func (*Client) CreateMachine added in v1.0.0

func (c *Client) CreateMachine(machineID *string, password *strfmt.Password, ipAddress string, isValidated bool, force bool, authType string) (*ent.Machine, error)

func (*Client) CreateMetric added in v1.6.3

func (c *Client) CreateMetric(generatedType metric.GeneratedType, generatedBy string, receivedAt time.Time, payload string) (*ent.Metric, error)

func (*Client) CreateOrUpdateAlert added in v1.5.0

func (c *Client) CreateOrUpdateAlert(machineID string, alertItem *models.Alert) (string, error)

CreateOrUpdateAlert is specific to PAPI : It checks if alert already exists, otherwise inserts it if alert already exists, it checks it associated decisions already exists if some associated decisions are missing (ie. previous insert ended up in error) it inserts them

func (*Client) DeleteAlertByID added in v1.4.2

func (c *Client) DeleteAlertByID(id int) error

func (*Client) DeleteAlertGraph added in v1.0.0

func (c *Client) DeleteAlertGraph(alertItem *ent.Alert) error

func (*Client) DeleteAlertGraphBatch added in v1.2.1

func (c *Client) DeleteAlertGraphBatch(alertItems []*ent.Alert) (int, error)

func (*Client) DeleteAlertWithFilter added in v1.0.0

func (c *Client) DeleteAlertWithFilter(filter map[string][]string) (int, error)

func (*Client) DeleteBouncer added in v1.0.0

func (c *Client) DeleteBouncer(name string) error

func (*Client) DeleteDecisionById added in v1.0.0

func (c *Client) DeleteDecisionById(decisionID int) ([]*ent.Decision, error)

func (*Client) DeleteDecisions added in v1.6.3

func (c *Client) DeleteDecisions(decisions []*ent.Decision) (int, error)

DeleteDecisions removes a list of decisions from the database It returns the number of impacted decisions for the CAPI/PAPI

func (*Client) DeleteDecisionsWithFilter added in v1.0.0

func (c *Client) DeleteDecisionsWithFilter(filter map[string][]string) (string, []*ent.Decision, error)

func (*Client) DeleteWatcher added in v1.0.0

func (c *Client) DeleteWatcher(name string) error

func (*Client) ExpireDecisionByID added in v1.6.3

func (c *Client) ExpireDecisionByID(decisionID int) (int, []*ent.Decision, error)

ExpireDecision set the expiration of a decision to now()

func (*Client) ExpireDecisions added in v1.6.3

func (c *Client) ExpireDecisions(decisions []*ent.Decision) (int, error)

ExpireDecisions sets the expiration of a list of decisions to now() It returns the number of impacted decisions for the CAPI/PAPI

func (*Client) ExpireDecisionsWithFilter added in v1.6.3

func (c *Client) ExpireDecisionsWithFilter(filter map[string][]string) (string, []*ent.Decision, error)

ExpireDecisionsWithFilter updates the expiration time to now() for the decisions matching the filter, and returns the updated items

func (*Client) FlushAgentsAndBouncers added in v1.4.0

func (c *Client) FlushAgentsAndBouncers(agentsCfg *csconfig.AuthGCCfg, bouncersCfg *csconfig.AuthGCCfg) error

func (*Client) FlushAlerts added in v1.0.0

func (c *Client) FlushAlerts(MaxAge string, MaxItems int) error

func (*Client) FlushOrphans added in v1.1.0

func (c *Client) FlushOrphans()

func (*Client) GetActiveDecisionsTimeLeftByValue added in v1.6.2

func (c *Client) GetActiveDecisionsTimeLeftByValue(decisionValue string) (time.Duration, error)

func (*Client) GetAlertByID added in v1.0.0

func (c *Client) GetAlertByID(alertID int) (*ent.Alert, error)

func (*Client) GetBouncerUsageMetricsByName added in v1.6.3

func (c *Client) GetBouncerUsageMetricsByName(bouncerName string) ([]*ent.Metric, error)

func (*Client) GetConfigItem added in v1.5.0

func (c *Client) GetConfigItem(key string) (*string, error)

func (*Client) GetLPUsageMetricsByMachineID added in v1.6.3

func (c *Client) GetLPUsageMetricsByMachineID(machineId string) ([]*ent.Metric, error)

func (*Client) IsLocked added in v1.6.1

func (c *Client) IsLocked(err error) bool

func (*Client) IsMachineRegistered added in v1.0.0

func (c *Client) IsMachineRegistered(machineID string) (bool, error)

func (*Client) ListBouncers added in v1.0.0

func (c *Client) ListBouncers() ([]*ent.Bouncer, error)

func (*Client) ListMachines added in v1.0.0

func (c *Client) ListMachines() ([]*ent.Machine, error)

func (*Client) MachineUpdateBaseMetrics added in v1.6.3

func (c *Client) MachineUpdateBaseMetrics(machineID string, baseMetrics models.BaseMetrics, hubItems models.HubItems, datasources map[string]int64) error

func (*Client) MarkUsageMetricsAsSent added in v1.6.3

func (c *Client) MarkUsageMetricsAsSent(ids []int) error

func (*Client) QueryAlertWithFilter added in v1.0.0

func (c *Client) QueryAlertWithFilter(filter map[string][]string) ([]*ent.Alert, error)

func (*Client) QueryAllDecisionsWithFilters added in v1.1.0

func (c *Client) QueryAllDecisionsWithFilters(filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryBouncersInactiveSince added in v1.6.3

func (c *Client) QueryBouncersInactiveSince(t time.Time) ([]*ent.Bouncer, error)

func (*Client) QueryDecisionCountByScenario added in v1.4.0

func (c *Client) QueryDecisionCountByScenario() ([]*DecisionsByScenario, error)

func (*Client) QueryDecisionWithFilter added in v1.0.0

func (c *Client) QueryDecisionWithFilter(filter map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryExpiredDecisionsSinceWithFilters added in v1.1.0

func (c *Client) QueryExpiredDecisionsSinceWithFilters(since *time.Time, filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryExpiredDecisionsWithFilters added in v1.1.0

func (c *Client) QueryExpiredDecisionsWithFilters(filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryMachineByID added in v1.0.0

func (c *Client) QueryMachineByID(machineID string) (*ent.Machine, error)

func (*Client) QueryMachinesInactiveSince added in v1.6.3

func (c *Client) QueryMachinesInactiveSince(t time.Time) ([]*ent.Machine, error)

func (*Client) QueryNewDecisionsSinceWithFilters added in v1.1.0

func (c *Client) QueryNewDecisionsSinceWithFilters(since *time.Time, filters map[string][]string) ([]*ent.Decision, error)

func (*Client) QueryPendingMachine added in v1.0.0

func (c *Client) QueryPendingMachine() ([]*ent.Machine, error)

func (*Client) ReleaseLock added in v1.6.1

func (c *Client) ReleaseLock(name string) error

func (*Client) ReleaseLockWithTimeout added in v1.6.1

func (c *Client) ReleaseLockWithTimeout(name string, timeout int) error

func (*Client) ReleasePullCAPILock added in v1.6.1

func (c *Client) ReleasePullCAPILock() error

func (*Client) SelectBouncer added in v1.0.0

func (c *Client) SelectBouncer(apiKeyHash string) (*ent.Bouncer, error)

func (*Client) SelectBouncerByName added in v1.4.0

func (c *Client) SelectBouncerByName(bouncerName string) (*ent.Bouncer, error)

func (*Client) SetConfigItem added in v1.5.0

func (c *Client) SetConfigItem(key string, value string) error

func (*Client) StartFlushScheduler added in v1.0.0

func (c *Client) StartFlushScheduler(config *csconfig.FlushDBCfg) (*gocron.Scheduler, error)

func (*Client) TotalAlerts added in v1.0.0

func (c *Client) TotalAlerts() (int, error)

func (*Client) UpdateBouncerIP added in v1.0.0

func (c *Client) UpdateBouncerIP(ipAddr string, id int) error

func (*Client) UpdateBouncerLastPull added in v1.0.0

func (c *Client) UpdateBouncerLastPull(lastPull time.Time, id int) error

func (*Client) UpdateBouncerTypeAndVersion added in v1.0.0

func (c *Client) UpdateBouncerTypeAndVersion(bType string, version string, id int) error

func (*Client) UpdateCommunityBlocklist added in v1.2.0

func (c *Client) UpdateCommunityBlocklist(alertItem *models.Alert) (int, int, int, error)

UpdateCommunityBlocklist is called to update either the community blocklist (or other lists the user subscribed to) it takes care of creating the new alert with the associated decisions, and it will as well deleted the "older" overlapping decisions: 1st pull, you get decisions [1,2,3]. it inserts [1,2,3] 2nd pull, you get decisions [1,2,3,4]. it inserts [1,2,3,4] and will try to delete [1,2,3,4] with a different alert ID and same origin

func (*Client) UpdateMachineIP added in v1.0.0

func (c *Client) UpdateMachineIP(ipAddr string, ID int) error

func (*Client) UpdateMachineLastHeartBeat added in v1.4.0

func (c *Client) UpdateMachineLastHeartBeat(machineID string) error

func (*Client) UpdateMachineScenarios added in v1.0.0

func (c *Client) UpdateMachineScenarios(scenarios string, ID int) error

func (*Client) UpdateMachineVersion added in v1.0.0

func (c *Client) UpdateMachineVersion(ipAddr string, ID int) error

func (*Client) ValidateMachine added in v1.0.0

func (c *Client) ValidateMachine(machineID string) error

type DecisionsByScenario added in v1.4.0

type DecisionsByScenario struct {
	Scenario string
	Count    int
	Origin   string
	Type     string
}

Directories

Path Synopsis
ent

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL