db

package
v0.4.5 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2023 License: MIT Imports: 24 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDBLocked = xerrors.New("database is locked")

ErrDBLocked :

Functions

This section is empty.

Types

type DB

type DB interface {
	Name() string
	OpenDB(string, string, bool, Option) error
	CloseDB() error
	MigrateDB() error

	IsGostModelV1() (bool, error)
	GetFetchMeta() (*models.FetchMeta, error)
	UpsertFetchMeta(*models.FetchMeta) error

	GetAfterTimeRedhat(time.Time) ([]models.RedhatCVE, error)
	GetRedhat(string) (*models.RedhatCVE, error)
	GetRedhatMulti([]string) (map[string]models.RedhatCVE, error)
	GetUnfixedCvesRedhat(string, string, bool) (map[string]models.RedhatCVE, error)
	GetDebian(string) (*models.DebianCVE, error)
	GetDebianMulti([]string) (map[string]models.DebianCVE, error)
	GetFixedCvesDebian(string, string) (map[string]models.DebianCVE, error)
	GetUnfixedCvesDebian(string, string) (map[string]models.DebianCVE, error)
	GetUbuntu(string) (*models.UbuntuCVE, error)
	GetUbuntuMulti([]string) (map[string]models.UbuntuCVE, error)
	GetFixedCvesUbuntu(string, string) (map[string]models.UbuntuCVE, error)
	GetUnfixedCvesUbuntu(string, string) (map[string]models.UbuntuCVE, error)
	GetMicrosoft(string) (*models.MicrosoftCVE, error)
	GetMicrosoftMulti([]string) (map[string]models.MicrosoftCVE, error)
	GetExpandKB([]string, []string) ([]string, []string, error)
	GetRelatedProducts(string, []string) ([]string, error)
	GetFilteredCvesMicrosoft([]string, []string) (map[string]models.MicrosoftCVE, error)

	InsertRedhat([]models.RedhatCVE) error
	InsertDebian([]models.DebianCVE) error
	InsertUbuntu([]models.UbuntuCVE) error
	InsertMicrosoft([]models.MicrosoftCVE, []models.MicrosoftKBRelation) error
}

DB is interface for a database driver

func NewDB

func NewDB(dbType, dbPath string, debugSQL bool, option Option) (driver DB, err error)

NewDB returns db driver

type IndexChunk added in v0.3.0

type IndexChunk struct {
	From, To int
}

IndexChunk has a starting point and an ending point for Chunk

type Option added in v0.4.1

type Option struct {
	RedisTimeout time.Duration
}

Option :

type RDBDriver

type RDBDriver struct {
	// contains filtered or unexported fields
}

RDBDriver is Driver for RDB

func (*RDBDriver) CloseDB added in v0.3.0

func (r *RDBDriver) CloseDB() (err error)

CloseDB close Database

func (*RDBDriver) GetAfterTimeRedhat

func (r *RDBDriver) GetAfterTimeRedhat(after time.Time) (allCves []models.RedhatCVE, err error)

GetAfterTimeRedhat :

func (*RDBDriver) GetDebian

func (r *RDBDriver) GetDebian(cveID string) (*models.DebianCVE, error)

GetDebian :

func (*RDBDriver) GetDebianMulti added in v0.4.1

func (r *RDBDriver) GetDebianMulti(cveIDs []string) (map[string]models.DebianCVE, error)

GetDebianMulti :

func (*RDBDriver) GetExpandKB added in v0.4.2

func (r *RDBDriver) GetExpandKB(applied []string, unapplied []string) ([]string, []string, error)

GetExpandKB :

func (*RDBDriver) GetFetchMeta added in v0.3.0

func (r *RDBDriver) GetFetchMeta() (fetchMeta *models.FetchMeta, err error)

GetFetchMeta get FetchMeta from Database

func (*RDBDriver) GetFilteredCvesMicrosoft added in v0.4.2

func (r *RDBDriver) GetFilteredCvesMicrosoft(products []string, kbs []string) (map[string]models.MicrosoftCVE, error)

GetFilteredCvesMicrosoft :

func (*RDBDriver) GetFixedCvesDebian added in v0.3.0

func (r *RDBDriver) GetFixedCvesDebian(major, pkgName string) (map[string]models.DebianCVE, error)

GetFixedCvesDebian gets the CVEs related to debian_release.status = 'resolved', major, pkgName.

func (*RDBDriver) GetFixedCvesUbuntu added in v0.3.0

func (r *RDBDriver) GetFixedCvesUbuntu(ver, pkgName string) (map[string]models.UbuntuCVE, error)

GetFixedCvesUbuntu gets the CVEs related to ubuntu_release_patches.status IN ('released'), ver, pkgName.

func (*RDBDriver) GetMicrosoft added in v0.3.0

