reflect code review

This commit is contained in:
Felix Kunde 2022-03-24 11:43:28 +01:00
parent 6a65d121de
commit d5ba24767f
4 changed files with 17 additions and 15 deletions

View File

@ -28,9 +28,7 @@ const (
) )
var logger = logrus.New().WithField("test", "cluster") var logger = logrus.New().WithField("test", "cluster")
var eventRecorder = record.NewFakeRecorder(1)
// bufferSize might have to be increased when unit test cover functions emitting events
var eventRecorder = record.NewFakeRecorder(5)
var cl = New( var cl = New(
Config{ Config{

View File

@ -228,19 +228,15 @@ func (c *Cluster) generateResourceRequirements(
defaultResources acidv1.Resources, defaultResources acidv1.Resources,
containerName string) (*v1.ResourceRequirements, error) { containerName string) (*v1.ResourceRequirements, error) {
var err error var err error
specRequests := acidv1.ResourceDescription{}
specLimits := acidv1.ResourceDescription{}
result := v1.ResourceRequirements{}
var specRequests, specLimits acidv1.ResourceDescription if resources != nil {
if resources == nil {
specRequests = acidv1.ResourceDescription{}
specLimits = acidv1.ResourceDescription{}
} else {
specRequests = resources.ResourceRequests specRequests = resources.ResourceRequests
specLimits = resources.ResourceLimits specLimits = resources.ResourceLimits
} }
result := v1.ResourceRequirements{}
result.Requests, err = fillResourceList(specRequests, defaultResources.ResourceRequests) result.Requests, err = fillResourceList(specRequests, defaultResources.ResourceRequests)
if err != nil { if err != nil {
return nil, fmt.Errorf("could not fill resource requests: %v", err) return nil, fmt.Errorf("could not fill resource requests: %v", err)

View File

@ -30,6 +30,7 @@ import (
"k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
v1core "k8s.io/client-go/kubernetes/typed/core/v1" v1core "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/client-go/tools/record"
) )
func newFakeK8sTestClient() (k8sutil.KubernetesClient, *fake.Clientset) { func newFakeK8sTestClient() (k8sutil.KubernetesClient, *fake.Clientset) {
@ -1676,6 +1677,10 @@ func TestGenerateResourceRequirements(t *testing.T) {
roleLabel := "spilo-role" roleLabel := "spilo-role"
sidecarName := "postgres-exporter" sidecarName := "postgres-exporter"
// two test cases will call enforceMinResourceLimits which emits 2 events per call
// hence bufferSize of 4 is required
newEventRecorder := record.NewFakeRecorder(4)
configResources := config.Resources{ configResources := config.Resources{
ClusterLabels: map[string]string{"application": "spilo"}, ClusterLabels: map[string]string{"application": "spilo"},
ClusterNameLabel: clusterNameLabel, ClusterNameLabel: clusterNameLabel,
@ -1954,7 +1959,7 @@ func TestGenerateResourceRequirements(t *testing.T) {
var cluster = New( var cluster = New(
Config{ Config{
OpConfig: tt.config, OpConfig: tt.config,
}, client, tt.pgSpec, logger, eventRecorder) }, client, tt.pgSpec, logger, newEventRecorder)
cluster.Name = clusterName cluster.Name = clusterName
cluster.Namespace = namespace cluster.Namespace = namespace

View File

@ -597,9 +597,12 @@ func trimCronjobName(name string) string {
func parseResourceRequirements(resourcesRequirement v1.ResourceRequirements) (acidv1.Resources, error) { func parseResourceRequirements(resourcesRequirement v1.ResourceRequirements) (acidv1.Resources, error) {
var resources acidv1.Resources var resources acidv1.Resources
resourcesJSON, _ := json.Marshal(resourcesRequirement) resourcesJSON, err := json.Marshal(resourcesRequirement)
if err := json.Unmarshal(resourcesJSON, &resources); err != nil { if err != nil {
return acidv1.Resources{}, fmt.Errorf("could not convert K8s resources requirements into acidv1.Resources struct") return acidv1.Resources{}, fmt.Errorf("could not marshal K8s resources requirements")
}
if err = json.Unmarshal(resourcesJSON, &resources); err != nil {
return acidv1.Resources{}, fmt.Errorf("could not unmarshal K8s resources requirements into acidv1.Resources struct")
} }
return resources, nil return resources, nil
} }