1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-03-28 02:37:11 +00:00

Merge pull request #642 from marquiz/devel/feature-api

pkg/api/feature: small improvements
This commit is contained in:
Kubernetes Prow Robot 2021-11-09 05:39:47 -08:00 committed by GitHub
commit d957a9e4fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 14 deletions

View file

@ -20,17 +20,33 @@ package feature
// features to empty values
func NewDomainFeatures() *DomainFeatures {
return &DomainFeatures{
Keys: make(map[string]KeyFeatureSet),
Values: make(map[string]ValueFeatureSet),
Instances: make(map[string]InstanceFeatureSet)}
Keys: make(map[string]*KeyFeatureSet),
Values: make(map[string]*ValueFeatureSet),
Instances: make(map[string]*InstanceFeatureSet)}
}
func NewKeyFeatures() *KeyFeatureSet { return &KeyFeatureSet{Elements: make(map[string]Nil)} }
func NewValueFeatures() *ValueFeatureSet { return &ValueFeatureSet{Elements: make(map[string]string)} }
func NewInstanceFeatures() *InstanceFeatureSet { return &InstanceFeatureSet{} }
func NewInstanceFeature() *InstanceFeature {
return &InstanceFeature{Attributes: make(map[string]string)}
func NewKeyFeatures(keys ...string) *KeyFeatureSet {
e := make(map[string]Nil, len(keys))
for _, k := range keys {
e[k] = Nil{}
}
return &KeyFeatureSet{Elements: e}
}
func NewValueFeatures(values map[string]string) *ValueFeatureSet {
if values == nil {
values = make(map[string]string)
}
return &ValueFeatureSet{Elements: values}
}
func NewInstanceFeatures(instances []InstanceFeature) *InstanceFeatureSet {
return &InstanceFeatureSet{Elements: instances}
}
func NewInstanceFeature(attrs map[string]string) *InstanceFeature {
if attrs == nil {
attrs = make(map[string]string)
}
return &InstanceFeature{Attributes: attrs}
}

View file

@ -22,9 +22,9 @@ type Features map[string]*DomainFeatures
// DomainFeatures is the collection of all discovered features of one domain.
type DomainFeatures struct {
Keys map[string]KeyFeatureSet `protobuf:"bytes,1,rep,name=keys"`
Values map[string]ValueFeatureSet `protobuf:"bytes,2,rep,name=values"`
Instances map[string]InstanceFeatureSet `protobuf:"bytes,3,rep,name=instances"`
Keys map[string]*KeyFeatureSet `protobuf:"bytes,1,rep,name=keys"`
Values map[string]*ValueFeatureSet `protobuf:"bytes,2,rep,name=values"`
Instances map[string]*InstanceFeatureSet `protobuf:"bytes,3,rep,name=instances"`
}
// KeyFeatureSet is a set of simple features only containing names without values.