func (r *RDBDriver) GetMicrosoft(cveID string) (*models.MicrosoftCVE, error)

GetMicrosoft :

func (*RDBDriver) GetMicrosoftMulti added in v0.3.0

func (r *RDBDriver) GetMicrosoftMulti(cveIDs []string) (map[string]models.MicrosoftCVE, error)

GetMicrosoftMulti :

func (*RDBDriver) GetRedhat

func (r *RDBDriver) GetRedhat(cveID string) (*models.RedhatCVE, error)

GetRedhat :

func (*RDBDriver) GetRedhatMulti

func (r *RDBDriver) GetRedhatMulti(cveIDs []string) (map[string]models.RedhatCVE, error)

GetRedhatMulti :

func (*RDBDriver) GetRelatedProducts added in v0.4.2

func (r *RDBDriver) GetRelatedProducts(release string, kbs []string) ([]string, error)

GetRelatedProducts :

func (*RDBDriver) GetUbuntu added in v0.3.0

func (r *RDBDriver) GetUbuntu(cveID string) (*models.UbuntuCVE, error)

GetUbuntu :

func (*RDBDriver) GetUbuntuMulti added in v0.4.1

func (r *RDBDriver) GetUbuntuMulti(cveIDs []string) (map[string]models.UbuntuCVE, error)

GetUbuntuMulti :

func (*RDBDriver) GetUnfixedCvesDebian

func (r *RDBDriver) GetUnfixedCvesDebian(major, pkgName string) (map[string]models.DebianCVE, error)

GetUnfixedCvesDebian gets the CVEs related to debian_release.status = 'open', major, pkgName.

func (*RDBDriver) GetUnfixedCvesRedhat

func (r *RDBDriver) GetUnfixedCvesRedhat(version, pkgName string, ignoreWillNotFix bool) (map[string]models.RedhatCVE, error)

GetUnfixedCvesRedhat gets the unfixed CVEs.

func (*RDBDriver) GetUnfixedCvesUbuntu added in v0.3.0

func (r *RDBDriver) GetUnfixedCvesUbuntu(ver, pkgName string) (map[string]models.UbuntuCVE, error)

GetUnfixedCvesUbuntu gets the CVEs related to ubuntu_release_patches.status IN ('needed', 'deferred', 'pending'), ver, pkgName.

func (*RDBDriver) InsertDebian

func (r *RDBDriver) InsertDebian(cves []models.DebianCVE) (err error)

InsertDebian :

func (*RDBDriver) InsertMicrosoft added in v0.3.0

func (r *RDBDriver) InsertMicrosoft(cves []models.MicrosoftCVE, relations []models.MicrosoftKBRelation) error

InsertMicrosoft :

func (*RDBDriver) InsertRedhat

func (r *RDBDriver) InsertRedhat(cves []models.RedhatCVE) (err error)

InsertRedhat :

func (*RDBDriver) InsertUbuntu added in v0.3.0

func (r *RDBDriver) InsertUbuntu(cves []models.UbuntuCVE) (err error)

InsertUbuntu :

func (*RDBDriver) IsGostModelV1 added in v0.3.0

func (r *RDBDriver) IsGostModelV1() (bool, error)

IsGostModelV1 determines if the DB was created at the time of Gost Model v1

func (*RDBDriver) MigrateDB

func (r *RDBDriver) MigrateDB() error

MigrateDB migrates Database

func (*RDBDriver) Name

func (r *RDBDriver) Name() string

Name return db name

func (*RDBDriver) OpenDB

func (r *RDBDriver) OpenDB(dbType, dbPath string, debugSQL bool, _ Option) (err error)

OpenDB opens Database

func (*RDBDriver) UpsertFetchMeta added in v0.3.0

func (r *RDBDriver) UpsertFetchMeta(fetchMeta *models.FetchMeta) error

UpsertFetchMeta upsert FetchMeta to Database

type RedisDriver

type RedisDriver struct {
	// contains filtered or unexported fields
}

RedisDriver is Driver for Redis

func (*RedisDriver) CloseDB added in v0.3.0

func (r *RedisDriver) CloseDB() error

CloseDB close Database

func (*RedisDriver) GetAfterTimeRedhat

func (r *RedisDriver) GetAfterTimeRedhat(after time.Time) ([]models.RedhatCVE, error)

GetAfterTimeRedhat :

func (*RedisDriver) GetDebian

func (r *RedisDriver) GetDebian(cveID string) (*models.DebianCVE, error)

GetDebian :

func (*RedisDriver) GetDebianMulti added in v0.4.1

func (r *RedisDriver) GetDebianMulti(cveIDs []string) (map[string]models.DebianCVE, error)

GetDebianMulti :

func (*RedisDriver) GetExpandKB added in v0.4.2

func (r *RedisDriver) GetExpandKB(applied []string, unapplied []string) ([]string, []string, error)

GetExpandKB :

