• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

k8snetworkplumbingwg / sriov-network-operator / 13677347230

05 Mar 2025 01:40PM UTC coverage: 48.413% (-0.5%) from 48.917%
13677347230

Pull #853

github

web-flow
Merge bbc18ece8 into ab7d36758
Pull Request #853: Move systemd to host package

142 of 318 new or added lines in 6 files covered. (44.65%)

11 existing lines in 4 files now uncovered.

7352 of 15186 relevant lines covered (48.41%)

0.53 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.75
/pkg/daemon/config.go
1
package daemon
2

3
import (
4
        "context"
5
        "reflect"
6

7
        "k8s.io/apimachinery/pkg/api/errors"
8
        ctrl "sigs.k8s.io/controller-runtime"
9
        "sigs.k8s.io/controller-runtime/pkg/client"
10
        "sigs.k8s.io/controller-runtime/pkg/log"
11

12
        sriovnetworkv1 "github.com/k8snetworkplumbingwg/sriov-network-operator/api/v1"
13
        snolog "github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/log"
14
        "github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/vars"
15
)
16

17
// OperatorConfigNodeReconcile represents the reconcile struct for the OperatorConfig.
18
type OperatorConfigNodeReconcile struct {
19
        client             client.Client
20
        latestFeatureGates map[string]bool
21
}
22

23
// NewOperatorConfigNodeReconcile creates a new instance of OperatorConfigNodeReconcile with the given client.
24
func NewOperatorConfigNodeReconcile(client client.Client) *OperatorConfigNodeReconcile {
1✔
25
        return &OperatorConfigNodeReconcile{client: client, latestFeatureGates: make(map[string]bool)}
1✔
26
}
1✔
27

28
// Reconcile reconciles the OperatorConfig resource. It updates log level and feature gates as necessary.
29
func (oc *OperatorConfigNodeReconcile) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
1✔
30
        reqLogger := log.FromContext(ctx).WithName("Reconcile")
1✔
31
        operatorConfig := &sriovnetworkv1.SriovOperatorConfig{}
1✔
32
        err := oc.client.Get(ctx, client.ObjectKey{Namespace: req.Namespace, Name: req.Name}, operatorConfig)
1✔
33
        if err != nil {
2✔
34
                if errors.IsNotFound(err) {
2✔
35
                        reqLogger.Info("OperatorConfig doesn't exist", "name", req.Name, "namespace", req.Namespace)
1✔
36
                        return ctrl.Result{}, nil
1✔
37
                }
1✔
UNCOV
38
                reqLogger.Error(err, "Failed to get OperatorConfig", "name", req.Name, "namespace", req.Namespace)
×
UNCOV
39
                return ctrl.Result{}, err
×
40
        }
41

42
        // update log level
43
        snolog.SetLogLevel(operatorConfig.Spec.LogLevel)
1✔
44

1✔
45
        newDisableDrain := operatorConfig.Spec.DisableDrain
1✔
46
        if vars.DisableDrain != newDisableDrain {
2✔
47
                vars.DisableDrain = newDisableDrain
1✔
48
                log.Log.Info("Set Disable Drain", "value", vars.DisableDrain)
1✔
49
        }
1✔
50

51
        if !reflect.DeepEqual(oc.latestFeatureGates, operatorConfig.Spec.FeatureGates) {
2✔
52
                vars.FeatureGate.Init(operatorConfig.Spec.FeatureGates)
1✔
53
                oc.latestFeatureGates = operatorConfig.Spec.FeatureGates
1✔
54
                log.Log.Info("Updated featureGates", "featureGates", vars.FeatureGate.String())
1✔
55
        }
1✔
56

57
        return ctrl.Result{}, nil
1✔
58
}
59

60
// SetupWithManager sets up the reconciliation logic for this controller using the given manager.
61
func (oc *OperatorConfigNodeReconcile) SetupWithManager(mgr ctrl.Manager) error {
1✔
62
        return ctrl.NewControllerManagedBy(mgr).
1✔
63
                For(&sriovnetworkv1.SriovOperatorConfig{}).
1✔
64
                Complete(oc)
1✔
65
}
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc