database: Update feature model
Remove source name/version fields Add Type field to indicate if it's binary package or source package
This commit is contained in:
parent
0e0d8b38bb
commit
f61675355e
@ -155,18 +155,33 @@ type Namespace struct {
|
|||||||
VersionFormat string
|
VersionFormat string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewNamespace(name string, versionFormat string) *Namespace {
|
||||||
|
return &Namespace{name, versionFormat}
|
||||||
|
}
|
||||||
|
|
||||||
// Feature represents a package detected in a layer but the namespace is not
|
// Feature represents a package detected in a layer but the namespace is not
|
||||||
// determined.
|
// determined.
|
||||||
//
|
//
|
||||||
// e.g. Name: Libssl1.0, Version: 1.0, Name: Openssl, Version: 1.0, VersionFormat: dpkg.
|
// e.g. Name: Libssl1.0, Version: 1.0, VersionFormat: dpkg, Type: binary
|
||||||
// dpkg is the version format of the installer package manager, which in this
|
// dpkg is the version format of the installer package manager, which in this
|
||||||
// case could be dpkg or apk.
|
// case could be dpkg or apk.
|
||||||
type Feature struct {
|
type Feature struct {
|
||||||
Name string
|
Name string
|
||||||
Version string
|
Version string
|
||||||
SourceName string
|
|
||||||
SourceVersion string
|
|
||||||
VersionFormat string
|
VersionFormat string
|
||||||
|
Type FeatureType
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFeature(name string, version string, versionFormat string, featureType FeatureType) *Feature {
|
||||||
|
return &Feature{name, version, versionFormat, featureType}
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewBinaryPackage(name string, version string, versionFormat string) *Feature {
|
||||||
|
return &Feature{name, version, versionFormat, BinaryPackage}
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewSourcePackage(name string, version string, versionFormat string) *Feature {
|
||||||
|
return &Feature{name, version, versionFormat, SourcePackage}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NamespacedFeature is a feature with determined namespace and can be affected
|
// NamespacedFeature is a feature with determined namespace and can be affected
|
||||||
@ -179,6 +194,11 @@ type NamespacedFeature struct {
|
|||||||
Namespace Namespace
|
Namespace Namespace
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewNamespacedFeature(namespace *Namespace, feature *Feature) *NamespacedFeature {
|
||||||
|
// TODO: namespaced feature should use pointer values
|
||||||
|
return &NamespacedFeature{*feature, *namespace}
|
||||||
|
}
|
||||||
|
|
||||||
// AffectedNamespacedFeature is a namespaced feature affected by the
|
// AffectedNamespacedFeature is a namespaced feature affected by the
|
||||||
// vulnerabilities with fixed-in versions for this feature.
|
// vulnerabilities with fixed-in versions for this feature.
|
||||||
type AffectedNamespacedFeature struct {
|
type AffectedNamespacedFeature struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user