func (*RedisDriver) GetFetchMeta added in v0.3.0

func (r *RedisDriver) GetFetchMeta() (*models.FetchMeta, error)

GetFetchMeta get FetchMeta from Database

func (*RedisDriver) GetFilteredCvesMicrosoft added in v0.4.2

func (r *RedisDriver) GetFilteredCvesMicrosoft(products []string, kbs []string) (map[string]models.MicrosoftCVE, error)

GetFilteredCvesMicrosoft :

func (*RedisDriver) GetFixedCvesDebian added in v0.3.0

func (r *RedisDriver) GetFixedCvesDebian(major, pkgName string) (map[string]models.DebianCVE, error)

GetFixedCvesDebian : get the CVEs related to debian_release.status = 'resolved', major, pkgName

func (*RedisDriver) GetFixedCvesUbuntu added in v0.3.0

func (r *RedisDriver) GetFixedCvesUbuntu(major, pkgName string) (map[string]models.UbuntuCVE, error)

GetFixedCvesUbuntu :

func (*RedisDriver) GetMicrosoft added in v0.3.0

func (r *RedisDriver) GetMicrosoft(cveID string) (*models.MicrosoftCVE, error)

GetMicrosoft :

func (*RedisDriver) GetMicrosoftMulti added in v0.3.0

func (r *RedisDriver) GetMicrosoftMulti(cveIDs []string) (map[string]models.MicrosoftCVE, error)

GetMicrosoftMulti :

func (*RedisDriver) GetRedhat

func (r *RedisDriver) GetRedhat(cveID string) (*models.RedhatCVE, error)

GetRedhat :

func (*RedisDriver) GetRedhatMulti

func (r *RedisDriver) GetRedhatMulti(cveIDs []string) (map[string]models.RedhatCVE, error)

GetRedhatMulti :

func (*RedisDriver) GetRelatedProducts added in v0.4.2

func (r *RedisDriver) GetRelatedProducts(release string, kbs []string) ([]string, error)

GetRelatedProducts :

func (*RedisDriver) GetUbuntu added in v0.3.0

func (r *RedisDriver) GetUbuntu(cveID string) (*models.UbuntuCVE, error)

GetUbuntu :

func (*RedisDriver) GetUbuntuMulti added in v0.4.1

func (r *RedisDriver) GetUbuntuMulti(cveIDs []string) (map[string]models.UbuntuCVE, error)

GetUbuntuMulti :

func (*RedisDriver) GetUnfixedCvesDebian

func (r *RedisDriver) GetUnfixedCvesDebian(major, pkgName string) (map[string]models.DebianCVE, error)

GetUnfixedCvesDebian : get the CVEs related to debian_release.status = 'open', major, pkgName

func (*RedisDriver) GetUnfixedCvesRedhat

func (r *RedisDriver) GetUnfixedCvesRedhat(major, pkgName string, ignoreWillNotFix bool) (map[string]models.RedhatCVE, error)

GetUnfixedCvesRedhat :

func (*RedisDriver) GetUnfixedCvesUbuntu added in v0.3.0

func (r *RedisDriver) GetUnfixedCvesUbuntu(major, pkgName string) (map[string]models.UbuntuCVE, error)

GetUnfixedCvesUbuntu :

func (*RedisDriver) InsertDebian

func (r *RedisDriver) InsertDebian(cves []models.DebianCVE) error

InsertDebian :

func (*RedisDriver) InsertMicrosoft added in v0.3.0

func (r *RedisDriver) InsertMicrosoft(cves []models.MicrosoftCVE, relations []models.MicrosoftKBRelation) (err error)

InsertMicrosoft :

func (*RedisDriver) InsertRedhat

func (r *RedisDriver) InsertRedhat(cves []models.RedhatCVE) (err error)

InsertRedhat :

func (*RedisDriver) InsertUbuntu added in v0.3.0

func (r *RedisDriver) InsertUbuntu(cves []models.UbuntuCVE) (err error)

InsertUbuntu :

func (*RedisDriver) IsGostModelV1 added in v0.3.0

func (r *RedisDriver) IsGostModelV1() (bool, error)

IsGostModelV1 determines if the DB was created at the time of Gost Model v1

func (*RedisDriver) MigrateDB

func (r *RedisDriver) MigrateDB() error

MigrateDB migrates Database

func (*RedisDriver) Name

func (r *RedisDriver) Name() string

Name return db name

func (*RedisDriver) OpenDB

func (r *RedisDriver) OpenDB(_, dbPath string, _ bool, option Option) error

OpenDB opens Database

func (*RedisDriver) UpsertFetchMeta added in v0.3.0

func (r *RedisDriver) UpsertFetchMeta(fetchMeta *models.FetchMeta) error

UpsertFetchMeta upsert FetchMeta to Database

Jump to

Keyboard shortcuts

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