diff --git a/app/daemon.go b/app/daemon.go index 1daf10081d..3afba955e7 100644 --- a/app/daemon.go +++ b/app/daemon.go @@ -169,7 +169,7 @@ func startManager(c *cli.Context) error { if err != nil { return err } - if err := webhook.StartWebhook(ctx, types.WebhookTypeConversion, clientsWithoutDatastore); err != nil { + if err := webhook.StartWebhook(ctx, currentNodeID, types.WebhookTypeConversion, clientsWithoutDatastore); err != nil { return err } @@ -195,7 +195,7 @@ func startManager(c *cli.Context) error { return err } - if err := webhook.StartWebhook(ctx, types.WebhookTypeAdmission, clients); err != nil { + if err := webhook.StartWebhook(ctx, currentNodeID, types.WebhookTypeAdmission, clients); err != nil { return err } if err := clients.Datastore.AddLabelToManagerPod(currentNodeID, types.GetAdmissionWebhookLabel()); err != nil { diff --git a/controller/backup_controller.go b/controller/backup_controller.go index f9c677ae99..84f0b15444 100644 --- a/controller/backup_controller.go +++ b/controller/backup_controller.go @@ -596,6 +596,14 @@ func (bc *BackupController) isResponsibleFor(b *longhorn.Backup, defaultEngineIm err = errors.Wrap(err, "error while checking isResponsibleFor") }() + upgradeRequested, err := bc.ds.IsNodeDataEngineUpgradeRequested(bc.controllerID) + if err != nil { + return false, err + } + if upgradeRequested { + return false, nil + } + isResponsible := isControllerResponsibleFor(bc.controllerID, bc.ds, b.Name, "", b.Status.OwnerID) currentOwnerEngineAvailable, err := bc.ds.CheckEngineImageReadiness(defaultEngineImage, b.Status.OwnerID) diff --git a/controller/controller_manager.go b/controller/controller_manager.go index 984e041b81..fdcda5dc92 100644 --- a/controller/controller_manager.go +++ b/controller/controller_manager.go @@ -41,7 +41,7 @@ func StartControllers(logger logrus.FieldLogger, clients *client.Clients, stopCh := clients.StopCh // Longhorn controllers - replicaController, err := NewReplicaController(logger, ds, scheme, kubeClient, namespace, controllerID) + replicaController, err := NewReplicaController(logger, ds, scheme, kubeClient, namespace, controllerID, proxyConnCounter) if err != nil { return nil, err } @@ -154,6 +154,16 @@ func StartControllers(logger logrus.FieldLogger, clients *client.Clients, return nil, err } + dataEngineUpgradeManagerController, err := NewDataEngineUpgradeManagerController(logger, ds, scheme, kubeClient, controllerID, namespace) + if err != nil { + return nil, err + } + + nodeDataEngineUpgradeController, err := NewNodeDataEngineUpgradeController(logger, ds, scheme, kubeClient, controllerID, namespace) + if err != nil { + return nil, err + } + // Kubernetes controllers kubernetesPVController, err := NewKubernetesPVController(logger, ds, scheme, kubeClient, controllerID) if err != nil { @@ -213,6 +223,9 @@ func StartControllers(logger logrus.FieldLogger, clients *client.Clients, go volumeEvictionController.Run(Workers, stopCh) go volumeCloneController.Run(Workers, stopCh) go volumeExpansionController.Run(Workers, stopCh) + // The two controllers do not support upgrade in parallel + go dataEngineUpgradeManagerController.Run(1, stopCh) + go nodeDataEngineUpgradeController.Run(1, stopCh) // Start goroutines for Kubernetes controllers go kubernetesPVController.Run(Workers, stopCh) diff --git a/controller/engine_controller.go b/controller/engine_controller.go index 92da3d22d2..14e1a49481 100644 --- a/controller/engine_controller.go +++ b/controller/engine_controller.go @@ -3,6 +3,7 @@ package controller import ( "context" "fmt" + "net" "path/filepath" "reflect" "regexp" @@ -280,12 +281,7 @@ func (ec *EngineController) syncEngine(key string) (err error) { return errors.Wrapf(err, "failed to get engine") } - defaultEngineImage, err := ec.ds.GetSettingValueExisted(types.SettingNameDefaultEngineImage) - if err != nil { - return err - } - - isResponsible, err := ec.isResponsibleFor(engine, defaultEngineImage) + isResponsible, err := ec.isResponsibleFor(engine) if err != nil { return err } @@ -438,24 +434,67 @@ func (ec *EngineController) enqueueInstanceManagerChange(obj interface{}) { } } -func (ec *EngineController) CreateInstance(obj interface{}) (*longhorn.InstanceProcess, error) { +func (ec *EngineController) findInstanceManagerAndIPs(obj interface{}) (im *longhorn.InstanceManager, initiatorIP string, targetIP string, err error) { + e, ok := obj.(*longhorn.Engine) + if !ok { + return nil, "", "", fmt.Errorf("invalid object for engine: %v", obj) + } + + initiatorIM, err := ec.ds.GetInstanceManagerByInstanceRO(obj, false) + if err != nil { + return nil, "", "", err + } + + initiatorIP = initiatorIM.Status.IP + targetIP = initiatorIM.Status.IP + im = initiatorIM + + // Target, or called Target Instance, is on another node + if e.Spec.TargetNodeIDForLiveUpgrade != "" { + targetIM, err := ec.ds.GetInstanceManagerByInstanceRO(obj, true) + if err != nil { + return nil, "", "", err + } + + targetIP = targetIM.Status.IP + + if !e.Status.TargetInstanceReplacementCreated && e.Status.CurrentTargetNodeIDForLiveUpgrade == "" { + im = targetIM + } + } + + return im, initiatorIP, targetIP, nil +} + +func (ec *EngineController) CreateInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) { e, ok := obj.(*longhorn.Engine) if !ok { return nil, fmt.Errorf("invalid object for engine process creation: %v", obj) } + + log := getLoggerForEngine(ec.logger, e) + if e.Spec.VolumeName == "" || e.Spec.NodeID == "" { return nil, fmt.Errorf("missing parameters for engine instance creation: %v", e) } + frontend := e.Spec.Frontend if e.Spec.DisableFrontend { frontend = longhorn.VolumeFrontendEmpty } - im, err := ec.ds.GetInstanceManagerByInstanceRO(obj) + im, initiatorIP, targetIP, err := ec.findInstanceManagerAndIPs(obj) if err != nil { return nil, err } + log.WithFields(logrus.Fields{ + "instanceManager": im.Name, + "instanceManagerImage": im.Spec.Image, + "initiatorIP": initiatorIP, + "targetIP": targetIP, + }).Info("Creating engine instance") + c, err := engineapi.NewInstanceManagerClient(im, false) if err != nil { return nil, err @@ -482,6 +521,10 @@ func (ec *EngineController) CreateInstance(obj interface{}) (*longhorn.InstanceP return nil, err } + // No need to care about the initiator and target ports if the engine is not being upgraded. + initiatorAddress := net.JoinHostPort(initiatorIP, strconv.Itoa(0)) + targetAddress := net.JoinHostPort(targetIP, strconv.Itoa(e.Status.Port)) + return c.EngineInstanceCreate(&engineapi.EngineInstanceCreateRequest{ Engine: e, VolumeFrontend: frontend, @@ -490,9 +533,8 @@ func (ec *EngineController) CreateInstance(obj interface{}) (*longhorn.InstanceP DataLocality: v.Spec.DataLocality, ImIP: im.Status.IP, EngineCLIAPIVersion: cliAPIVersion, - UpgradeRequired: false, - InitiatorAddress: im.Status.IP, - TargetAddress: im.Status.IP, + InitiatorAddress: initiatorAddress, + TargetAddress: targetAddress, }) } @@ -511,7 +553,7 @@ func (ec *EngineController) DeleteInstance(obj interface{}) (err error) { log.Warn("Engine does not set instance manager name and node ID, will skip the actual instance deletion") return nil } - im, err = ec.ds.GetInstanceManagerByInstance(obj) + im, err = ec.ds.GetInstanceManagerByInstance(obj, false) if err != nil { log.WithError(err).Warn("Failed to detect instance manager for engine, will skip the actual instance deletion") return nil @@ -589,29 +631,259 @@ func (ec *EngineController) DeleteInstance(obj interface{}) (err error) { return err } + if e.Status.CurrentTargetNodeIDForLiveUpgrade != "" { + err = c.EngineInstanceDeleteTarget(&engineapi.EngineInstanceDeleteTargetRequest{ + Engine: e, + }) + if err != nil { + if !types.ErrorIsNotFound(err) { + return errors.Wrapf(err, "failed to delete target for engine %v", e.Name) + } + log.WithError(err).Warnf("Failed to delete target for engine %v", e.Name) + } + } + return nil } -func (ec *EngineController) GetInstance(obj interface{}) (*longhorn.InstanceProcess, error) { +func (ec *EngineController) SuspendInstance(obj interface{}) error { e, ok := obj.(*longhorn.Engine) if !ok { - return nil, fmt.Errorf("invalid object for engine instance get: %v", obj) + return fmt.Errorf("invalid object for engine instance suspension: %v", obj) + } + + if !types.IsDataEngineV2(e.Spec.DataEngine) { + return fmt.Errorf("suspending engine instance is not supported for data engine %v", e.Spec.DataEngine) + } + + if e.Spec.VolumeName == "" || e.Spec.NodeID == "" { + return fmt.Errorf("missing parameters for engine instance suspension: %+v", e) + } + + im, err := ec.ds.GetInstanceManagerByInstanceRO(obj, false) + if err != nil { + return err + } + c, err := engineapi.NewInstanceManagerClient(im, false) + if err != nil { + return err + } + defer c.Close() + + return c.EngineInstanceSuspend(&engineapi.EngineInstanceSuspendRequest{ + Engine: e, + }) +} + +func (ec *EngineController) ResumeInstance(obj interface{}) error { + e, ok := obj.(*longhorn.Engine) + if !ok { + return fmt.Errorf("invalid object for engine instance resumption: %v", obj) + } + + if !types.IsDataEngineV2(e.Spec.DataEngine) { + return fmt.Errorf("resuming engine instance is not supported for data engine %v", e.Spec.DataEngine) + } + + if e.Spec.VolumeName == "" || e.Spec.NodeID == "" { + return fmt.Errorf("missing parameters for engine instance resumption: %+v", e) + } + + im, err := ec.ds.GetInstanceManagerByInstanceRO(obj, false) + if err != nil { + return err + } + c, err := engineapi.NewInstanceManagerClient(im, false) + if err != nil { + return err + } + defer c.Close() + + return c.EngineInstanceResume(&engineapi.EngineInstanceResumeRequest{ + Engine: e, + }) +} + +func (ec *EngineController) SwitchOverTarget(obj interface{}) error { + e, ok := obj.(*longhorn.Engine) + if !ok { + return fmt.Errorf("invalid object for target switchover: %v", obj) + } + + if !types.IsDataEngineV2(e.Spec.DataEngine) { + return fmt.Errorf("target switchover is not supported for data engine %v", e.Spec.DataEngine) + } + + if e.Spec.VolumeName == "" || e.Spec.NodeID == "" { + return fmt.Errorf("missing parameters for target switchover: %+v", e) + } + + initiatorInstance, err := ec.GetInstance(obj, false) + if err != nil { + return errors.Wrapf(err, "failed to get initiator instance %v for switchover", e.Name) + } + + log := getLoggerForEngine(ec.logger, e) + + log.Infof("Preparing to switch over target to node %v. Initiator instance port details: port=%v, targetPort=%v, standbyTargetPort=%v", + e.Spec.TargetNodeIDForLiveUpgrade, initiatorInstance.Status.PortStart, initiatorInstance.Status.TargetPortStart, initiatorInstance.Status.StandbyTargetPortStart) + + targetInstance, err := ec.GetInstance(obj, true) + if err != nil { + return errors.Wrapf(err, "failed to get target instance %v for switchover", e.Name) + } + log.Infof("Preparing to switch over target to node %v. Target instance port details: port=%v, targetPort=%v, standbyTargetPort=%v", + e.Spec.TargetNodeIDForLiveUpgrade, targetInstance.Status.PortStart, targetInstance.Status.TargetPortStart, targetInstance.Status.StandbyTargetPortStart) + + targetIM, err := ec.getTargetInstanceManagerForSwitchOver(e) + if err != nil { + return err + } + + initiatorIM, err := ec.ds.GetInstanceManagerByInstanceRO(obj, false) + if err != nil { + return err + } + c, err := engineapi.NewInstanceManagerClient(initiatorIM, false) + if err != nil { + return err + } + defer c.Close() + + port := targetInstance.Status.TargetPortStart + if targetInstance.Status.StandbyTargetPortStart != 0 { + port = targetInstance.Status.StandbyTargetPortStart + } + + log.Infof("Switching over target to %v:%v", targetIM.Status.IP, port) + return c.EngineInstanceSwitchOverTarget(&engineapi.EngineInstanceSwitchOverTargetRequest{ + Engine: e, + TargetAddress: net.JoinHostPort(targetIM.Status.IP, fmt.Sprint(port)), + }) +} + +func (ec *EngineController) getTargetInstanceManagerForSwitchOver(e *longhorn.Engine) (targetIM *longhorn.InstanceManager, err error) { + if e.Spec.TargetNodeIDForLiveUpgrade != "" { + targetIM, err = ec.ds.GetRunningInstanceManagerByNodeRO(e.Spec.TargetNodeIDForLiveUpgrade, e.Spec.DataEngine) + if err != nil { + return nil, errors.Wrapf(err, "failed to get instance manager on node %v for switching over target", e.Spec.TargetNodeIDForLiveUpgrade) + } + + return targetIM, nil + } + + if e.Spec.NodeID == "" { + return nil, fmt.Errorf("nodeID is required for switching over target") + } + + targetIM, err = ec.ds.GetDefaultInstanceManagerByNodeRO(e.Spec.NodeID, e.Spec.DataEngine) + if err != nil { + if !datastore.ErrorIsNotFound(err) { + return nil, err + } + } + + return targetIM, nil +} + +func (ec *EngineController) DeleteTarget(obj interface{}) error { + e, ok := obj.(*longhorn.Engine) + if !ok { + return fmt.Errorf("invalid object for engine target deletion: %v", obj) + } + + if !types.IsDataEngineV2(e.Spec.DataEngine) { + return fmt.Errorf("deleting target for engine instance is not supported for data engine %v", e.Spec.DataEngine) + } + + ec.logger.WithField("engine", e.Name).Info("Deleting target instance") + + if e.Spec.VolumeName == "" || e.Spec.NodeID == "" { + return fmt.Errorf("missing parameters for engine target deletion: %+v", e) + } + + targetNodeID := e.Spec.NodeID + if e.Spec.NodeID == e.Spec.TargetNodeIDForLiveUpgrade { + targetNodeID = e.Status.CurrentTargetNodeIDForLiveUpgrade + } + if targetNodeID == "" { + return fmt.Errorf("missing target node ID for target deletion: %+v", e) } + im, err := ec.ds.GetRunningInstanceManagerByNodeRO(targetNodeID, e.Spec.DataEngine) + if err != nil { + return err + } + c, err := engineapi.NewInstanceManagerClient(im, false) + if err != nil { + return err + } + defer c.Close() + + return c.EngineInstanceDeleteTarget(&engineapi.EngineInstanceDeleteTargetRequest{ + Engine: e, + }) +} + +func (ec *EngineController) RequireRemoteTargetInstance(obj interface{}) (bool, error) { + e, ok := obj.(*longhorn.Engine) + if !ok { + return false, fmt.Errorf("invalid object for checking engine instance remote target requirement: %v", obj) + } + + return e.Spec.TargetNodeIDForLiveUpgrade != "" && e.Spec.TargetNodeIDForLiveUpgrade != e.Spec.NodeID, nil +} + +func (ec *EngineController) IsEngine(obj interface{}) bool { + _, ok := obj.(*longhorn.Engine) + return ok +} + +func (ec *EngineController) GetInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) { + e, ok := obj.(*longhorn.Engine) + if !ok { + return nil, fmt.Errorf("invalid object for engine instance get: %v", obj) + } var ( im *longhorn.InstanceManager err error ) - if e.Status.InstanceManagerName == "" { - im, err = ec.ds.GetInstanceManagerByInstanceRO(obj) + + nodeID := e.Spec.NodeID + instanceManagerName := e.Status.InstanceManagerName + if isInstanceOnRemoteNode { + nodeID = e.Spec.TargetNodeIDForLiveUpgrade + im, err = ec.ds.GetRunningInstanceManagerByNodeRO(nodeID, e.Spec.DataEngine) if err != nil { - return nil, err + return nil, errors.Wrapf(err, "failed to get running instance manager on target node %v for engine %v", nodeID, e.Name) + } + instanceManagerName = im.Name + } + + if instanceManagerName == "" { + if e.Spec.DesireState == longhorn.InstanceStateRunning && e.Status.CurrentState == longhorn.InstanceStateSuspended { + im, err = ec.ds.GetRunningInstanceManagerByNodeRO(nodeID, e.Spec.DataEngine) + } else { + im, err = ec.ds.GetInstanceManagerByInstanceRO(obj, false) } - } else { - im, err = ec.ds.GetInstanceManagerRO(e.Status.InstanceManagerName) if err != nil { return nil, err } + } else if im == nil { + im, err = ec.ds.GetInstanceManagerRO(instanceManagerName) + if err != nil { + if !apierrors.IsNotFound(err) { + return nil, err + } + if types.IsDataEngineV2(e.Spec.DataEngine) { + im, err = ec.ds.GetRunningInstanceManagerByNodeRO(nodeID, e.Spec.DataEngine) + if err != nil { + return nil, errors.Wrapf(err, "failed to get running instance manager for engine %v", e.Name) + } + } else { + return nil, err + } + } } c, err := engineapi.NewInstanceManagerClient(im, false) if err != nil { @@ -769,16 +1041,58 @@ func (m *EngineMonitor) sync() bool { return false } - if err := m.refresh(engine); err == nil || !apierrors.IsConflict(errors.Cause(err)) { - utilruntime.HandleError(errors.Wrapf(err, "failed to update status for engine %v", m.Name)) - break + err = m.refresh(engine) + if err != nil && apierrors.IsConflict(errors.Cause(err)) { + // Retry if the error is due to conflict + continue } - // Retry if the error is due to conflict + if types.IsDataEngineV2(engine.Spec.DataEngine) && err != nil && apierrors.IsNotFound(errors.Cause(err)) { + upgrading, upgradingCheckErr := m.ds.IsNodeDataEngineUpgradeRequested(engine.Spec.NodeID) + if upgrading { + updated, updatedCheckErr := m.isInstanceManagerUpdated(engine) + if updated { + for replicaName := range engine.Status.ReplicaModeMap { + replica, replicaErr := m.ds.GetReplicaRO(replicaName) + if replicaErr != nil { + m.logger.WithError(replicaErr).Errorf("Failed to get replica %v", replicaName) + continue + } + if replica.Spec.NodeID == engine.Spec.NodeID && + replica.Status.CurrentState != longhorn.InstanceStateError && + replica.Status.CurrentState != longhorn.InstanceStateStopped { + m.logger.Warnf("Replica %v in state %v is still on the node %v, will retry updating status later", + replicaName, replica.Status.CurrentState, replica.Spec.NodeID) + return false + } + } + } else { + m.logger.Warnf("v2 data engine %v is being upgraded, will retry updating status later", engine.Name) + return false + } + if updatedCheckErr != nil { + upgradingCheckErr = errors.Wrapf(updatedCheckErr, "failed to check if the instance manager is updated") + } + } + if upgradingCheckErr != nil { + err = errors.Wrapf(upgradingCheckErr, "failed to check if the engine %v is being upgraded", engine.Name) + } + } + utilruntime.HandleError(errors.Wrapf(err, "failed to update status for engine %v", m.Name)) + break } return false } +func (m *EngineMonitor) isInstanceManagerUpdated(engine *longhorn.Engine) (bool, error) { + defaultIM, err := m.ds.GetDefaultInstanceManagerByNodeRO(engine.Spec.NodeID, engine.Spec.DataEngine) + if err != nil { + return false, err + } + + return defaultIM.Name == engine.Status.InstanceManagerName, nil +} + func (m *EngineMonitor) refresh(engine *longhorn.Engine) error { existingEngine := engine.DeepCopy() @@ -1595,6 +1909,24 @@ func (ec *EngineController) ReconcileEngineState(e *longhorn.Engine) error { return err } + if types.IsDataEngineV2(e.Spec.DataEngine) { + for replicaName := range e.Status.CurrentReplicaAddressMap { + r, err := ec.ds.GetReplicaRO(replicaName) + if err != nil && !apierrors.IsNotFound(err) { + return err + } + + requested, err := ec.ds.IsNodeDataEngineUpgradeRequested(r.Spec.NodeID) + if err != nil && !apierrors.IsNotFound(err) { + return err + } + + if requested { + return nil + } + } + } + if err := ec.rebuildNewReplica(e); err != nil { return err } @@ -1656,7 +1988,7 @@ func (ec *EngineController) removeUnknownReplica(e *longhorn.Engine) error { defer engineClientProxy.Close() ec.eventRecorder.Eventf(e, corev1.EventTypeNormal, constant.EventReasonDelete, "Removing unknown replica %v in mode %v from engine", url, unknownReplicaMap[url]) - if err := engineClientProxy.ReplicaRemove(e, url); err != nil { + if err := engineClientProxy.ReplicaRemove(e, url, ""); err != nil { ec.eventRecorder.Eventf(e, corev1.EventTypeWarning, constant.EventReasonFailedDeleting, "Failed to remove unknown replica %v in mode %v from engine: %v", url, unknownReplicaMap[url], err) } else { ec.eventRecorder.Eventf(e, corev1.EventTypeNormal, constant.EventReasonDelete, "Removed unknown replica %v in mode %v from engine", url, unknownReplicaMap[url]) @@ -1859,7 +2191,7 @@ func (ec *EngineController) startRebuilding(e *longhorn.Engine, replicaName, add // the replica to failed. // user can decide to delete it then we will try again log.Infof("Removing failed rebuilding replica %v", addr) - if err := engineClientProxy.ReplicaRemove(e, replicaURL); err != nil { + if err := engineClientProxy.ReplicaRemove(e, replicaURL, ""); err != nil { log.WithError(err).Warnf("Failed to remove rebuilding replica %v", addr) ec.eventRecorder.Eventf(e, corev1.EventTypeWarning, constant.EventReasonFailedDeleting, "Failed to remove rebuilding replica %v with address %v for engine %v and volume %v due to rebuilding failure: %v", @@ -2105,7 +2437,53 @@ func (ec *EngineController) Upgrade(e *longhorn.Engine, log *logrus.Entry) (err } } } else { - return errors.Wrapf(err, "upgrading engine %v with data engine %v is not supported", e.Name, e.Spec.DataEngine) + // Check if the initiator instance is running + im, err := ec.ds.GetRunningInstanceManagerByNodeRO(e.Spec.NodeID, longhorn.DataEngineTypeV2) + if err != nil { + return err + } + if im.Status.CurrentState != longhorn.InstanceManagerStateRunning { + return fmt.Errorf("instance manager %v for initiating instance %v is not running", im.Name, e.Name) + } + + initiatorIMClient, err := engineapi.NewInstanceManagerClient(im, false) + if err != nil { + return err + } + defer initiatorIMClient.Close() + + if _, err := initiatorIMClient.InstanceGet(e.Spec.DataEngine, e.Name, string(longhorn.InstanceManagerTypeEngine)); err != nil { + return err + } + + _, ok := im.Status.InstanceEngines[e.Name] + if !ok { + return fmt.Errorf("initiator instance %v is not found in engine list", e.Name) + } + + // Check whether the target instance is existing + im, err = ec.ds.GetRunningInstanceManagerByNodeRO(e.Spec.TargetNodeIDForLiveUpgrade, longhorn.DataEngineTypeV2) + if err != nil { + return err + } + if im.Status.CurrentState != longhorn.InstanceManagerStateRunning { + return fmt.Errorf("instance manager %v for target instance %v is not running", im.Name, e.Name) + } + + targetIMClient, err := engineapi.NewInstanceManagerClient(im, false) + if err != nil { + return err + } + defer targetIMClient.Close() + + if _, err := targetIMClient.InstanceGet(e.Spec.DataEngine, e.Name, string(longhorn.InstanceManagerTypeEngine)); err != nil { + return err + } + + _, ok = im.Status.InstanceEngines[e.Name] + if !ok { + return fmt.Errorf("target instance %v is not found in engine list", e.Name) + } } log.Infof("Engine has been upgraded from %v to %v", e.Status.CurrentImage, e.Spec.Image) @@ -2116,6 +2494,7 @@ func (ec *EngineController) Upgrade(e *longhorn.Engine, log *logrus.Entry) (err e.Status.ReplicaTransitionTimeMap = nil e.Status.RestoreStatus = nil e.Status.RebuildStatus = nil + e.Status.TargetInstanceReplacementCreated = false return nil } @@ -2184,7 +2563,7 @@ func (ec *EngineController) UpgradeEngineInstance(e *longhorn.Engine, log *logru // isResponsibleFor picks a running node that has e.Status.CurrentImage deployed. // We need e.Status.CurrentImage deployed on the node to make request to the corresponding engine instance. // Prefer picking the node e.Spec.NodeID if it meet the above requirement. -func (ec *EngineController) isResponsibleFor(e *longhorn.Engine, defaultEngineImage string) (bool, error) { +func (ec *EngineController) isResponsibleFor(e *longhorn.Engine) (bool, error) { var err error defer func() { err = errors.Wrap(err, "error while checking isResponsibleFor") diff --git a/controller/instance_handler.go b/controller/instance_handler.go index a943d28d03..134c459680 100644 --- a/controller/instance_handler.go +++ b/controller/instance_handler.go @@ -35,10 +35,16 @@ type InstanceHandler struct { } type InstanceManagerHandler interface { - GetInstance(obj interface{}) (*longhorn.InstanceProcess, error) - CreateInstance(obj interface{}) (*longhorn.InstanceProcess, error) + GetInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) + CreateInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) DeleteInstance(obj interface{}) error LogInstance(ctx context.Context, obj interface{}) (*engineapi.InstanceManagerClient, *imapi.LogStream, error) + SuspendInstance(obj interface{}) error + ResumeInstance(obj interface{}) error + SwitchOverTarget(obj interface{}) error + DeleteTarget(obj interface{}) error + RequireRemoteTargetInstance(obj interface{}) (bool, error) + IsEngine(obj interface{}) bool } func NewInstanceHandler(ds *datastore.DataStore, instanceManagerHandler InstanceManagerHandler, eventRecorder record.EventRecorder) *InstanceHandler { @@ -49,10 +55,130 @@ func NewInstanceHandler(ds *datastore.DataStore, instanceManagerHandler Instance } } -func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceManager, instanceName string, spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus, instances map[string]longhorn.InstanceProcess) { +func (h *InstanceHandler) syncStatusIPsAndPorts(im *longhorn.InstanceManager, obj interface{}, spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus, instanceName string, instance longhorn.InstanceProcess) { + imPod, err := h.ds.GetPodRO(im.Namespace, im.Name) + if err != nil { + logrus.WithError(err).Errorf("Failed to get instance manager pod from %v", im.Name) + return + } + if imPod == nil { + logrus.Warnf("Instance manager pod from %v not exist in datastore", im.Name) + return + } + + storageIP := h.ds.GetStorageIPFromPod(imPod) + if status.StorageIP != storageIP { + status.StorageIP = storageIP + logrus.Infof("Instance %v starts running, Storage IP %v", instanceName, status.StorageIP) + } + + if status.IP != im.Status.IP { + status.IP = im.Status.IP + logrus.Infof("Instance %v starts running, IP %v", instanceName, status.IP) + } + + if status.Port != int(instance.Status.PortStart) { + status.Port = int(instance.Status.PortStart) + logrus.Infof("Instance %v starts running, Port %d", instanceName, status.Port) + } + + if !h.instanceManagerHandler.IsEngine(obj) { + return + } + + if types.IsDataEngineV2(spec.DataEngine) && spec.TargetNodeIDForLiveUpgrade != "" { + targetIM, err := h.ds.GetRunningInstanceManagerByNodeRO(spec.TargetNodeIDForLiveUpgrade, spec.DataEngine) + if err != nil { + logrus.WithError(err).Errorf("Failed to get running instance manager for node %s", spec.TargetNodeIDForLiveUpgrade) + return + } + targetClient, err := engineapi.NewInstanceManagerClient(targetIM, false) + if err != nil { + logrus.WithError(err).Errorf("Failed to get instance manager client for target instance manager %v", targetIM.Name) + return + } + defer targetClient.Close() + + targetInstance, err := targetClient.InstanceGet(spec.DataEngine, instanceName, string(longhorn.InstanceManagerTypeEngine)) + if err != nil { + logrus.WithError(err).Errorf("Failed to get target instance %s from instance manager %s", instanceName, targetIM.Name) + } else { + if status.TargetIP != targetIM.Status.IP { + status.TargetIP = targetIM.Status.IP + logrus.Infof("Instance %v starts running, Target IP %v", instanceName, status.TargetIP) + } + + if status.TargetPort != int(targetInstance.Status.TargetPortStart) { + status.TargetPort = int(targetInstance.Status.TargetPortStart) + logrus.Infof("Instance %v starts running, Target Port %v", instanceName, status.TargetPort) + } + + // Get storage target IP from target instance manager + targetIMPod, err := h.ds.GetPodRO(targetIM.Namespace, targetIM.Name) + if err != nil { + logrus.WithError(err).Errorf("Failed to get instance manager pod from %v", targetIM.Name) + return + } + if targetIMPod == nil { + logrus.Warnf("Instance manager pod from %v not exist in datastore", targetIM.Name) + return + } + + storageTargetIP := h.ds.GetStorageIPFromPod(targetIMPod) + if status.StorageTargetIP != storageTargetIP { + status.StorageTargetIP = storageTargetIP + logrus.Infof("Instance %v starts running, Storage Target IP %v", instanceName, status.StorageTargetIP) + } + } + + // Check if the target instance replacement is running on the target node + if status.CurrentTargetNodeIDForLiveUpgrade != spec.TargetNodeIDForLiveUpgrade && !status.TargetInstanceReplacementCreated { + running, err := h.isTargetInstanceReplacementRunning(instanceName, spec, status) + if err != nil { + logrus.WithError(err).Errorf("Failed to check if target instance %v is running", instanceName) + return + } + if running { + logrus.Infof("Target instance replacement %v is running on target node %v", instanceName, spec.TargetNodeIDForLiveUpgrade) + status.TargetInstanceReplacementCreated = true + } + } + } else { + if status.StorageTargetIP != storageIP { + status.StorageTargetIP = storageIP + logrus.Infof("Instance %v starts running, Storage Target IP %v", instanceName, status.StorageTargetIP) + } + + if status.TargetIP != im.Status.IP { + status.TargetIP = im.Status.IP + logrus.Infof("Instance %v starts running, Target IP %v", instanceName, status.TargetIP) + } + + if status.TargetPort != int(instance.Status.TargetPortStart) { + status.TargetPort = int(instance.Status.TargetPortStart) + logrus.Infof("Instance %v starts running, Target Port %v", instanceName, status.TargetPort) + } + + status.CurrentTargetNodeIDForLiveUpgrade = "" + status.TargetInstanceReplacementCreated = false + } +} + +func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceManager, obj interface{}, spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus, instances map[string]longhorn.InstanceProcess) { + runtimeObj, ok := obj.(runtime.Object) + if !ok { + return + } + instanceName, err := h.getNameFromObj(runtimeObj) + if err != nil { + return + } + defer func() { if status.CurrentState == longhorn.InstanceStateStopped { status.InstanceManagerName = "" + status.CurrentTargetNodeIDForLiveUpgrade = "" + status.TargetInstanceReplacementCreated = false } }() @@ -72,8 +198,11 @@ func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceMan status.CurrentImage = "" } status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" status.Port = 0 + status.TargetPort = 0 h.resetInstanceErrorCondition(status) return } @@ -82,32 +211,71 @@ func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceMan im.Status.CurrentState == longhorn.InstanceManagerStateError || im.DeletionTimestamp != nil { if status.Started { - if status.CurrentState != longhorn.InstanceStateError { - logrus.Warnf("Marking the instance as state ERROR since failed to find the instance manager for the running instance %v", instanceName) + if h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + if h.isV2DataEngineBeingUpgraded(spec, status) { + logrus.Warnf("Skipping the instance %v since the instance manager %v is %v", instanceName, im.Name, im.Status.CurrentState) + return + } + + if spec.Image == status.CurrentImage { + if status.CurrentState != longhorn.InstanceStateError { + upgradeRequested, err := h.ds.IsNodeDataEngineUpgradeRequested(spec.NodeID) + if err != nil { + // TODO: should we return here or mark the instance as error? + logrus.WithError(err).Errorf("Failed to check if node %v is being upgrade requested", spec.NodeID) + return + } + if upgradeRequested { + logrus.Warnf("Skipping the instance %v since the instance manager %v is %v since the node %v is being upgrade requested", + instanceName, im.Name, im.Status.CurrentState, spec.NodeID) + return + } + logrus.Warnf("Marking the instance as state ERROR since failed to find the instance manager for the running instance %v", instanceName) + } + status.CurrentState = longhorn.InstanceStateError + } else { + logrus.Warnf("Skipping the instance %v since the instance manager %v is %v and spec image %v is different from the current image %v", + instanceName, im.Name, im.Status.CurrentState, spec.Image, status.CurrentImage) + return + } + } else { + if status.CurrentState != longhorn.InstanceStateError { + logrus.Warnf("Marking the instance as state ERROR since failed to find the instance manager for the running instance %v", instanceName) + } + status.CurrentState = longhorn.InstanceStateError } - status.CurrentState = longhorn.InstanceStateError } else { status.CurrentState = longhorn.InstanceStateStopped } status.CurrentImage = "" status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" status.Port = 0 + status.TargetPort = 0 h.resetInstanceErrorCondition(status) return } if im.Status.CurrentState == longhorn.InstanceManagerStateStarting { if status.Started { - if status.CurrentState != longhorn.InstanceStateError { - logrus.Warnf("Marking the instance as state ERROR since the starting instance manager %v shouldn't contain the running instance %v", im.Name, instanceName) + if h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + if spec.Image == status.CurrentImage { + upgradeRequested, err := h.ds.IsNodeDataEngineUpgradeRequested(spec.NodeID) + if err != nil { + logrus.WithError(err).Errorf("Failed to get node %v", spec.NodeID) + return + } + if upgradeRequested { + logrus.Warnf("Skipping the instance %v since the instance manager %v is %v", instanceName, im.Name, im.Status.CurrentState) + return + } + h.handleIfInstanceManagerStarting(im.Name, instanceName, status) + } + } else { + h.handleIfInstanceManagerStarting(im.Name, instanceName, status) } - status.CurrentState = longhorn.InstanceStateError - status.CurrentImage = "" - status.IP = "" - status.StorageIP = "" - status.Port = 0 - h.resetInstanceErrorCondition(status) } return } @@ -115,23 +283,56 @@ func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceMan instance, exists := instances[instanceName] if !exists { if status.Started { - if status.CurrentState != longhorn.InstanceStateError { - logrus.Warnf("Marking the instance as state ERROR since failed to find the instance status in instance manager %v for the running instance %v", im.Name, instanceName) + if h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + if h.isV2DataEngineBeingUpgraded(spec, status) { + logrus.Warnf("Skipping checking the instance %v since the instance manager %v is in %v state", + instanceName, im.Name, im.Status.CurrentState) + return + } + if status.CurrentState != longhorn.InstanceStateError { + // Because the async nature, directly check instance here + if spec.TargetNodeIDForLiveUpgrade != "" { + logrus.Infof("Recreated initiator instance %v is not found in instance manager %v, directly checking it in instance manager %v", + instanceName, im.Name, spec.NodeID) + + exist, err := h.isInstanceExist(instanceName, spec) + if exist { + logrus.Infof("Initiator instance %v is found in instance manager %v", instanceName, spec.NodeID) + return + } + if err != nil { + logrus.WithError(err).Errorf("Failed to check if recreated initiator instance %v exists in instance manager %v", + instanceName, spec.NodeID) + return + } + } + logrus.Warnf("Marking the instance as state ERROR since failed to find the instance status in instance manager %v for the running instance %v", + im.Name, instanceName) + } + status.CurrentState = longhorn.InstanceStateError + } else { + if status.CurrentState != longhorn.InstanceStateError { + logrus.Warnf("Marking the instance as state ERROR since failed to find the instance status in instance manager %v for the running instance %v", im.Name, instanceName) + } + status.CurrentState = longhorn.InstanceStateError } - status.CurrentState = longhorn.InstanceStateError } else { status.CurrentState = longhorn.InstanceStateStopped } + status.CurrentImage = "" status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" status.Port = 0 + status.TargetPort = 0 h.resetInstanceErrorCondition(status) return } if status.InstanceManagerName != "" && status.InstanceManagerName != im.Name { - logrus.Errorf("The related process of instance %v is found in the instance manager %v, but the instance manager name in the instance status is %v. "+ + logrus.Warnf("The related process of instance %v is found in the instance manager %v, but the instance manager name in the instance status is %v. "+ "The instance manager name shouldn't change except for cleanup", instanceName, im.Name, status.InstanceManagerName) } @@ -146,44 +347,35 @@ func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceMan status.CurrentState = longhorn.InstanceStateStarting status.CurrentImage = "" status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" status.Port = 0 + status.TargetPort = 0 h.resetInstanceErrorCondition(status) case longhorn.InstanceStateRunning: status.CurrentState = longhorn.InstanceStateRunning - imPod, err := h.ds.GetPodRO(im.Namespace, im.Name) - if err != nil { - logrus.WithError(err).Errorf("Failed to get instance manager pod from %v", im.Name) - return - } - - if imPod == nil { - logrus.Warnf("Instance manager pod from %v not exist in datastore", im.Name) - return - } - - storageIP := h.ds.GetStorageIPFromPod(imPod) - if status.StorageIP != storageIP { - status.StorageIP = storageIP - logrus.Warnf("Instance %v starts running, Storage IP %v", instanceName, status.StorageIP) - } + h.syncStatusIPsAndPorts(im, obj, spec, status, instanceName, instance) - if status.IP != im.Status.IP { - status.IP = im.Status.IP - logrus.Warnf("Instance %v starts running, IP %v", instanceName, status.IP) - } - if status.Port != int(instance.Status.PortStart) { - status.Port = int(instance.Status.PortStart) - logrus.Warnf("Instance %v starts running, Port %d", instanceName, status.Port) - } // only set CurrentImage when first started, since later we may specify // different spec.Image for upgrade if status.CurrentImage == "" { - status.CurrentImage = spec.Image + if types.IsDataEngineV1(spec.DataEngine) { + status.CurrentImage = spec.Image + } else { + if h.instanceManagerHandler.IsEngine(obj) { + status.CurrentImage = spec.Image + } else { + status.CurrentImage = im.Spec.Image + } + } } - h.syncInstanceCondition(instance, status) + h.syncInstanceCondition(instance, status) + case longhorn.InstanceStateSuspended: + status.CurrentState = longhorn.InstanceStateSuspended + status.CurrentTargetNodeIDForLiveUpgrade = spec.TargetNodeIDForLiveUpgrade case longhorn.InstanceStateStopping: if status.Started { status.CurrentState = longhorn.InstanceStateError @@ -192,8 +384,11 @@ func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceMan } status.CurrentImage = "" status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" status.Port = 0 + status.TargetPort = 0 h.resetInstanceErrorCondition(status) case longhorn.InstanceStateStopped: if status.Started { @@ -203,8 +398,11 @@ func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceMan } status.CurrentImage = "" status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" status.Port = 0 + status.TargetPort = 0 h.resetInstanceErrorCondition(status) default: if status.CurrentState != longhorn.InstanceStateError { @@ -213,8 +411,11 @@ func (h *InstanceHandler) syncStatusWithInstanceManager(im *longhorn.InstanceMan status.CurrentState = longhorn.InstanceStateError status.CurrentImage = "" status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" status.Port = 0 + status.TargetPort = 0 h.resetInstanceErrorCondition(status) } } @@ -266,7 +467,7 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn } } // There should be an available instance manager for a scheduled instance when its related engine image is compatible - if im == nil && spec.Image != "" && spec.NodeID != "" { + if im == nil && spec.NodeID != "" && h.isSpecImageReady(obj, spec) { dataEngineEnabled, err := h.ds.IsDataEngineEnabled(spec.DataEngine) if err != nil { return err @@ -280,7 +481,7 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn return err } if !isNodeDownOrDeleted { - im, err = h.ds.GetInstanceManagerByInstanceRO(obj) + im, err = h.getInstanceManagerRO(obj, spec, status) if err != nil { return errors.Wrapf(err, "failed to get instance manager for instance %v", instanceName) } @@ -328,16 +529,45 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn if i, exists := instances[instanceName]; exists && i.Status.State == longhorn.InstanceStateRunning { status.Started = true - break + if h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + if isDataEngineNotBeingLiveUpgraded(spec, status) { + // Not in data engine live upgrade + break + } + } else { + break + } } // there is a delay between createInstance() invocation and InstanceManager update, // createInstance() may be called multiple times. - if status.CurrentState != longhorn.InstanceStateStopped { - break + if h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + if status.CurrentState != longhorn.InstanceStateStopped && status.CurrentState != longhorn.InstanceStateSuspended { + if status.CurrentState != longhorn.InstanceStateRunning || isDataEngineNotBeingLiveUpgraded(spec, status) { + break + } + } + } else { + if status.CurrentState != longhorn.InstanceStateStopped { + break + } } - err = h.createInstance(instanceName, spec.DataEngine, runtimeObj) + if h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + if spec.TargetNodeIDForLiveUpgrade != "" { + if h.isEngineResumeRequired(spec, status) { + // Resume the suspended initiator instance + err = h.resumeInstance(instanceName, spec.DataEngine, runtimeObj) + } else { + // Create target instance if it's not created yet + err = h.createInstance(instanceName, spec.DataEngine, runtimeObj) + } + } else { + err = h.createInstance(instanceName, spec.DataEngine, runtimeObj) + } + } else { + err = h.createInstance(instanceName, spec.DataEngine, runtimeObj) + } if err != nil { return err } @@ -359,12 +589,52 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn } } } + if h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + if status.CurrentTargetNodeIDForLiveUpgrade != "" { + targetIM, err := h.ds.GetRunningInstanceManagerByNodeRO(status.CurrentTargetNodeIDForLiveUpgrade, spec.DataEngine) + if err != nil { + return err + } + if targetIM != nil { + if err := h.deleteTarget(instanceName, runtimeObj); err != nil { + if !types.ErrorIsNotFound(err) { + return err + } + } + } + } + } status.Started = false + case longhorn.InstanceStateSuspended: + if !h.isEngineOfV2DataEngine(obj, spec.DataEngine) { + return fmt.Errorf("instance %v is not an engine of v2 volume", instanceName) + } + + if err := h.suspendInstance(instanceName, runtimeObj); err != nil { + return err + } + + if err := h.switchOverTarget(instanceName, runtimeObj); err != nil { + logrus.Infof("Resuming instance %v after failing to switch over target", instanceName) + errResume := h.resumeInstance(instanceName, spec.DataEngine, runtimeObj) + if errResume != nil { + logrus.WithError(errResume).Errorf("Failed to resume instance %v after failing to switch over target", instanceName) + } + return err + } + + if spec.TargetNodeIDForLiveUpgrade != status.CurrentTargetNodeIDForLiveUpgrade { + if err := h.deleteTarget(instanceName, runtimeObj); err != nil { + if !types.ErrorIsNotFound(err) { + return err + } + } + } default: return fmt.Errorf("unknown instance desire state: desire %v", spec.DesireState) } - h.syncStatusWithInstanceManager(im, instanceName, spec, status, instances) + h.syncStatusWithInstanceManager(im, obj, spec, status, instances) switch status.CurrentState { case longhorn.InstanceStateRunning: @@ -373,7 +643,9 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn if spec.NodeID != im.Spec.NodeID { status.CurrentState = longhorn.InstanceStateError status.IP = "" + status.TargetIP = "" status.StorageIP = "" + status.StorageTargetIP = "" err := fmt.Errorf("instance %v NodeID %v is not the same as the instance manager %v NodeID %v", instanceName, spec.NodeID, im.Name, im.Spec.NodeID) return err @@ -447,25 +719,83 @@ func (h *InstanceHandler) printInstanceLogs(instanceName string, obj runtime.Obj return nil } -func (h *InstanceHandler) createInstance(instanceName string, dataEngine longhorn.DataEngineType, obj runtime.Object) error { - _, err := h.instanceManagerHandler.GetInstance(obj) - if err == nil { - return nil - } - if !types.ErrorIsNotFound(err) && !(types.IsDataEngineV2(dataEngine) && types.ErrorIsStopped(err)) { - return errors.Wrapf(err, "Failed to get instance process %v", instanceName) - } +func (h *InstanceHandler) createInstance(instanceName string, dataEngine longhorn.DataEngineType, obj runtime.Object) (err error) { + if h.isEngineOfV2DataEngine(obj, dataEngine) { + instanceExists := false + targetInstanceRequired := false - logrus.Infof("Creating instance %v", instanceName) - if _, err := h.instanceManagerHandler.CreateInstance(obj); err != nil { - if !types.ErrorAlreadyExists(err) { - h.eventRecorder.Eventf(obj, corev1.EventTypeWarning, constant.EventReasonFailedStarting, "Error starting %v: %v", instanceName, err) - return err + instance, err := h.instanceManagerHandler.GetInstance(obj, false) + if err == nil { + instanceExists = true + + targetInstanceRequired, err = h.instanceManagerHandler.RequireRemoteTargetInstance(obj) + if err != nil { + return errors.Wrapf(err, "failed to check if remote target instance for %v is required", instanceName) + } + if targetInstanceRequired { + _, err = h.instanceManagerHandler.GetInstance(obj, true) + if err == nil { + return nil + } + } else { + if instance.Status.StandbyTargetPortStart != 0 || instance.Status.TargetPortStart != 0 { + return nil + } + + targetInstanceRequired = true + err = fmt.Errorf("cannot find local target instance for %v", instanceName) + } } - // Already exists, lost track may due to previous datastore conflict - return nil + + if !types.ErrorIsNotFound(err) && !(types.IsDataEngineV2(dataEngine) && types.ErrorIsStopped(err)) { + return errors.Wrapf(err, "failed to get instance %v before creating", instanceName) + } + + if !instanceExists { + logrus.Infof("Creating instance %v", instanceName) + if _, err := h.instanceManagerHandler.CreateInstance(obj, false); err != nil { + if !types.ErrorAlreadyExists(err) { + h.eventRecorder.Eventf(obj, corev1.EventTypeWarning, constant.EventReasonFailedStarting, "Error starting %v: %v", instanceName, err) + return err + } + // Already exists, lost track may due to previous datastore conflict + return nil + } + h.eventRecorder.Eventf(obj, corev1.EventTypeNormal, constant.EventReasonStart, "Starts instance %v", instanceName) + } + + if targetInstanceRequired { + logrus.Infof("Creating target instance %v", instanceName) + if _, err := h.instanceManagerHandler.CreateInstance(obj, true); err != nil { + if !types.ErrorAlreadyExists(err) { + h.eventRecorder.Eventf(obj, corev1.EventTypeWarning, constant.EventReasonFailedStarting, "Error starting %v: %v", instanceName, err) + return err + } + // Already exists, lost track may due to previous datastore conflict + return nil + } + h.eventRecorder.Eventf(obj, corev1.EventTypeNormal, constant.EventReasonStart, "Starts target instance %v", instanceName) + } + } else { + _, err := h.instanceManagerHandler.GetInstance(obj, false) + if err == nil { + return nil + } + if !types.ErrorIsNotFound(err) && !(types.IsDataEngineV2(dataEngine) && types.ErrorIsStopped(err)) { + return errors.Wrapf(err, "Failed to get instance process %v", instanceName) + } + + logrus.Infof("Creating instance %v", instanceName) + if _, err := h.instanceManagerHandler.CreateInstance(obj, false); err != nil { + if !types.ErrorAlreadyExists(err) { + h.eventRecorder.Eventf(obj, corev1.EventTypeWarning, constant.EventReasonFailedStarting, "Error starting %v: %v", instanceName, err) + return err + } + // Already exists, lost track may due to previous datastore conflict + return nil + } + h.eventRecorder.Eventf(obj, corev1.EventTypeNormal, constant.EventReasonStart, "Starts %v", instanceName) } - h.eventRecorder.Eventf(obj, corev1.EventTypeNormal, constant.EventReasonStart, "Starts %v", instanceName) return nil } @@ -481,3 +811,191 @@ func (h *InstanceHandler) deleteInstance(instanceName string, obj runtime.Object return nil } + +func (h *InstanceHandler) suspendInstance(instanceName string, obj runtime.Object) error { + logrus.Infof("Suspending instance %v", instanceName) + + if _, err := h.instanceManagerHandler.GetInstance(obj, false); err != nil { + return errors.Wrapf(err, "failed to get instance %v for suspension", instanceName) + } + + if err := h.instanceManagerHandler.SuspendInstance(obj); err != nil { + return errors.Wrapf(err, "failed to suspend instance %v", instanceName) + } + + return nil +} + +func (h *InstanceHandler) resumeInstance(instanceName string, dataEngine longhorn.DataEngineType, obj runtime.Object) error { + logrus.Infof("Resuming instance %v", instanceName) + + if types.IsDataEngineV1(dataEngine) { + return fmt.Errorf("resuming instance is not supported for data engine %v", dataEngine) + } + + if _, err := h.instanceManagerHandler.GetInstance(obj, false); err != nil { + return errors.Wrapf(err, "failed to get instance %v for resumption", instanceName) + } + + if err := h.instanceManagerHandler.ResumeInstance(obj); err != nil { + return errors.Wrapf(err, "failed to resume instance %v", instanceName) + } + + return nil +} + +func (h *InstanceHandler) switchOverTarget(instanceName string, obj runtime.Object) error { + logrus.Infof("Switching over target for instance %v", instanceName) + + if err := h.instanceManagerHandler.SwitchOverTarget(obj); err != nil { + return errors.Wrapf(err, "failed to switch over target for instance %s", instanceName) + } + + return nil +} + +func (h *InstanceHandler) deleteTarget(instanceName string, obj runtime.Object) error { + logrus.Infof("Deleting target for instance %s", instanceName) + + if err := h.instanceManagerHandler.DeleteTarget(obj); err != nil { + return errors.Wrapf(err, "failed to delete target for instance %s", instanceName) + } + + return nil +} + +func (h *InstanceHandler) isV2DataEngineBeingUpgraded(spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus) bool { + if !types.IsDataEngineV2(spec.DataEngine) { + return false + } + + upgradeRequested, err := h.ds.IsNodeDataEngineUpgradeRequested(spec.NodeID) + if err != nil { + logrus.WithError(err).Errorf("Failed to get node %v", spec.NodeID) + return false + } + + if !upgradeRequested { + return false + } + + if spec.TargetNodeIDForLiveUpgrade == "" { + return false + } + + return spec.NodeID != spec.TargetNodeIDForLiveUpgrade && spec.TargetNodeIDForLiveUpgrade == status.CurrentTargetNodeIDForLiveUpgrade +} + +func isVolumeBeingSwitchedBack(spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus) bool { + return spec.NodeID == spec.TargetNodeIDForLiveUpgrade && spec.TargetNodeIDForLiveUpgrade != status.CurrentTargetNodeIDForLiveUpgrade +} + +func isTargetInstanceReplacementCreated(instance *longhorn.InstanceProcess) bool { + return instance.Status.StandbyTargetPortStart != 0 +} + +func isTargetInstanceRemote(instance *longhorn.InstanceProcess) bool { + return instance.Status.PortStart != 0 && instance.Status.TargetPortStart == 0 +} + +func (h *InstanceHandler) getInstanceManagerRO(obj interface{}, spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus) (*longhorn.InstanceManager, error) { + // Only happen when upgrading instance-manager image + if spec.DesireState == longhorn.InstanceStateRunning && status.CurrentState == longhorn.InstanceStateSuspended { + return h.ds.GetRunningInstanceManagerByNodeRO(spec.NodeID, spec.DataEngine) + } + + return h.ds.GetInstanceManagerByInstanceRO(obj, false) +} + +func (h *InstanceHandler) handleIfInstanceManagerStarting(imName, instanceName string, status *longhorn.InstanceStatus) { + if status.CurrentState != longhorn.InstanceStateError { + logrus.Warnf("Marking the instance as state ERROR since the starting instance manager %v shouldn't contain the running instance %v", imName, instanceName) + } + status.CurrentState = longhorn.InstanceStateError + status.CurrentImage = "" + status.IP = "" + status.TargetIP = "" + status.StorageIP = "" + status.StorageTargetIP = "" + status.Port = 0 + status.TargetPort = 0 + h.resetInstanceErrorCondition(status) +} + +func (h *InstanceHandler) isInstanceExist(instanceName string, spec *longhorn.InstanceSpec) (bool, error) { + var err error + + im, err := h.ds.GetRunningInstanceManagerByNodeRO(spec.NodeID, spec.DataEngine) + if err != nil { + return false, err + } + + client, err := engineapi.NewInstanceManagerClient(im, false) + if err != nil { + return false, err + } + defer client.Close() + + _, err = client.InstanceGet(spec.DataEngine, instanceName, string(longhorn.InstanceManagerTypeEngine)) + if err != nil { + return false, err + } + + return true, nil +} + +func (h *InstanceHandler) isSpecImageReady(obj interface{}, spec *longhorn.InstanceSpec) bool { + if types.IsDataEngineV1(spec.DataEngine) { + return spec.Image != "" + } + + if h.instanceManagerHandler.IsEngine(obj) { + return spec.Image != "" + } + + // spec.image is not required for replica because the image of a v2 replica + // is the same as the running instance manager. + return true +} + +func (h *InstanceHandler) isTargetInstanceReplacementRunning(instanceName string, spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus) (bool, error) { + if spec.TargetNodeIDForLiveUpgrade == "" { + return false, nil + } + + logrus.Infof("Checking whether instance %v is running on target node %v", instanceName, spec.TargetNodeIDForLiveUpgrade) + + im, err := h.ds.GetRunningInstanceManagerByNodeRO(spec.TargetNodeIDForLiveUpgrade, spec.DataEngine) + if err != nil { + return false, errors.Wrapf(err, "failed to get instance manager on node %v for checking if target instance is running", spec.TargetNodeIDForLiveUpgrade) + } + + c, err := engineapi.NewInstanceManagerClient(im, false) + if err != nil { + return false, errors.Wrapf(err, "failed to create instance manager client for target instance") + } + defer c.Close() + + instance, err := c.InstanceGet(spec.DataEngine, instanceName, string(longhorn.InstanceManagerTypeEngine)) + if err != nil { + return false, errors.Wrapf(err, "failed to get target instance %v on node %v", instanceName, spec.TargetNodeIDForLiveUpgrade) + } + + if isVolumeBeingSwitchedBack(spec, status) { + return isTargetInstanceRemote(instance) && isTargetInstanceReplacementCreated(instance), nil + } + + return true, nil +} + +func (h *InstanceHandler) isEngineOfV2DataEngine(obj interface{}, dataEngine longhorn.DataEngineType) bool { + return types.IsDataEngineV2(dataEngine) && h.instanceManagerHandler.IsEngine(obj) +} + +func (h *InstanceHandler) isEngineResumeRequired(spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus) bool { + return spec.TargetNodeIDForLiveUpgrade == status.CurrentTargetNodeIDForLiveUpgrade && status.CurrentState == longhorn.InstanceStateSuspended +} + +func isDataEngineNotBeingLiveUpgraded(spec *longhorn.InstanceSpec, status *longhorn.InstanceStatus) bool { + return spec.TargetNodeIDForLiveUpgrade == "" && !status.TargetInstanceReplacementCreated +} diff --git a/controller/instance_handler_test.go b/controller/instance_handler_test.go index 68fe69d6a4..60c533c792 100644 --- a/controller/instance_handler_test.go +++ b/controller/instance_handler_test.go @@ -36,7 +36,7 @@ const ( type MockInstanceManagerHandler struct{} -func (imh *MockInstanceManagerHandler) GetInstance(obj interface{}) (*longhorn.InstanceProcess, error) { +func (imh *MockInstanceManagerHandler) GetInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) { metadata, err := meta.Accessor(obj) if err != nil { return nil, err @@ -48,7 +48,7 @@ func (imh *MockInstanceManagerHandler) GetInstance(obj interface{}) (*longhorn.I return &longhorn.InstanceProcess{}, nil } -func (imh *MockInstanceManagerHandler) CreateInstance(obj interface{}) (*longhorn.InstanceProcess, error) { +func (imh *MockInstanceManagerHandler) CreateInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) { metadata, err := meta.Accessor(obj) if err != nil { return nil, err @@ -72,10 +72,35 @@ func (imh *MockInstanceManagerHandler) DeleteInstance(obj interface{}) error { return nil } +func (imh *MockInstanceManagerHandler) SuspendInstance(obj interface{}) error { + return fmt.Errorf("SuspendInstance is not mocked") +} + +func (imh *MockInstanceManagerHandler) ResumeInstance(obj interface{}) error { + return fmt.Errorf("ResumeInstance is not mocked") +} + +func (imh *MockInstanceManagerHandler) SwitchOverTarget(obj interface{}) error { + return fmt.Errorf("SwitchOverTarget is not mocked") +} + +func (imh *MockInstanceManagerHandler) DeleteTarget(obj interface{}) error { + return fmt.Errorf("DeleteTarget is not mocked") +} + +func (imh *MockInstanceManagerHandler) IsEngine(obj interface{}) bool { + _, ok := obj.(*longhorn.Engine) + return ok +} + func (imh *MockInstanceManagerHandler) LogInstance(ctx context.Context, obj interface{}) (*engineapi.InstanceManagerClient, *imapi.LogStream, error) { return nil, nil, fmt.Errorf("LogInstance is not mocked") } +func (imh *MockInstanceManagerHandler) RequireRemoteTargetInstance(obj interface{}) (bool, error) { + return false, nil +} + func newEngine(name, currentImage, imName, nodeName, ip string, port int, started bool, currentState, desireState longhorn.InstanceState) *longhorn.Engine { var conditions []longhorn.Condition conditions = types.SetCondition(conditions, @@ -108,8 +133,11 @@ func newEngine(name, currentImage, imName, nodeName, ip string, port int, starte CurrentImage: currentImage, InstanceManagerName: imName, IP: ip, + TargetIP: ip, StorageIP: ip, + StorageTargetIP: ip, Port: port, + TargetPort: 0, // v1 volume doesn't set target port Started: started, Conditions: conditions, }, diff --git a/controller/instance_manager_controller.go b/controller/instance_manager_controller.go index ffa60c578d..eec239013e 100644 --- a/controller/instance_manager_controller.go +++ b/controller/instance_manager_controller.go @@ -596,7 +596,16 @@ func (imc *InstanceManagerController) handlePod(im *longhorn.InstanceManager) er return err } - isPodDeletionNotRequired := (isSettingSynced && dataEngineCPUMaskIsApplied) || areInstancesRunningInPod || isPodDeletedOrNotRunning + dataEngineUpgradeRequested := false + if types.IsDataEngineV2(im.Spec.DataEngine) { + requested, err := imc.ds.IsNodeDataEngineUpgradeRequested(im.Spec.NodeID) + if err != nil { + return err + } + dataEngineUpgradeRequested = requested + } + + isPodDeletionNotRequired := (isSettingSynced && dataEngineCPUMaskIsApplied) || areInstancesRunningInPod || isPodDeletedOrNotRunning || dataEngineUpgradeRequested if im.Status.CurrentState != longhorn.InstanceManagerStateError && im.Status.CurrentState != longhorn.InstanceManagerStateStopped && isPodDeletionNotRequired { diff --git a/controller/monitor/node_upgrade_monitor.go b/controller/monitor/node_upgrade_monitor.go new file mode 100644 index 0000000000..f1f841a33b --- /dev/null +++ b/controller/monitor/node_upgrade_monitor.go @@ -0,0 +1,1092 @@ +package monitor + +import ( + "context" + "fmt" + "reflect" + "sync" + "time" + + "github.com/pkg/errors" + "github.com/sirupsen/logrus" + "go.uber.org/multierr" + + "k8s.io/apimachinery/pkg/util/wait" + + "github.com/longhorn/longhorn-manager/datastore" + "github.com/longhorn/longhorn-manager/engineapi" + "github.com/longhorn/longhorn-manager/types" + "github.com/longhorn/longhorn-manager/util" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" +) + +const ( + NodeDataEngineUpgradeMonitorSyncPeriod = 3 * time.Second +) + +type NodeDataEngineUpgradeMonitor struct { + sync.RWMutex + *baseMonitor + + upgradeManagerName string + nodeUpgradeName string + syncCallback func(key string) + + collectedData *longhorn.NodeDataEngineUpgradeStatus + nodeUpgradeStatus *longhorn.NodeDataEngineUpgradeStatus + + proxyConnCounter util.Counter +} + +func NewNodeDataEngineUpgradeMonitor(logger logrus.FieldLogger, ds *datastore.DataStore, nodeUpgradeName, nodeID string, syncCallback func(key string)) (*NodeDataEngineUpgradeMonitor, error) { + nodeUpgrade, err := ds.GetNodeDataEngineUpgradeRO(nodeUpgradeName) + if err != nil { + return nil, errors.Wrapf(err, "failed to get longhorn nodeDataEngineUpgrade %v", nodeUpgradeName) + } + + if !types.IsDataEngineV2(nodeUpgrade.Spec.DataEngine) { + return nil, errors.Errorf("unsupported data engine %v", nodeUpgrade.Spec.DataEngine) + } + + ctx, quit := context.WithCancel(context.Background()) + + m := &NodeDataEngineUpgradeMonitor{ + baseMonitor: newBaseMonitor(ctx, quit, logger, ds, NodeDataEngineUpgradeMonitorSyncPeriod), + upgradeManagerName: nodeUpgrade.Spec.DataEngineUpgradeManager, + nodeUpgradeName: nodeUpgradeName, + syncCallback: syncCallback, + collectedData: &longhorn.NodeDataEngineUpgradeStatus{}, + nodeUpgradeStatus: &longhorn.NodeDataEngineUpgradeStatus{ + OwnerID: nodeID, + Volumes: map[string]*longhorn.VolumeUpgradeStatus{}, + }, + proxyConnCounter: util.NewAtomicCounter(), + } + + go m.Start() + + return m, nil +} + +func (m *NodeDataEngineUpgradeMonitor) Start() { + m.logger.Infof("Start monitoring nodeDataEngineUpgrade %v with sync period %v", m.nodeUpgradeName, m.syncPeriod) + + if err := wait.PollUntilContextCancel(m.ctx, m.syncPeriod, true, func(context.Context) (bool, error) { + if err := m.run(struct{}{}); err != nil { + m.logger.WithError(err).Error("Stopped monitoring upgrade monitor") + } + return false, nil + }); err != nil { + if errors.Cause(err) == context.Canceled { + m.logger.Infof("Stopped monitoring nodeDataEngineUpgrade %v due to context cancellation", m.nodeUpgradeName) + } else { + m.logger.WithError(err).Error("Failed to start nodeDataEngineUpgrade monitor") + } + } + + m.logger.Infof("Stopped monitoring nodeDataEngineUpgrade %v", m.nodeUpgradeName) +} + +func (m *NodeDataEngineUpgradeMonitor) Close() { + m.quit() +} + +func (m *NodeDataEngineUpgradeMonitor) RunOnce() error { + return m.run(struct{}{}) +} + +func (m *NodeDataEngineUpgradeMonitor) UpdateConfiguration(map[string]interface{}) error { + return nil +} + +func (m *NodeDataEngineUpgradeMonitor) GetCollectedData() (interface{}, error) { + m.RLock() + defer m.RUnlock() + return m.collectedData.DeepCopy(), nil +} + +func (m *NodeDataEngineUpgradeMonitor) run(unused interface{}) error { + nodeUpgrade, err := m.ds.GetNodeDataEngineUpgrade(m.nodeUpgradeName) + if err != nil { + return errors.Wrapf(err, "failed to get longhorn nodeDataEngineUpgrade %v", m.nodeUpgradeName) + } + + existingNodeUpgradeStatus := m.nodeUpgradeStatus.DeepCopy() + + m.handleNodeUpgrade(nodeUpgrade) + if !reflect.DeepEqual(existingNodeUpgradeStatus, m.nodeUpgradeStatus) { + func() { + m.Lock() + defer m.Unlock() + + m.collectedData.State = m.nodeUpgradeStatus.State + m.collectedData.Message = m.nodeUpgradeStatus.Message + m.collectedData.Volumes = map[string]*longhorn.VolumeUpgradeStatus{} + for k, v := range m.nodeUpgradeStatus.Volumes { + m.collectedData.Volumes[k] = &longhorn.VolumeUpgradeStatus{ + State: v.State, + Message: v.Message, + } + } + }() + + key := nodeUpgrade.Namespace + "/" + m.nodeUpgradeName + m.syncCallback(key) + } + return nil +} + +func (m *NodeDataEngineUpgradeMonitor) handleNodeUpgrade(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + m.logger.WithFields(logrus.Fields{"nodeDataEngineUpgrade": nodeUpgrade.Name}).Debugf("Handling nodeDataEngineUpgrade %v state %v", + nodeUpgrade.Name, m.nodeUpgradeStatus.State) + + switch m.nodeUpgradeStatus.State { + case longhorn.UpgradeStateUndefined: + m.handleUpgradeStateUndefined() + case longhorn.UpgradeStateInitializing: + m.handleUpgradeStateInitializing(nodeUpgrade) + case longhorn.UpgradeStateFailingReplicas: + m.handleUpgradeStateFailingReplicas(nodeUpgrade) + case longhorn.UpgradeStateSwitchingOver: + m.handleUpgradeStateSwitchingOver(nodeUpgrade) + case longhorn.UpgradeStateUpgradingInstanceManager: + m.handleUpgradeStateUpgradingInstanceManager(nodeUpgrade) + case longhorn.UpgradeStateSwitchingBack: + m.handleUpgradeStateSwitchingBack(nodeUpgrade) + case longhorn.UpgradeStateRebuildingReplica: + m.handleUpgradeStateRebuildingReplica(nodeUpgrade) + case longhorn.UpgradeStateFinalizing: + m.handleUpgradeStateFinalizing(nodeUpgrade) + case longhorn.UpgradeStateCompleted, longhorn.UpgradeStateError: + return + default: + m.handleUpgradeStateUnknown() + } +} + +// handleUpgradeStateUndefined handles the undefined state of the node data engine upgrade resource. +// It simply set the state to initializing and clear the message. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateUndefined() { + m.nodeUpgradeStatus.State = longhorn.UpgradeStateInitializing + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateInitializing handles the initializing state of the node data engine upgrade resource. +// It will check if the node is existing and ready, and if the node is not ready, it will wait until the node is ready. +// It will check if the node has data engine upgrade requested. +// If the node is not requested to upgrade, it will return and check again in the next reconciliation. +// If the node is requested to upgrade, it will list the local volumes and check if they are ready for upgrade. +// If the volumes are ready for upgrade, it will snapshot the volumes and set the state to UpgradeStateFailingReplicas. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateInitializing(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + var err error + + defer func() { + if err != nil { + // Don't set nodeUpgradeStatus state to error here, so that the monitor will retry + m.nodeUpgradeStatus.Message = err.Error() + } + }() + + // Check if the node is existing and ready + node, err := m.ds.GetNode(nodeUpgrade.Status.OwnerID) + if err != nil { + err = errors.Wrapf(err, "failed to get node %v for nodeDataEngineUpgrade %v", nodeUpgrade.Status.OwnerID, nodeUpgrade.Name) + return + } + + readyCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeReady) + if readyCondition.Status != longhorn.ConditionStatusTrue { + err = errors.Errorf("node %v is not ready", node.Name) + return + } + + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + if dataEngineUpgradeRequestedCondition.Status == longhorn.ConditionStatusFalse { + // Return here and check again in the next reconciliation + err = errors.New("node is not requested for data engine upgrade") + return + } + + err = m.areVolumesReadyForUpgrade(nodeUpgrade) + if err != nil { + return + } + + var volumes map[string]*longhorn.VolumeUpgradeStatus + + volumes, err = m.listLocalVolumes(nodeUpgrade) + if err != nil { + return + } + m.nodeUpgradeStatus.Volumes = volumes + + // TODO: make this optional + err = m.snapshotVolumes(volumes) + if err != nil { + return + } + + m.nodeUpgradeStatus.State = longhorn.UpgradeStateFailingReplicas + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateFailingReplicas fails the replicas, waits until all replicas are stopped or failed, deletes them, and waits until all stopped or failed replicas are deleted. +// It then sets the state to UpgradeStateSwitchingOver. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateFailingReplicas(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + var err error + + defer func() { + if err != nil { + // Don't set nodeUpgradeStatus state to error here, so that the monitor will retry + m.nodeUpgradeStatus.Message = err.Error() + } + }() + + err = m.failReplicas(nodeUpgrade) + if err != nil { + return + } + allStoppedOrFailed, err := m.areAllReplicasStoppedOrFailed(nodeUpgrade) + if err != nil { + return + } + if !allStoppedOrFailed { + err = fmt.Errorf("not all replicas are stopped or failed") + return + } + + err = m.deleteAllStoppedOrFailedReplicas(nodeUpgrade) + if err != nil { + return + } + allDeleted, err := m.areAllStoppedOrFailedReplicasDeleted(nodeUpgrade) + if err != nil { + return + } + if !allDeleted { + err = fmt.Errorf("not all stopped or failed replicas are deleted") + return + } + + m.nodeUpgradeStatus.State = longhorn.UpgradeStateSwitchingOver + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateSwitchingOver handles the SwitchingOver state of the node data engine upgrade resource. +// It finds an available node to replace the target instance, updates the volumes for switch over, +// waits until all volumes are switched over, and then sets the state to UpgradingInstanceManager. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateSwitchingOver(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + var err error + + defer func() { + if err != nil { + // Don't set nodeUpgradeStatus state to error here, so that the monitor will retry + m.nodeUpgradeStatus.Message = err.Error() + } + }() + + targetNode, err := m.findAvailableNodeForTargetInstanceReplacement(nodeUpgrade) + if err != nil { + return + } + + m.updateVolumesForSwitchOver(nodeUpgrade, targetNode) + if !m.areAllVolumesSwitchedOver(nodeUpgrade) { + err = fmt.Errorf("not all volumes are switched over") + return + } + + m.nodeUpgradeStatus.State = longhorn.UpgradeStateUpgradingInstanceManager + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateUpgradingInstanceManager handles the UpgradingInstanceManager state of the node data engine upgrade resource. +// It deletes the non-default instance manager, waits until the default instance manager is running, +// waits until all initiator instances are recreated, and then sets the state to SwitchingBack. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateUpgradingInstanceManager(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + var err error + + defer func() { + if err != nil { + // Don't set nodeUpgradeStatus state to error here, so that the monitor will retry + m.nodeUpgradeStatus.Message = err.Error() + } + }() + + err = m.deleteNonDefaultInstanceManager(nodeUpgrade) + if err != nil { + return + } + + err = m.isDefaultInstanceManagerRunning(nodeUpgrade) + if err != nil { + return + } + + allRecreated, err := m.areAllInitiatorInstancesRecreated(nodeUpgrade) + if err != nil { + return + } + if !allRecreated { + return + } + + m.nodeUpgradeStatus.State = longhorn.UpgradeStateSwitchingBack + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateSwitchingBack handles the SwitchingBack state of the node data engine upgrade resource. +// It updates the volumes for switch back, waits until all volumes are switched back, clears the target node for all volumes, +// waits until all volumes are cleared target node, and then sets the state to RebuildingReplica. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateSwitchingBack(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + var err error + + defer func() { + if err != nil { + // Don't set nodeUpgradeStatus state to error here, so that the monitor will retry + m.nodeUpgradeStatus.Message = err.Error() + } + }() + + m.updateVolumesForSwitchBack(nodeUpgrade) + if !m.areAllVolumesSwitchedBack(nodeUpgrade) { + err = fmt.Errorf("not all volumes are switched back") + return + } + + m.clearVolumesTargetNode() + if !m.areAllVolumesClearedTargetNode() { + err = fmt.Errorf("not all volumes are cleared target node") + return + } + + m.nodeUpgradeStatus.State = longhorn.UpgradeStateRebuildingReplica + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateRebuildingReplica handles the RebuildingReplica state of the node data engine upgrade resource. +// It then checks if all volumes are healthy, and if not, sets the state to error. +// If all volumes are healthy, it sets the state to Finalizing. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateRebuildingReplica(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + var err error + + defer func() { + if err != nil { + // Don't set nodeUpgradeStatus state to error here, so that the monitor will retry + m.nodeUpgradeStatus.Message = err.Error() + } + }() + + allHealthy, err := m.areAllVolumeHealthy() + if err != nil { + err = errors.Wrap(err, "failed to check if all volumes are healthy") + return + } + if !allHealthy { + err = fmt.Errorf("not all volumes are healthy") + return + } + + m.nodeUpgradeStatus.State = longhorn.UpgradeStateFinalizing + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateFinalizing handles the Finalizing state of the node data engine upgrade resource. +// It will update the spec.image of all volumes to the instance manager image, and then set the state to Completed if all volumes are updated. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateFinalizing(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + var err error + + defer func() { + if err != nil { + // Don't set nodeUpgradeStatus state to error here, so that the monitor will retry + m.nodeUpgradeStatus.Message = err.Error() + } + }() + + err = m.updateAllVolumesSpecImage(nodeUpgrade) + if err != nil { + return + } + + if !m.areAllVolumesSpecImageUpdated() { + err = fmt.Errorf("not all volumes spec.image is updated") + return + } + + m.nodeUpgradeStatus.State = longhorn.UpgradeStateCompleted + m.nodeUpgradeStatus.Message = "" +} + +// handleUpgradeStateUnknown handles the unknown state of the node upgrade resource. +// It sets the state to UpgradeStateError and records an event. +func (m *NodeDataEngineUpgradeMonitor) handleUpgradeStateUnknown() { + m.nodeUpgradeStatus.State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Message = fmt.Sprintf("Unknown state %v", m.nodeUpgradeStatus.State) +} + +// updateAllVolumesSpecImage updates the spec.image of all volumes to the instance manager image specified in the node data engine upgrade resource. +// It will update the status of the node data engine upgrade resource accordingly. +// If a volume is not found, it sets the state to UpgradeStateCompleted. +// If a volume's spec.image is already up to date, it sets the state to UpgradeStateCompleted. +// If a volume's spec.image is not up to date, it updates the volume and sets the state to UpgradeStateCompleted if successful, or UpgradeStateError if not. +func (m *NodeDataEngineUpgradeMonitor) updateAllVolumesSpecImage(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (err error) { + for volumeName := range m.nodeUpgradeStatus.Volumes { + volume, err := m.ds.GetVolumeRO(volumeName) + if err != nil { + m.nodeUpgradeStatus.Volumes[volumeName].Message = err.Error() + if datastore.ErrorIsNotFound(err) { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + } else { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + } + continue + } + + if volume.Spec.NodeID == "" && volume.Status.OwnerID == nodeUpgrade.Status.OwnerID { + if volume.Spec.Image == nodeUpgrade.Spec.InstanceManagerImage { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateCompleted + m.nodeUpgradeStatus.Volumes[volume.Name].Message = "" + continue + } + + // Update the volume to the new instance manager image + volume.Spec.Image = nodeUpgrade.Spec.InstanceManagerImage + if _, err := m.ds.UpdateVolume(volume); err != nil { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Volumes[volume.Name].Message = errors.Wrapf(err, "failed to update volume %v to image %v", volume.Name, nodeUpgrade.Spec.InstanceManagerImage).Error() + } else { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateCompleted + m.nodeUpgradeStatus.Volumes[volume.Name].Message = "" + } + } + } + + return nil +} + +// areVolumesReadyForUpgrade checks if the volumes with replicas on the upgrading node are ready for upgrade. +func (m *NodeDataEngineUpgradeMonitor) areVolumesReadyForUpgrade(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (err error) { + defer func() { + err = errors.Wrapf(err, "failed to check if volumes are ready for upgrade") + }() + + replicas, err := m.ds.ListReplicasByNodeRO(nodeUpgrade.Status.OwnerID) + if err != nil { + return errors.Wrapf(err, "failed to list replicas on node %v", nodeUpgrade.Status.OwnerID) + } + + for _, r := range replicas { + if r.Spec.DataEngine != nodeUpgrade.Spec.DataEngine { + continue + } + + volume, err := m.ds.GetVolumeRO(r.Spec.VolumeName) + if err != nil { + return errors.Wrapf(err, "failed to get volume %v for replica %v", r.Spec.VolumeName, r.Name) + } + + // No need to care about the detached volumes + if volume.Status.State == longhorn.VolumeStateDetached { + continue + } + + if volume.Spec.NumberOfReplicas == 1 { + return fmt.Errorf("volume %v has only 1 replica, which is not supported for live upgrade", volume.Name) + } + + if volume.Status.Robustness != longhorn.VolumeRobustnessHealthy { + return fmt.Errorf("volume %v is not healthy, which is not supported for live upgrade", volume.Name) + } + } + + return nil +} + +// snapshotVolumes creates a snapshot for all volumes with replicas on the upgrading node. +// It snapshots all volumes that are running and have replicas on the upgrading node. +// It does not snapshot volumes that are not running or do not have replicas on the upgrading node. +// It sets the state of the volume upgrade status to UpgradeStateSnapshotCreated if the snapshot is created successfully, or UpgradeStateError if not. +func (m *NodeDataEngineUpgradeMonitor) snapshotVolumes(volumes map[string]*longhorn.VolumeUpgradeStatus) (err error) { + defer func() { + err = errors.Wrapf(err, "failed to snapshot volumes") + }() + + for name := range volumes { + engine, err := m.ds.GetVolumeCurrentEngine(name) + if err != nil { + return fmt.Errorf("failed to get volume %v for snapshot creation", name) + } + + freezeFilesystem, err := m.ds.GetFreezeFilesystemForSnapshotSetting(engine) + if err != nil { + return err + } + + if engine == nil { + return fmt.Errorf("failed to get engine for volume %v", name) + } + + if engine.Status.CurrentState == longhorn.InstanceStateRunning { + engineCliClient, err := engineapi.GetEngineBinaryClient(m.ds, engine.Spec.VolumeName, m.nodeUpgradeStatus.OwnerID) + if err != nil { + return err + } + + engineClientProxy, err := engineapi.GetCompatibleClient(engine, engineCliClient, m.ds, m.logger, m.proxyConnCounter) + if err != nil { + return err + } + defer engineClientProxy.Close() + + snapLabels := map[string]string{types.GetLonghornLabelKey(types.LonghornLabelSnapshotForDataEngineLiveUpgrade): m.nodeUpgradeName} + _, err = engineClientProxy.SnapshotCreate(engine, m.upgradeManagerName+"-"+util.RandomID(), snapLabels, freezeFilesystem) + if err != nil { + return err + } + } + } + + return nil +} + +// clearVolumesTargetNode clears the targetNodeID of all volumes that are managed by the node upgrade monitor. +// If a volume is not found, it sets the state to UpgradeStateCompleted. +// If a volume's targetNodeID is empty, it sets the state to UpgradeStateCompleted. +// If a volume's targetNodeID is not empty, it updates the volume to clear the targetNodeID and sets the state to UpgradeStateCompleted if successful, or UpgradeStateError if not. +func (m *NodeDataEngineUpgradeMonitor) clearVolumesTargetNode() { + for volumeName := range m.nodeUpgradeStatus.Volumes { + volume, err := m.ds.GetVolumeRO(volumeName) + if err != nil { + m.nodeUpgradeStatus.Volumes[volumeName].Message = err.Error() + if datastore.ErrorIsNotFound(err) { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + } else { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + } + continue + } + + if volume.Spec.TargetNodeIDForLiveUpgrade == "" { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + continue + } + + volume.Spec.TargetNodeIDForLiveUpgrade = "" + _, err = m.ds.UpdateVolume(volume) + if err != nil { + m.nodeUpgradeStatus.State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Message = errors.Wrap(err, "failed to empty spec.targetNodeIDForLiveUpgrade").Error() + continue + } + + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + m.nodeUpgradeStatus.Volumes[volumeName].Message = "" + } +} + +// areAllVolumeHealthy checks if all volumes are healthy before proceeding to the next state. +// It skips volumes that are detached. +// Returns true if all volumes are healthy, false otherwise. +func (m *NodeDataEngineUpgradeMonitor) areAllVolumeHealthy() (bool, error) { + volumes, err := m.ds.ListVolumesRO() + if err != nil { + return false, errors.Wrapf(err, "failed to list volumes") + } + + for _, volume := range volumes { + if volume.Status.State == longhorn.VolumeStateDetached { + continue + } + + if volume.Status.Robustness != longhorn.VolumeRobustnessHealthy { + return false, fmt.Errorf("need to make sure all volumes are healthy before proceeding to the next state") + } + } + + return true, nil +} + +// areAllInitiatorInstancesRecreated returns true if all the initiator instances for the given node data engine upgrade have been recreated, +// false if not all have been recreated, and an error if there's any error during the check. +// It will set the state of the volume to UpgradeStateError if there's any error during the check. +func (m *NodeDataEngineUpgradeMonitor) areAllInitiatorInstancesRecreated(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (allRecreated bool, err error) { + im, err := m.ds.GetDefaultInstanceManagerByNodeRO(nodeUpgrade.Status.OwnerID, longhorn.DataEngineTypeV2) + if err != nil { + return false, err + } + + allRecreated = true + for volumeName := range m.nodeUpgradeStatus.Volumes { + if m.nodeUpgradeStatus.Volumes[volumeName].State == longhorn.UpgradeStateCompleted { + continue + } + + volume, err := m.ds.GetVolumeRO(volumeName) + if err != nil { + m.nodeUpgradeStatus.Volumes[volumeName].Message = err.Error() + if datastore.ErrorIsNotFound(err) { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + } else { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + allRecreated = false + } + continue + } + + if volume.Status.State == longhorn.VolumeStateDetached { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + m.nodeUpgradeStatus.Volumes[volumeName].Message = "Volume is detached" + continue + } + + engine, err := m.ds.GetVolumeCurrentEngine(volumeName) + if err != nil { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Volumes[volumeName].Message = err.Error() + continue + } + + _, ok := im.Status.InstanceEngines[engine.Name] + if !ok { + allRecreated = false + } + } + + return allRecreated, nil +} + +// listLocalVolumes lists all local volumes that are running on the node and +// target the same data engine as the node data engine upgrade. It returns a +// map from volume name to volume upgrade status. +func (m *NodeDataEngineUpgradeMonitor) listLocalVolumes(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (volumeUpgradeStatus map[string]*longhorn.VolumeUpgradeStatus, err error) { + defer func() { + err = errors.Wrapf(err, "failed to list volumes on node %v", nodeUpgrade.Status.OwnerID) + }() + + volumes, err := m.ds.ListVolumesRO() + if err != nil { + return nil, err + } + + volumeUpgradeStatus = make(map[string]*longhorn.VolumeUpgradeStatus) + for _, volume := range volumes { + if volume.Status.OwnerID != nodeUpgrade.Status.OwnerID { + continue + } + + if volume.Spec.DataEngine != nodeUpgrade.Spec.DataEngine { + continue + } + + volumeUpgradeStatus[volume.Name] = &longhorn.VolumeUpgradeStatus{ + State: longhorn.UpgradeStateInitializing, + } + } + + return volumeUpgradeStatus, nil +} + +// areAllStoppedOrFailedReplicasDeleted checks if all replicas on the node are stopped or failed and deleted. +func (m *NodeDataEngineUpgradeMonitor) areAllStoppedOrFailedReplicasDeleted(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (allDeleted bool, err error) { + replicas, err := m.ds.ListReplicasByNodeRO(nodeUpgrade.Status.OwnerID) + if err != nil { + return false, err + } + + return len(replicas) == 0, nil +} + +// areAllReplicasStoppedOrFailed checks if all replicas on the node are stopped or failed. +func (m *NodeDataEngineUpgradeMonitor) areAllReplicasStoppedOrFailed(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (allStoppedOrFailed bool, err error) { + defer func() { + err = errors.Wrapf(err, "failed to check if all replicas are stopped or failed") + }() + + replicas, err := m.ds.ListReplicasByNodeRO(nodeUpgrade.Status.OwnerID) + if err != nil { + return false, err + } + + for _, r := range replicas { + if r.Status.CurrentState != longhorn.InstanceStateStopped && r.Spec.DesireState != longhorn.InstanceStateError { + return false, fmt.Errorf("not all replicas are stopped or failed") + } + } + + return true, nil +} + +// deleteAllStoppedOrFailedReplicas deletes all stopped or failed replicas on the node. This function should only be called when the node is being upgraded and all replicas are stopped or failed. +func (m *NodeDataEngineUpgradeMonitor) deleteAllStoppedOrFailedReplicas(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (err error) { + replicas, err := m.ds.ListReplicasByNodeRO(nodeUpgrade.Status.OwnerID) + if err != nil { + return err + } + + for _, r := range replicas { + if r.Status.CurrentState == longhorn.InstanceStateStopped || r.Spec.DesireState == longhorn.InstanceStateError { + if errDelete := m.ds.DeleteReplica(r.Name); errDelete != nil && !datastore.ErrorIsNotFound(errDelete) { + if err == nil { + err = errors.Wrapf(errDelete, "failed to delete replicas on node %v", nodeUpgrade.Status.OwnerID) + } + } + } + } + + return err +} + +// isDefaultInstanceManagerRunning checks if the default instance manager for the given node +// is in the running state. It returns an error if the instance manager cannot be retrieved or +// if the instance manager is not in the running state. +func (m *NodeDataEngineUpgradeMonitor) isDefaultInstanceManagerRunning(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (err error) { + im, err := m.ds.GetDefaultInstanceManagerByNodeRO(nodeUpgrade.Status.OwnerID, longhorn.DataEngineTypeV2) + if err != nil { + return errors.Wrapf(err, "failed to get default instance manager for node %v", nodeUpgrade.Status.OwnerID) + } + + if im.Status.CurrentState != longhorn.InstanceManagerStateRunning { + return errors.Wrapf(err, "instance manager %v is not running and in state %v", im.Name, im.Status.CurrentState) + } + + return nil +} + +// failReplicas sets the desired state of all replicas on the specified node to "stopped" +// and updates their failure timestamp. If a replica is already stopped, it is skipped. +// The function attempts to update each replica in the datastore and returns an error +// if any update operation fails. +func (m *NodeDataEngineUpgradeMonitor) failReplicas(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (err error) { + replicas, err := m.ds.ListReplicasByNodeRO(nodeUpgrade.Status.OwnerID) + if err != nil { + return err + } + + for _, r := range replicas { + if r.Spec.DesireState == longhorn.InstanceStateStopped { + continue + } + + setReplicaFailedAt(r, util.Now()) + r.Spec.DesireState = longhorn.InstanceStateStopped + + _, errUpdate := m.ds.UpdateReplica(r) + if errUpdate != nil { + if err != nil { + err = errors.Wrapf(errUpdate, "failed to fail replica %v on node %v", r.Name, nodeUpgrade.Status.OwnerID) + } + } + } + + return err +} + +// r.Spec.FailedAt and r.Spec.LastFailedAt should both be set when a replica failure occurs. +// r.Spec.FailedAt may be cleared (before rebuilding), but r.Spec.LastFailedAt must not be. +func setReplicaFailedAt(r *longhorn.Replica, timestamp string) { + r.Spec.FailedAt = timestamp + if timestamp != "" { + r.Spec.LastFailedAt = timestamp + } +} + +// findAvailableNodeForTargetInstanceReplacement finds an available node to replace the target instance. +// The preferred node is the one that has completed the upgrade. +// If no node has completed the upgrade, it will return any available node. +// If no node is available, it will return an error. +func (m *NodeDataEngineUpgradeMonitor) findAvailableNodeForTargetInstanceReplacement(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (availableNode string, err error) { + defer func() { + err = errors.Wrapf(err, "failed to find available node for target instance replacement") + }() + + upgradeManager, err := m.ds.GetDataEngineUpgradeManager(nodeUpgrade.Spec.DataEngineUpgradeManager) + if err != nil { + return "", err + } + + ims, err := m.ds.ListInstanceManagersBySelectorRO("", "", longhorn.InstanceManagerTypeAllInOne, longhorn.DataEngineTypeV2) + if err != nil { + return "", err + } + + availableNode = "" + for _, im := range ims { + if im.Status.CurrentState != longhorn.InstanceManagerStateRunning { + continue + } + + if im.Spec.NodeID == nodeUpgrade.Status.OwnerID { + continue + } + + if availableNode == "" { + availableNode = im.Spec.NodeID + } + + upgradeNodeStatus, ok := upgradeManager.Status.UpgradeNodes[im.Spec.NodeID] + if !ok { + continue + } + + // Prefer the node that has completed the upgrade + if upgradeNodeStatus.State == longhorn.UpgradeStateCompleted { + availableNode = im.Spec.NodeID + break + } + } + + if availableNode == "" { + return "", fmt.Errorf("failed to find available node for target") + } + + return availableNode, nil +} + +// updateVolumesForSwitchOver updates the volumes for switch over. +// It will update the volumes with the new instance manager image and target node. +// If a volume is detached, no need to switch over, +// because it will use the default instance manager after being attached. +// If a volume is not found, we don't need to switch over it and therefore consider it as completed. +// If a volume is in neither detached nor attached state, it will set the state to UpgradeStateError. +// If a volume is being switched over, it will not update the volume. +// If a volume is not being switched over, it will update the volume with the new instance manager image and target node. +func (m *NodeDataEngineUpgradeMonitor) updateVolumesForSwitchOver(nodeUpgrade *longhorn.NodeDataEngineUpgrade, tempTargetNode string) { + for volumeName := range nodeUpgrade.Status.Volumes { + volume, errGet := m.ds.GetVolume(volumeName) + if errGet != nil { + m.nodeUpgradeStatus.Volumes[volumeName].Message = errGet.Error() + if datastore.ErrorIsNotFound(errGet) { + // If the volume is not found, we don't need to switch over it and therefore consider it as completed. + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + } else { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + } + continue + } + + // If a volume is detached, no need to switch over, + // because it will use the default instance manager after being attached. + if volume.Status.State == longhorn.VolumeStateDetached { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateCompleted + m.nodeUpgradeStatus.Volumes[volume.Name].Message = "Volume is detached, so no need to switch over" + continue + } + + if volume.Status.State != longhorn.VolumeStateAttached { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Volumes[volumeName].Message = fmt.Sprintf("Volume %v is in neither detached nor attached state", volume.Name) + continue + } + + // If a volume's targetNodeIDForLiveUpgrade is not empty, it means the volume is being switched over + if volume.Spec.TargetNodeIDForLiveUpgrade != "" { + if volume.Spec.TargetNodeIDForLiveUpgrade != volume.Spec.NodeID { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateSwitchingOver + continue + } + } + + if volume.Spec.Image != nodeUpgrade.Spec.InstanceManagerImage || volume.Spec.TargetNodeIDForLiveUpgrade != tempTargetNode { + volume.Spec.Image = nodeUpgrade.Spec.InstanceManagerImage + volume.Spec.TargetNodeIDForLiveUpgrade = tempTargetNode + + _, errUpdate := m.ds.UpdateVolume(volume) + if errUpdate != nil { + errUpdate = errors.Wrapf(errUpdate, "failed to update volume %v to image %v and target node %v for switch over", + volumeName, nodeUpgrade.Spec.InstanceManagerImage, tempTargetNode) + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Volumes[volumeName].Message = errUpdate.Error() + continue + } + + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateSwitchingOver + } + } +} + +// updateVolumesForSwitchBack updates the volumes for switch back. +// It will update the volumes with the original target node. +// If a volume is detached, no need to switch back, +// because it will use the default instance manager after being attached. +// If a volume is in neither detached nor attached state, it will set the state to UpgradeStateError. +// If a volume's targetNodeID is not empty, it means the volume is being switched back +// If a volume is not being switched back, it will update the volume with the original target node. +func (m *NodeDataEngineUpgradeMonitor) updateVolumesForSwitchBack(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + targetNodeID := nodeUpgrade.Status.OwnerID + + for volumeName := range nodeUpgrade.Status.Volumes { + volume, err := m.ds.GetVolume(volumeName) + if err != nil { + m.nodeUpgradeStatus.Volumes[volumeName].Message = err.Error() + if datastore.ErrorIsNotFound(err) { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + } else { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + } + continue + } + + if volume.Status.State == longhorn.VolumeStateDetached { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateCompleted + m.nodeUpgradeStatus.Volumes[volume.Name].Message = "Volume is detached" + continue + } + + if volume.Status.State != longhorn.VolumeStateAttached { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Volumes[volume.Name].Message = fmt.Sprintf("Volume %v is in neither detached nor attached state", volume.Name) + continue + } + + if volume.Spec.TargetNodeIDForLiveUpgrade == "" { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateCompleted + continue + } + + if volume.Spec.TargetNodeIDForLiveUpgrade == volume.Spec.NodeID { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateSwitchingBack + continue + } + + if volume.Spec.TargetNodeIDForLiveUpgrade != targetNodeID { + volume.Spec.TargetNodeIDForLiveUpgrade = targetNodeID + _, err := m.ds.UpdateVolume(volume) + if err != nil { + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateError + m.nodeUpgradeStatus.Volumes[volume.Name].Message = err.Error() + continue + } + m.nodeUpgradeStatus.Volumes[volume.Name].State = longhorn.UpgradeStateSwitchingBack + m.nodeUpgradeStatus.Volumes[volume.Name].Message = "" + } + } +} + +// areAllVolumesSwitchedOver checks if all volumes are switched over to the target node and new instance manager image. +// It will update the upgrade status of each volume accordingly. +// If a volume is not found, it will set the state to UpgradeStateCompleted. +// If the volume is in neither detached nor attached state, it will set the state to UpgradeStateError. +// If the volume is being switched over, it will not update the volume. +// If the volume is not being switched over, it will update the volume with the original target node and new instance manager image. +func (m *NodeDataEngineUpgradeMonitor) areAllVolumesSwitchedOver(nodeUpgrade *longhorn.NodeDataEngineUpgrade) bool { + allSwitched := true + for name := range m.nodeUpgradeStatus.Volumes { + if m.nodeUpgradeStatus.Volumes[name].State == longhorn.UpgradeStateCompleted { + continue + } + + volume, err := m.ds.GetVolume(name) + if err != nil { + m.nodeUpgradeStatus.Volumes[name].Message = err.Error() + if datastore.ErrorIsNotFound(err) { + m.nodeUpgradeStatus.Volumes[name].State = longhorn.UpgradeStateCompleted + } else { + m.nodeUpgradeStatus.Volumes[name].State = longhorn.UpgradeStateError + allSwitched = false + } + continue + } + + if volume.Spec.TargetNodeIDForLiveUpgrade != volume.Status.CurrentTargetNodeIDForLiveUpgrade || + volume.Spec.Image != volume.Status.CurrentImage || + volume.Status.CurrentImage != nodeUpgrade.Spec.InstanceManagerImage { + allSwitched = false + continue + } + + m.nodeUpgradeStatus.Volumes[name].State = longhorn.UpgradeStateSwitchedOver + m.nodeUpgradeStatus.Volumes[name].Message = "" + } + return allSwitched +} + +// areAllVolumesSwitchedBack checks if all volumes are switched back to the target node and original instance manager image. +// It will update the upgrade status of each volume accordingly. +// If a volume is not found, it will set the state to UpgradeStateCompleted. +// If the volume is in neither detached nor attached state, it will set the state to UpgradeStateError. +// If the volume is being switched back, it will not update the volume. +// If the volume is not being switched back, it will update the volume with the original target node and original instance manager image. +func (m *NodeDataEngineUpgradeMonitor) areAllVolumesSwitchedBack(nodeUpgrade *longhorn.NodeDataEngineUpgrade) bool { + allSwitched := true + + for volumeName := range m.nodeUpgradeStatus.Volumes { + if m.nodeUpgradeStatus.Volumes[volumeName].State == longhorn.UpgradeStateCompleted { + continue + } + + volume, err := m.ds.GetVolumeRO(volumeName) + if err != nil { + m.nodeUpgradeStatus.Volumes[volumeName].Message = err.Error() + if datastore.ErrorIsNotFound(err) { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateCompleted + } else { + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateError + allSwitched = false + } + continue + } + + if volume.Spec.TargetNodeIDForLiveUpgrade != volume.Spec.NodeID || + volume.Spec.TargetNodeIDForLiveUpgrade != volume.Status.CurrentTargetNodeIDForLiveUpgrade || + volume.Spec.Image != volume.Status.CurrentImage || + volume.Status.CurrentImage != nodeUpgrade.Spec.InstanceManagerImage { + allSwitched = false + m.nodeUpgradeStatus.Volumes[volumeName].Message = fmt.Sprintf("Volume %v is not switched back to the target node %v", volumeName, nodeUpgrade.Status.OwnerID) + continue + } + + m.nodeUpgradeStatus.Volumes[volumeName].State = longhorn.UpgradeStateSwitchedBack + m.nodeUpgradeStatus.Volumes[volumeName].Message = "" + } + return allSwitched +} + +// areAllVolumesClearedTargetNode checks if all volumes have been cleared of their target node. +// It returns true if all volumes have reached the UpgradeStateCompleted state, indicating that +// they are no longer associated with a target node. +func (m *NodeDataEngineUpgradeMonitor) areAllVolumesClearedTargetNode() bool { + for volumeName := range m.nodeUpgradeStatus.Volumes { + if m.nodeUpgradeStatus.Volumes[volumeName].State != longhorn.UpgradeStateCompleted { + return false + } + } + return true +} + +// areAllVolumesSpecImageUpdated checks if all volumes have been updated to the specified image in their specifications. +// It returns true if all volumes have reached the UpgradeStateCompleted state, indicating the update is complete. +func (m *NodeDataEngineUpgradeMonitor) areAllVolumesSpecImageUpdated() bool { + for volumeName := range m.nodeUpgradeStatus.Volumes { + if m.nodeUpgradeStatus.Volumes[volumeName].State != longhorn.UpgradeStateCompleted { + return false + } + } + return true +} + +// deleteNonDefaultInstanceManager deletes instance managers that do not match the specified image +// in the node data engine upgrade specification. It logs the deletion of each non-default instance manager +// and returns an error if any deletions fail. The function retrieves instance managers for the node +// identified by the owner ID in the node upgrade status and filters out those matching the target image. +func (m *NodeDataEngineUpgradeMonitor) deleteNonDefaultInstanceManager(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (err error) { + log := m.logger.WithFields(logrus.Fields{"nodeDataEngineUpgrade": nodeUpgrade.Name}) + + ims, err := m.ds.ListInstanceManagersByNodeRO(nodeUpgrade.Status.OwnerID, longhorn.InstanceManagerTypeAllInOne, longhorn.DataEngineTypeV2) + if err != nil { + return errors.Wrapf(err, "failed to list instance managers for node %v for deleting non-default instance managers", nodeUpgrade.Status.OwnerID) + } + + for _, im := range ims { + if im.Spec.Image == nodeUpgrade.Spec.InstanceManagerImage { + continue + } + + log.Infof("Deleting non-default instance manager %v", im.Name) + if errDelete := m.ds.DeleteInstanceManager(im.Name); errDelete != nil { + err = multierr.Append(err, errors.Wrapf(errDelete, "failed to delete non-default instance manager %v", im.Name)) + } + } + + return err +} diff --git a/controller/monitor/upgrade_manager_monitor.go b/controller/monitor/upgrade_manager_monitor.go new file mode 100644 index 0000000000..baada79176 --- /dev/null +++ b/controller/monitor/upgrade_manager_monitor.go @@ -0,0 +1,384 @@ +package monitor + +import ( + "context" + "fmt" + "reflect" + "strings" + "sync" + "time" + + "github.com/pkg/errors" + "github.com/sirupsen/logrus" + "go.uber.org/multierr" + + "k8s.io/apimachinery/pkg/util/wait" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/longhorn/longhorn-manager/datastore" + "github.com/longhorn/longhorn-manager/types" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" +) + +const ( + DataEngineUpgradeMonitorMonitorSyncPeriod = 3 * time.Second +) + +type DataEngineUpgradeManagerMonitor struct { + sync.RWMutex + *baseMonitor + + upgradeManagerName string + syncCallback func(key string) + + collectedData *longhorn.DataEngineUpgradeManagerStatus + upgradeManagerStatus *longhorn.DataEngineUpgradeManagerStatus +} + +func NewDataEngineUpgradeManagerMonitor(logger logrus.FieldLogger, ds *datastore.DataStore, upgradeManagerName, nodeID string, syncCallback func(key string)) (*DataEngineUpgradeManagerMonitor, error) { + ctx, quit := context.WithCancel(context.Background()) + + m := &DataEngineUpgradeManagerMonitor{ + baseMonitor: newBaseMonitor(ctx, quit, logger, ds, DataEngineUpgradeMonitorMonitorSyncPeriod), + upgradeManagerName: upgradeManagerName, + syncCallback: syncCallback, + collectedData: &longhorn.DataEngineUpgradeManagerStatus{}, + upgradeManagerStatus: &longhorn.DataEngineUpgradeManagerStatus{ + OwnerID: nodeID, + }, + } + + go m.Start() + + return m, nil +} + +func (m *DataEngineUpgradeManagerMonitor) Start() { + m.logger.Infof("Start monitoring dataEngineUpgradeManager %v with sync period %v", m.upgradeManagerName, m.syncPeriod) + + if err := wait.PollUntilContextCancel(m.ctx, m.syncPeriod, true, func(context.Context) (bool, error) { + if err := m.run(struct{}{}); err != nil { + m.logger.WithError(err).Error("Stopped monitoring upgrade monitor") + } + return false, nil + }); err != nil { + if errors.Cause(err) == context.Canceled { + m.logger.Infof("Stopped monitoring dataEngineUpgradeManager %v due to context cancellation", m.upgradeManagerName) + } else { + m.logger.WithError(err).Error("Failed to start dataEngineUpgradeManager monitor") + } + } + + m.logger.Infof("Stopped monitoring dataEngineUpgradeManager %v", m.upgradeManagerName) +} + +func (m *DataEngineUpgradeManagerMonitor) Close() { + m.quit() +} + +func (m *DataEngineUpgradeManagerMonitor) RunOnce() error { + return m.run(struct{}{}) +} + +func (m *DataEngineUpgradeManagerMonitor) UpdateConfiguration(map[string]interface{}) error { + return nil +} + +func (m *DataEngineUpgradeManagerMonitor) GetCollectedData() (interface{}, error) { + m.RLock() + defer m.RUnlock() + return m.collectedData.DeepCopy(), nil +} + +func (m *DataEngineUpgradeManagerMonitor) run(value interface{}) error { + upgradeManager, err := m.ds.GetDataEngineUpgradeManager(m.upgradeManagerName) + if err != nil { + return errors.Wrapf(err, "failed to get longhorn dataEngineUpgradeManager %v", m.upgradeManagerName) + } + + existingUpgradeManagerStatus := m.upgradeManagerStatus.DeepCopy() + + m.handleUpgradeManager(upgradeManager) + if !reflect.DeepEqual(existingUpgradeManagerStatus, m.upgradeManagerStatus) { + func() { + m.Lock() + defer m.Unlock() + + m.collectedData.InstanceManagerImage = m.upgradeManagerStatus.InstanceManagerImage + m.collectedData.State = m.upgradeManagerStatus.State + m.collectedData.Message = m.upgradeManagerStatus.Message + m.collectedData.UpgradingNode = m.upgradeManagerStatus.UpgradingNode + m.collectedData.UpgradeNodes = map[string]*longhorn.UpgradeNodeStatus{} + for k, v := range m.upgradeManagerStatus.UpgradeNodes { + m.collectedData.UpgradeNodes[k] = &longhorn.UpgradeNodeStatus{ + State: v.State, + Message: v.Message, + } + } + }() + + key := upgradeManager.Namespace + "/" + m.upgradeManagerName + m.syncCallback(key) + } + return nil +} + +func (m *DataEngineUpgradeManagerMonitor) handleUpgradeManager(upgradeManager *longhorn.DataEngineUpgradeManager) { + log := m.logger.WithFields(logrus.Fields{"dataEngineUpgradeManager": upgradeManager.Name}) + log.Infof("Handling dataEngineUpgradeManager %v state %v", upgradeManager.Name, m.upgradeManagerStatus.State) + + switch m.upgradeManagerStatus.State { + case longhorn.UpgradeStateUndefined: + m.handleUpgradeStateUndefined(upgradeManager) + case longhorn.UpgradeStateInitializing: + m.handleUpgradeStateInitializing(upgradeManager) + case longhorn.UpgradeStateUpgrading: + m.handleUpgradeStateUpgrading(upgradeManager) + case longhorn.UpgradeStateCompleted, longhorn.UpgradeStateError: + return + default: + m.handleUpgradeStateUnknown() + } +} + +func (m *DataEngineUpgradeManagerMonitor) handleUpgradeStateUndefined(upgradeManager *longhorn.DataEngineUpgradeManager) { + var err error + + defer func() { + if err != nil { + m.upgradeManagerStatus.State = longhorn.UpgradeStateError + m.upgradeManagerStatus.Message = err.Error() + } + }() + + if !types.IsDataEngineV2(upgradeManager.Spec.DataEngine) { + err = fmt.Errorf("unsupported data engine %v", upgradeManager.Spec.DataEngine) + return + } + + if m.upgradeManagerStatus.UpgradeNodes == nil { + m.upgradeManagerStatus.UpgradeNodes = map[string]*longhorn.UpgradeNodeStatus{} + } + + defaultInstanceManagerImage, err := m.ds.GetSettingValueExisted(types.SettingNameDefaultInstanceManagerImage) + if err != nil { + err = errors.Wrap(err, "failed to get default instance manager image") + return + } + + m.upgradeManagerStatus.State = longhorn.UpgradeStateInitializing + m.upgradeManagerStatus.InstanceManagerImage = defaultInstanceManagerImage + + err = m.checkInstanceManagerImageReady(upgradeManager, defaultInstanceManagerImage) + if err != nil { + err = errors.Wrapf(err, "failed to check instance manager image %v ready", defaultInstanceManagerImage) + } +} + +func (m *DataEngineUpgradeManagerMonitor) checkInstanceManagerImageReady(upgradeManager *longhorn.DataEngineUpgradeManager, defaultInstanceManagerImage string) (err error) { + for _, nodeName := range upgradeManager.Spec.Nodes { + kubeNode, errGet := m.ds.GetKubernetesNodeRO(nodeName) + if errGet != nil { + err = multierr.Append(err, errors.Wrapf(errGet, "failed to get kubeNode %v", nodeName)) + continue + } + + foundImage := false + for _, image := range kubeNode.Status.Images { + for _, name := range image.Names { + if strings.Contains(name, defaultInstanceManagerImage) { + foundImage = true + break + } + } + if foundImage { + break + } + } + if !foundImage { + err = multierr.Append(err, fmt.Errorf("failed to find default instance manager image %v in node %v", + defaultInstanceManagerImage, nodeName)) + } + } + + return err +} + +func (m *DataEngineUpgradeManagerMonitor) handleUpgradeStateInitializing(upgradeManager *longhorn.DataEngineUpgradeManager) { + if len(upgradeManager.Spec.Nodes) == 0 { + nodes, err := m.ds.ListNodesRO() + if err != nil { + m.upgradeManagerStatus.State = longhorn.UpgradeStateError + m.upgradeManagerStatus.Message = fmt.Sprintf("Failed to list nodes for dataEngineUpgradeManager resource %v: %v", upgradeManager.Name, err.Error()) + return + } + + for _, node := range nodes { + // Skip the node if v2 data engine is disabled + v2DataEngineDisabled, err := m.ds.IsV2DataEngineDisabledForNode(node.Name) + if err != nil { + m.upgradeManagerStatus.State = longhorn.UpgradeStateError + m.upgradeManagerStatus.Message = fmt.Sprintf("Failed to check if v2 data engine is disabled for node %v for dataEngineUpgradeManager resource %v: %v", node.Name, upgradeManager.Name, err.Error()) + return + } + if v2DataEngineDisabled { + m.upgradeManagerStatus.UpgradeNodes[node.Name] = &longhorn.UpgradeNodeStatus{ + State: longhorn.UpgradeStateCompleted, + Message: fmt.Sprintf("V2 data engine is disabled for node %v", node.Name), + } + continue + } + + // Skip the node that old instance manager is not running. + // The default instance manager will be automatically started and running, + // so we don't need to upgrade the it. + ims, err := m.ds.ListInstanceManagersByNodeRO(node.Name, longhorn.InstanceManagerTypeAllInOne, longhorn.DataEngineTypeV2) + if err != nil { + m.upgradeManagerStatus.State = longhorn.UpgradeStateError + m.upgradeManagerStatus.Message = fmt.Sprintf("Failed to list instanceManagers for node %v for dataEngineUpgradeManager resource %v: %v", node.Name, upgradeManager.Name, err.Error()) + return + } + + for _, im := range ims { + // If the old instance manager is running, we need to upgrade it. + // Therefore, set the node to pending state and wait for the upgrade. + if string(im.Spec.Image) != m.upgradeManagerStatus.InstanceManagerImage && + string(im.Status.CurrentState) == string(longhorn.InstanceManagerStateRunning) { + m.upgradeManagerStatus.UpgradeNodes[im.Spec.NodeID] = &longhorn.UpgradeNodeStatus{ + State: longhorn.UpgradeStatePending, + } + break + } + } + + _, ok := m.upgradeManagerStatus.UpgradeNodes[node.Name] + if !ok { + m.upgradeManagerStatus.UpgradeNodes[node.Name] = &longhorn.UpgradeNodeStatus{ + State: longhorn.UpgradeStateCompleted, + Message: fmt.Sprintf("Old instance manager is not running for node %v", node.Name), + } + } + } + } else { + for _, nodeName := range upgradeManager.Spec.Nodes { + v2DataEngineDisabled, err := m.ds.IsV2DataEngineDisabledForNode(nodeName) + if err != nil { + m.upgradeManagerStatus.State = longhorn.UpgradeStateError + m.upgradeManagerStatus.Message = fmt.Sprintf("Failed to check if v2 data engine is disabled for node %v for dataEngineUpgradeManager resource %v: %v", nodeName, upgradeManager.Name, err.Error()) + return + } + if v2DataEngineDisabled { + m.upgradeManagerStatus.UpgradeNodes[nodeName] = &longhorn.UpgradeNodeStatus{ + State: longhorn.UpgradeStateCompleted, + Message: fmt.Sprintf("V2 data engine is disabled for node %v", nodeName), + } + continue + } + + m.upgradeManagerStatus.UpgradeNodes[nodeName] = &longhorn.UpgradeNodeStatus{ + State: longhorn.UpgradeStatePending, + } + } + } + + if len(m.upgradeManagerStatus.UpgradeNodes) == 0 { + m.upgradeManagerStatus.State = longhorn.UpgradeStateCompleted + } else { + m.upgradeManagerStatus.State = longhorn.UpgradeStateUpgrading + } +} + +func (m *DataEngineUpgradeManagerMonitor) handleUpgradeStateUpgrading(upgradeManager *longhorn.DataEngineUpgradeManager) { + log := m.logger.WithFields(logrus.Fields{"dataEngineUpgradeManager": upgradeManager.Name}) + + // Check if the active nodeUpgrade is matching the m.upgradeManagerStatus.UpgradingNode + nodeUpgrades, err := m.ds.ListNodeDataEngineUpgrades() + if err != nil { + m.upgradeManagerStatus.State = longhorn.UpgradeStateError + m.upgradeManagerStatus.Message = fmt.Sprintf("Failed to list nodeUpgrades for dataEngineUpgradeManager resource %v: %v", upgradeManager.Name, err.Error()) + return + } + + if m.upgradeManagerStatus.UpgradingNode != "" { + foundNodeUpgrade := false + nodeUpgrade := &longhorn.NodeDataEngineUpgrade{} + for _, nodeUpgrade = range nodeUpgrades { + if nodeUpgrade.Spec.NodeID != m.upgradeManagerStatus.UpgradingNode { + continue + } + foundNodeUpgrade = true + break + } + if foundNodeUpgrade { + m.upgradeManagerStatus.UpgradeNodes[m.upgradeManagerStatus.UpgradingNode].Message = nodeUpgrade.Status.Message + if nodeUpgrade.Status.State == longhorn.UpgradeStateCompleted { + m.upgradeManagerStatus.UpgradeNodes[m.upgradeManagerStatus.UpgradingNode].State = longhorn.UpgradeStateCompleted + m.upgradeManagerStatus.UpgradingNode = "" + } else { + m.upgradeManagerStatus.UpgradeNodes[m.upgradeManagerStatus.UpgradingNode].State = nodeUpgrade.Status.State + m.upgradeManagerStatus.UpgradingNode = nodeUpgrade.Spec.NodeID + } + } else { + m.upgradeManagerStatus.UpgradeNodes[m.upgradeManagerStatus.UpgradingNode].State = longhorn.UpgradeStateError + m.upgradeManagerStatus.UpgradeNodes[m.upgradeManagerStatus.UpgradingNode].Message = "NodeUpgrade resource not found" + m.upgradeManagerStatus.UpgradingNode = "" + } + return + } + + // TODO: Check if there is any nodeDataEngineUpgrade in progress but not tracked by m.upgradeManagerStatus.UpgradingNode + + // Pick a node to upgrade + for nodeName, nodeStatus := range m.upgradeManagerStatus.UpgradeNodes { + if nodeStatus.State == longhorn.UpgradeStateCompleted || + nodeStatus.State == longhorn.UpgradeStateError { + continue + } + + // Create a new upgrade resource for the node + log.Infof("Creating NodeDataEngineUpgrade resource for node %v", nodeName) + _, err := m.ds.GetNode(nodeName) + if err != nil { + nodeStatus.State = longhorn.UpgradeStateError + nodeStatus.Message = err.Error() + continue + } + + _, err = m.ds.CreateNodeDataEngineUpgrade(&longhorn.NodeDataEngineUpgrade{ + ObjectMeta: metav1.ObjectMeta{ + Name: types.GenerateNodeDataEngineUpgradeName(upgradeManager.Name, nodeName), + Namespace: upgradeManager.Namespace, + OwnerReferences: datastore.GetOwnerReferencesForDataEngineUpgradeManager(upgradeManager), + Labels: types.GetNodeDataEngineUpgradeLabels(upgradeManager.Name, nodeName), + }, + Spec: longhorn.NodeDataEngineUpgradeSpec{ + NodeID: nodeName, + DataEngine: longhorn.DataEngineTypeV2, + InstanceManagerImage: m.upgradeManagerStatus.InstanceManagerImage, + DataEngineUpgradeManager: upgradeManager.Name, + }, + }) + if err != nil { + if !types.ErrorAlreadyExists(err) { + nodeStatus.State = longhorn.UpgradeStateError + nodeStatus.Message = err.Error() + continue + } + } else { + log.Infof("Created NodeDataEngineUpgrade resource for node %v", nodeName) + } + m.upgradeManagerStatus.UpgradingNode = nodeName + break + } + + if m.upgradeManagerStatus.UpgradingNode == "" { + m.upgradeManagerStatus.State = longhorn.UpgradeStateCompleted + } +} + +func (m *DataEngineUpgradeManagerMonitor) handleUpgradeStateUnknown() { + m.upgradeManagerStatus.State = longhorn.UpgradeStateError + m.upgradeManagerStatus.Message = fmt.Sprintf("Unknown dataEngineUpgradeManager state %v", m.upgradeManagerStatus.State) +} diff --git a/controller/node_controller.go b/controller/node_controller.go index 1cbeec074e..db8dae6c7f 100644 --- a/controller/node_controller.go +++ b/controller/node_controller.go @@ -191,6 +191,19 @@ func NewNodeController( } nc.cacheSyncs = append(nc.cacheSyncs, ds.KubeNodeInformer.HasSynced) + if _, err = ds.NodeDataEngineUpgradeInformer.AddEventHandlerWithResyncPeriod( + cache.FilteringResourceEventHandler{ + FilterFunc: nc.isResponsibleForNodeDataEngineUpgrade, + Handler: cache.ResourceEventHandlerFuncs{ + AddFunc: nc.enqueueManagerNodeDataEngineUpgrade, + UpdateFunc: func(old, cur interface{}) { nc.enqueueManagerNodeDataEngineUpgrade(cur) }, + DeleteFunc: nc.enqueueManagerNodeDataEngineUpgrade, + }, + }, 0); err != nil { + return nil, err + } + nc.cacheSyncs = append(nc.cacheSyncs, ds.NodeDataEngineUpgradeInformer.HasSynced) + return nc, nil } @@ -284,6 +297,43 @@ func (nc *NodeController) snapshotHashRequired(volume *longhorn.Volume) bool { return true } +func (nc *NodeController) isResponsibleForNodeDataEngineUpgrade(obj interface{}) bool { + upgrade, ok := obj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + return false + } + + return upgrade.Status.OwnerID == nc.controllerID +} + +func (nc *NodeController) enqueueManagerNodeDataEngineUpgrade(obj interface{}) { + upgrade, ok := obj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + deletedState, ok := obj.(cache.DeletedFinalStateUnknown) + if !ok { + utilruntime.HandleError(fmt.Errorf("received unexpected obj: %#v", obj)) + return + } + + // use the last known state, to enqueue, dependent objects + upgrade, ok = deletedState.Obj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + utilruntime.HandleError(fmt.Errorf("DeletedFinalStateUnknown contained invalid object: %#v", deletedState.Obj)) + return + } + } + + node, err := nc.ds.GetNodeRO(upgrade.Spec.NodeID) + if err != nil { + if !apierrors.IsNotFound(err) { + utilruntime.HandleError(fmt.Errorf("failed to get node %v for upgrade %v: %v ", + upgrade.Spec.NodeID, upgrade.Name, err)) + } + return + } + nc.enqueueNode(node) +} + func isManagerPod(obj interface{}) bool { pod, ok := obj.(*corev1.Pod) if !ok { @@ -434,6 +484,10 @@ func (nc *NodeController) syncNode(key string) (err error) { return err } + if err = nc.setDataEngineUpgradeRequestedCondition(node); err != nil { + return err + } + // Set any RWX leases to non-delinquent if owned by not-ready node. // Usefulness of delinquent state has passed. if err = nc.clearDelinquentLeasesIfNodeNotReady(node); err != nil { @@ -1446,6 +1500,13 @@ func (nc *NodeController) syncInstanceManagers(node *longhorn.Node) error { cleanupRequired = false log.Debugf("Skipping cleaning up non-default unknown instance manager %s", im.Name) } + + if types.IsDataEngineV2(dataEngine) { + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + if dataEngineUpgradeRequestedCondition.Status == longhorn.ConditionStatusTrue { + cleanupRequired = false + } + } } if cleanupRequired { log.Infof("Cleaning up the redundant instance manager %v when there is no running/starting instance", im.Name) @@ -2129,6 +2190,43 @@ func (nc *NodeController) setReadyAndSchedulableConditions(node *longhorn.Node, return nil } +func (nc *NodeController) setDataEngineUpgradeRequestedCondition(node *longhorn.Node) error { + nodeUpgrades, err := nc.ds.ListNodeDataEngineUpgradesByNodeRO(node.Name) + if err != nil { + return err + } + + nodeUpgradeRequested := false + nodeUpgradeName := "" + for _, upgrade := range nodeUpgrades { + if upgrade.Status.State != longhorn.UpgradeStateRebuildingReplica && + upgrade.Status.State != longhorn.UpgradeStateFinalizing && + upgrade.Status.State != longhorn.UpgradeStateError && + upgrade.Status.State != longhorn.UpgradeStateCompleted { + nodeUpgradeRequested = true + nodeUpgradeName = upgrade.Name + break + } + } + + if nodeUpgradeRequested { + node.Status.Conditions = types.SetConditionAndRecord(node.Status.Conditions, + longhorn.NodeConditionTypeDataEngineUpgradeRequested, + longhorn.ConditionStatusTrue, + string(longhorn.NodeConditionReasonNodeDataEngineUpgradeRequested), + fmt.Sprintf("nodeDataeEngineUpgrade %v is in progress", nodeUpgradeName), + nc.eventRecorder, node, corev1.EventTypeNormal) + } else { + node.Status.Conditions = types.SetConditionAndRecord(node.Status.Conditions, + longhorn.NodeConditionTypeDataEngineUpgradeRequested, + longhorn.ConditionStatusFalse, + "", + "", + nc.eventRecorder, node, corev1.EventTypeNormal) + } + return nil +} + func (nc *NodeController) setReadyConditionForManagerPod(node *longhorn.Node, managerPods []*corev1.Pod, nodeReady bool) bool { nodeManagerFound := false for _, pod := range managerPods { @@ -2204,15 +2302,31 @@ func (nc *NodeController) setReadyConditionForKubeNode(node *longhorn.Node, kube func (nc *NodeController) SetSchedulableCondition(node *longhorn.Node, kubeNode *corev1.Node, disableSchedulingOnCordonedNode bool) { kubeSpec := kubeNode.Spec - if disableSchedulingOnCordonedNode && - kubeSpec.Unschedulable { + reason := "" + message := "" + disableScheduling := false + + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + + if disableSchedulingOnCordonedNode && kubeSpec.Unschedulable { + disableScheduling = true + reason = string(longhorn.NodeConditionReasonKubernetesNodeCordoned) + message = fmt.Sprintf("Node %v is cordoned", node.Name) + } else if dataEngineUpgradeRequestedCondition.Status == longhorn.ConditionStatusTrue { + disableScheduling = true + reason = string(longhorn.NodeConditionReasonNodeDataEngineUpgradeRequested) + message = fmt.Sprintf("Data engine of node %v is being upgraded", node.Name) + } + + if disableScheduling { node.Status.Conditions = types.SetConditionAndRecord(node.Status.Conditions, longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusFalse, - string(longhorn.NodeConditionReasonKubernetesNodeCordoned), - fmt.Sprintf("Node %v is cordoned", node.Name), - nc.eventRecorder, node, + reason, + message, + nc.eventRecorder, + node, corev1.EventTypeNormal) } else { node.Status.Conditions = @@ -2221,7 +2335,8 @@ func (nc *NodeController) SetSchedulableCondition(node *longhorn.Node, kubeNode longhorn.ConditionStatusTrue, "", "", - nc.eventRecorder, node, + nc.eventRecorder, + node, corev1.EventTypeNormal) } } diff --git a/controller/node_controller_test.go b/controller/node_controller_test.go index ff02375604..557f281fbd 100644 --- a/controller/node_controller_test.go +++ b/controller/node_controller_test.go @@ -186,6 +186,7 @@ func (s *NodeControllerSuite) TestManagerPodUp(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -197,6 +198,7 @@ func (s *NodeControllerSuite) TestManagerPodUp(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, }, }, @@ -274,6 +276,7 @@ func (s *NodeControllerSuite) TestManagerPodDown(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonManagerPodDown), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonNoMountPropagationSupport), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -285,6 +288,7 @@ func (s *NodeControllerSuite) TestManagerPodDown(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, }, }, @@ -362,6 +366,7 @@ func (s *NodeControllerSuite) TestKubeNodeDown(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonKubernetesNodeNotReady), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -373,6 +378,7 @@ func (s *NodeControllerSuite) TestKubeNodeDown(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, }, }, @@ -450,6 +456,7 @@ func (s *NodeControllerSuite) TestKubeNodePressure(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonKubernetesNodePressure), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -461,6 +468,7 @@ func (s *NodeControllerSuite) TestKubeNodePressure(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, }, }, @@ -573,6 +581,7 @@ func (s *NodeControllerSuite) TestUpdateDiskStatus(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -603,6 +612,7 @@ func (s *NodeControllerSuite) TestUpdateDiskStatus(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, DiskStatus: map[string]*longhorn.DiskStatus{ TestDiskID1: { @@ -726,6 +736,7 @@ func (s *NodeControllerSuite) TestCleanDiskStatus(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -755,6 +766,7 @@ func (s *NodeControllerSuite) TestCleanDiskStatus(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, DiskStatus: map[string]*longhorn.DiskStatus{ TestDiskID1: { @@ -885,6 +897,7 @@ func (s *NodeControllerSuite) TestDisableDiskOnFilesystemChange(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -914,6 +927,7 @@ func (s *NodeControllerSuite) TestDisableDiskOnFilesystemChange(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, DiskStatus: map[string]*longhorn.DiskStatus{ TestDiskID1: { @@ -1015,6 +1029,7 @@ func (s *NodeControllerSuite) TestCreateDefaultInstanceManager(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -1162,6 +1177,7 @@ func (s *NodeControllerSuite) TestCleanupRedundantInstanceManagers(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -1279,6 +1295,7 @@ func (s *NodeControllerSuite) TestCleanupAllInstanceManagers(c *C) { Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -2119,6 +2136,7 @@ CONFIG_NFS_V4_2=y` Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), newNodeCondition(longhorn.NodeConditionTypeMountPropagation, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeRequiredPackages, longhorn.ConditionStatusFalse, longhorn.NodeConditionReasonUnknownOS), newNodeCondition(longhorn.NodeConditionTypeMultipathd, longhorn.ConditionStatusTrue, ""), @@ -2130,6 +2148,7 @@ CONFIG_NFS_V4_2=y` Conditions: []longhorn.Condition{ newNodeCondition(longhorn.NodeConditionTypeSchedulable, longhorn.ConditionStatusTrue, ""), newNodeCondition(longhorn.NodeConditionTypeReady, longhorn.ConditionStatusTrue, ""), + newNodeCondition(longhorn.NodeConditionTypeDataEngineUpgradeRequested, longhorn.ConditionStatusFalse, ""), }, }, }, diff --git a/controller/node_upgrade_controller.go b/controller/node_upgrade_controller.go new file mode 100644 index 0000000000..f1cdb2723d --- /dev/null +++ b/controller/node_upgrade_controller.go @@ -0,0 +1,293 @@ +package controller + +import ( + "fmt" + "reflect" + "time" + + "github.com/pkg/errors" + "github.com/sirupsen/logrus" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/kubernetes/pkg/controller" + + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + clientset "k8s.io/client-go/kubernetes" + v1core "k8s.io/client-go/kubernetes/typed/core/v1" + + "github.com/longhorn/longhorn-manager/controller/monitor" + "github.com/longhorn/longhorn-manager/datastore" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" +) + +type NodeDataEngineUpgradeController struct { + *baseController + + // which namespace controller is running with + namespace string + // use as the OwnerID of the controller + controllerID string + + kubeClient clientset.Interface + eventRecorder record.EventRecorder + + nodeDataEngineUpgradeMonitor monitor.Monitor + + ds *datastore.DataStore + + cacheSyncs []cache.InformerSynced +} + +func NewNodeDataEngineUpgradeController( + logger logrus.FieldLogger, + ds *datastore.DataStore, + scheme *runtime.Scheme, + kubeClient clientset.Interface, + controllerID string, + namespace string) (*NodeDataEngineUpgradeController, error) { + + eventBroadcaster := record.NewBroadcaster() + eventBroadcaster.StartLogging(logrus.Infof) + // TODO: remove the wrapper when every clients have moved to use the clientset. + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{ + Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events(""), + }) + + uc := &NodeDataEngineUpgradeController{ + baseController: newBaseController("longhorn-node-data-engine-upgrade", logger), + + namespace: namespace, + controllerID: controllerID, + + ds: ds, + + kubeClient: kubeClient, + eventRecorder: eventBroadcaster.NewRecorder(scheme, corev1.EventSource{Component: "longhorn-node-data-engine-upgrade-controller"}), + } + + if _, err := ds.NodeDataEngineUpgradeInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: uc.enqueueNodeDataEngineUpgrade, + UpdateFunc: func(old, cur interface{}) { uc.enqueueNodeDataEngineUpgrade(cur) }, + DeleteFunc: uc.enqueueNodeDataEngineUpgrade, + }); err != nil { + return nil, err + } + uc.cacheSyncs = append(uc.cacheSyncs, ds.NodeDataEngineUpgradeInformer.HasSynced) + + return uc, nil +} + +func (uc *NodeDataEngineUpgradeController) enqueueNodeDataEngineUpgrade(obj interface{}) { + key, err := controller.KeyFunc(obj) + if err != nil { + utilruntime.HandleError(fmt.Errorf("failed to get key for object %#v: %v", obj, err)) + return + } + + uc.queue.Add(key) +} + +func (uc *NodeDataEngineUpgradeController) Run(workers int, stopCh <-chan struct{}) { + defer utilruntime.HandleCrash() + defer uc.queue.ShutDown() + + uc.logger.Info("Starting Longhorn NodeDataEngineUpgrade controller") + defer uc.logger.Info("Shut down Longhorn NodeDataEngineUpgrade controller") + + if !cache.WaitForNamedCacheSync(uc.name, stopCh, uc.cacheSyncs...) { + return + } + for i := 0; i < workers; i++ { + go wait.Until(uc.worker, time.Second, stopCh) + } + <-stopCh +} + +func (uc *NodeDataEngineUpgradeController) worker() { + for uc.processNextWorkItem() { + } +} + +func (uc *NodeDataEngineUpgradeController) processNextWorkItem() bool { + key, quit := uc.queue.Get() + if quit { + return false + } + defer uc.queue.Done(key) + err := uc.syncNodeDataEngineUpgrade(key.(string)) + uc.handleErr(err, key) + return true +} + +func (uc *NodeDataEngineUpgradeController) handleErr(err error, key interface{}) { + if err == nil { + uc.queue.Forget(key) + return + } + + log := uc.logger.WithField("nodeDataEngineUpgrade", key) + if uc.queue.NumRequeues(key) < maxRetries { + handleReconcileErrorLogging(log, err, "Failed to sync Longhorn nodeDataEngineUpgrade resource") + uc.queue.AddRateLimited(key) + return + } + + utilruntime.HandleError(err) + handleReconcileErrorLogging(log, err, "Dropping Longhorn nodeDataEngineUpgrade out of the queue") + uc.queue.Forget(key) +} + +func getLoggerForNodeDataEngineUpgrade(logger logrus.FieldLogger, nodeUpgrade *longhorn.NodeDataEngineUpgrade) *logrus.Entry { + return logger.WithFields( + logrus.Fields{ + "nodeDataEngineUpgrade": nodeUpgrade.Name, + }, + ) +} + +func (uc *NodeDataEngineUpgradeController) isResponsibleFor(upgrade *longhorn.NodeDataEngineUpgrade) bool { + preferredOwnerID := upgrade.Spec.NodeID + + return isControllerResponsibleFor(uc.controllerID, uc.ds, upgrade.Name, preferredOwnerID, upgrade.Status.OwnerID) +} + +func (uc *NodeDataEngineUpgradeController) syncNodeDataEngineUpgrade(key string) (err error) { + defer func() { + err = errors.Wrapf(err, "failed to sync nodeDataEngineUpgrade %v", key) + }() + + namespace, name, err := cache.SplitMetaNamespaceKey(key) + if err != nil { + return err + } + if namespace != uc.namespace { + return nil + } + + return uc.reconcile(name) +} + +func (uc *NodeDataEngineUpgradeController) reconcile(upgradeName string) (err error) { + nodeUpgrade, err := uc.ds.GetNodeDataEngineUpgrade(upgradeName) + if err != nil { + if !apierrors.IsNotFound(err) { + return err + } + return nil + } + + log := getLoggerForNodeDataEngineUpgrade(uc.logger, nodeUpgrade) + + if !uc.isResponsibleFor(nodeUpgrade) { + return nil + } + + if nodeUpgrade.Status.OwnerID != uc.controllerID { + nodeUpgrade.Status.OwnerID = uc.controllerID + nodeUpgrade, err = uc.ds.UpdateNodeDataEngineUpgradeStatus(nodeUpgrade) + if err != nil { + // we don't mind others coming first + if apierrors.IsConflict(errors.Cause(err)) { + return nil + } + return err + } + log.Infof("NodeDataEngineUpgrade resource %v got new owner %v", nodeUpgrade.Name, uc.controllerID) + } + + if !nodeUpgrade.DeletionTimestamp.IsZero() { + if uc.nodeDataEngineUpgradeMonitor != nil { + uc.nodeDataEngineUpgradeMonitor.Close() + uc.nodeDataEngineUpgradeMonitor = nil + } + + return uc.ds.RemoveFinalizerForNodeDataEngineUpgrade(nodeUpgrade) + } + + if nodeUpgrade.Status.State == longhorn.UpgradeStateCompleted || + nodeUpgrade.Status.State == longhorn.UpgradeStateError { + return nil + } + + existingNodeUpgrade := nodeUpgrade.DeepCopy() + defer func() { + if err != nil { + return + } + if !reflect.DeepEqual(existingNodeUpgrade.Status, nodeUpgrade.Status) { + if _, err := uc.ds.UpdateNodeDataEngineUpgradeStatus(nodeUpgrade); err != nil && apierrors.IsConflict(errors.Cause(err)) { + log.WithError(err).Debugf("Requeue %v due to conflict", upgradeName) + uc.enqueueNodeDataEngineUpgrade(upgradeName) + } + } + }() + + if _, err := uc.createNodeDataEngineUpgradeMonitor(nodeUpgrade); err != nil { + return err + } + + if uc.nodeDataEngineUpgradeMonitor != nil { + uc.updateNodeDataEngineUpgradeStatus(nodeUpgrade) + } + + if nodeUpgrade.Status.State == longhorn.UpgradeStateCompleted || + nodeUpgrade.Status.State == longhorn.UpgradeStateError { + uc.updateNodeDataEngineUpgradeStatus(nodeUpgrade) + if uc.nodeDataEngineUpgradeMonitor != nil { + uc.nodeDataEngineUpgradeMonitor.Close() + uc.nodeDataEngineUpgradeMonitor = nil + } + } + + return nil +} + +func (uc *NodeDataEngineUpgradeController) updateNodeDataEngineUpgradeStatus(nodeUpgrade *longhorn.NodeDataEngineUpgrade) { + log := getLoggerForNodeDataEngineUpgrade(uc.logger, nodeUpgrade) + + data, err := uc.nodeDataEngineUpgradeMonitor.GetCollectedData() + if err != nil { + log.WithError(err).Error("Failed to get collected data from nodeDataEngineUpgrade monitor") + return + } + status, ok := data.(*longhorn.NodeDataEngineUpgradeStatus) + if !ok { + log.Errorf("Failed to assert value from nodeDataEngineUpgrade monitor: %v", data) + return + } + + nodeUpgrade.Status.State = status.State + nodeUpgrade.Status.Message = status.Message + nodeUpgrade.Status.Volumes = make(map[string]*longhorn.VolumeUpgradeStatus) + for k, v := range status.Volumes { + nodeUpgrade.Status.Volumes[k] = &longhorn.VolumeUpgradeStatus{ + State: v.State, + Message: v.Message, + } + } +} + +func (uc *NodeDataEngineUpgradeController) createNodeDataEngineUpgradeMonitor(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (monitor.Monitor, error) { + if uc.nodeDataEngineUpgradeMonitor != nil { + return uc.nodeDataEngineUpgradeMonitor, nil + } + + nodeUpgradeMonitor, err := monitor.NewNodeDataEngineUpgradeMonitor(uc.logger, uc.ds, nodeUpgrade.Name, nodeUpgrade.Status.OwnerID, uc.enqueueNodeDataEngineUpgradeForMonitor) + if err != nil { + return nil, err + } + + uc.nodeDataEngineUpgradeMonitor = nodeUpgradeMonitor + + return nodeUpgradeMonitor, nil +} + +func (uc *NodeDataEngineUpgradeController) enqueueNodeDataEngineUpgradeForMonitor(key string) { + uc.queue.Add(key) +} diff --git a/controller/replica_controller.go b/controller/replica_controller.go index 2930827080..fb8055f0cf 100644 --- a/controller/replica_controller.go +++ b/controller/replica_controller.go @@ -25,13 +25,13 @@ import ( clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" - imapi "github.com/longhorn/longhorn-instance-manager/pkg/api" - lhns "github.com/longhorn/go-common-libs/ns" + imapi "github.com/longhorn/longhorn-instance-manager/pkg/api" "github.com/longhorn/longhorn-manager/datastore" "github.com/longhorn/longhorn-manager/engineapi" "github.com/longhorn/longhorn-manager/types" + "github.com/longhorn/longhorn-manager/util" longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" ) @@ -55,6 +55,8 @@ type ReplicaController struct { rebuildingLock *sync.Mutex inProgressRebuildingMap map[string]struct{} + + proxyConnCounter util.Counter } func NewReplicaController( @@ -62,7 +64,8 @@ func NewReplicaController( ds *datastore.DataStore, scheme *runtime.Scheme, kubeClient clientset.Interface, - namespace string, controllerID string) (*ReplicaController, error) { + namespace string, controllerID string, + proxyConnCounter util.Counter) (*ReplicaController, error) { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(logrus.Infof) @@ -80,6 +83,8 @@ func NewReplicaController( ds: ds, + proxyConnCounter: proxyConnCounter, + rebuildingLock: &sync.Mutex{}, inProgressRebuildingMap: map[string]struct{}{}, } @@ -313,7 +318,7 @@ func (rc *ReplicaController) enqueueReplica(obj interface{}) { rc.queue.Add(key) } -func (rc *ReplicaController) CreateInstance(obj interface{}) (*longhorn.InstanceProcess, error) { +func (rc *ReplicaController) CreateInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) { r, ok := obj.(*longhorn.Replica) if !ok { return nil, fmt.Errorf("invalid object for replica instance creation: %v", obj) @@ -352,7 +357,7 @@ func (rc *ReplicaController) CreateInstance(obj interface{}) (*longhorn.Instance } } - im, err := rc.ds.GetInstanceManagerByInstanceRO(obj) + im, err := rc.ds.GetInstanceManagerByInstanceRO(obj, isInstanceOnRemoteNode) if err != nil { return nil, err } @@ -525,7 +530,7 @@ func (rc *ReplicaController) DeleteInstance(obj interface{}) (err error) { log.Warnf("Replica %v does not set instance manager name and node ID, will skip the actual instance deletion", r.Name) return nil } - im, err = rc.ds.GetInstanceManagerByInstance(obj) + im, err = rc.ds.GetInstanceManagerByInstance(obj, false) if err != nil { log.WithError(err).Warnf("Failed to detect instance manager for replica %v, will skip the actual instance deletion", r.Name) return nil @@ -576,6 +581,21 @@ func (rc *ReplicaController) DeleteInstance(obj interface{}) (err error) { cleanupRequired = true } + if types.IsDataEngineV2(r.Spec.DataEngine) && r.Spec.FailedAt != "" { + upgradeRequested, err := rc.ds.IsNodeDataEngineUpgradeRequested(r.Spec.NodeID) + if err != nil { + return err + } + if upgradeRequested { + log.Infof("Deleting failed replica instance %v from its engine instance without cleanup since the node %v is requested to upgrade data engine", + r.Name, r.Spec.NodeID) + err = rc.removeFailedReplicaInstanceFromEngineInstance(r) + if err != nil { + return errors.Wrapf(err, "failed to remove failed replica instance %v from engine instance", r.Name) + } + } + } + log.WithField("cleanupRequired", cleanupRequired).Infof("Deleting replica instance on disk %v", r.Spec.DiskPath) err = c.InstanceDelete(r.Spec.DataEngine, r.Name, string(longhorn.InstanceManagerTypeReplica), r.Spec.DiskID, cleanupRequired) @@ -599,6 +619,36 @@ func (rc *ReplicaController) DeleteInstance(obj interface{}) (err error) { return nil } +func (rc *ReplicaController) removeFailedReplicaInstanceFromEngineInstance(r *longhorn.Replica) error { + e, err := rc.ds.GetVolumeCurrentEngine(r.Spec.VolumeName) + if err != nil { + if apierrors.IsNotFound(err) { + return nil + } + return err + } + + engineCliClient, err := GetBinaryClientForEngine(e, &engineapi.EngineCollection{}, e.Status.CurrentImage) + if err != nil { + return err + } + + engineClientProxy, err := engineapi.GetCompatibleClient(e, engineCliClient, rc.ds, rc.logger, rc.proxyConnCounter) + if err != nil { + return err + } + defer engineClientProxy.Close() + + if err := engineClientProxy.ReplicaRemove(e, "", r.Name); err != nil { + if strings.Contains(err.Error(), "cannot find replica") { + return nil + } + return errors.Wrapf(err, "failed to remove failed replica %v from engine instance", r.Name) + } + + return nil +} + func canDeleteInstance(r *longhorn.Replica) bool { return types.IsDataEngineV1(r.Spec.DataEngine) || (types.IsDataEngineV2(r.Spec.DataEngine) && r.DeletionTimestamp != nil) @@ -608,7 +658,32 @@ func deleteUnixSocketFile(volumeName string) error { return os.RemoveAll(filepath.Join(types.UnixDomainSocketDirectoryOnHost, volumeName+filepath.Ext(".sock"))) } -func (rc *ReplicaController) GetInstance(obj interface{}) (*longhorn.InstanceProcess, error) { +func (rc *ReplicaController) SuspendInstance(obj interface{}) error { + return nil +} + +func (rc *ReplicaController) ResumeInstance(obj interface{}) error { + return nil +} + +func (rc *ReplicaController) SwitchOverTarget(obj interface{}) error { + return nil +} + +func (rc *ReplicaController) DeleteTarget(obj interface{}) error { + return nil +} + +func (rc *ReplicaController) RequireRemoteTargetInstance(obj interface{}) (bool, error) { + return false, nil +} + +func (rc *ReplicaController) IsEngine(obj interface{}) bool { + _, ok := obj.(*longhorn.Engine) + return ok +} + +func (rc *ReplicaController) GetInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceProcess, error) { r, ok := obj.(*longhorn.Replica) if !ok { return nil, fmt.Errorf("invalid object for replica instance get: %v", obj) @@ -619,7 +694,7 @@ func (rc *ReplicaController) GetInstance(obj interface{}) (*longhorn.InstancePro err error ) if r.Status.InstanceManagerName == "" { - im, err = rc.ds.GetInstanceManagerByInstanceRO(obj) + im, err = rc.ds.GetInstanceManagerByInstanceRO(obj, isInstanceOnRemoteNode) if err != nil { return nil, err } diff --git a/controller/uninstall_controller.go b/controller/uninstall_controller.go index 2b7251367c..6b5bb2306e 100644 --- a/controller/uninstall_controller.go +++ b/controller/uninstall_controller.go @@ -30,22 +30,24 @@ import ( ) const ( - CRDEngineName = "engines.longhorn.io" - CRDReplicaName = "replicas.longhorn.io" - CRDVolumeName = "volumes.longhorn.io" - CRDEngineImageName = "engineimages.longhorn.io" - CRDNodeName = "nodes.longhorn.io" - CRDInstanceManagerName = "instancemanagers.longhorn.io" - CRDShareManagerName = "sharemanagers.longhorn.io" - CRDBackingImageName = "backingimages.longhorn.io" - CRDBackingImageManagerName = "backingimagemanagers.longhorn.io" - CRDBackingImageDataSourceName = "backingimagedatasources.longhorn.io" - CRDBackupTargetName = "backuptargets.longhorn.io" - CRDBackupVolumeName = "backupvolumes.longhorn.io" - CRDBackupName = "backups.longhorn.io" - CRDRecurringJobName = "recurringjobs.longhorn.io" - CRDOrphanName = "orphans.longhorn.io" - CRDSnapshotName = "snapshots.longhorn.io" + CRDEngineName = "engines.longhorn.io" + CRDReplicaName = "replicas.longhorn.io" + CRDVolumeName = "volumes.longhorn.io" + CRDEngineImageName = "engineimages.longhorn.io" + CRDNodeName = "nodes.longhorn.io" + CRDInstanceManagerName = "instancemanagers.longhorn.io" + CRDShareManagerName = "sharemanagers.longhorn.io" + CRDBackingImageName = "backingimages.longhorn.io" + CRDBackingImageManagerName = "backingimagemanagers.longhorn.io" + CRDBackingImageDataSourceName = "backingimagedatasources.longhorn.io" + CRDBackupTargetName = "backuptargets.longhorn.io" + CRDBackupVolumeName = "backupvolumes.longhorn.io" + CRDBackupName = "backups.longhorn.io" + CRDRecurringJobName = "recurringjobs.longhorn.io" + CRDOrphanName = "orphans.longhorn.io" + CRDSnapshotName = "snapshots.longhorn.io" + CRDDataEngineUpgradeManagerName = "dataEngineUpgradeManagers.longhorn.io" + CRDNodeDataEngineUpgradeName = "nodeDataEngineUpgrades.longhorn.io" EnvLonghornNamespace = "LONGHORN_NAMESPACE" ) @@ -203,6 +205,18 @@ func NewUninstallController( } cacheSyncs = append(cacheSyncs, ds.SnapshotInformer.HasSynced) } + if _, err := extensionsClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), CRDDataEngineUpgradeManagerName, metav1.GetOptions{}); err == nil { + if _, err = ds.DataEngineUpgradeManagerInformer.AddEventHandler(c.controlleeHandler()); err != nil { + return nil, err + } + cacheSyncs = append(cacheSyncs, ds.DataEngineUpgradeManagerInformer.HasSynced) + } + if _, err := extensionsClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), CRDNodeDataEngineUpgradeName, metav1.GetOptions{}); err == nil { + if _, err = ds.NodeDataEngineUpgradeInformer.AddEventHandler(c.controlleeHandler()); err != nil { + return nil, err + } + cacheSyncs = append(cacheSyncs, ds.NodeDataEngineUpgradeInformer.HasSynced) + } c.cacheSyncs = cacheSyncs @@ -636,6 +650,20 @@ func (c *UninstallController) deleteCRs() (bool, error) { return true, c.deleteSystemRestores(systemRestores) } + if upgradeManagers, err := c.ds.ListDataEngineUpgradeManagers(); err != nil { + return true, err + } else if len(upgradeManagers) > 0 { + c.logger.Infof("Found %d dataEngineUpgradeManagers remaining", len(upgradeManagers)) + return true, c.deleteDataEngineUpgradeManagers(upgradeManagers) + } + + if nodeUpgrades, err := c.ds.ListNodeDataEngineUpgrades(); err != nil { + return true, err + } else if len(nodeUpgrades) > 0 { + c.logger.Infof("Found %d nodeDataEngineUpgrades remaining", len(nodeUpgrades)) + return true, c.deleteNodeDataEngineUpgrades(nodeUpgrades) + } + return false, nil } @@ -1159,6 +1187,74 @@ func (c *UninstallController) deleteSystemRestores(systemRestores map[string]*lo return nil } +func (c *UninstallController) deleteDataEngineUpgradeManagers(upgradeManagers map[string]*longhorn.DataEngineUpgradeManager) (err error) { + defer func() { + err = errors.Wrapf(err, "failed to delete dataEngineUpgradeManagers") + }() + for _, upgradeManager := range upgradeManagers { + log := getLoggerForDataEngineUpgradeManager(c.logger, upgradeManager) + timeout := metav1.NewTime(time.Now().Add(-gracePeriod)) + if upgradeManager.DeletionTimestamp == nil { + if errDelete := c.ds.DeleteDataEngineUpgradeManager(upgradeManager.Name); errDelete != nil { + if datastore.ErrorIsNotFound(errDelete) { + log.Info("DataEngineUpgradeManager is not found") + } else { + err = errors.Wrap(errDelete, "failed to mark for deletion") + return + } + } else { + log.Info("Marked for deletion") + } + } else if upgradeManager.DeletionTimestamp.Before(&timeout) { + if errRemove := c.ds.RemoveFinalizerForDataEngineUpgradeManager(upgradeManager); errRemove != nil { + if datastore.ErrorIsNotFound(errRemove) { + log.Info("DataEngineUpgradeManager is not found") + } else { + err = errors.Wrap(errRemove, "failed to remove finalizer") + return + } + } else { + log.Info("Removed finalizer") + } + } + } + return nil +} + +func (c *UninstallController) deleteNodeDataEngineUpgrades(nodeDataEngineUpgrades map[string]*longhorn.NodeDataEngineUpgrade) (err error) { + defer func() { + err = errors.Wrapf(err, "failed to delete nodeDataEngineUpgrades") + }() + for _, nodeDataEngineUpgrade := range nodeDataEngineUpgrades { + log := getLoggerForNodeDataEngineUpgrade(c.logger, nodeDataEngineUpgrade) + timeout := metav1.NewTime(time.Now().Add(-gracePeriod)) + if nodeDataEngineUpgrade.DeletionTimestamp == nil { + if errDelete := c.ds.DeleteNodeDataEngineUpgrade(nodeDataEngineUpgrade.Name); errDelete != nil { + if datastore.ErrorIsNotFound(errDelete) { + log.Info("NodeDataEngineUpgrade is not found") + } else { + err = errors.Wrap(errDelete, "failed to mark for deletion") + return + } + } else { + log.Info("Marked for deletion") + } + } else if nodeDataEngineUpgrade.DeletionTimestamp.Before(&timeout) { + if errRemove := c.ds.RemoveFinalizerForNodeDataEngineUpgrade(nodeDataEngineUpgrade); errRemove != nil { + if datastore.ErrorIsNotFound(errRemove) { + log.Info("NodeDataEngineUpgrade is not found") + } else { + err = errors.Wrap(errRemove, "failed to remove finalizer") + return + } + } else { + log.Info("Removed finalizer") + } + } + } + return nil +} + func (c *UninstallController) deleteManager() (bool, error) { log := getLoggerForUninstallDaemonSet(c.logger, types.LonghornManagerDaemonSetName) diff --git a/controller/upgrade_manager_controller.go b/controller/upgrade_manager_controller.go new file mode 100644 index 0000000000..8c19a2139d --- /dev/null +++ b/controller/upgrade_manager_controller.go @@ -0,0 +1,283 @@ +package controller + +import ( + "fmt" + "reflect" + "time" + + "github.com/pkg/errors" + "github.com/sirupsen/logrus" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/kubernetes/pkg/controller" + + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + clientset "k8s.io/client-go/kubernetes" + v1core "k8s.io/client-go/kubernetes/typed/core/v1" + + "github.com/longhorn/longhorn-manager/controller/monitor" + "github.com/longhorn/longhorn-manager/datastore" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" +) + +type DataEngineUpgradeManagerController struct { + *baseController + + // which namespace controller is running with + namespace string + // use as the OwnerID of the controller + controllerID string + + kubeClient clientset.Interface + eventRecorder record.EventRecorder + + dataEngineUpgradeManagerMonitor monitor.Monitor + + ds *datastore.DataStore + + cacheSyncs []cache.InformerSynced +} + +func NewDataEngineUpgradeManagerController( + logger logrus.FieldLogger, + ds *datastore.DataStore, + scheme *runtime.Scheme, + kubeClient clientset.Interface, + controllerID string, + namespace string) (*DataEngineUpgradeManagerController, error) { + + eventBroadcaster := record.NewBroadcaster() + eventBroadcaster.StartLogging(logrus.Infof) + // TODO: remove the wrapper when every clients have moved to use the clientset. + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{ + Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events(""), + }) + + uc := &DataEngineUpgradeManagerController{ + baseController: newBaseController("longhorn-data-engine-upgrade-manager", logger), + + namespace: namespace, + controllerID: controllerID, + + ds: ds, + + kubeClient: kubeClient, + eventRecorder: eventBroadcaster.NewRecorder(scheme, corev1.EventSource{Component: "longhorn-data-engine-upgrade-manager-controller"}), + } + + if _, err := ds.DataEngineUpgradeManagerInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: uc.enqueueDataEngineUpgradeManager, + UpdateFunc: func(old, cur interface{}) { uc.enqueueDataEngineUpgradeManager(cur) }, + DeleteFunc: uc.enqueueDataEngineUpgradeManager, + }); err != nil { + return nil, err + } + uc.cacheSyncs = append(uc.cacheSyncs, ds.DataEngineUpgradeManagerInformer.HasSynced) + + return uc, nil +} + +func (uc *DataEngineUpgradeManagerController) enqueueDataEngineUpgradeManager(obj interface{}) { + key, err := controller.KeyFunc(obj) + if err != nil { + utilruntime.HandleError(fmt.Errorf("failed to get key for object %#v: %v", obj, err)) + return + } + + uc.queue.Add(key) +} + +func (uc *DataEngineUpgradeManagerController) Run(workers int, stopCh <-chan struct{}) { + defer utilruntime.HandleCrash() + defer uc.queue.ShutDown() + + uc.logger.Info("Starting Longhorn DataEngineUpgradeManager controller") + defer uc.logger.Info("Shut down Longhorn DataEngineUpgradeManager controller") + + if !cache.WaitForNamedCacheSync(uc.name, stopCh, uc.cacheSyncs...) { + return + } + for i := 0; i < workers; i++ { + go wait.Until(uc.worker, time.Second, stopCh) + } + <-stopCh +} + +func (uc *DataEngineUpgradeManagerController) worker() { + for uc.processNextWorkItem() { + } +} + +func (uc *DataEngineUpgradeManagerController) processNextWorkItem() bool { + key, quit := uc.queue.Get() + if quit { + return false + } + defer uc.queue.Done(key) + err := uc.syncDataEngineUpgradeManager(key.(string)) + uc.handleErr(err, key) + return true +} + +func (uc *DataEngineUpgradeManagerController) handleErr(err error, key interface{}) { + if err == nil { + uc.queue.Forget(key) + return + } + + log := uc.logger.WithField("dataEngineUpgradeManager", key) + if uc.queue.NumRequeues(key) < maxRetries { + handleReconcileErrorLogging(log, err, "Failed to sync Longhorn DataEngineUpgradeManager resource") + uc.queue.AddRateLimited(key) + return + } + + utilruntime.HandleError(err) + handleReconcileErrorLogging(log, err, "Dropping Longhorn dataEngineUpgradeManager out of the queue") + uc.queue.Forget(key) +} + +func getLoggerForDataEngineUpgradeManager(logger logrus.FieldLogger, upgradeManager *longhorn.DataEngineUpgradeManager) *logrus.Entry { + return logger.WithFields( + logrus.Fields{ + "dataEngineUpgradeManager": upgradeManager.Name, + }, + ) +} + +func (uc *DataEngineUpgradeManagerController) isResponsibleFor(upgrade *longhorn.DataEngineUpgradeManager) bool { + return isControllerResponsibleFor(uc.controllerID, uc.ds, upgrade.Name, "", upgrade.Status.OwnerID) +} + +func (uc *DataEngineUpgradeManagerController) syncDataEngineUpgradeManager(key string) (err error) { + defer func() { + err = errors.Wrapf(err, "failed to sync dataEngineUpgradeManager %v", key) + }() + + namespace, name, err := cache.SplitMetaNamespaceKey(key) + if err != nil { + return err + } + if namespace != uc.namespace { + return nil + } + + return uc.reconcile(name) +} + +func (uc *DataEngineUpgradeManagerController) reconcile(upgradeManagerName string) (err error) { + upgradeManager, err := uc.ds.GetDataEngineUpgradeManager(upgradeManagerName) + if err != nil { + if !apierrors.IsNotFound(err) { + return err + } + return nil + } + + log := getLoggerForDataEngineUpgradeManager(uc.logger, upgradeManager) + + if !uc.isResponsibleFor(upgradeManager) { + return nil + } + + if upgradeManager.Status.OwnerID != uc.controllerID { + upgradeManager.Status.OwnerID = uc.controllerID + upgradeManager, err = uc.ds.UpdateDataEngineUpgradeManagerStatus(upgradeManager) + if err != nil { + // we don't mind others coming first + if apierrors.IsConflict(errors.Cause(err)) { + return nil + } + return err + } + log.Infof("DataEngineUpgradeManager resource %v got new owner %v", upgradeManager.Name, uc.controllerID) + } + + if !upgradeManager.DeletionTimestamp.IsZero() { + if uc.dataEngineUpgradeManagerMonitor != nil { + uc.dataEngineUpgradeManagerMonitor.Close() + uc.dataEngineUpgradeManagerMonitor = nil + } + + return uc.ds.RemoveFinalizerForDataEngineUpgradeManager(upgradeManager) + } + + if upgradeManager.Status.State == longhorn.UpgradeStateCompleted || + upgradeManager.Status.State == longhorn.UpgradeStateError { + return nil + } + + existingUpgradeManager := upgradeManager.DeepCopy() + defer func() { + if err != nil { + return + } + if !reflect.DeepEqual(existingUpgradeManager.Status, upgradeManager.Status) { + if _, err := uc.ds.UpdateDataEngineUpgradeManagerStatus(upgradeManager); err != nil && apierrors.IsConflict(errors.Cause(err)) { + log.WithError(err).Debugf("Requeue %v due to conflict", upgradeManagerName) + uc.enqueueDataEngineUpgradeManager(upgradeManager) + } + } + }() + + if _, err := uc.createDataEngineUpgradeManagerMonitor(upgradeManager); err != nil { + return err + } + + if uc.dataEngineUpgradeManagerMonitor != nil { + data, err := uc.dataEngineUpgradeManagerMonitor.GetCollectedData() + if err != nil { + log.WithError(err).Error("Failed to get data from dataEngineUpgradeManager monitor") + } else { + status, ok := data.(*longhorn.DataEngineUpgradeManagerStatus) + if !ok { + log.Errorf("Failed to assert value from dataEngineUpgradeManager monitor: %v", data) + } else { + upgradeManager.Status.InstanceManagerImage = status.InstanceManagerImage + upgradeManager.Status.State = status.State + upgradeManager.Status.Message = status.Message + upgradeManager.Status.UpgradingNode = status.UpgradingNode + upgradeManager.Status.UpgradeNodes = make(map[string]*longhorn.UpgradeNodeStatus) + for k, v := range status.UpgradeNodes { + upgradeManager.Status.UpgradeNodes[k] = &longhorn.UpgradeNodeStatus{ + State: v.State, + Message: v.Message, + } + } + } + } + } + + if upgradeManager.Status.State == longhorn.UpgradeStateCompleted || + upgradeManager.Status.State == longhorn.UpgradeStateError { + uc.dataEngineUpgradeManagerMonitor.Close() + uc.dataEngineUpgradeManagerMonitor = nil + } + + return nil +} + +func (uc *DataEngineUpgradeManagerController) createDataEngineUpgradeManagerMonitor(upgradeManager *longhorn.DataEngineUpgradeManager) (monitor.Monitor, error) { + if uc.dataEngineUpgradeManagerMonitor != nil { + return uc.dataEngineUpgradeManagerMonitor, nil + } + + monitor, err := monitor.NewDataEngineUpgradeManagerMonitor(uc.logger, uc.ds, upgradeManager.Name, upgradeManager.Status.OwnerID, uc.enqueueDataEngineUpgradeManagerForMonitor) + if err != nil { + return nil, err + } + + uc.dataEngineUpgradeManagerMonitor = monitor + + return monitor, nil +} + +func (uc *DataEngineUpgradeManagerController) enqueueDataEngineUpgradeManagerForMonitor(key string) { + uc.queue.Add(key) +} diff --git a/controller/utils.go b/controller/utils.go index 1c27ce1f64..cfecd2855e 100644 --- a/controller/utils.go +++ b/controller/utils.go @@ -23,10 +23,6 @@ func hasReplicaEvictionRequested(rs map[string]*longhorn.Replica) bool { return false } -func isVolumeUpgrading(v *longhorn.Volume) bool { - return v.Status.CurrentImage != v.Spec.Image -} - // isTargetVolumeOfAnActiveCloning checks if the input volume is the target volume of an on-going cloning process func isTargetVolumeOfAnActiveCloning(v *longhorn.Volume) bool { isCloningDesired := types.IsDataFromVolume(v.Spec.DataSource) diff --git a/controller/volume_controller.go b/controller/volume_controller.go index b514e6227c..af7958e329 100644 --- a/controller/volume_controller.go +++ b/controller/volume_controller.go @@ -1004,9 +1004,12 @@ func (c *VolumeController) cleanupCorruptedOrStaleReplicas(v *longhorn.Volume, r } continue } else if r.Spec.Image != v.Spec.Image { - // r.Spec.Active shouldn't be set for the leftover replicas, something must wrong - log.WithField("replica", r.Name).Warnf("Replica engine image %v is different from volume engine image %v, "+ - "but replica spec.Active has been set", r.Spec.Image, v.Spec.Image) + // For a v2 volume, the instance manager image of a replica can be different from the one of its volume + if types.IsDataEngineV1(v.Spec.DataEngine) { + // r.Spec.Active shouldn't be set for the leftover replicas, something must wrong + log.WithField("replica", r.Name).Warnf("Replica engine image %v is different from volume engine image %v, "+ + "but replica spec.Active has been set", r.Spec.Image, v.Spec.Image) + } } } @@ -1613,7 +1616,7 @@ func (c *VolumeController) reconcileAttachDetachStateMachine(v *longhorn.Volume, return err } if !c.areVolumeDependentResourcesOpened(e, rs) { - log.Warnf("Volume is attached but dependent resources are not opened") + log.WithField("e.Status.CurrentState", e.Status.CurrentState).Warn("Volume is attached but dependent resources are not opened") } } return nil @@ -1821,9 +1824,16 @@ func (c *VolumeController) openVolumeDependentResources(v *longhorn.Volume, e *l return err } if canIMLaunchReplica { - if r.Spec.FailedAt == "" && r.Spec.Image == v.Status.CurrentImage { + if r.Spec.FailedAt == "" { if r.Status.CurrentState == longhorn.InstanceStateStopped { - r.Spec.DesireState = longhorn.InstanceStateRunning + if types.IsDataEngineV1(e.Spec.DataEngine) { + if r.Spec.Image == v.Status.CurrentImage { + r.Spec.DesireState = longhorn.InstanceStateRunning + } + } else { + // For v2 volume, the image of replica is no need to be the same as the volume image + r.Spec.DesireState = longhorn.InstanceStateRunning + } } } } else { @@ -1860,8 +1870,11 @@ func (c *VolumeController) openVolumeDependentResources(v *longhorn.Volume, e *l if r.Spec.NodeID == "" { continue } - if r.Spec.Image != v.Status.CurrentImage { - continue + // For v2 volume, the image of replica is no need to be the same as the volume image + if types.IsDataEngineV1(v.Spec.DataEngine) { + if r.Spec.Image != v.Status.CurrentImage { + continue + } } if r.Spec.EngineName != e.Name { continue @@ -1907,7 +1920,15 @@ func (c *VolumeController) openVolumeDependentResources(v *longhorn.Volume, e *l } e.Spec.NodeID = v.Spec.NodeID e.Spec.ReplicaAddressMap = replicaAddressMap - e.Spec.DesireState = longhorn.InstanceStateRunning + + if types.IsDataEngineV1(v.Spec.DataEngine) { + e.Spec.DesireState = longhorn.InstanceStateRunning + } else { + if v.Spec.Image == v.Status.CurrentImage && v.Spec.TargetNodeIDForLiveUpgrade == v.Status.CurrentTargetNodeIDForLiveUpgrade { + e.Spec.DesireState = longhorn.InstanceStateRunning + } + } + // The volume may be activated e.Spec.DisableFrontend = v.Status.FrontendDisabled e.Spec.Frontend = v.Spec.Frontend @@ -1950,6 +1971,7 @@ func (c *VolumeController) closeVolumeDependentResources(v *longhorn.Volume, e * } e.Spec.RequestedBackupRestore = "" e.Spec.NodeID = "" + e.Spec.TargetNodeIDForLiveUpgrade = "" e.Spec.DesireState = longhorn.InstanceStateStopped } // must make sure engine stopped first before stopping replicas @@ -2061,7 +2083,7 @@ func (c *VolumeController) canInstanceManagerLaunchReplica(r *longhorn.Replica) if r.Status.InstanceManagerName != "" { return true, nil } - defaultIM, err := c.ds.GetInstanceManagerByInstanceRO(r) + defaultIM, err := c.ds.GetInstanceManagerByInstanceRO(r, false) if err != nil { return false, errors.Wrapf(err, "failed to find instance manager for replica %v", r.Name) } @@ -2211,6 +2233,25 @@ func hasLocalReplicaOnSameNodeAsEngine(e *longhorn.Engine, rs map[string]*longho // It will count all the potentially usable replicas, since some replicas maybe // blank or in rebuilding state func (c *VolumeController) replenishReplicas(v *longhorn.Volume, e *longhorn.Engine, rs map[string]*longhorn.Replica, hardNodeAffinity string) error { + log := getLoggerForVolume(c.logger, v) + + // Skip the replenishReplicas if the volume is being upgraded + if types.IsDataEngineV2(v.Spec.DataEngine) { + if v.Status.OwnerID == "" { + log.Warn("spec.ownerID is empty, skip replenishing replica") + return nil + } + node, err := c.ds.GetNode(v.Status.OwnerID) + if err != nil { + return errors.Wrapf(err, "failed to get node %v for checking volume upgrade status", v.Status.OwnerID) + } + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + if dataEngineUpgradeRequestedCondition.Status == longhorn.ConditionStatusTrue { + log.Info("Node is being upgraded, skip replenishing replica") + return nil + } + } + concurrentRebuildingLimit, err := c.ds.GetSettingAsInt(types.SettingNameConcurrentReplicaRebuildPerNodeLimit) if err != nil { return err @@ -2248,8 +2289,6 @@ func (c *VolumeController) replenishReplicas(v *longhorn.Volume, e *longhorn.Eng return nil } - log := getLoggerForVolume(c.logger, v) - replenishCount, updateNodeAffinity := c.getReplenishReplicasCount(v, rs, e) if hardNodeAffinity == "" && updateNodeAffinity != "" { hardNodeAffinity = updateNodeAffinity @@ -3027,8 +3066,8 @@ func (c *VolumeController) upgradeEngineForVolume(v *longhorn.Volume, es map[str } log := getLoggerForVolume(c.logger, v).WithFields(logrus.Fields{ - "engine": e.Name, - "volumeDesiredEngineImage": v.Spec.Image, + "engine": e.Name, + "volumeDesiredImage": v.Spec.Image, }) if !isVolumeUpgrading(v) { @@ -3049,30 +3088,13 @@ func (c *VolumeController) upgradeEngineForVolume(v *longhorn.Volume, es map[str // If volume is detached accidentally during the live upgrade, // the live upgrade info and the inactive replicas are meaningless. if v.Status.State == longhorn.VolumeStateDetached { - if e.Spec.Image != v.Spec.Image { - e.Spec.Image = v.Spec.Image - e.Spec.UpgradedReplicaAddressMap = map[string]string{} - } - for _, r := range rs { - if r.Spec.Image != v.Spec.Image { - r.Spec.Image = v.Spec.Image - rs[r.Name] = r - } - if !r.Spec.Active { - log.Infof("Removing inactive replica %v when the volume is detached accidentally during the live upgrade", r.Name) - if err := c.deleteReplica(r, rs); err != nil { - return err - } - } - } - // TODO current replicas should be calculated by checking if there is - // any other image exists except for the v.Spec.Image - v.Status.CurrentImage = v.Spec.Image - return nil + return c.handleDetachedVolumeUpgrade(v, e, rs, log) } - // Only start live upgrade if volume is healthy - if v.Status.State != longhorn.VolumeStateAttached || v.Status.Robustness != longhorn.VolumeRobustnessHealthy { + // Only start live upgrade if + // - v1 volume is healthy + // - v2 volume is healthy or degraded + if isVolumeNotEligibleForLiveUpgrade(v) { if v.Status.State != longhorn.VolumeStateAttached || v.Status.Robustness != longhorn.VolumeRobustnessDegraded { return nil } @@ -3159,18 +3181,160 @@ func (c *VolumeController) upgradeEngineForVolume(v *longhorn.Volume, es map[str e.Spec.Image = v.Spec.Image } } - c.finishLiveEngineUpgrade(v, e, rs, log) } else { - // TODO: Implement the logic for data engine v2 + if isV2DataEngineLiveUpgradeCompleted(v) { + return nil + } + + log = log.WithField("engine", e.Name) + + if v.Spec.TargetNodeIDForLiveUpgrade != "" { + if e.Spec.TargetNodeIDForLiveUpgrade != v.Spec.TargetNodeIDForLiveUpgrade { + if e.Spec.Image != v.Spec.Image { + log.Infof("Updating image from %s to %s for v2 data engine live upgrade", e.Spec.Image, v.Spec.Image) + e.Spec.Image = v.Spec.Image + } + + log.Infof("Updating target node from %s to %s for v2 data engine live upgrade", e.Spec.TargetNodeIDForLiveUpgrade, v.Spec.TargetNodeIDForLiveUpgrade) + e.Spec.TargetNodeIDForLiveUpgrade = v.Spec.TargetNodeIDForLiveUpgrade + return nil + } + + if !e.Status.TargetInstanceReplacementCreated && e.Status.CurrentTargetNodeIDForLiveUpgrade != v.Spec.TargetNodeIDForLiveUpgrade { + log.Debug("Waiting for target instance replacement to be created") + return nil + } + + if e.Status.CurrentTargetNodeIDForLiveUpgrade != v.Spec.TargetNodeIDForLiveUpgrade { + if e.Status.CurrentState == longhorn.InstanceStateRunning { + log.Infof("Suspending engine for v2 data engine live upgrade") + e.Spec.DesireState = longhorn.InstanceStateSuspended + return nil + } else { // nolint: staticcheck + // TODO: what if e.Status.CurrentState != longhorn.InstanceStateRunning + } + } + + // At this moment: + // 1. volume is running and healthy + // 2. engine is suspended + // 3. initiator is correcting to new target + // 4. old target is still existing + + if replicaAddressMap, err := c.constructReplicaAddressMap(v, e, rs); err != nil { + return nil + } else { + if !reflect.DeepEqual(e.Spec.UpgradedReplicaAddressMap, replicaAddressMap) { + e.Spec.UpgradedReplicaAddressMap = replicaAddressMap + return nil + } + } + + if e.Status.CurrentState == longhorn.InstanceStateSuspended { + log.Infof("Resuming engine for live upgrade") + e.Spec.DesireState = longhorn.InstanceStateRunning + return nil + } + + if e.Status.CurrentState != longhorn.InstanceStateRunning { + log.Debugf("Engine is in %v, waiting for engine to be running", e.Status.CurrentState) + return nil + } + + // At this point: + // 1. volume is running and healthy + // 1. engine is running + // 2. initiator is correcting to new target + // 4. old target is still deleted + + if v.Status.CurrentTargetNodeIDForLiveUpgrade != v.Spec.TargetNodeIDForLiveUpgrade { + v.Status.CurrentTargetNodeIDForLiveUpgrade = v.Spec.TargetNodeIDForLiveUpgrade + return nil + } + } + } + + c.finishLiveEngineUpgrade(v, e, rs, log) + + return nil +} + +func (c *VolumeController) handleDetachedVolumeUpgrade(v *longhorn.Volume, e *longhorn.Engine, rs map[string]*longhorn.Replica, log logrus.FieldLogger) error { + if e.Spec.Image != v.Spec.Image { + e.Spec.Image = v.Spec.Image + e.Spec.UpgradedReplicaAddressMap = map[string]string{} + e.Spec.TargetNodeIDForLiveUpgrade = "" + } + + for name, r := range rs { + if err := c.updateDetachedReplica(v, r); err != nil { + return err + } + if !r.Spec.Active { + log.Infof("Removing inactive replica %v when the volume is detached during live upgrade", r.Name) + if err := c.deleteReplica(r, rs); err != nil { + return err + } + continue + } + rs[name] = r + } + // TODO current replicas should be calculated by checking if there is + // any other image exists except for the v.Spec.Image + v.Status.CurrentImage = v.Spec.Image + return nil +} + +func (c *VolumeController) updateDetachedReplica(v *longhorn.Volume, r *longhorn.Replica) error { + if r.Spec.Image == v.Spec.Image { + return nil + } + + if types.IsDataEngineV1(v.Spec.DataEngine) { + r.Spec.Image = v.Spec.Image return nil } + + im, err := c.ds.GetRunningInstanceManagerByNodeRO(r.Spec.NodeID, longhorn.DataEngineTypeV2) + if err != nil { + return err + } + r.Spec.Image = im.Spec.Image return nil } +func isVolumeNotEligibleForLiveUpgrade(v *longhorn.Volume) bool { + if v.Status.State != longhorn.VolumeStateAttached { + return true + } + + if types.IsDataEngineV1(v.Spec.DataEngine) { + if v.Status.Robustness != longhorn.VolumeRobustnessHealthy { + return true + } + } + + if types.IsDataEngineV2(v.Spec.DataEngine) { + if v.Status.Robustness != longhorn.VolumeRobustnessHealthy && + v.Status.Robustness != longhorn.VolumeRobustnessDegraded { + return true + } + } + + return false +} + +func isV2DataEngineLiveUpgradeCompleted(v *longhorn.Volume) bool { + return v.Spec.TargetNodeIDForLiveUpgrade != "" && + v.Spec.Image == v.Status.CurrentImage && + v.Spec.TargetNodeIDForLiveUpgrade == v.Status.CurrentTargetNodeIDForLiveUpgrade && + v.Spec.NodeID == v.Status.CurrentNodeID +} + func (c *VolumeController) constructReplicaAddressMap(v *longhorn.Volume, e *longhorn.Engine, dataPathToNewReplica map[string]*longhorn.Replica) (map[string]string, error) { log := getLoggerForVolume(c.logger, v).WithFields(logrus.Fields{ - "engine": e.Name, - "volumeDesiredEngineImage": v.Spec.Image, + "engine": e.Name, + "volumeDesiredImage": v.Spec.Image, }) replicaAddressMap := map[string]string{} @@ -3200,8 +3364,8 @@ func (c *VolumeController) constructReplicaAddressMap(v *longhorn.Volume, e *lon func (c *VolumeController) groupReplicasByImageAndState(v *longhorn.Volume, e *longhorn.Engine, rs map[string]*longhorn.Replica) (unknownReplicas, dataPathToOldRunningReplica, dataPathToNewReplica map[string]*longhorn.Replica) { log := getLoggerForVolume(c.logger, v).WithFields(logrus.Fields{ - "engine": e.Name, - "volumeDesiredEngineImage": v.Spec.Image, + "engine": e.Name, + "volumeDesiredImage": v.Spec.Image, }) unknownReplicas = map[string]*longhorn.Replica{} @@ -3256,20 +3420,29 @@ func (c *VolumeController) checkOldAndNewEngineImagesForLiveUpgrade(v *longhorn. } func (c *VolumeController) finishLiveEngineUpgrade(v *longhorn.Volume, e *longhorn.Engine, rs map[string]*longhorn.Replica, log *logrus.Entry) { - if e.Status.CurrentImage != v.Spec.Image || - e.Status.CurrentState != longhorn.InstanceStateRunning { + if e.Status.CurrentImage != v.Spec.Image { + return + } + if e.Status.CurrentState != longhorn.InstanceStateRunning { return } - c.switchActiveReplicas(rs, func(r *longhorn.Replica, image string) bool { - return r.Spec.Image == image && r.DeletionTimestamp.IsZero() - }, v.Spec.Image) + if types.IsDataEngineV1(v.Spec.DataEngine) { + c.switchActiveReplicas(rs, func(r *longhorn.Replica, image string) bool { + return r.Spec.Image == image && r.DeletionTimestamp.IsZero() + }, v.Spec.Image) + } e.Spec.ReplicaAddressMap = e.Spec.UpgradedReplicaAddressMap e.Spec.UpgradedReplicaAddressMap = map[string]string{} // cleanupCorruptedOrStaleReplicas() will take care of old replicas log.Infof("Engine %v has been upgraded from %v to %v", e.Name, v.Status.CurrentImage, v.Spec.Image) v.Status.CurrentImage = v.Spec.Image + + if v.Spec.TargetNodeIDForLiveUpgrade == "" { + v.Status.CurrentTargetNodeIDForLiveUpgrade = "" + e.Spec.TargetNodeIDForLiveUpgrade = "" + } } func (c *VolumeController) updateRequestedBackupForVolumeRestore(v *longhorn.Volume, e *longhorn.Engine) (err error) { @@ -3646,6 +3819,13 @@ func (c *VolumeController) createEngine(v *longhorn.Volume, currentEngineName st } func (c *VolumeController) newReplica(v *longhorn.Volume, e *longhorn.Engine, hardNodeAffinity string) *longhorn.Replica { + image := v.Status.CurrentImage + if types.IsDataEngineV2(v.Spec.DataEngine) { + // spec.image of v2 replica can be empty and different from the volume image, + // because the image of a v2 replica is the same as the running instance manager. + image = "" + } + return &longhorn.Replica{ ObjectMeta: metav1.ObjectMeta{ Name: types.GenerateReplicaNameForVolume(v.Name), @@ -3655,7 +3835,7 @@ func (c *VolumeController) newReplica(v *longhorn.Volume, e *longhorn.Engine, ha InstanceSpec: longhorn.InstanceSpec{ VolumeName: v.Name, VolumeSize: v.Spec.Size, - Image: v.Status.CurrentImage, + Image: image, DataEngine: v.Spec.DataEngine, DesireState: longhorn.InstanceStateStopped, }, @@ -4926,9 +5106,9 @@ func (c *VolumeController) shouldCleanUpFailedReplica(v *longhorn.Volume, r *lon return true } // TODO: Remove it once we can reuse failed replicas during v2 rebuilding - if types.IsDataEngineV2(v.Spec.DataEngine) { - return true - } + // if types.IsDataEngineV2(v.Spec.DataEngine) { + // return true + // } // Failed too long ago to be useful during a rebuild. if v.Spec.StaleReplicaTimeout > 0 && util.TimestampAfterTimeout(r.Spec.FailedAt, time.Duration(v.Spec.StaleReplicaTimeout)*time.Minute) { @@ -4942,3 +5122,13 @@ func (c *VolumeController) shouldCleanUpFailedReplica(v *longhorn.Volume, r *lon } return false } + +func isVolumeUpgrading(v *longhorn.Volume) bool { + imageNotUpdated := v.Status.CurrentImage != v.Spec.Image + + if types.IsDataEngineV1(v.Spec.DataEngine) { + return imageNotUpdated + } + + return imageNotUpdated || v.Spec.TargetNodeIDForLiveUpgrade != v.Status.CurrentTargetNodeIDForLiveUpgrade +} diff --git a/controller/volume_controller_test.go b/controller/volume_controller_test.go index 6e1eab29f0..f85d321f74 100644 --- a/controller/volume_controller_test.go +++ b/controller/volume_controller_test.go @@ -503,8 +503,11 @@ func (s *TestSuite) TestVolumeLifeCycle(c *C) { e.Status.OwnerID = TestNode1 e.Status.CurrentState = longhorn.InstanceStateStopped e.Status.IP = "" + e.Status.TargetIP = "" e.Status.StorageIP = "" + e.Status.StorageTargetIP = "" e.Status.Port = 0 + e.Status.TargetPort = 0 e.Status.Endpoint = "" e.Status.CurrentImage = "" e.Status.ReplicaModeMap = map[string]longhorn.ReplicaMode{} diff --git a/coverage.out b/coverage.out new file mode 100644 index 0000000000..3632d8453a --- /dev/null +++ b/coverage.out @@ -0,0 +1,12286 @@ +mode: atomic +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:55.116,79.42 6 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:79.42,79.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:81.17,83.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:84.2,88.42 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:88.42,88.96 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:90.20,92.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:93.2,97.42 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:97.42,97.99 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:99.20,101.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:102.2,106.42 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:106.42,106.84 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:108.20,110.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:111.2,115.20 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:115.20,117.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:118.2,120.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:123.77,130.88 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:130.88,132.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:134.2,134.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:134.31,136.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:138.2,138.10 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:141.45,142.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:142.33,143.3 0 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:146.63,149.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:149.10,151.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:152.2,157.13 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:160.74,161.16 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:161.16,164.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:166.2,167.45 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:167.45,171.3 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:173.2,175.23 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:178.99,184.2 1 2 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:186.77,187.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:187.15,189.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:190.2,191.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:191.16,193.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:194.2,194.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:194.32,196.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:198.2,199.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:199.16,200.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:200.37,202.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:203.3,203.67 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:206.2,208.41 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:208.41,210.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:211.2,211.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:211.53,214.17 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:214.17,216.47 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:216.47,218.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:219.4,219.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:221.3,221.64 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:224.2,224.43 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:224.43,226.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:226.17,228.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:229.3,229.25 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:229.25,232.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:233.3,233.78 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:233.78,236.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:237.3,238.71 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:238.71,240.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:241.3,241.61 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:246.2,246.36 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:246.36,248.84 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:248.84,249.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:249.48,251.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:252.4,254.14 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:256.3,256.145 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:259.2,260.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:260.15,261.17 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:261.17,263.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:264.3,264.71 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:264.71,265.112 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:265.112,268.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:270.3,270.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:270.74,272.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:273.3,273.117 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:273.117,276.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:279.2,279.50 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:279.50,281.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:282.2,282.49 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:282.49,284.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:286.2,286.71 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:286.71,288.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:291.2,291.46 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:291.46,293.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:295.2,295.69 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:295.69,297.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:299.2,299.67 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:299.67,301.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:303.2,303.69 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:303.69,305.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:307.2,307.70 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:307.70,309.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:311.2,313.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:316.103,318.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:318.16,319.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:319.32,321.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:322.3,322.73 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:325.2,325.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:325.32,327.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:329.2,330.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:330.16,332.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:335.2,335.35 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:335.35,337.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:339.2,340.48 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:340.48,344.59 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:344.59,349.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:354.2,354.26 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:354.26,356.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:356.8,358.52 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:358.52,359.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:359.34,361.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:364.3,364.51 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:364.51,367.18 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:367.18,370.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:372.4,372.119 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:376.2,376.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:379.106,386.58 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:386.58,388.24 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:388.24,389.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:390.9,391.59 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:391.59,392.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:396.3,396.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:396.34,398.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:400.3,400.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:403.2,403.58 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:403.58,404.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:404.34,405.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:407.3,407.100 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:407.100,411.12 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:417.3,418.63 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:422.121,424.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:424.16,425.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:425.32,427.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:428.3,428.80 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:431.2,431.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:431.31,433.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:435.2,435.76 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:435.76,437.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:439.2,439.145 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:442.103,446.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:446.16,448.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:449.2,449.29 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:449.29,450.35 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:450.35,451.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:453.3,456.41 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:456.41,458.99 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:458.99,460.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:461.4,462.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:465.3,465.88 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:465.88,466.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:469.3,469.141 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:469.141,470.57 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:470.57,471.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:476.3,477.67 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:477.67,479.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:480.3,480.39 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:480.39,481.99 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:481.99,483.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:484.4,485.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:489.2,489.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:492.104,496.46 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:496.46,498.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:499.2,499.17 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:499.17,504.37 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:504.37,505.50 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:505.50,507.19 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:507.19,508.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:508.37,510.7 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:511.6,511.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:513.5,518.123 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:518.123,520.11 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:525.3,525.22 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:525.22,527.18 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:527.18,529.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:532.4,532.70 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:532.70,534.19 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:534.19,536.6 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:539.4,542.60 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:544.3,544.22 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:544.22,546.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:548.3,563.18 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:563.18,565.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:566.3,566.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:566.34,568.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:569.3,569.82 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:569.82,571.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:572.3,572.72 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:572.72,574.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:576.2,578.26 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:578.26,580.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:582.2,583.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:583.16,585.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:586.2,590.36 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:590.36,591.49 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:591.49,593.11 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:593.11,595.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:597.4,597.60 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:597.60,599.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:601.4,601.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:601.48,603.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:605.4,606.18 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:606.18,608.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:609.4,609.75 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:609.75,611.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:615.2,615.25 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:615.25,617.65 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:617.65,618.62 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:618.62,619.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:621.4,621.60 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:621.60,623.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:625.4,625.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:625.48,627.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:629.4,630.18 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:630.18,632.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:633.4,633.75 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:633.75,635.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:641.2,641.95 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:641.95,643.68 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:643.68,646.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:647.8,647.61 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:647.61,648.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:649.52,654.27 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:655.11,656.179 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:660.2,660.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:660.32,664.21 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:664.21,667.18 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:667.18,669.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:672.4,672.70 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:672.70,674.19 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:674.19,676.6 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:679.4,681.65 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:685.2,685.44 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:685.44,686.70 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:686.70,688.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:690.2,690.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:693.102,694.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:694.15,696.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:698.2,700.60 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:700.60,702.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:704.2,704.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:704.48,709.17 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:709.17,711.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:712.3,712.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:712.30,714.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:714.74,715.109 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:715.109,717.68 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:717.68,719.7 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:721.5,722.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:725.4,725.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:725.53,727.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:730.3,730.19 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:730.19,734.18 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:734.18,735.36 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:735.36,737.6 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:738.5,739.13 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:741.4,744.18 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:744.18,746.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:748.4,748.196 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:752.2,752.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:756.100,758.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:758.15,760.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:762.2,766.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:766.16,767.33 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:767.33,769.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:770.3,770.107 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:772.2,772.80 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:772.80,776.66 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:776.66,778.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:779.3,780.127 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:780.127,782.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:788.2,789.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:789.16,791.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:792.2,792.29 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:792.29,793.35 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:793.35,794.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:796.3,797.14 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:797.14,798.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:800.3,800.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:800.34,801.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:805.3,805.124 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:805.124,806.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:808.3,810.98 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:810.98,812.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:813.3,813.20 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:813.20,814.27 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:814.27,817.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:818.4,818.35 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:818.35,819.97 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:819.97,825.6 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:828.3,828.27 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:828.27,829.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:829.34,832.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:833.4,833.49 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:833.49,834.97 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:834.97,840.6 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:843.3,843.24 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:843.24,844.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:844.31,847.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:848.4,848.43 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:848.43,849.97 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:849.97,855.6 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:860.2,860.52 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:860.52,861.55 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:861.55,863.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:866.2,866.52 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:866.52,867.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:867.74,869.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:872.2,872.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:876.92,879.65 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:879.65,881.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:882.2,882.58 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:882.58,885.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:886.2,889.20 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:889.20,890.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:890.31,893.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:894.3,894.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:894.37,895.87 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:895.87,900.5 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:904.2,904.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:907.96,909.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:909.16,911.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:912.2,913.35 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:913.35,916.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:917.2,917.51 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:917.51,918.62 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:918.62,920.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:922.2,922.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:922.48,925.47 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:925.47,927.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:930.2,930.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:933.181,947.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:949.73,951.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:951.16,954.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:956.2,956.20 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:959.95,961.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:961.12,963.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:963.10,966.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:968.3,969.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:969.10,972.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:975.2,975.45 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:975.45,978.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:979.2,979.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:979.53,982.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:985.98,987.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:989.98,991.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:991.9,993.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:993.10,996.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:999.3,1000.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1000.10,1003.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1006.2,1007.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1007.9,1009.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1009.10,1012.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1015.3,1016.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1016.10,1019.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1022.2,1023.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1023.16,1026.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1029.2,1030.57 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1030.57,1033.153 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1033.153,1035.63 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1035.63,1037.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1043.83,1045.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1045.16,1047.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1047.10,1050.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1052.3,1053.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1053.10,1056.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1059.2,1059.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1059.37,1064.3 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1067.85,1069.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1072.124,1075.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1075.16,1077.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1078.2,1079.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1079.16,1081.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_controller.go:1082.2,1082.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:86.46,116.42 6 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:116.42,116.82 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:118.17,120.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:121.2,125.42 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:125.42,125.75 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:127.20,129.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:130.2,133.42 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:133.42,133.69 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:134.20,136.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:137.2,140.45 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:140.45,140.78 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:142.20,144.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:145.2,151.43 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:151.43,151.89 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:154.20,156.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:157.2,159.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:162.85,169.97 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:169.97,171.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:173.2,173.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:173.31,175.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:177.2,177.10 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:180.53,181.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:181.31,182.3 0 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:185.71,188.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:188.10,190.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:191.2,196.13 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:199.82,200.16 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:200.16,203.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:205.2,206.43 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:206.43,210.3 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:212.2,214.21 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:217.121,227.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:229.122,237.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:237.16,239.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:241.2,241.94 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:244.95,245.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:245.15,247.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:248.2,249.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:249.16,251.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:252.2,252.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:252.30,254.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:256.2,257.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:257.16,258.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:258.37,260.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:261.3,261.69 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:264.2,266.31 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:266.31,268.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:269.2,269.43 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:269.43,272.17 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:272.17,274.47 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:274.47,276.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:277.4,277.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:279.3,279.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:282.2,282.35 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:282.35,283.41 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:283.41,285.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:288.3,288.33 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:288.33,289.78 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:289.78,291.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:295.4,297.74 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:297.74,299.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:301.4,301.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:305.3,305.61 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:308.2,309.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:309.15,310.77 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:310.77,314.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:315.3,315.73 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:315.73,317.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:318.3,318.46 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:318.46,322.4 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:325.2,325.49 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:325.49,327.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:329.2,329.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:329.31,332.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:334.2,335.47 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:335.47,337.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:338.2,340.33 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:340.33,341.68 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:341.68,343.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:344.3,344.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:347.2,347.62 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:347.62,349.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:351.2,351.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:354.103,357.31 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:357.31,359.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:361.2,361.63 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:361.63,363.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:365.2,366.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:366.16,368.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:369.2,369.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:369.48,371.80 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:371.80,373.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:376.2,379.12 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:382.112,385.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:385.16,387.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:389.2,390.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:390.15,391.51 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:391.51,392.57 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:392.57,394.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:398.2,398.36 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:398.36,400.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:402.2,402.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:402.32,403.72 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:403.72,405.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:410.2,410.29 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:410.29,411.82 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:411.82,413.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:414.3,414.91 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:414.91,416.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:419.2,419.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:422.125,423.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:423.15,425.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:426.2,432.16 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:432.16,434.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:435.2,438.16 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:438.16,440.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:440.8,440.50 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:440.50,442.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:442.8,442.41 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:442.41,444.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:444.8,444.59 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:444.59,446.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:446.8,447.27 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:448.26,450.52 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:450.52,451.18 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:451.18,454.11 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:457.25,458.20 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:459.11,460.70 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:464.2,464.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:464.14,466.41 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:466.41,468.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:469.3,469.41 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:469.41,471.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:472.3,472.33 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:472.33,474.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:475.8,479.75 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:479.75,480.17 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:480.17,483.19 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:483.19,484.36 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:484.36,486.7 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:487.6,487.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:488.11,490.6 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:491.5,493.64 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:494.10,501.95 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:501.95,505.6 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:508.3,508.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:508.32,510.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:513.2,514.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:514.74,515.41 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:515.41,517.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:519.2,519.16 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:519.16,525.56 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:525.56,526.64 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:526.64,529.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:529.10,531.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:534.3,535.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:535.48,536.65 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:536.65,538.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:541.4,545.66 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:545.66,547.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:549.4,549.41 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:553.2,553.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:557.126,558.81 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:558.81,560.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:562.2,564.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:564.16,565.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:565.32,567.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:568.3,568.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:571.2,573.64 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:573.64,575.61 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:575.61,577.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:580.2,580.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:584.126,585.81 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:585.81,587.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:589.2,591.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:591.16,593.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:595.2,596.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:596.16,598.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:600.2,601.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:601.15,602.17 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:602.17,604.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:605.3,605.50 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:605.50,607.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:609.3,609.61 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:609.61,611.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:614.2,617.12 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:620.127,621.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:621.15,623.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:625.2,630.16 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:630.16,632.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:633.2,633.90 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:633.90,635.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:637.2,637.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:640.146,642.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:642.16,644.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:646.2,647.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:647.16,649.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:650.2,651.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:651.16,653.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:655.2,656.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:656.16,658.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:660.2,661.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:661.16,663.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:665.2,666.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:666.16,668.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:669.2,669.26 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:669.26,671.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:673.2,684.65 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:684.65,686.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:687.2,687.66 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:687.66,689.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:690.2,690.56 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:690.56,692.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:693.2,693.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:693.30,695.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:697.2,697.92 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:697.92,703.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:703.17,705.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:707.3,707.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:707.38,709.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:712.2,712.72 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:712.72,715.17 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:715.17,716.33 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:716.33,718.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:719.4,719.102 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:722.3,723.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:723.17,725.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:727.3,727.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:727.53,728.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:728.48,730.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:731.4,732.18 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:732.18,734.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:737.3,737.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:737.38,739.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:742.2,834.16 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:834.16,836.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:837.2,837.39 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:837.39,843.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:845.2,846.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:846.16,848.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:850.2,851.50 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:851.50,853.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:855.2,856.21 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:859.122,860.70 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:860.70,862.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:864.2,866.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:866.16,868.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:869.2,870.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:873.123,874.81 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:874.81,876.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:878.2,880.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:880.16,882.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:883.2,883.52 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:883.52,885.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:886.2,889.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:889.16,891.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:892.2,892.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:892.14,894.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:895.2,895.86 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:895.86,897.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:899.2,900.103 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:900.103,901.131 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:901.131,903.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:905.2,905.25 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:905.25,907.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:907.17,909.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:911.3,912.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:912.17,914.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:915.3,919.17 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:919.17,921.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:922.3,922.109 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:925.2,925.51 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:925.51,926.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:926.37,927.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:929.3,930.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:930.17,932.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:933.3,933.61 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:933.61,934.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:936.3,937.92 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:937.92,938.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:940.3,940.106 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:942.2,942.104 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:942.104,944.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:946.2,947.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:947.16,949.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:950.2,952.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:955.110,957.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:957.16,960.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:962.2,962.18 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:965.56,967.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:967.9,969.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:969.10,971.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:974.3,975.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:975.10,977.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:980.2,980.102 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:983.84,985.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:985.9,987.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:987.10,990.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:993.3,994.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:994.10,997.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1000.2,1001.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1001.16,1002.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1002.32,1004.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1005.3,1006.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1008.2,1008.57 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1011.78,1013.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1013.9,1015.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1015.10,1018.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1021.3,1022.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1022.10,1025.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1028.2,1029.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1029.16,1032.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1033.2,1033.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1033.31,1035.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1038.84,1040.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1040.9,1042.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1042.10,1045.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1048.3,1049.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1049.10,1052.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1055.2,1056.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1056.16,1057.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1057.32,1061.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1062.3,1063.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1066.2,1067.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1067.16,1068.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1068.32,1071.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1072.3,1073.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1076.2,1076.29 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1076.29,1078.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1081.97,1083.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1083.9,1085.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1085.10,1088.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1091.3,1092.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1092.10,1095.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1098.2,1099.20 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1099.20,1101.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1102.2,1103.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1103.16,1104.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1104.32,1107.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1108.3,1109.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1111.2,1111.39 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1114.79,1120.2 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1122.76,1128.9 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1128.9,1130.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1131.2,1133.32 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1136.99,1142.42 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1142.42,1144.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1146.2,1146.26 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1146.26,1149.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1151.2,1167.12 6 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1167.12,1170.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1173.48,1175.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1175.15,1176.21 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1176.21,1178.54 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1178.54,1182.5 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1183.9,1185.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1189.2,1190.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1190.16,1191.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1191.37,1195.4 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1196.3,1198.9 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1200.2,1200.43 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1200.43,1204.3 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1205.2,1205.26 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1205.26,1208.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1210.2,1211.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1211.16,1215.3 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1217.2,1217.90 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1217.90,1219.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1221.2,1227.58 7 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1227.58,1228.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1228.74,1232.4 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1235.2,1235.139 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1235.139,1237.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1240.105,1242.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1244.58,1247.2 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_data_source_controller.go:1249.63,1252.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:89.80,91.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:91.16,93.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:94.2,95.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:95.16,97.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:98.2,100.12 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:108.116,141.42 6 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:141.42,141.79 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:143.17,145.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:146.2,150.42 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:150.42,150.75 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:152.20,154.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:155.2,158.45 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:158.45,158.78 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:160.20,162.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:163.2,169.43 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:169.43,169.86 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:172.20,174.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:175.2,177.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:180.82,187.93 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:187.93,189.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:191.2,191.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:191.31,193.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:195.2,195.10 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:198.50,199.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:199.31,200.3 0 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:203.68,206.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:206.10,208.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:209.2,214.13 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:217.79,218.16 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:218.16,221.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:223.2,224.43 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:224.43,228.3 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:230.2,232.21 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:235.114,243.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:245.89,246.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:246.15,248.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:249.2,250.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:250.16,252.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:253.2,253.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:253.30,255.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:257.2,258.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:258.16,259.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:259.37,261.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:262.3,262.65 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:265.2,267.30 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:267.30,269.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:270.2,270.42 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:270.42,273.17 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:273.17,275.47 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:275.47,277.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:278.4,278.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:280.3,280.70 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:283.2,283.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:283.34,284.59 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:284.59,286.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:287.3,287.57 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:290.2,291.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:291.15,292.71 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:292.71,294.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:295.3,295.46 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:295.46,299.4 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:302.2,302.43 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:302.43,304.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:306.2,307.47 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:307.47,309.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:310.2,312.33 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:312.33,313.74 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:313.74,314.19 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:314.19,317.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:318.4,318.20 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:318.20,321.5 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:322.4,323.46 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:325.3,325.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:328.2,330.9 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:330.9,333.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:335.2,335.67 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:335.67,337.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:339.2,339.64 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:339.64,341.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:343.2,343.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:346.115,349.132 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:349.132,351.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:351.17,353.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:353.9,355.67 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:355.67,356.63 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:356.63,358.14 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:366.2,367.66 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:367.66,368.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:368.34,370.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:373.2,373.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:373.30,375.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:376.2,377.79 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:377.79,379.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:381.2,381.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:384.112,385.73 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:385.73,387.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:389.2,389.30 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:389.30,391.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:392.2,395.59 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:395.59,396.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:396.53,397.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:399.3,400.48 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:402.2,402.45 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:402.45,403.58 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:403.58,404.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:406.3,407.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:407.17,409.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:411.3,416.48 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:421.145,422.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:422.15,424.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:426.2,429.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:429.16,431.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:434.2,434.16 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:434.16,436.31 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:436.31,438.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:438.9,442.4 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:443.8,443.49 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:443.49,444.72 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:444.72,448.4 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:449.8,449.41 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:449.41,450.72 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:450.72,454.4 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:455.8,456.27 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:457.26,458.75 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:458.75,462.5 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:462.10,464.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:465.26,468.52 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:468.52,469.18 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:469.18,471.11 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:474.4,474.87 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:474.87,478.5 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:478.10,478.93 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:478.93,482.5 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:484.4,484.75 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:484.75,486.42 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:486.42,489.6 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:491.5,491.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:493.11,496.68 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:500.2,500.73 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:500.73,501.78 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:501.78,502.48 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:502.48,504.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:506.8,509.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:513.2,513.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:513.38,515.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:517.2,517.102 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:517.102,519.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:519.8,519.108 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:519.108,521.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:524.2,524.142 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:524.142,525.58 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:525.58,526.54 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:526.54,527.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:529.4,531.47 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:534.3,535.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:535.17,537.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:538.3,538.49 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:538.49,540.81 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:540.81,542.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:543.9,543.24 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:543.24,546.41 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:546.41,548.63 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:548.63,550.6 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:551.5,552.281 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:557.2,557.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:560.142,563.73 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:563.73,565.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:567.2,567.121 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:567.121,570.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:572.2,572.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:572.38,574.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:576.2,577.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:577.16,579.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:581.2,581.77 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:581.77,583.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:585.2,585.75 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:585.75,587.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:589.2,589.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:592.211,593.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:593.15,595.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:597.2,597.65 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:597.65,601.17 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:601.17,602.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:602.34,604.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:605.4,606.107 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:608.3,608.44 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:608.44,609.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:618.3,620.37 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:620.37,625.63 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:625.63,627.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:628.4,628.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:628.53,629.62 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:629.62,630.62 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:630.62,631.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:633.6,634.11 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:638.3,638.22 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:638.22,639.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:642.3,643.92 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:643.92,645.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:646.3,648.176 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:651.2,651.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:654.219,655.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:655.15,657.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:659.2,659.52 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:659.52,663.17 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:663.17,664.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:664.34,666.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:667.4,667.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:670.3,671.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:671.17,673.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:676.3,681.19 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:681.19,682.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:686.3,686.33 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:686.33,690.68 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:690.68,691.67 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:691.67,693.6 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:694.5,695.75 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:695.75,697.6 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:698.5,698.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:701.4,701.78 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:701.78,702.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:704.4,704.54 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:704.54,705.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:707.4,707.35 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:707.35,709.13 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:711.4,712.198 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:712.198,713.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:713.38,714.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:716.5,716.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:719.4,720.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:723.3,723.60 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:723.60,725.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:730.3,731.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:731.17,733.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:734.3,734.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:734.15,735.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:738.3,741.17 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:741.17,743.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:744.3,744.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:744.32,745.115 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:745.115,746.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:748.4,749.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:749.15,750.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:752.4,752.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:752.53,753.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:755.4,756.54 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:756.54,757.13 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:759.4,760.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:765.3,765.18 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:765.18,767.17 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:767.17,769.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:771.4,771.100 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:771.100,772.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:772.38,774.14 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:776.5,777.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:779.4,782.12 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:785.3,785.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:785.31,787.140 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:787.140,788.38 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:788.38,790.14 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:792.5,793.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:795.4,800.9 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:804.2,804.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:807.117,808.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:808.15,810.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:812.2,813.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:813.16,815.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:816.2,817.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:817.16,819.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:820.2,821.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:821.16,823.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:824.2,827.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:827.16,829.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:831.2,831.90 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:831.90,833.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:835.2,835.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:838.224,840.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:840.16,842.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:844.2,845.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:845.16,847.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:849.2,850.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:850.16,852.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:854.2,926.26 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:926.26,932.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:934.2,935.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:935.16,937.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:939.2,940.50 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:940.50,942.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:944.2,945.21 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:948.101,950.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:950.16,953.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:955.2,955.18 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:958.53,960.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:960.9,962.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:962.10,964.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:967.3,968.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:968.10,970.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:973.2,973.96 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:973.96,975.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:976.2,976.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:979.81,981.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:981.9,983.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:983.10,986.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:989.3,990.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:990.10,993.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:996.2,997.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:997.16,998.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:998.32,1001.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1002.3,1003.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1006.2,1006.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1006.31,1007.71 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1007.71,1009.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1013.81,1015.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1015.9,1017.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1017.10,1020.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1023.3,1024.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1024.10,1027.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1030.2,1031.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1031.16,1032.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1032.32,1035.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1036.3,1037.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1040.2,1040.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1040.31,1042.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1045.91,1047.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1047.9,1049.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1049.10,1052.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1055.3,1056.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1056.10,1059.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1062.2,1063.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1063.16,1064.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1064.32,1067.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1068.3,1069.9 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1071.2,1071.37 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1074.122,1080.41 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1080.41,1082.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1084.2,1085.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1085.16,1088.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1089.2,1090.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1090.16,1093.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1095.2,1117.12 7 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1117.12,1120.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1123.72,1131.9 6 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1131.9,1133.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1134.2,1134.9 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1135.16,1135.16 0 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1137.10,1138.16 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1140.2,1140.31 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1143.75,1149.2 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1151.44,1152.15 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1152.15,1153.42 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1153.42,1155.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1156.3,1156.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1159.2,1159.12 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1159.12,1161.7 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1161.7,1162.64 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1162.64,1164.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1166.4,1166.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1166.14,1168.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1170.4,1170.42 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1170.42,1174.5 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1174.10,1179.5 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1183.2,1188.6 6 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1188.6,1189.10 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1190.15,1191.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1191.14,1193.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1195.4,1198.63 4 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1198.63,1202.5 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1203.4,1205.18 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1205.18,1206.67 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1206.67,1209.6 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1211.19,1213.10 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1218.89,1220.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1220.15,1221.24 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1221.24,1223.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1225.2,1226.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1226.16,1227.32 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1227.32,1230.4 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1231.3,1232.15 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1235.2,1235.42 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1235.42,1238.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1240.2,1241.16 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1241.16,1244.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1246.2,1246.61 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1246.61,1248.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1250.2,1251.69 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1251.69,1254.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1255.2,1255.63 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1255.63,1256.56 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1256.56,1258.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1261.2,1261.14 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1264.98,1266.2 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1268.135,1271.16 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1271.16,1273.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1278.2,1278.34 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1278.34,1280.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1282.2,1286.16 5 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1286.16,1288.3 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1290.2,1290.50 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1290.50,1295.68 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1295.68,1300.46 3 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1300.46,1302.5 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1308.2,1309.76 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1309.76,1310.62 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1310.62,1312.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1313.3,1314.14 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1314.14,1316.12 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1318.3,1318.53 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1318.53,1320.4 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1323.2,1323.71 1 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1323.71,1327.3 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1329.2,1330.18 2 0 +github.com/longhorn/longhorn-manager/controller/backing_image_manager_controller.go:1333.68,1337.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:66.42,94.42 6 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:94.42,94.79 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:96.17,98.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:99.2,101.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:104.84,106.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:106.16,109.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:111.2,111.19 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:114.82,121.69 5 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:121.69,123.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:124.2,124.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:124.31,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:127.2,127.10 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:130.50,131.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:131.32,132.3 0 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:135.68,137.10 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:137.10,139.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:140.2,143.13 4 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:146.79,147.16 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:147.16,150.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:152.2,153.30 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:156.77,157.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:157.15,159.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:161.2,162.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:162.16,164.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:165.2,165.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:165.31,167.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:168.2,168.27 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:171.127,177.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:179.94,181.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:181.16,182.33 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:182.33,184.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:185.3,185.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:188.2,188.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:188.31,190.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:191.2,191.43 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:191.43,194.17 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:194.17,196.47 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:196.47,198.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:199.4,199.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:201.3,201.70 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:204.2,208.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:208.16,209.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:209.32,211.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:212.3,212.96 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:216.2,216.37 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:216.37,218.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:218.17,220.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:221.3,221.29 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:221.29,223.18 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:223.18,226.5 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:228.4,231.81 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:231.81,233.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:237.3,239.103 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:239.103,241.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:243.3,243.57 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:246.2,248.15 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:248.15,249.17 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:249.17,251.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:252.3,252.71 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:252.71,254.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:255.3,255.113 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:255.113,259.4 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:262.2,262.95 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:262.95,264.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:264.17,265.34 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:265.34,267.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:268.4,273.14 6 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:276.3,281.17 5 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:281.17,282.53 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:282.53,285.5 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:286.4,286.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:289.3,289.71 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:289.71,291.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:293.3,293.27 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:294.93,295.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:296.38,297.37 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:298.63,301.14 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:306.2,307.65 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:307.65,309.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:312.2,313.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:313.16,316.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:318.2,320.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:320.16,321.52 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:321.52,323.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:324.3,324.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:326.2,326.35 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:326.35,329.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:332.2,343.12 12 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:346.208,347.62 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:347.62,349.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:352.2,352.56 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:352.56,354.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:356.2,357.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:357.16,359.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:361.2,362.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:362.16,364.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:367.2,368.58 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:368.58,370.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:370.17,372.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:373.3,373.30 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:373.30,374.36 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:374.36,375.141 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:375.141,377.11 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:381.3,381.23 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:381.23,382.9 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:385.2,385.22 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:385.22,387.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:389.2,390.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:390.16,392.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:394.2,395.29 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:395.29,397.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:399.2,400.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:400.16,405.3 4 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:406.2,406.21 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:410.170,411.34 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:411.34,413.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:415.2,423.57 7 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:423.57,425.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:427.2,427.28 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:427.28,431.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:432.2,435.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:438.120,442.2 3 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:445.169,447.20 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:447.20,449.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:451.2,456.16 4 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:456.16,458.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:459.2,460.21 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:463.81,465.20 2 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:465.20,467.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:469.2,472.17 4 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:475.89,477.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:479.97,481.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_backing_image_controller.go:483.102,487.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:97.30,130.42 6 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:130.42,130.67 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:132.17,134.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:135.2,137.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:140.60,142.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:142.16,145.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:147.2,147.19 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:150.65,152.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:154.70,161.69 5 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:161.69,163.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:164.2,164.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:164.31,166.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:167.2,167.10 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:170.38,171.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:171.32,172.3 0 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:175.56,177.10 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:177.10,179.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:180.2,183.13 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:186.67,187.16 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:187.16,190.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:192.2,194.30 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:197.65,198.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:198.15,200.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:202.2,203.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:203.16,205.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:206.2,206.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:206.31,208.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:209.2,209.27 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:212.91,218.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:220.117,222.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:222.16,224.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:225.2,225.28 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:225.28,226.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:226.32,227.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:229.3,230.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:230.17,232.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:233.3,233.29 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:233.29,234.50 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:234.50,235.27 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:235.27,237.6 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:241.2,241.18 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:244.70,247.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:247.16,248.33 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:248.33,250.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:251.3,251.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:255.2,256.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:256.16,258.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:259.2,260.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:260.16,262.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:263.2,263.20 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:263.20,265.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:266.2,266.46 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:266.46,269.17 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:269.17,271.47 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:271.47,273.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:274.4,274.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:278.2,282.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:282.16,283.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:283.32,285.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:286.3,286.96 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:290.2,291.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:291.16,292.33 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:292.33,294.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:295.3,295.62 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:298.2,298.35 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:298.35,300.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:303.2,303.40 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:303.40,304.85 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:304.85,306.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:308.3,309.47 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:309.47,311.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:313.3,314.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:314.17,316.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:318.3,318.93 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:318.93,320.18 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:320.18,323.5 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:324.4,327.22 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:327.22,329.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:333.3,333.79 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:333.79,335.111 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:335.111,340.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:344.3,346.109 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:346.109,348.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:350.3,351.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:351.17,355.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:356.3,356.18 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:356.18,358.72 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:358.72,363.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:365.3,365.48 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:368.2,371.15 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:371.15,372.17 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:372.17,374.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:376.3,376.112 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:376.112,378.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:379.3,379.62 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:379.62,381.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:382.3,382.104 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:382.104,387.4 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:388.3,388.105 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:388.105,389.64 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:389.64,392.5 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:403.2,403.109 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:403.109,405.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:405.17,406.34 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:406.34,408.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:409.4,414.14 6 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:417.3,417.85 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:417.85,419.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:421.3,421.78 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:421.78,423.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:425.3,425.55 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:425.55,427.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:429.3,430.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:430.17,431.56 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:431.56,434.5 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:435.4,435.58 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:435.58,438.5 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:439.4,439.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:442.3,442.68 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:442.68,444.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:446.3,446.30 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:447.93,448.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:449.38,450.40 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:451.63,454.14 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:459.2,460.71 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:460.71,462.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:465.2,466.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:466.16,469.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:471.2,473.47 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:473.47,474.36 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:474.36,476.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:477.3,477.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:479.2,479.23 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:479.23,482.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:486.2,505.12 18 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:509.116,510.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:510.15,512.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:514.2,515.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:515.16,516.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:516.32,518.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:519.3,519.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:522.2,524.64 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:524.64,526.62 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:526.62,528.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:531.2,531.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:535.116,536.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:536.15,538.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:540.2,541.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:541.16,543.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:545.2,546.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:546.16,548.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:550.2,551.15 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:551.15,552.17 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:552.17,554.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:555.3,555.50 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:555.50,557.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:559.3,559.62 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:559.62,561.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:564.2,567.12 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:571.104,573.15 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:573.15,575.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:577.2,578.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:578.16,580.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:582.2,583.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:583.16,585.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:587.2,590.134 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:593.107,595.15 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:595.15,597.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:599.2,600.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:600.16,602.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:603.2,603.22 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:603.22,605.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:607.2,610.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:610.16,612.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:613.2,614.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:614.16,616.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:618.2,622.71 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:625.90,627.9 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:627.9,629.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:630.2,630.30 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:633.103,635.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:635.16,637.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:638.2,638.19 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:638.19,640.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:641.2,641.100 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:645.98,646.18 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:646.18,648.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:650.2,651.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:651.16,653.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:655.2,656.46 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:656.46,658.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:660.2,662.56 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:662.56,665.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:666.2,666.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:669.79,670.19 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:670.19,672.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:675.2,676.18 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:676.18,678.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:680.2,681.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:681.16,683.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:685.2,686.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:686.16,687.33 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:687.33,689.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:692.2,692.16 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:692.16,701.113 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:701.113,703.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:706.2,706.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:711.163,712.59 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:712.59,714.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:717.2,717.59 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:717.59,719.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:722.2,723.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:723.16,725.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:727.2,728.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:728.16,730.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:732.2,733.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:733.16,735.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:736.2,736.9 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:736.9,738.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:740.2,741.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:741.16,743.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:746.2,748.75 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:748.75,750.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:750.17,751.40 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:751.40,753.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:754.4,754.30 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:754.30,755.78 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:755.78,757.6 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:759.4,759.30 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:759.30,761.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:765.2,766.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:766.16,768.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:770.2,772.55 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:772.55,776.3 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:778.2,779.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:779.16,783.3 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:784.2,784.21 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:784.21,785.34 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:785.34,789.4 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:792.2,793.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:793.16,795.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:796.2,796.35 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:796.35,797.53 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:797.53,801.4 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:805.2,807.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:807.16,812.3 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:813.2,813.21 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:817.135,818.54 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:818.54,820.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:822.2,832.48 9 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:832.48,834.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:836.2,836.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:836.31,840.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:841.2,844.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:849.71,852.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:852.16,855.110 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:855.110,857.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:858.8,858.52 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:858.52,861.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:861.17,863.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:864.3,865.110 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:865.110,867.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:869.2,869.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:872.84,876.2 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:880.83,882.20 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:882.20,884.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:886.2,890.16 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:890.16,892.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:894.2,896.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:896.16,898.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:899.2,900.21 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:903.69,905.20 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:905.20,907.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:909.2,912.17 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:915.133,918.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:918.16,921.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:923.2,924.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:924.16,927.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:929.2,930.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:930.16,933.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:934.2,937.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:937.16,940.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:942.2,942.17 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:942.17,945.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:947.2,947.48 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:950.78,955.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:957.130,968.12 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:968.12,969.16 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:969.16,970.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:970.32,972.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:974.3,976.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:976.17,978.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:982.186,986.57 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:986.57,987.73 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:987.73,989.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:991.3,991.101 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:991.101,994.4 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:995.3,1002.61 4 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1002.61,1004.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1005.3,1007.15 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1012.2,1013.80 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1013.80,1017.3 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1018.2,1018.55 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1018.55,1023.49 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1023.49,1026.4 2 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1026.9,1031.81 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1031.81,1033.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1034.4,1036.157 3 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1038.3,1038.62 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1038.62,1040.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1041.3,1041.61 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1041.61,1043.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1044.3,1044.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1048.2,1052.13 5 0 +github.com/longhorn/longhorn-manager/controller/backup_controller.go:1055.115,1061.2 4 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:61.66,86.42 6 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:86.42,86.74 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:87.17,89.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:90.2,93.42 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:93.42,96.54 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:96.54,101.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:102.4,102.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:104.20,106.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:107.2,109.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:112.73,114.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:114.16,117.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:119.2,119.20 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:122.72,124.9 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:124.9,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:128.2,130.111 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:130.111,132.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:136.2,136.67 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:139.77,146.71 5 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:146.71,148.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:149.2,149.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:149.31,151.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:152.2,152.10 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:155.45,156.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:156.33,157.3 0 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:160.63,162.10 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:162.10,164.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:165.2,168.13 4 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:171.72,172.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:172.15,174.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:176.2,177.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:177.16,179.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:180.2,180.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:180.32,183.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:184.2,184.43 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:184.43,189.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:190.2,190.28 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:193.74,194.16 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:194.16,197.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:199.2,200.45 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:200.45,204.3 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:206.2,208.23 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:211.109,219.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:221.87,223.26 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:223.26,224.110 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:224.110,225.44 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:225.44,227.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:231.2,231.51 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:234.269,236.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:236.16,238.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:240.2,241.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:241.16,243.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:245.2,246.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:246.16,248.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:250.2,251.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:251.16,254.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:256.2,256.51 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:259.172,260.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:260.15,262.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:264.2,265.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:265.16,267.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:269.2,270.52 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:270.52,271.47 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:271.47,273.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:274.3,275.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:275.17,277.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:280.2,281.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:281.16,283.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:284.2,286.114 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:289.151,291.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:291.16,293.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:295.2,295.68 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:298.71,300.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:300.16,301.33 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:301.33,303.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:304.3,304.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:307.2,310.45 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:310.45,311.60 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:311.60,313.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:317.2,318.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:318.16,320.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:321.2,322.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:322.16,324.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:325.2,325.20 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:325.20,327.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:328.2,328.53 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:328.53,331.17 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:331.17,333.47 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:333.47,335.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:336.4,336.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:341.2,342.83 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:342.83,344.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:346.2,351.15 4 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:351.15,352.17 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:352.17,354.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:355.3,355.23 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:355.23,360.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:361.3,361.74 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:361.74,363.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:364.3,364.117 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:364.117,367.4 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:370.2,370.45 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:370.45,375.52 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:375.52,377.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:379.3,379.52 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:379.52,381.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:383.3,383.58 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:383.58,385.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:387.3,387.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:390.2,391.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:391.16,398.3 4 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:399.2,406.94 4 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:406.94,408.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:410.2,410.100 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:410.100,412.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:414.2,414.80 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:414.80,416.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:417.2,417.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:420.102,423.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:423.16,425.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:426.2,428.69 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:428.69,430.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:432.2,433.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:442.130,447.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:447.16,449.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:450.2,454.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:454.16,456.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:457.2,458.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:458.16,460.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:461.2,462.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:462.16,464.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:466.2,466.18 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:469.144,474.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:474.16,476.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:478.2,479.41 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:479.41,481.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:486.2,487.51 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:487.51,489.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:490.2,490.52 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:490.52,496.102 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:496.102,498.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:504.2,505.53 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:505.53,507.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:508.2,508.54 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:508.54,510.105 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:510.105,512.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:513.3,513.68 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:513.68,515.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:520.2,520.67 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:520.67,522.111 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:522.111,524.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:527.2,527.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:530.150,535.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:535.16,537.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:539.2,540.47 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:540.47,542.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:544.2,545.57 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:545.57,547.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:548.2,548.64 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:548.64,557.114 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:557.114,559.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:562.2,563.59 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:563.59,565.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:566.2,566.66 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:566.66,568.117 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:568.117,570.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:571.3,571.80 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:571.80,573.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:576.2,576.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:579.141,581.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:581.16,583.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:585.2,586.52 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:586.52,587.67 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:587.67,588.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:590.3,590.58 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:593.2,597.46 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:597.46,600.17 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:600.17,602.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:604.3,616.52 4 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:616.52,618.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:623.2,624.46 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:624.46,626.93 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:626.93,628.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:629.3,629.56 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:629.56,631.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:634.2,634.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:637.121,639.15 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:639.15,641.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:643.2,646.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:646.16,648.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:649.2,650.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:650.16,652.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:654.2,655.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:655.16,657.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:658.2,658.28 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:658.28,660.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:662.2,666.71 4 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:670.65,672.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:672.16,674.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:676.2,677.53 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:677.53,678.105 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:678.105,680.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:682.3,682.98 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:682.98,684.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:687.2,687.19 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:687.19,689.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:690.2,690.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:694.71,696.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:696.16,698.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:700.2,701.65 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:701.65,702.117 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:702.117,704.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:706.3,706.110 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:706.110,708.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:711.2,711.19 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:711.19,713.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:714.2,714.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:718.65,720.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:720.16,722.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:724.2,725.42 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:725.42,726.101 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:726.101,728.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:730.3,730.94 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:730.94,732.12 2 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:735.2,735.19 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:735.19,737.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:738.2,738.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:743.73,745.20 2 3 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:745.20,747.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_target_controller.go:749.2,749.54 1 3 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:60.36,85.42 6 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:85.42,85.74 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:87.17,89.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:90.2,92.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:95.73,97.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:97.16,100.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:102.2,102.20 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:105.77,112.71 5 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:112.71,114.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:115.2,115.31 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:115.31,117.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:118.2,118.10 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:121.45,122.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:122.33,123.3 0 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:126.63,128.10 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:128.10,130.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:131.2,134.13 4 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:137.72,138.15 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:138.15,140.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:142.2,143.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:143.16,145.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:146.2,146.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:146.32,149.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:150.2,150.28 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:153.74,154.16 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:154.16,157.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:159.2,160.45 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:160.45,164.3 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:166.2,168.23 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:171.109,177.2 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:179.83,182.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:182.16,183.33 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:183.33,185.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:186.3,186.13 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:190.2,191.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:191.16,193.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:194.2,195.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:195.16,197.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:198.2,198.20 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:198.20,200.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:201.2,201.53 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:201.53,204.17 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:204.17,206.47 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:206.47,208.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:209.4,209.14 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:213.2,217.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:217.16,218.32 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:218.32,220.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:221.3,221.92 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:225.2,225.46 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:225.46,226.82 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:226.82,228.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:230.3,231.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:231.17,233.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:235.3,235.29 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:235.29,237.46 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:237.46,240.5 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:241.4,243.137 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:243.137,245.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:247.3,247.61 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:250.2,252.15 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:252.15,253.17 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:253.17,255.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:256.3,256.74 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:256.74,258.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:259.3,259.117 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:259.117,262.4 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:266.2,267.83 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:267.83,269.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:271.2,272.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:272.16,275.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:276.2,280.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:280.16,283.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:284.2,288.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:288.16,291.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:294.2,295.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:295.16,297.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:298.2,299.35 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:299.35,302.83 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:302.83,303.100 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:303.100,305.119 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:305.119,306.55 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:306.55,308.7 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:311.4,311.12 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:313.3,313.29 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:318.2,319.45 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:319.45,321.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:322.2,322.40 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:322.40,326.139 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:326.139,331.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:331.9,332.53 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:332.53,333.118 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:333.118,335.6 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:339.3,347.108 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:347.108,350.4 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:355.2,356.47 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:356.47,358.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:359.2,359.42 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:359.42,360.93 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:360.93,362.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:363.3,363.56 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:363.56,365.4 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:368.2,370.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:370.16,373.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:374.2,374.27 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:374.27,376.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:380.2,381.88 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:381.88,384.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:386.2,387.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:387.16,390.3 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:391.2,391.29 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:391.29,393.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:397.2,397.75 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:397.75,399.17 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:399.17,401.100 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:401.100,403.5 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:408.2,420.12 13 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:423.121,425.15 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:425.15,427.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:429.2,432.16 3 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:432.16,434.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:435.2,436.16 2 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:436.16,438.3 1 0 +github.com/longhorn/longhorn-manager/controller/backup_volume_controller.go:440.2,444.71 4 0 +github.com/longhorn/longhorn-manager/controller/base_controller.go:24.80,28.2 2 142 +github.com/longhorn/longhorn-manager/controller/base_controller.go:31.67,39.2 2 183 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:35.95,45.16 8 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:45.16,47.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:48.2,49.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:49.16,51.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:52.2,53.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:53.16,55.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:56.2,57.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:57.16,59.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:60.2,61.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:61.16,63.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:64.2,65.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:65.16,67.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:68.2,69.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:69.16,71.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:72.2,73.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:73.16,75.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:76.2,77.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:77.16,79.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:80.2,81.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:81.16,83.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:84.2,85.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:85.16,87.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:88.2,89.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:89.16,91.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:92.2,93.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:93.16,95.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:96.2,97.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:97.16,99.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:100.2,101.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:101.16,103.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:104.2,105.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:105.16,107.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:108.2,109.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:109.16,111.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:112.2,113.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:113.16,115.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:116.2,117.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:117.16,119.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:120.2,121.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:121.16,123.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:124.2,125.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:125.16,127.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:128.2,129.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:129.16,131.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:132.2,133.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:133.16,135.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:136.2,137.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:137.16,139.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:140.2,141.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:141.16,143.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:144.2,145.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:145.16,147.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:148.2,149.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:149.16,151.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:152.2,153.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:153.16,155.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:157.2,158.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:158.16,160.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:162.2,163.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:163.16,165.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:168.2,169.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:169.16,171.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:172.2,173.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:173.16,175.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:176.2,177.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:177.16,179.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:180.2,181.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:181.16,183.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:184.2,185.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:185.16,187.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:188.2,189.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:189.16,191.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:192.2,193.16 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:193.16,195.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:198.2,239.33 38 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:242.81,244.16 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:244.16,246.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:247.2,247.23 1 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:247.23,249.3 1 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:250.2,254.8 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:258.117,260.16 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:260.16,262.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:264.2,265.16 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:265.16,267.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:268.2,269.16 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:269.16,271.3 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:273.2,274.28 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:275.33,277.22 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:277.22,279.18 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:279.18,281.5 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:282.4,283.18 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:283.18,285.5 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:286.4,287.87 2 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:289.33,292.17 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:292.17,294.4 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:295.3,296.17 2 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:296.17,298.4 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:299.3,299.41 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:300.10,301.71 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:304.2,304.65 1 9 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:307.131,310.47 1 66 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:310.47,312.31 2 154 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:312.31,314.4 1 0 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:315.3,315.37 1 154 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:318.2,321.66 4 66 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:326.77,332.2 1 142 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:335.77,337.35 2 14 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:337.35,339.3 1 4 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:340.2,340.35 1 14 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:340.35,342.3 1 12 +github.com/longhorn/longhorn-manager/controller/controller_manager.go:343.2,343.27 1 14 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:143.60,175.42 7 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:175.42,175.67 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:177.17,179.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:180.2,184.42 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:184.42,184.82 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:186.20,188.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:189.2,191.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:194.70,201.80 5 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:201.80,203.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:205.2,205.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:205.31,207.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:209.2,209.10 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:212.38,213.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:213.32,214.3 0 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:217.56,220.10 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:220.10,222.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:223.2,228.13 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:231.67,232.16 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:232.16,235.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:237.2,238.44 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:238.44,242.3 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:244.2,246.22 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:249.86,251.2 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:253.121,255.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:255.16,257.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:259.2,259.97 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:262.64,263.15 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:263.15,265.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:266.2,267.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:267.16,269.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:270.2,270.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:270.31,273.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:275.2,277.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:277.16,278.37 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:278.37,280.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:281.3,281.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:284.2,285.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:285.16,287.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:288.2,288.20 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:288.20,290.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:292.2,292.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:292.46,295.17 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:295.17,297.47 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:297.47,299.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:300.4,300.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:302.3,302.56 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:305.2,305.37 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:305.37,306.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:306.51,308.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:309.3,309.48 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:312.2,313.15 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:313.15,315.77 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:315.77,317.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:319.3,319.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:319.46,323.4 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:326.2,327.104 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:327.104,328.49 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:328.49,333.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:334.8,334.60 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:334.60,336.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:337.2,337.120 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:337.120,342.3 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:344.2,344.132 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:344.132,346.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:348.2,348.65 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:348.65,350.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:350.31,352.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:352.9,352.109 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:352.109,356.58 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:356.58,358.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:360.8,360.36 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:360.36,363.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:365.2,365.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:365.51,367.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:370.2,370.72 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:370.72,372.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:374.2,374.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:377.49,378.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:378.46,379.50 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:379.50,381.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:383.2,383.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:386.60,388.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:388.16,391.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:393.2,393.19 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:396.75,398.24 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:398.24,400.10 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:400.10,403.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:406.3,407.10 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:407.10,410.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:413.2,414.116 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:414.116,416.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:418.2,421.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:421.16,423.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:424.2,424.23 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:424.23,427.81 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:427.81,429.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:432.2,432.30 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:432.30,434.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:437.151,439.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:439.9,441.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:443.2,444.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:444.16,446.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:448.2,453.45 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:453.45,455.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:455.17,457.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:459.3,461.101 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:461.101,463.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:466.2,466.39 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:469.125,471.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:471.9,473.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:475.2,477.52 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:477.52,479.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:481.2,482.28 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:482.28,484.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:486.2,487.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:487.16,489.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:491.2,499.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:499.16,501.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:502.2,505.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:505.16,507.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:509.2,510.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:510.16,512.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:514.2,515.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:515.16,517.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:519.2,520.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:520.16,522.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:525.2,538.4 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:541.73,543.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:543.9,545.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:547.2,551.40 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:551.40,552.26 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:552.26,555.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:556.3,557.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:557.17,560.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:561.3,561.82 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:562.8,564.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:564.17,565.34 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:565.34,567.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:569.4,570.14 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:574.2,575.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:575.16,577.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:579.2,579.105 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:579.105,582.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:584.2,585.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:585.16,587.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:589.2,591.15 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:591.15,592.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:592.17,595.30 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:595.30,598.5 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:604.2,604.77 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:604.77,611.48 6 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:611.48,613.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:616.3,617.66 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:617.66,619.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:620.3,620.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:623.2,624.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:624.16,626.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:627.2,630.47 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:630.47,632.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:634.2,634.54 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:634.54,638.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:638.17,639.35 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:639.35,641.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:642.4,642.77 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:646.2,646.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:649.68,651.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:651.9,653.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:655.2,655.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:655.46,657.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:659.2,659.52 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:659.52,661.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:663.2,664.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:664.16,666.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:667.2,668.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:668.16,670.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:671.2,675.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:678.67,680.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:680.9,682.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:684.2,684.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:684.46,686.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:688.2,688.52 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:688.52,690.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:692.2,693.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:693.16,695.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:696.2,697.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:697.16,699.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:700.2,704.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:707.69,709.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:709.9,711.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:713.2,713.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:713.46,715.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:717.2,717.52 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:717.52,719.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:721.2,722.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:722.16,724.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:726.2,732.16 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:732.16,734.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:735.2,739.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:739.16,741.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:743.2,744.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:744.16,746.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:747.2,748.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:748.16,750.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:751.2,754.55 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:754.55,756.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:758.2,762.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:765.135,766.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:766.45,768.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:768.17,770.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:772.3,772.23 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:775.2,775.25 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:775.25,777.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:779.2,780.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:780.16,781.38 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:781.38,783.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:786.2,786.22 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:789.65,791.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:791.9,793.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:795.2,795.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:795.46,797.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:799.2,801.52 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:801.52,803.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:805.2,806.56 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:806.56,808.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:809.2,809.24 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:809.24,811.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:813.2,814.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:814.16,816.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:817.2,818.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:818.16,820.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:821.2,825.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:828.88,830.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:830.9,832.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:834.2,834.107 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:837.60,840.2 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:842.122,844.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:844.9,846.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:847.2,854.28 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:854.28,857.17 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:857.17,859.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:860.3,860.32 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:863.2,863.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:863.31,864.118 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:864.118,866.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:866.9,868.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:869.3,869.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:869.17,871.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:872.8,872.22 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:872.22,874.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:874.17,875.34 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:875.34,877.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:878.4,878.47 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:878.47,880.19 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:880.19,882.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:883.10,885.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:888.2,889.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:889.16,891.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:892.2,894.93 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:897.139,899.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:899.9,901.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:903.2,904.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:904.16,906.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:908.2,909.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:909.16,911.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:914.2,915.23 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:918.67,924.2 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:926.65,950.46 6 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:950.46,952.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:953.2,956.12 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:956.12,961.3 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:964.72,965.64 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:965.64,969.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:971.2,971.27 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:975.63,980.9 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:980.9,982.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:984.2,984.9 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:985.16,985.16 0 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:987.10,988.16 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:993.31,995.15 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:995.15,996.58 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:996.58,998.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:999.3,1000.34 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1003.2,1005.6 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1005.6,1006.10 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1007.19,1008.38 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1008.38,1010.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1011.19,1012.10 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1017.37,1018.67 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1018.67,1020.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1020.17,1021.38 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1021.38,1024.5 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1025.4,1026.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1029.3,1029.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1029.46,1032.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1035.3,1035.66 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1035.66,1037.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1040.3,1040.105 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1040.105,1042.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1044.3,1045.60 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1045.60,1047.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1049.3,1049.108 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1049.108,1051.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1051.17,1053.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1053.16,1054.60 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1054.60,1056.28 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1056.28,1058.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1060.7,1062.69 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1062.69,1066.8 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1068.11,1071.6 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1072.5,1072.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1072.31,1074.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1076.4,1076.32 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1076.32,1078.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1080.3,1081.8 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1084.2,1084.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1087.89,1089.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1089.16,1091.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1093.2,1093.65 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1096.64,1100.71 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1100.71,1101.39 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1101.39,1103.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1104.3,1104.39 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1107.2,1108.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1108.16,1110.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1112.2,1113.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1113.16,1115.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1116.2,1119.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1119.16,1121.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1123.2,1125.40 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1125.40,1128.14 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1128.14,1137.12 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1140.3,1142.42 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1142.42,1146.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1146.9,1147.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1147.55,1148.19 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1149.34,1151.59 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1152.33,1154.59 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1155.33,1157.59 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1158.13,1159.63 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1161.10,1163.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1163.12,1166.6 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1166.11,1168.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1172.2,1176.16 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1176.16,1178.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1178.8,1181.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1184.2,1185.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1185.16,1187.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1189.2,1190.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1190.16,1192.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1194.2,1195.48 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1195.48,1197.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1197.17,1199.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1200.3,1201.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1201.17,1203.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1204.3,1208.78 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1208.78,1210.164 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1210.164,1212.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1213.4,1213.25 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1213.25,1220.5 5 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1222.3,1222.85 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1222.85,1226.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1227.3,1230.123 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1230.123,1232.72 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1232.72,1234.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1238.3,1239.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1239.17,1241.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1242.3,1245.54 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1245.54,1248.92 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1248.92,1249.88 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1249.88,1252.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1256.3,1256.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1256.55,1258.67 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1258.67,1260.79 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1260.79,1263.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1266.4,1267.65 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1267.65,1269.78 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1269.78,1272.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1275.8,1279.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1282.2,1283.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1283.16,1285.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1285.8,1287.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1289.2,1293.77 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1293.77,1294.64 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1294.64,1296.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1297.3,1297.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1297.18,1303.68 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1303.68,1305.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1307.3,1307.37 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1310.2,1311.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1311.16,1314.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1315.2,1315.22 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1315.22,1317.73 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1317.73,1319.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1319.9,1323.65 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1323.65,1325.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1327.3,1327.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1330.2,1330.57 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1330.57,1335.3 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1337.2,1338.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1338.16,1340.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1342.2,1342.15 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1342.15,1343.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1343.17,1346.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1348.3,1353.85 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1353.85,1354.59 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1354.59,1356.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1361.3,1361.74 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1361.74,1363.18 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1363.18,1366.5 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1367.4,1367.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1371.2,1372.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1372.16,1374.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1376.2,1376.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1376.17,1377.71 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1377.71,1380.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1382.3,1383.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1383.17,1385.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1386.3,1387.18 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1387.18,1389.18 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1389.18,1393.5 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1396.3,1396.89 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1396.89,1398.59 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1398.59,1400.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1401.4,1401.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1405.2,1406.47 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1406.47,1407.94 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1407.94,1409.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1412.2,1415.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1415.16,1417.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1418.2,1418.15 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1418.15,1419.71 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1419.71,1421.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1424.2,1424.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1427.75,1428.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1428.31,1429.25 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1429.25,1430.9 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1433.3,1433.25 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1433.25,1435.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1437.2,1437.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1440.69,1444.14 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1444.14,1445.33 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1445.33,1448.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1449.3,1449.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1452.2,1452.88 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1452.88,1455.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1455.8,1455.27 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1455.27,1457.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1459.2,1459.32 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1459.32,1461.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1462.2,1464.12 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1467.76,1471.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1471.16,1473.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1474.2,1474.33 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1474.33,1476.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1478.2,1479.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1479.16,1481.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1482.2,1482.40 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1482.40,1484.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1486.2,1486.44 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1486.44,1489.144 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1489.144,1491.87 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1491.87,1493.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1497.2,1498.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1498.16,1500.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1502.2,1502.48 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1502.48,1504.40 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1504.40,1505.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1508.3,1508.42 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1508.42,1520.93 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1520.93,1522.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1526.2,1526.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1529.98,1530.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1530.31,1532.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1533.2,1533.57 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1533.57,1535.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1536.2,1536.56 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1536.56,1538.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1540.2,1540.78 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1540.78,1542.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1544.2,1544.62 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1544.62,1546.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1547.2,1547.23 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1547.23,1549.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1550.2,1550.22 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1550.22,1552.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1554.2,1554.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1559.123,1560.15 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1560.15,1561.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1561.17,1564.33 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1564.33,1566.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1567.4,1567.23 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1571.2,1571.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1571.18,1573.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1574.2,1574.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1574.46,1576.153 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1576.153,1578.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1579.8,1580.87 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1580.87,1582.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1585.2,1585.36 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1585.36,1587.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1589.2,1589.79 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1589.79,1591.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1593.2,1593.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1597.91,1598.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1598.51,1599.23 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1599.23,1601.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1604.2,1604.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1604.31,1605.25 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1605.25,1608.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1611.2,1615.33 5 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1615.33,1616.26 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1616.26,1620.33 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1620.33,1622.108 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1622.108,1624.93 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1624.93,1628.7 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1632.3,1632.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1632.31,1635.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1636.3,1636.42 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1636.42,1638.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1640.2,1640.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1640.18,1641.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1641.55,1643.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1644.3,1644.50 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1645.8,1646.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1646.45,1648.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1649.3,1649.40 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1652.2,1652.148 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1652.148,1654.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1655.2,1655.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1658.151,1662.31 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1662.31,1663.25 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1663.25,1665.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1668.2,1668.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1668.18,1669.35 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1669.35,1670.65 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1670.65,1675.5 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1676.4,1676.26 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1676.26,1679.5 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1680.4,1680.38 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1682.3,1682.19 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1682.19,1684.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1686.2,1686.34 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1689.121,1691.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1691.16,1693.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1695.2,1695.26 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1695.26,1697.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1698.2,1699.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1699.16,1701.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1703.2,1703.42 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1703.42,1705.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1705.17,1707.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1709.3,1709.27 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1709.27,1711.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1711.9,1711.34 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1711.34,1716.48 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1716.48,1717.40 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1717.40,1719.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1720.5,1721.13 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1723.4,1723.21 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1727.2,1727.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1730.178,1732.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1732.16,1733.33 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1733.33,1735.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1736.3,1736.87 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1739.2,1740.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1740.16,1742.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1744.2,1752.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1752.16,1754.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1756.2,1757.46 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1757.46,1759.237 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1759.237,1760.118 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1760.118,1762.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1764.8,1765.207 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1765.207,1766.99 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1766.99,1768.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1771.2,1771.16 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1771.16,1773.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1775.2,1775.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1778.102,1780.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1780.16,1782.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1784.2,1784.62 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1787.163,1789.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1789.9,1792.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1794.2,1794.43 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1794.43,1796.14 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1796.14,1797.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1800.3,1800.43 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1800.43,1804.12 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1807.3,1810.66 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1810.66,1812.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1815.3,1815.28 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1818.2,1818.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1821.71,1824.2 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1826.182,1828.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1828.9,1831.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1833.2,1833.43 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1833.43,1835.14 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1835.14,1836.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1839.3,1839.43 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1839.43,1843.12 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1846.3,1847.28 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1849.2,1852.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1855.73,1856.43 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1856.43,1858.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1859.2,1859.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1859.51,1861.42 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1861.42,1863.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1865.2,1865.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1868.123,1872.16 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1872.16,1874.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1875.2,1875.29 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1875.29,1877.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1878.2,1879.34 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1879.34,1881.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1883.2,1884.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1884.16,1886.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1888.2,1889.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1889.16,1891.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1893.2,1895.111 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1895.111,1898.52 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1898.52,1901.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1902.3,1902.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1904.2,1904.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1907.76,1908.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1908.51,1910.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1912.2,1912.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1912.45,1913.62 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1913.62,1915.48 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1915.48,1917.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1919.4,1920.48 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1920.48,1922.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1924.4,1924.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1924.17,1926.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1930.2,1930.48 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1930.48,1932.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1934.2,1934.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1937.151,1938.15 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1938.15,1940.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1942.2,1942.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1942.45,1944.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1946.2,1946.60 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1946.60,1948.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1949.2,1949.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1949.17,1951.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1952.2,1952.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1952.45,1954.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1956.2,1963.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1963.16,1965.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1966.2,1966.20 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1969.76,1971.53 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1971.53,1973.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1973.55,1975.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1977.2,1977.33 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1977.33,1979.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1981.2,1981.37 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1981.37,1983.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1983.17,1985.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1987.3,1987.23 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1987.23,1991.70 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1991.70,1993.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1993.10,1995.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:1998.2,1998.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2001.73,2004.53 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2004.53,2006.37 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2006.37,2008.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2012.2,2012.26 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2012.26,2015.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2016.2,2016.63 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2016.63,2018.30 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2018.30,2020.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2022.2,2022.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2025.125,2027.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2027.16,2029.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2031.2,2031.37 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2031.37,2033.61 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2033.61,2035.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2038.2,2038.19 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2041.103,2042.15 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2042.15,2044.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2046.2,2049.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2049.16,2051.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2052.2,2057.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2057.16,2059.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2060.2,2060.19 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2060.19,2063.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2065.2,2066.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2066.12,2068.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2068.17,2071.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2073.3,2074.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2074.17,2077.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2079.3,2080.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2080.17,2083.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2085.3,2086.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2086.17,2089.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2091.3,2092.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2092.17,2097.4 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2098.3,2103.41 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2103.41,2104.61 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2104.61,2109.5 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2111.4,2116.49 6 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2116.49,2121.19 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2121.19,2124.6 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2125.5,2125.66 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2125.66,2127.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2130.5,2131.54 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2131.54,2132.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2132.31,2134.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2138.4,2138.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2138.18,2144.5 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2147.3,2148.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2148.17,2151.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2154.3,2155.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2155.17,2158.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2160.3,2161.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2161.17,2163.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2166.3,2166.42 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2166.42,2167.27 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2167.27,2171.5 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2172.9,2176.4 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2179.3,2179.60 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2179.60,2181.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2183.3,2183.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2183.17,2194.77 5 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2194.77,2199.5 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2205.4,2205.62 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2205.62,2207.19 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2207.19,2210.6 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2212.5,2214.59 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2214.59,2217.6 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2219.5,2222.11 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2224.4,2225.10 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2228.3,2235.41 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2235.41,2237.61 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2237.61,2242.5 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2247.2,2247.144 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2247.144,2249.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2249.17,2251.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2252.2,2252.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2259.135,2262.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2262.16,2264.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2268.2,2268.72 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2268.72,2270.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2272.2,2273.87 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2273.87,2275.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2275.45,2276.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2280.3,2280.43 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2280.43,2281.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2285.3,2285.71 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2285.71,2286.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2290.3,2294.8 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2297.2,2297.22 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2297.22,2299.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2301.2,2301.23 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2305.134,2307.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2307.16,2309.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2311.2,2320.21 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2323.164,2325.33 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2325.33,2327.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2327.17,2329.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2331.3,2332.47 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2333.151,2334.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2338.2,2338.43 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2341.101,2342.9 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2343.79,2344.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2345.87,2346.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2347.82,2348.103 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2349.20,2350.50 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2351.10,2352.98 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2356.119,2357.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2357.46,2359.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2361.2,2365.6 5 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2365.6,2366.10 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2367.19,2369.18 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2369.18,2371.34 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2371.34,2373.6 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2375.5,2375.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2377.4,2377.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2377.51,2379.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2381.4,2382.18 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2382.18,2384.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2385.4,2385.62 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2385.62,2387.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2388.4,2388.70 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2388.70,2390.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2391.4,2391.71 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2391.71,2393.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2394.4,2394.50 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2394.50,2395.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2398.4,2399.31 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2399.31,2400.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2402.4,2402.93 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2402.93,2404.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2405.4,2405.64 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2405.64,2407.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2408.18,2409.82 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2414.88,2415.15 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2415.15,2417.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2419.2,2419.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2419.45,2421.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2421.17,2423.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2424.3,2427.17 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2427.17,2429.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2433.3,2433.73 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2433.73,2435.59 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2435.59,2437.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2439.8,2442.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2442.17,2444.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2445.3,2445.69 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2445.69,2447.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2449.3,2450.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2450.17,2452.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2453.3,2455.129 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2455.129,2457.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2459.3,2460.10 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2460.10,2462.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2465.3,2466.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2466.17,2468.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2469.3,2469.69 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2469.69,2471.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2473.3,2474.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2474.17,2476.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2477.3,2479.126 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2479.126,2481.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2483.3,2484.10 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2484.10,2486.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2489.2,2498.12 9 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2501.96,2503.28 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2503.28,2505.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2507.2,2508.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2508.16,2510.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2512.2,2513.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2513.16,2515.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2516.2,2519.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2519.16,2521.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2523.2,2524.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2524.16,2526.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2528.2,2529.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2529.16,2531.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2533.2,2534.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2534.16,2536.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2538.2,2539.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2539.16,2541.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2542.2,2542.80 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2542.80,2545.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2547.2,2555.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2555.16,2557.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2559.2,2560.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2566.80,2568.15 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2568.15,2570.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2573.2,2574.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2574.16,2576.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2577.2,2578.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2578.16,2580.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2581.2,2582.51 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2582.51,2584.47 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2584.47,2586.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2587.3,2587.16 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2587.16,2589.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2592.2,2596.33 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2596.33,2598.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2600.2,2600.45 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2600.45,2602.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2602.17,2604.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2607.3,2607.33 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2607.33,2609.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2612.2,2613.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2613.16,2615.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2616.2,2617.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2617.16,2619.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2620.2,2621.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2621.16,2623.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2625.2,2629.71 4 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2632.54,2634.57 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2634.57,2636.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2637.2,2637.44 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2637.44,2638.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2638.55,2640.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2642.2,2642.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2642.46,2643.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2643.55,2645.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2647.2,2647.46 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2647.46,2648.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2648.55,2650.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2652.2,2652.44 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2652.44,2653.55 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2653.55,2655.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2662.121,2664.60 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2664.60,2667.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2670.2,2670.57 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2670.57,2674.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2677.2,2678.9 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2678.9,2681.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2682.2,2682.40 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2682.40,2686.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2688.2,2688.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2697.111,2698.64 1 8 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2698.64,2700.3 1 1 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2702.2,2704.43 3 7 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2704.43,2706.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2709.2,2711.88 3 7 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2711.88,2714.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2715.2,2715.78 1 7 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2715.78,2718.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2719.2,2719.73 1 7 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2725.77,2729.43 3 8 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2729.43,2731.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2734.2,2738.19 5 8 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2743.98,2744.29 1 7 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2744.29,2746.3 1 1 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2747.2,2747.56 1 6 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2747.56,2750.3 1 3 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2751.2,2751.19 1 3 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2755.45,2756.22 1 6 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2756.22,2758.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2759.2,2759.33 1 6 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2759.33,2761.3 1 4 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2762.2,2762.23 1 2 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2765.118,2771.17 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2771.17,2773.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2776.2,2776.104 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2776.104,2778.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2780.2,2780.70 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2783.140,2785.53 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2785.53,2787.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2790.2,2790.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2790.18,2792.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2804.2,2804.53 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2804.53,2806.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2808.2,2808.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2808.18,2810.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_controller.go:2812.2,2812.18 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:70.89,97.42 6 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:97.42,97.72 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:99.17,101.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:102.2,105.37 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:105.37,105.63 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:106.42,106.73 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:107.37,107.63 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:108.20,110.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:111.2,115.42 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:115.42,115.77 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:117.20,119.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:120.2,122.16 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:125.75,132.86 5 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:132.86,134.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:136.2,136.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:136.31,138.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:140.2,140.10 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:143.43,144.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:144.32,145.3 0 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:148.61,151.10 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:151.10,153.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:154.2,159.13 4 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:162.72,163.16 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:163.16,166.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:168.2,169.44 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:169.44,173.3 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:175.2,177.22 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:180.97,187.2 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:189.74,190.15 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:190.15,192.3 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:193.2,194.16 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:194.16,196.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:197.2,197.31 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:197.31,200.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:201.2,202.16 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:202.16,203.37 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:203.37,205.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:206.3,206.57 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:208.2,212.16 3 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:212.16,214.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:215.2,215.20 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:215.20,217.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:219.2,219.51 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:219.51,222.17 3 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:222.17,224.47 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:224.47,226.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:227.4,227.14 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:229.3,229.62 1 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:232.2,233.38 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:233.38,235.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:237.2,238.42 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:238.42,240.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:242.2,243.15 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:243.15,244.87 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:244.87,246.4 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:247.3,247.46 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:247.46,251.4 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:254.2,255.16 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:255.16,257.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:258.2,258.15 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:258.15,260.17 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:260.17,262.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:264.3,265.17 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:265.17,267.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:269.3,270.17 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:270.17,272.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:273.3,276.17 3 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:276.17,278.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:279.3,282.17 3 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:282.17,284.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:286.3,287.17 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:287.17,289.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:291.3,292.65 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:292.65,294.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:296.3,300.13 3 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:304.2,304.96 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:304.96,307.17 3 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:307.17,309.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:312.2,312.66 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:312.66,314.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:316.2,316.66 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:316.66,318.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:320.2,320.62 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:320.62,322.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:324.2,324.53 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:324.53,328.3 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:330.2,330.66 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:330.66,332.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:334.2,334.127 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:334.127,338.3 3 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:340.2,341.66 2 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:341.66,342.17 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:342.17,344.4 1 3 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:347.2,348.16 2 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:348.16,350.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:352.2,352.41 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:352.41,356.3 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:356.8,362.3 2 3 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:364.2,364.100 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:364.100,366.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:368.2,368.12 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:371.103,372.15 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:372.15,374.3 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:377.2,377.60 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:377.60,380.30 3 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:380.30,382.4 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:383.3,383.23 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:385.2,385.16 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:385.16,387.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:389.2,390.16 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:390.16,392.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:393.2,393.38 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:393.38,395.64 2 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:395.64,397.4 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:398.3,398.59 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:401.2,403.12 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:407.120,409.16 2 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:409.16,411.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:415.2,415.50 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:415.50,417.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:419.2,420.16 2 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:420.16,422.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:424.2,425.16 2 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:425.16,427.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:428.2,428.55 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:428.55,430.3 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:433.2,434.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:434.16,436.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:438.2,442.39 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:442.39,443.24 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:443.24,446.47 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:446.47,448.13 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:451.4,453.18 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:453.18,455.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:459.2,459.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:462.159,464.31 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:464.31,466.35 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:466.35,467.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:469.3,470.58 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:472.2,472.26 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:486.206,490.28 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:490.28,491.44 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:491.44,493.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:495.3,499.21 5 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:499.21,501.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:504.2,504.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:507.136,509.2 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:520.133,521.52 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:521.52,523.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:524.2,524.61 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:524.61,526.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:527.2,527.24 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:527.24,529.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:530.2,530.32 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:530.32,532.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:533.2,533.31 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:533.31,535.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:536.2,536.61 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:536.61,538.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:539.2,540.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:540.16,542.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:543.2,544.110 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:544.110,546.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:547.2,547.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:550.63,559.16 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:559.16,561.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:562.2,563.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:563.16,565.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:567.2,568.12 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:571.90,573.16 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:573.16,575.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:577.2,578.28 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:578.28,579.62 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:579.62,581.4 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:583.2,583.19 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:586.90,588.16 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:588.16,590.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:592.2,593.28 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:593.28,594.62 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:594.62,596.4 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:598.2,598.19 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:601.91,603.16 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:603.16,605.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:607.2,608.29 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:608.29,609.62 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:609.62,611.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:613.2,613.19 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:616.98,620.16 3 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:620.16,622.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:623.2,626.16 3 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:626.16,628.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:629.2,632.16 3 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:632.16,634.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:635.2,637.22 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:640.92,642.16 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:642.16,644.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:646.2,647.29 2 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:647.29,648.33 1 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:648.33,650.4 1 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:651.8,653.3 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:654.2,654.12 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:658.98,659.15 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:659.15,661.3 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:663.2,663.29 1 5 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:663.29,665.3 1 4 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:666.2,666.32 1 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:666.32,668.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:669.2,669.81 1 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:669.81,671.17 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:671.17,673.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:675.3,675.47 1 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:675.47,677.4 1 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:679.3,682.58 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:682.58,684.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:685.3,685.13 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:687.2,687.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:690.70,692.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:692.16,695.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:697.2,697.19 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:700.73,702.30 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:702.30,704.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:704.16,706.11 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:706.11,708.13 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:712.4,713.11 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:713.11,715.13 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:719.3,719.41 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:719.41,721.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:722.3,722.34 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:722.34,723.51 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:723.51,725.5 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:729.2,729.26 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:729.26,731.17 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:731.17,732.12 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:734.3,734.37 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:738.75,739.66 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:739.66,741.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:743.2,745.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:745.16,748.3 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:749.2,750.32 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:750.32,754.3 3 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:757.101,758.47 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:758.47,760.39 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:760.39,762.4 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:764.2,765.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:765.16,767.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:768.2,768.32 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:768.32,772.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:773.2,773.36 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:777.134,793.16 8 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:793.16,795.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:797.2,884.26 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:884.26,890.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:891.2,893.15 2 1 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:896.91,898.15 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:898.15,900.3 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:902.2,903.16 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:903.16,905.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:906.2,908.39 2 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:908.39,910.3 1 6 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:912.2,913.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:913.16,915.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:916.2,917.16 2 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:917.16,919.3 1 0 +github.com/longhorn/longhorn-manager/controller/engine_image_controller.go:921.2,924.71 4 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:50.150,56.2 1 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:58.214,60.16 2 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:60.16,63.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:64.2,64.18 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:64.18,67.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:69.2,70.35 2 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:70.35,73.3 2 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:75.2,75.31 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:75.31,78.3 2 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:80.2,80.51 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:80.51,83.3 2 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:85.2,85.45 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:85.45,87.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:89.2,89.84 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:89.84,91.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:91.17,94.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:95.3,96.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:96.17,99.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:100.3,103.17 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:103.17,105.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:105.9,106.45 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:106.45,109.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:111.4,111.71 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:111.71,114.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:117.4,118.18 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:118.18,121.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:122.4,122.26 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:122.26,125.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:127.4,128.49 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:128.49,131.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:135.3,135.126 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:135.126,137.18 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:137.18,140.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:141.4,141.15 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:141.15,144.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:146.8,147.42 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:147.42,150.4 2 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:152.3,152.38 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:152.38,155.4 2 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:157.3,157.64 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:157.64,160.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:162.3,163.50 2 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:167.213,169.9 2 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:169.9,171.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:172.2,173.16 2 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:173.16,175.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:177.2,177.15 1 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:177.15,178.59 1 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:178.59,182.4 3 6 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:185.2,186.15 2 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:186.15,188.3 1 14 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:190.2,190.97 1 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:190.97,191.21 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:191.21,192.60 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:192.60,194.5 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:195.4,195.55 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:196.9,199.4 2 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:200.3,207.9 8 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:210.2,212.31 1 13 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:212.31,213.21 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:213.21,214.54 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:214.54,215.52 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:215.52,218.6 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:220.5,220.42 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:220.42,221.60 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:221.60,223.21 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:223.21,227.8 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:228.7,228.27 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:228.27,232.8 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:233.7,233.142 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:235.6,235.55 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:236.11,240.6 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:241.10,242.59 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:242.59,244.6 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:245.5,245.54 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:247.9,249.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:250.3,258.9 9 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:261.2,261.69 1 12 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:261.69,262.21 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:262.21,263.54 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:263.54,264.42 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:264.42,266.20 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:266.20,269.7 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:270.6,270.26 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:270.26,273.7 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:274.6,274.70 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:276.10,278.5 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:280.3,280.9 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:283.2,284.13 2 11 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:284.13,285.21 1 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:285.21,286.54 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:286.54,287.52 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:287.52,291.6 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:292.5,292.59 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:292.59,294.47 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:294.47,299.16 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:299.16,302.8 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:303.7,303.21 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:303.21,307.8 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:309.6,310.29 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:312.5,312.54 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:313.10,314.59 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:314.59,316.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:317.5,317.54 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:319.9,321.4 1 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:323.3,331.9 9 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:334.2,334.79 1 8 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:334.79,338.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:343.2,345.31 2 8 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:346.38,355.40 9 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:356.37,363.32 3 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:363.32,364.45 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:364.45,366.5 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:366.10,367.47 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:367.47,369.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:369.11,371.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:375.3,375.44 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:376.39,378.77 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:379.38,380.21 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:380.21,382.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:382.9,384.4 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:385.3,392.40 8 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:393.37,394.21 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:394.21,396.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:396.9,398.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:399.3,406.40 8 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:407.10,408.57 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:408.57,410.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:411.3,419.40 9 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:423.117,424.58 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:424.58,426.11 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:426.11,428.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:429.3,429.96 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:434.88,436.2 1 13 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:440.78,442.16 2 37 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:442.16,444.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:445.2,445.32 1 37 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:448.141,450.9 2 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:450.9,452.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:453.2,454.16 2 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:454.16,456.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:458.2,461.38 3 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:461.38,463.17 2 13 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:463.17,464.39 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:464.39,466.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:470.2,470.69 1 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:470.69,472.17 2 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:472.17,474.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:475.3,475.25 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:475.25,477.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:479.3,480.17 2 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:480.17,482.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:483.3,483.27 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:483.27,485.18 2 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:485.18,487.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:491.2,491.23 1 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:491.23,492.25 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:492.25,494.45 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:494.45,496.18 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:496.18,498.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:498.11,498.80 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:498.80,500.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:502.4,502.28 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:504.8,506.3 1 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:508.2,508.54 1 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:508.54,510.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:512.2,517.15 3 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:517.15,519.17 2 14 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:519.17,521.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:524.2,524.26 1 19 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:525.37,526.16 1 9 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:526.16,527.9 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:530.3,530.102 1 8 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:530.102,532.54 2 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:532.54,533.55 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:533.55,535.11 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:537.10,538.10 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:544.3,544.53 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:544.53,545.118 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:545.118,546.111 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:546.111,547.11 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:550.9,551.60 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:551.60,552.10 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:556.3,556.53 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:556.53,557.45 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:557.45,558.47 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:558.47,561.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:561.11,564.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:565.10,567.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:568.9,570.4 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:571.3,571.17 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:571.17,573.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:576.3,576.28 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:576.28,578.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:580.37,581.47 1 9 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:581.47,584.59 1 6 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:584.59,585.40 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:585.40,586.71 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:586.71,588.7 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:592.3,592.53 1 9 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:592.53,593.54 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:593.54,595.19 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:595.19,597.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:598.5,598.24 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:598.24,599.69 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:599.69,600.38 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:600.38,602.8 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:607.3,607.25 1 9 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:608.39,609.54 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:609.54,611.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:613.3,613.69 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:613.69,615.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:617.3,617.70 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:617.70,620.24 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:620.24,622.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:623.4,623.14 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:626.3,626.82 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:626.82,627.67 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:627.67,628.36 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:628.36,630.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:633.10,634.82 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:637.2,639.29 2 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:640.37,642.56 1 5 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:642.56,643.37 1 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:643.37,652.5 7 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:654.35,655.16 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:655.16,656.9 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:658.3,658.58 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:658.58,661.57 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:661.57,665.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:667.4,667.54 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:667.54,670.73 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:670.73,673.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:677.2,677.12 1 18 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:680.68,683.52 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:683.52,684.61 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:684.61,686.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:688.2,688.13 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:691.167,692.20 1 14 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:693.24,694.115 1 14 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:695.25,696.116 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:698.2,698.86 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:701.92,705.16 4 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:705.16,707.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:708.2,709.6 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:709.6,711.20 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:711.20,712.9 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:714.3,714.17 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:714.17,716.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:717.3,717.45 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:719.2,719.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:722.131,723.47 1 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:723.47,728.17 4 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:728.17,732.18 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:732.18,734.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:735.4,735.30 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:735.30,737.19 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:737.19,739.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:740.10,741.92 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:741.92,743.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:745.5,746.79 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:750.3,750.102 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:750.102,752.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:754.3,754.22 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:754.22,756.81 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:756.81,757.39 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:757.39,760.6 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:762.5,762.15 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:764.4,764.118 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:767.3,767.29 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:767.29,769.80 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:769.80,770.39 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:770.39,773.6 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:775.5,775.15 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:777.4,777.125 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:779.8,781.17 2 2 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:781.17,783.4 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:784.3,784.102 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:784.102,786.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:788.3,789.80 2 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:789.80,790.38 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:790.38,793.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:795.4,795.14 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:797.3,797.108 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:800.2,800.12 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:803.89,806.69 2 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:806.69,809.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:810.2,812.12 2 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:815.90,818.76 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:818.76,820.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:822.2,822.70 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:822.70,824.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:826.2,826.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:829.125,832.38 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:832.38,834.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:836.2,836.76 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:836.76,838.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:840.2,840.69 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:840.69,842.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:844.2,844.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:847.91,850.71 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:850.71,852.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:854.2,854.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:857.87,860.67 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:860.67,862.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:864.2,864.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:867.122,868.44 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:868.44,870.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:872.2,873.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:873.16,876.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:878.2,878.23 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:878.23,880.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:882.2,882.43 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:882.43,884.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:886.2,886.134 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:889.99,891.2 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:893.82,895.2 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:897.70,899.2 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:901.162,903.113 1 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:903.113,905.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:907.2,907.56 1 3 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:910.121,911.56 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:911.56,913.3 1 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:914.2,922.39 9 1 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:925.107,929.16 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:929.16,931.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:933.2,934.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:934.16,936.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:937.2,940.16 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:940.16,942.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:944.2,944.18 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:947.95,948.43 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:948.43,950.3 1 4 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:952.2,952.44 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:952.44,954.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:958.2,958.13 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:961.159,962.43 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:962.43,964.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:966.2,969.16 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:969.16,971.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:973.2,974.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:974.16,976.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:977.2,980.16 3 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:980.16,982.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:984.2,984.45 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:984.45,986.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:988.2,988.18 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:991.108,993.2 1 23 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:995.117,997.2 1 0 +github.com/longhorn/longhorn-manager/controller/instance_handler.go:999.106,1001.2 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:85.71,87.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:87.16,89.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:90.2,92.16 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:92.16,94.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:95.2,99.12 5 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:108.39,135.42 6 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:135.42,135.77 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:137.17,139.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:140.2,146.43 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:146.43,146.81 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:149.20,151.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:152.2,155.45 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:155.45,155.79 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:157.20,159.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:160.2,166.44 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:166.44,166.77 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:168.21,170.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:171.2,173.17 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:176.85,178.9 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:178.9,180.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:180.10,182.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:185.3,186.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:186.10,188.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:191.2,192.74 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:195.49,197.9 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:197.9,199.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:199.10,201.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:204.3,205.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:205.10,207.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:210.2,210.48 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:210.48,211.25 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:212.64,213.15 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:216.2,216.14 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:219.80,226.90 5 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:226.90,228.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:230.2,230.31 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:230.31,232.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:234.2,234.10 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:237.48,238.32 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:238.33,239.3 0 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:242.66,245.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:245.10,247.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:248.2,253.13 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:256.77,257.16 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:257.16,260.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:262.2,263.45 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:263.45,267.3 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:269.2,271.23 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:274.105,281.2 1 38 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:283.83,284.15 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:284.15,286.3 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:287.2,288.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:288.16,290.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:291.2,291.32 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:291.32,293.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:295.2,296.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:296.16,297.37 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:297.37,300.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:301.3,301.60 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:304.2,306.31 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:306.31,308.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:310.2,310.43 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:310.43,313.17 3 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:313.17,315.47 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:315.47,317.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:318.4,318.14 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:320.3,320.67 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:323.2,323.33 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:323.33,326.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:328.2,329.15 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:329.15,330.69 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:330.69,332.4 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:333.3,333.46 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:333.46,337.4 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:340.2,340.50 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:340.50,342.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:347.2,347.46 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:347.46,349.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:349.17,351.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:352.3,352.16 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:352.16,354.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:357.2,357.51 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:357.51,359.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:361.2,361.51 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:361.51,363.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:365.2,365.42 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:365.42,367.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:369.2,369.55 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:369.55,371.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:373.2,373.62 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:373.62,375.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:377.2,377.44 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:377.44,379.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:381.2,381.12 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:384.124,386.75 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:386.75,388.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:390.2,391.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:391.16,393.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:395.2,395.25 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:395.25,396.32 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:396.32,397.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:400.3,400.69 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:400.69,402.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:405.2,406.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:406.16,408.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:411.2,411.65 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:416.93,420.15 3 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:420.15,421.46 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:421.46,423.4 1 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:426.2,427.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:427.16,429.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:431.2,431.16 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:431.16,432.101 1 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:432.101,436.4 2 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:437.3,438.13 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:442.2,442.34 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:442.34,445.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:448.2,448.26 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:449.25,450.65 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:451.25,454.51 2 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:454.51,456.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:458.3,458.14 1 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:458.14,461.4 2 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:461.9,463.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:464.10,465.62 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:468.2,468.12 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:471.94,475.16 3 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:475.16,477.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:478.2,478.12 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:478.12,479.133 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:479.133,482.4 2 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:485.2,485.12 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:490.94,493.67 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:493.67,500.3 3 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:501.2,501.12 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:504.110,505.46 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:505.46,507.3 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:509.2,509.68 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:509.68,511.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:513.2,513.45 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:513.45,515.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:517.2,518.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:518.16,520.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:522.2,522.68 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:525.111,526.68 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:526.68,528.3 1 5 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:530.2,531.16 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:531.16,533.3 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:534.2,542.43 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:542.43,544.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:544.17,546.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:548.3,548.22 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:549.34,552.18 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:552.18,554.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:555.46,557.48 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:557.48,559.19 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:559.19,561.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:563.46,564.48 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:564.48,566.19 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:566.19,568.6 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:573.2,573.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:576.85,580.16 3 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:580.16,582.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:584.2,585.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:585.16,587.3 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:589.2,590.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:590.16,592.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:594.2,595.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:595.16,597.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:599.2,600.46 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:600.46,602.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:602.17,604.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:605.3,605.41 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:608.2,611.28 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:611.28,613.3 1 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:615.2,619.63 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:619.63,621.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:623.2,623.40 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:623.40,625.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:629.2,629.99 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:629.99,631.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:633.2,633.57 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:633.57,635.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:637.2,637.12 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:640.97,642.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:642.16,644.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:645.2,645.16 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:645.16,647.3 1 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:649.2,650.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:650.16,652.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:654.2,654.28 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:654.28,656.3 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:657.2,660.22 4 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:660.22,662.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:662.8,662.29 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:662.29,664.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:664.8,666.3 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:668.2,669.123 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:669.123,671.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:673.2,673.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:676.183,677.68 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:677.68,679.3 1 5 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:682.2,682.130 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:682.130,683.120 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:683.120,685.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:688.2,689.16 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:689.16,691.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:692.2,692.16 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:692.16,694.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:696.2,696.57 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:696.57,699.17 3 13 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:699.17,701.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:702.3,702.22 1 13 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:703.41,704.75 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:705.61,706.72 1 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:707.113,708.88 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:709.39,710.73 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:711.40,712.74 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:713.69,714.73 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:716.3,716.17 1 13 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:716.17,718.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:719.3,719.23 1 13 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:719.23,721.4 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:724.2,724.32 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:727.128,729.16 2 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:729.16,731.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:732.2,734.16 3 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:734.16,736.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:738.2,738.100 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:741.125,743.16 2 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:743.16,745.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:746.2,746.63 1 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:746.63,748.3 1 2 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:750.2,750.71 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:753.141,755.16 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:755.16,757.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:758.2,758.122 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:758.122,760.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:762.2,763.16 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:763.16,765.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:766.2,767.74 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:770.126,772.2 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:774.127,778.2 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:780.140,782.16 2 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:782.16,784.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:785.2,786.21 2 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:787.37,788.41 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:789.37,790.41 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:792.2,792.50 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:792.50,794.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:795.2,795.18 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:798.105,802.134 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:802.134,806.3 3 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:808.2,810.127 3 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:810.127,811.48 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:811.48,813.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:815.2,815.12 1 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:818.87,820.68 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:820.68,822.3 1 1 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:824.2,827.23 2 7 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:827.23,829.3 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:829.8,831.3 1 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:833.2,833.12 1 7 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:836.98,837.57 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:837.57,839.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:841.2,841.68 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:841.68,843.3 1 5 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:845.2,846.16 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:846.16,848.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:850.2,851.51 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:851.51,853.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:862.2,862.19 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:862.19,863.19 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:863.19,865.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:867.3,868.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:868.17,870.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:872.3,872.20 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:872.20,875.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:877.3,878.42 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:890.2,891.16 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:891.16,893.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:895.2,895.30 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:895.30,897.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:897.17,899.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:901.3,901.20 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:901.20,903.20 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:903.20,905.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:906.4,906.14 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:909.3,909.19 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:909.19,911.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:913.3,913.13 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:917.2,917.18 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:917.18,919.3 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:921.2,921.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:924.74,926.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:926.16,927.38 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:927.38,929.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:930.3,930.51 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:933.2,934.16 2 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:934.16,935.38 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:935.38,937.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:938.3,938.58 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:941.2,941.35 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:941.35,942.71 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:942.71,943.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:945.3,946.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:946.10,947.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:949.3,949.55 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:949.55,950.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:952.3,952.60 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:952.60,953.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:955.3,955.51 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:955.51,956.39 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:956.39,958.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:962.2,962.12 1 8 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:965.100,969.51 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:969.51,971.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:972.2,972.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:977.65,980.40 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:980.40,985.44 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:985.44,987.36 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:987.36,988.10 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:993.2,993.34 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:993.34,994.17 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:994.17,996.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:996.9,998.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:999.3,1000.38 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1000.38,1002.36 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1002.36,1003.10 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1008.2,1008.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1011.59,1014.32 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1014.32,1016.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1017.2,1017.29 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1017.29,1019.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1020.2,1020.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1023.119,1027.56 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1027.56,1028.67 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1028.67,1030.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1031.3,1031.99 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1035.2,1035.113 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1035.113,1037.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1042.2,1043.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1043.16,1045.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1046.2,1046.24 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1046.24,1048.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1050.2,1051.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1051.16,1053.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1054.2,1054.68 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1054.68,1056.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1058.2,1059.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1059.16,1060.37 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1060.37,1062.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1063.3,1063.24 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1066.2,1066.107 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1066.107,1069.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1071.2,1072.80 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1072.80,1073.49 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1073.49,1074.129 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1074.129,1076.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1078.8,1080.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1084.2,1084.41 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1084.41,1089.17 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1089.17,1091.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1092.3,1092.74 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1092.74,1093.64 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1093.64,1095.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1103.3,1107.60 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1107.60,1109.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1112.2,1112.22 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1115.108,1117.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1117.16,1119.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1120.2,1120.15 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1120.15,1122.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1124.2,1125.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1125.16,1127.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1128.2,1128.27 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1131.151,1133.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1133.16,1134.37 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1134.37,1136.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1137.3,1137.24 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1140.2,1140.25 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1140.25,1141.66 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1141.66,1143.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1146.2,1146.22 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1149.100,1152.64 3 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1152.64,1153.37 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1153.37,1155.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1156.3,1156.13 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1158.2,1158.12 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1161.134,1174.2 1 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1176.91,1178.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1178.16,1181.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1183.2,1183.20 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1186.82,1188.9 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1188.9,1190.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1190.10,1193.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1196.3,1197.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1197.10,1200.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1203.2,1204.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1204.16,1205.32 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1205.32,1207.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1208.3,1209.9 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1211.2,1211.32 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1214.78,1216.9 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1216.9,1218.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1218.10,1221.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1224.3,1225.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1225.10,1228.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1231.2,1231.57 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1234.87,1236.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1236.16,1237.32 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1237.32,1241.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1242.3,1243.9 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1246.2,1246.167 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1246.167,1248.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1248.17,1249.33 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1249.33,1251.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1252.4,1253.10 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1256.3,1256.26 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1256.26,1258.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1262.77,1264.2 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1266.86,1270.16 3 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1270.16,1272.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1273.2,1273.48 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1273.48,1275.52 2 4 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1275.52,1277.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1280.2,1280.12 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1283.100,1287.16 3 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1287.16,1289.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1291.2,1292.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1292.16,1294.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1296.2,1297.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1297.16,1299.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1301.2,1305.16 4 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1305.16,1307.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1309.2,1310.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1310.16,1312.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1314.2,1315.50 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1315.50,1317.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1319.2,1320.53 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1320.53,1321.37 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1321.37,1323.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1324.3,1324.13 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1327.2,1327.12 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1330.206,1332.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1332.16,1334.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1336.2,1337.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1337.16,1339.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1341.2,1342.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1342.16,1344.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1346.2,1373.26 3 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1373.26,1379.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1382.2,1383.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1383.16,1385.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1387.2,1387.27 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1387.27,1389.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1391.2,1391.21 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1394.243,1396.16 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1396.16,1398.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1400.2,1404.38 4 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1404.38,1408.17 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1408.17,1410.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1412.3,1413.34 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1413.34,1415.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1417.3,1418.20 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1418.20,1420.18 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1420.18,1422.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1424.4,1424.25 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1427.3,1443.17 6 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1443.17,1445.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1447.3,1447.59 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1447.59,1449.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1450.3,1452.57 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1452.57,1454.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1455.3,1455.136 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1456.8,1460.3 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1463.2,1470.29 3 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1470.29,1472.3 1 24 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1473.2,1473.38 1 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1473.38,1478.3 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1479.2,1569.38 6 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1569.38,1583.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1584.2,1586.21 2 6 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1589.85,1592.24 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1592.24,1595.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1597.2,1600.57 3 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1600.57,1602.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1605.2,1606.16 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1606.16,1609.3 2 3 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1611.2,1633.12 6 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1633.12,1639.3 5 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1642.69,1647.9 4 10 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1647.9,1649.3 1 10 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1651.2,1651.9 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1652.16,1652.16 0 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1654.10,1655.16 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1660.40,1667.16 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1667.16,1672.3 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1674.2,1674.15 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1674.15,1679.3 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1681.2,1681.12 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1681.12,1683.7 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1683.7,1684.64 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1684.64,1687.5 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1689.4,1689.39 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1689.39,1691.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1693.4,1694.36 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1694.36,1696.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1696.10,1698.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1699.4,1699.18 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1699.18,1703.5 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1703.10,1707.5 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1711.2,1714.6 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1714.6,1715.10 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1716.19,1717.39 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1717.39,1719.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1721.4,1725.63 4 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1725.63,1729.5 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1730.4,1732.19 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1732.19,1733.13 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1735.4,1735.58 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1735.58,1737.5 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1738.19,1739.10 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1744.77,1746.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1746.16,1747.37 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1747.37,1750.4 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1751.3,1752.15 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1755.2,1755.41 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1755.41,1758.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1760.2,1761.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1761.16,1764.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1765.2,1765.36 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1765.36,1767.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1768.2,1768.64 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1768.64,1771.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1773.2,1774.16 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1774.16,1777.3 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1785.2,1785.84 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1785.84,1787.3 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1789.2,1789.14 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1792.129,1793.9 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1794.32,1795.51 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1795.51,1797.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1799.3,1799.29 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1800.10,1803.35 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1803.35,1804.31 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1805.37,1806.34 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1807.38,1808.35 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1814.3,1815.138 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1815.138,1817.4 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1819.3,1820.46 2 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1822.2,1822.13 1 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1825.69,1829.2 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1831.56,1835.2 3 0 +github.com/longhorn/longhorn-manager/controller/instance_manager_controller.go:1837.91,1839.2 1 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:52.60,76.43 6 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:76.43,76.77 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:78.21,80.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:82.2,86.44 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:86.44,86.93 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:89.21,91.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:93.2,95.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:98.83,105.69 5 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:105.69,107.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:108.2,108.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:108.31,110.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:111.2,111.10 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:114.51,115.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:115.32,116.3 0 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:119.69,121.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:121.10,123.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:124.2,127.13 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:130.80,131.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:131.16,134.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:136.2,137.44 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:137.44,141.3 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:143.2,145.30 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:148.78,149.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:149.15,151.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:153.2,154.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:154.16,156.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:158.2,158.57 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:158.57,160.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:162.2,162.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:165.85,166.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:166.31,168.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:170.2,170.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:171.46,173.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:173.17,175.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:177.3,178.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:178.10,180.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:182.3,183.52 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:183.52,185.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:187.3,187.62 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:187.62,189.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:191.3,192.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:192.17,194.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:196.3,197.52 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:197.52,199.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:201.3,202.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:202.17,203.38 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:203.38,205.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:206.4,206.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:209.3,209.81 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:210.48,211.61 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:211.61,213.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:216.2,216.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:219.104,222.16 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:222.16,224.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:226.2,227.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:227.9,229.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:231.2,231.37 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:231.37,233.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:234.2,236.26 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:239.97,241.23 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:241.23,243.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:245.2,246.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:246.9,248.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:250.2,250.53 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:253.82,255.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:255.16,258.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:260.2,260.19 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:263.97,265.2 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:267.51,269.11 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:269.11,271.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:271.10,274.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:276.3,277.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:277.10,280.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_configmap_controller.go:283.2,283.95 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:44.59,60.42 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:60.42,60.69 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:61.20,63.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:64.2,68.42 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:68.42,68.78 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:69.17,71.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:72.2,74.24 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:77.65,79.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:79.16,82.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:84.2,84.18 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:87.74,89.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:89.9,91.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:91.10,94.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:97.3,98.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:98.10,101.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:104.2,106.37 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:106.37,107.54 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:107.54,108.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:111.3,113.8 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:117.81,124.67 5 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:124.67,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:127.2,127.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:127.31,129.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:130.2,130.10 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:133.49,134.30 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:134.31,135.3 0 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:138.67,140.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:140.10,142.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:143.2,148.13 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:151.78,152.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:152.16,155.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:157.2,159.29 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:162.69,163.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:163.15,165.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:167.2,168.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:168.16,170.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:171.2,171.30 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:171.30,173.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:175.2,175.26 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:178.106,180.2 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:182.83,184.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:184.16,185.32 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:185.32,188.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:189.3,189.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:192.2,194.48 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:194.48,197.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:199.2,199.42 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:199.42,202.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:204.2,205.15 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:205.15,206.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:206.17,208.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:210.3,210.52 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:210.52,212.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:214.3,215.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:215.17,220.4 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:223.2,223.63 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:223.63,224.24 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:225.39,227.18 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:227.18,229.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:233.2,233.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:236.97,239.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:239.16,241.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:243.2,247.39 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:247.39,249.49 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:249.49,251.12 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:254.3,254.32 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:258.2,259.42 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:259.42,260.44 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:260.44,262.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:266.2,270.88 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:270.88,273.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:276.2,278.12 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:281.146,283.42 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:283.42,284.44 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:284.44,286.54 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:286.54,289.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:292.2,292.24 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:295.353,299.43 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:299.43,303.78 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:303.78,305.91 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:305.91,307.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:308.4,308.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:312.3,312.43 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:315.2,315.40 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:318.98,340.2 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:342.180,346.45 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:346.45,348.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:351.2,351.42 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:351.42,353.44 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:353.44,356.36 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:356.36,358.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:363.4,363.66 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:363.66,366.13 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_endpoint_controller.go:372.2,372.34 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:48.58,68.42 6 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:68.42,68.66 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:70.17,72.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:73.2,77.42 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:77.42,77.74 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:79.20,81.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:82.2,89.44 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:89.44,89.71 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:91.21,93.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:94.2,96.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:99.67,101.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:101.9,103.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:103.10,105.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:108.3,109.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:109.10,111.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:114.2,114.90 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:117.79,124.89 5 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:124.89,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:128.2,128.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:128.31,130.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:132.2,132.10 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:135.47,136.32 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:136.33,137.3 0 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:140.65,143.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:143.10,145.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:146.2,151.13 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:154.76,155.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:155.16,158.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:160.2,161.45 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:161.45,165.3 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:167.2,169.23 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:172.81,173.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:173.15,175.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:176.2,177.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:177.16,179.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:181.2,182.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:182.16,183.38 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:183.38,185.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:186.3,186.63 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:189.2,189.21 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:189.21,191.49 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:191.49,193.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:194.3,194.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:197.2,197.39 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:197.39,199.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:201.2,202.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:202.16,205.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:207.2,208.15 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:208.15,209.69 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:209.69,211.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:213.3,213.46 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:213.46,217.4 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:221.2,221.51 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:221.51,223.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:226.2,226.54 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:226.54,228.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:230.2,230.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:233.70,235.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:235.16,238.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:239.2,239.23 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:242.75,244.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:244.9,246.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:246.10,249.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:252.3,253.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:253.10,256.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:259.2,259.25 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:262.68,264.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:264.16,267.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:269.2,269.20 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:275.88,277.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:277.16,279.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:280.2,280.19 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:280.19,282.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:284.2,284.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:284.31,286.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:287.2,288.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:288.16,290.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:291.2,292.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:292.9,294.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:295.2,298.13 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:299.49,301.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:301.17,303.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:304.3,305.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:305.17,307.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:308.3,309.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:309.17,311.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:312.51,314.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:314.10,316.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:317.3,318.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:318.17,321.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:322.10,324.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:327.2,327.21 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:327.21,329.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:331.2,333.12 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:336.85,337.30 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:337.30,339.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:341.2,342.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:342.16,344.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:346.2,346.96 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:346.96,348.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:348.17,351.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:352.3,352.24 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_node_controller.go:354.2,354.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:52.54,67.42 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:67.42,67.71 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:69.17,71.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:72.2,76.42 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:76.42,76.67 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:78.20,80.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:81.2,83.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:86.77,93.69 5 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:93.69,95.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:96.2,96.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:96.31,98.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:99.2,99.10 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:102.45,103.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:103.32,104.3 0 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:107.63,109.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:109.10,111.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:112.2,115.13 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:118.74,119.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:119.16,122.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:124.2,126.30 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:129.72,130.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:130.15,132.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:134.2,135.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:135.16,137.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:138.2,138.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:138.31,140.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:142.2,142.45 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:142.45,144.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:145.2,145.27 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:148.71,151.51 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:151.51,153.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:155.2,156.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:156.16,157.32 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:157.32,159.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:160.3,160.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:163.2,164.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:164.16,166.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:167.2,168.30 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:168.30,169.55 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:169.55,171.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:174.2,174.22 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:174.22,176.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:178.2,178.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:178.16,180.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:182.2,184.83 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:184.83,186.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:187.2,187.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:190.71,192.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:192.16,195.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:196.2,196.19 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:199.67,200.46 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:200.46,202.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:205.112,216.2 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:218.112,219.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:219.16,221.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:222.2,224.51 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:224.51,226.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pdb_controller.go:227.2,227.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:57.57,80.42 6 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:80.42,80.70 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:82.17,84.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:85.2,87.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:90.77,97.81 5 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:97.81,99.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:100.2,100.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:100.31,102.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:103.2,103.10 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:106.45,107.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:107.32,108.3 0 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:111.63,113.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:113.10,115.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:116.2,119.13 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:122.74,123.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:123.16,126.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:128.2,129.44 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:129.44,133.3 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:135.2,137.30 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:140.80,145.2 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:147.72,148.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:148.15,150.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:151.2,152.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:152.16,154.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:156.2,157.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:157.16,159.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:160.2,160.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:160.16,162.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:163.2,164.18 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:164.18,167.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:169.2,169.25 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:169.25,171.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:173.2,173.79 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:173.79,175.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:177.2,177.72 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:177.72,179.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:181.2,181.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:202.108,208.39 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:208.39,210.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:212.2,213.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:213.16,216.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:217.2,217.35 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:217.35,219.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:221.2,224.16 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:224.16,226.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:228.2,228.50 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:228.50,231.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:234.2,236.16 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:236.16,238.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:239.2,239.38 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:239.38,240.75 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:240.75,242.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:246.2,247.53 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:247.53,251.17 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:251.17,252.33 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:252.33,254.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:256.4,256.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:260.3,260.65 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:260.65,262.12 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:265.3,265.52 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:269.2,270.41 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:270.41,271.81 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:271.81,278.18 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:278.18,279.34 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:279.34,281.14 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:283.5,283.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:286.4,286.39 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:286.39,288.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:291.4,291.66 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:291.66,296.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:299.4,299.42 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:299.42,301.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:304.4,304.49 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:304.49,307.5 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:311.2,311.35 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:311.35,314.17 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:314.17,315.38 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:315.38,317.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:318.4,318.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:322.2,322.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:339.120,341.114 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:341.114,343.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:345.2,349.19 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:349.19,351.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:353.2,354.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:354.16,356.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:357.2,357.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:357.17,359.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:361.2,361.34 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:361.34,363.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:367.2,368.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:368.16,370.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:371.2,371.39 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:371.39,372.34 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:372.34,374.18 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:374.18,375.39 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:375.39,376.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:378.5,378.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:380.4,380.132 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:383.3,384.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:387.2,387.45 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:387.45,389.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:391.2,395.16 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:395.16,397.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:398.2,400.12 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:403.118,406.16 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:406.16,408.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:410.2,412.39 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:412.39,413.52 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:413.52,414.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:417.3,418.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:418.17,419.38 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:419.38,420.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:422.4,422.19 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:424.3,424.34 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:427.2,427.39 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:427.39,428.44 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:428.44,429.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:431.3,431.51 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:431.51,432.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:434.3,434.49 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:434.49,435.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:437.3,437.62 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:437.62,438.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:440.3,440.24 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:443.2,443.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:448.99,450.42 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:450.42,452.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:454.2,455.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:455.16,457.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:458.2,458.50 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:458.50,460.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:463.2,463.40 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:463.40,465.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:467.2,468.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:468.16,470.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:472.2,473.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:473.16,475.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:480.2,480.33 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:480.33,482.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:485.2,485.34 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:485.34,487.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:489.2,490.33 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:490.33,491.42 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:491.42,492.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:497.3,497.63 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:497.63,498.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:501.3,502.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:502.17,504.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:506.3,507.46 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:507.46,508.75 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:508.75,512.5 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:514.4,518.53 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:518.53,520.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:521.4,522.14 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:527.2,527.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:530.49,531.62 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:531.62,533.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:534.2,534.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:537.48,538.62 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:538.62,540.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:541.2,541.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:545.70,547.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:547.16,550.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:552.2,553.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:553.9,555.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:555.10,558.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:561.3,562.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:562.10,565.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:568.2,568.25 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:568.25,569.43 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:569.43,571.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:572.3,572.9 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:575.2,575.37 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:575.37,576.50 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:576.50,577.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:580.3,581.37 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:581.37,582.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:584.3,584.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:584.17,587.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:589.3,590.37 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:590.37,591.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:593.3,593.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:593.17,596.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:598.3,598.75 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:598.75,600.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:605.135,608.2 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:610.102,613.37 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:613.37,614.50 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:614.50,615.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:618.3,619.37 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:619.37,621.12 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:623.3,623.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:623.17,625.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:627.3,628.37 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:628.37,630.12 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:632.3,632.17 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:632.17,634.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:636.3,636.75 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:636.75,638.38 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:638.38,640.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:642.4,642.18 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:642.18,644.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:645.4,645.40 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:649.2,649.24 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:652.90,654.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:654.16,657.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:659.2,659.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:662.43,664.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:664.9,666.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:666.10,668.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:671.3,672.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:672.10,674.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:677.2,677.34 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:677.34,678.48 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:678.48,679.54 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:679.54,680.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:683.4,683.44 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:683.44,684.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:687.4,687.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pod_controller.go:690.2,690.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:58.56,83.42 6 13 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:83.42,83.77 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:84.37,87.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:88.17,90.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:91.2,95.42 2 13 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:95.42,95.70 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:97.20,99.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:100.2,102.16 2 13 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:105.76,112.74 5 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:112.74,114.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:116.2,116.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:116.31,118.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:120.2,120.10 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:123.44,124.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:124.32,125.3 0 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:128.62,131.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:131.10,133.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:134.2,139.13 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:142.73,143.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:143.16,146.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:148.2,149.44 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:149.44,153.3 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:155.2,157.22 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:160.80,161.15 1 12 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:161.15,163.3 1 12 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:164.2,165.16 2 12 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:165.16,167.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:169.2,170.16 2 12 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:170.16,172.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:173.2,173.8 1 12 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:173.8,175.3 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:177.2,178.16 2 11 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:178.16,179.37 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:179.37,181.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:182.3,182.71 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:185.2,186.22 2 11 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:186.22,188.3 1 2 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:190.2,191.16 2 9 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:191.16,192.37 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:192.37,194.4 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:195.3,195.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:198.2,198.46 1 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:198.46,200.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:202.2,203.15 2 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:203.15,205.77 1 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:205.77,207.4 1 7 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:209.3,209.46 1 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:209.46,213.4 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:217.2,217.51 1 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:217.51,220.3 2 4 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:221.2,228.29 5 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:228.29,229.44 1 7 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:229.44,234.4 3 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:234.9,234.81 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:234.81,237.61 2 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:237.61,239.5 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:241.8,242.28 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:242.28,243.45 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:243.45,245.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:247.4,247.24 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:247.24,249.62 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:249.62,251.6 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:256.2,257.16 2 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:257.16,259.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:260.2,262.12 2 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:265.96,266.15 1 11 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:266.15,268.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:270.2,270.162 1 11 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:270.162,272.3 1 2 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:273.2,273.33 1 9 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:276.76,278.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:278.16,281.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:282.2,282.19 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:286.69,288.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:288.9,290.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:290.10,293.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:296.3,297.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:297.10,300.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:303.2,303.37 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:303.37,305.19 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:305.19,306.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:309.3,310.17 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:310.17,311.39 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:311.39,314.5 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:315.4,315.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:318.3,318.50 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:318.50,320.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:325.72,327.9 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:327.9,329.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:329.10,332.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:335.3,336.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:336.10,339.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:342.2,342.57 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:342.57,344.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:345.2,347.25 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:347.25,349.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:353.70,355.9 2 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:355.9,357.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:357.10,360.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:363.3,364.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:364.10,367.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:370.2,370.58 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:370.58,372.3 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:376.85,378.9 2 12 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:378.9,380.3 1 11 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:381.2,382.16 2 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:382.16,383.37 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:383.37,386.4 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:387.3,387.93 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:389.2,389.46 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:389.46,392.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:393.2,394.51 2 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:394.51,396.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:397.2,397.67 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:397.67,399.48 2 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:399.48,401.4 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:402.3,402.60 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:402.60,404.4 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:405.3,408.17 4 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:408.17,410.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:411.3,411.163 1 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:413.2,414.18 2 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:418.100,419.25 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:419.25,420.19 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:420.19,422.4 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:424.2,424.17 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:428.107,429.47 1 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:429.47,431.3 1 2 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:432.2,433.16 2 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:433.16,435.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:437.2,437.52 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:437.52,438.38 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:438.38,439.89 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:439.89,441.5 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:445.4,445.82 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:445.82,447.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:449.3,449.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:453.2,453.39 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:453.39,455.3 1 2 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:457.2,457.18 1 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:460.99,461.20 1 8 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:461.20,462.60 1 4 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:462.60,464.4 1 3 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:465.3,466.9 2 1 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:469.2,471.25 3 4 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:471.25,478.3 3 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:482.82,484.27 2 6 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:484.27,485.39 1 4 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:485.39,487.4 1 4 +github.com/longhorn/longhorn-manager/controller/kubernetes_pv_controller.go:489.2,489.15 1 2 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:52.57,75.42 6 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:75.42,78.62 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:78.62,83.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:84.4,84.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:87.17,89.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:90.2,92.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:95.80,102.69 5 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:102.69,104.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:105.2,105.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:105.31,107.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:108.2,108.10 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:111.48,112.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:112.32,113.3 0 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:116.66,118.10 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:118.10,120.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:121.2,124.13 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:127.77,128.16 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:128.16,131.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:133.2,134.44 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:134.44,138.3 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:140.2,142.30 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:145.75,146.15 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:146.15,148.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:150.2,151.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:151.16,153.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:154.2,154.31 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:154.31,157.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:159.2,159.66 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:159.66,161.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:162.2,162.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:165.91,168.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:168.16,169.33 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:169.33,171.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:172.3,173.13 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:176.2,177.119 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:177.119,180.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:182.2,183.46 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:183.46,185.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:186.2,187.19 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:187.19,189.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:192.2,192.64 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:192.64,194.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:196.2,196.49 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:199.76,201.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:201.16,204.3 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:206.2,206.19 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:211.89,213.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:213.16,215.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:217.2,218.16 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:218.16,220.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:221.2,224.16 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:224.16,226.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:227.2,229.27 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:229.27,230.43 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:230.43,231.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:234.3,237.23 4 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:237.23,238.30 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:238.30,240.5 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:241.4,241.63 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:242.9,242.30 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:242.30,244.4 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:244.9,245.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:248.3,249.49 2 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:249.49,250.33 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:250.33,251.13 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:253.4,253.14 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:257.2,257.12 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:262.106,263.52 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:263.52,265.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:267.2,269.110 3 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:269.110,271.3 1 0 +github.com/longhorn/longhorn-manager/controller/kubernetes_secret_controller.go:272.2,272.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:99.59,129.42 7 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:129.42,129.65 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:131.45,133.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:135.2,142.44 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:142.44,142.70 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:144.21,146.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:147.2,154.44 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:154.44,154.70 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:157.21,159.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:160.2,166.44 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:166.44,166.76 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:168.21,170.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:171.2,178.44 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:178.44,178.73 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:181.21,183.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:184.2,187.42 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:187.42,187.75 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:189.20,191.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:192.2,199.44 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:199.44,199.91 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:202.21,204.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:205.2,207.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:210.73,212.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:212.9,214.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:214.10,216.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:219.3,220.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:220.10,222.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:225.2,228.70 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:231.73,233.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:233.9,235.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:235.10,237.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:240.3,241.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:241.10,243.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:246.2,246.47 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:249.74,251.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:251.9,253.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:254.2,255.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:255.9,258.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:259.2,260.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:260.16,263.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:264.2,264.46 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:264.46,266.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:268.2,268.40 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:271.78,273.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:273.16,276.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:277.2,277.37 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:277.37,279.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:281.2,281.81 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:281.81,283.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:285.2,285.80 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:285.80,287.17 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:287.17,290.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:292.3,292.94 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:292.94,294.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:297.2,297.13 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:300.87,302.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:302.9,304.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:306.2,306.50 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:309.80,311.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:311.9,313.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:313.10,316.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:319.3,320.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:320.10,323.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:326.2,327.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:327.16,328.33 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:328.33,331.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:332.3,332.9 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:334.2,334.22 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:337.41,339.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:339.9,341.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:341.10,343.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:346.3,347.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:347.10,349.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:352.2,352.42 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:352.42,353.37 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:353.37,355.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:357.2,357.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:360.68,367.77 5 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:367.77,369.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:371.2,371.31 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:371.31,373.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:375.2,375.10 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:378.36,379.31 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:379.32,380.3 0 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:383.54,386.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:386.10,388.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:389.2,394.13 4 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:397.65,398.16 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:398.16,401.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:403.2,404.44 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:404.44,408.3 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:410.2,412.22 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:415.82,417.2 1 16 +github.com/longhorn/longhorn-manager/controller/node_controller.go:419.60,420.15 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:420.15,422.3 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:423.2,424.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:424.16,426.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:427.2,427.31 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:427.31,430.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:432.2,433.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:433.16,434.37 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:434.37,437.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:438.3,438.13 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:441.2,443.35 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:443.35,446.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:448.2,449.15 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:449.15,451.73 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:451.73,453.4 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:455.3,455.46 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:455.46,459.4 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:462.2,463.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:463.16,465.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:467.2,468.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:468.16,469.32 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:469.32,479.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:480.3,480.13 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:483.2,483.88 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:483.88,485.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:487.2,487.71 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:487.71,489.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:493.2,493.68 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:493.68,496.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:498.2,500.34 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:500.34,502.3 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:506.2,507.70 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:507.70,510.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:513.2,513.50 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:513.50,515.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:517.2,518.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:518.16,519.57 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:519.57,522.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:523.3,523.13 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:527.2,527.67 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:527.67,529.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:531.2,532.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:532.16,534.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:536.2,536.31 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:536.31,539.10 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:539.10,541.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:541.9,543.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:547.2,547.34 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:547.34,548.37 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:548.37,549.55 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:549.55,551.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:556.2,558.54 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:558.54,560.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:562.2,562.61 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:562.61,564.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:566.2,566.64 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:566.64,568.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:570.2,570.71 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:570.71,572.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:574.2,574.67 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:574.67,576.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:578.2,578.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:581.56,583.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:583.16,586.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:588.2,588.19 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:591.67,593.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:593.16,596.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:598.2,598.30 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:601.59,603.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:603.16,606.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:608.2,608.29 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:608.29,610.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:613.59,615.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:615.9,617.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:617.10,620.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:623.3,624.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:624.10,627.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:630.2,631.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:631.16,632.33 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:632.33,635.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:636.3,636.9 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:638.2,638.22 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:641.65,643.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:643.9,645.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:650.2,650.41 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:650.41,652.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:654.2,655.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:655.9,658.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:660.2,661.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:661.16,664.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:666.2,666.46 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:666.46,668.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:670.2,674.69 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:674.69,679.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:679.8,682.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:685.62,687.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:687.16,690.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:691.2,691.29 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:691.29,693.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:696.66,698.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:698.9,700.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:700.10,703.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:706.3,707.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:707.10,710.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:713.2,714.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:714.16,715.33 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:715.33,717.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:718.3,718.9 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:720.2,720.24 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:723.126,728.50 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:728.50,730.3 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:732.2,732.47 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:732.47,735.3 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:737.2,737.54 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:740.223,749.52 4 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:749.52,751.31 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:751.31,753.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:755.3,755.41 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:755.41,757.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:758.3,758.40 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:758.40,760.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:763.3,763.32 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:763.32,765.12 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:769.3,769.54 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:769.54,771.31 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:771.31,774.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:774.10,774.77 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:774.77,777.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:779.4,779.26 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:779.26,786.13 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:790.3,790.50 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:794.2,794.54 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:794.54,795.47 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:795.47,796.39 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:796.39,798.5 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:800.4,801.48 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:801.48,809.13 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:812.4,816.49 5 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:820.2,820.46 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:823.138,824.42 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:824.42,825.28 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:825.28,826.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:828.3,836.29 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:840.135,843.42 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:843.42,846.43 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:846.43,858.4 6 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:859.3,859.39 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:863.130,865.42 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:865.42,867.93 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:867.93,869.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:870.3,870.39 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:874.91,881.16 4 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:881.16,883.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:884.2,885.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:885.16,887.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:889.2,889.46 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:889.46,892.120 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:892.120,900.4 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:900.9,903.18 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:903.18,905.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:906.4,906.29 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:906.29,907.71 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:907.71,911.68 4 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:911.68,914.15 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:920.4,921.18 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:921.18,923.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:924.4,927.37 4 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:927.37,928.79 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:928.79,931.60 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:931.60,934.15 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:937.5,938.61 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:941.4,941.47 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:941.47,942.84 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:942.84,945.6 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:948.4,953.18 5 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:953.18,955.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:956.4,956.53 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:956.53,963.5 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:963.10,968.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:971.3,971.39 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:974.2,974.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:977.86,980.48 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:980.48,981.59 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:981.59,983.9 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:986.2,986.25 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:986.25,988.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:989.2,989.50 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:989.50,990.44 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:990.44,992.37 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:992.37,994.5 1 1 +github.com/longhorn/longhorn-manager/controller/node_controller.go:995.4,995.75 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:995.75,999.5 1 1 +github.com/longhorn/longhorn-manager/controller/node_controller.go:999.10,1001.5 1 1 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1002.4,1002.9 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1006.2,1006.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1009.88,1016.2 5 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1018.125,1025.9 6 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1026.42,1028.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1029.43,1030.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1031.43,1035.18 4 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1036.43,1037.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1038.43,1039.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1040.44,1041.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1042.42,1043.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1044.39,1047.99 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1048.41,1051.89 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1052.41,1055.88 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1056.43,1059.110 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1060.10,1064.9 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1067.2,1068.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1068.16,1073.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1075.2,1076.31 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1076.31,1078.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1078.16,1080.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1081.3,1082.17 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1082.17,1085.12 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1087.3,1087.15 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1087.15,1088.144 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1088.144,1091.13 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1096.2,1096.27 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1096.27,1101.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1103.2,1104.89 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1107.112,1117.105 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1117.105,1119.17 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1119.17,1125.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1127.3,1127.56 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1127.56,1129.18 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1129.18,1132.5 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1132.10,1134.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1136.3,1136.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1140.2,1154.73 4 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1154.73,1156.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1159.2,1161.55 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1161.55,1162.18 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1162.18,1164.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1164.9,1166.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1170.2,1170.35 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1170.35,1175.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1175.8,1180.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1183.95,1185.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1185.16,1190.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1191.2,1192.103 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1192.103,1197.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1199.2,1199.145 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1202.96,1206.16 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1206.16,1209.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1211.2,1212.34 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1212.34,1214.3 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1216.2,1216.20 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1216.20,1217.37 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1217.37,1219.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1222.2,1223.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1223.16,1228.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1230.2,1230.40 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1230.40,1234.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1236.2,1237.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1237.16,1242.3 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1244.2,1244.32 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1244.32,1249.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1251.2,1252.115 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1255.88,1257.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1257.16,1259.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1261.2,1262.38 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1262.38,1263.44 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1263.44,1265.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1268.2,1268.29 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1271.123,1273.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1273.16,1274.97 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1274.97,1276.4 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1279.2,1280.38 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1280.38,1282.17 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1282.17,1284.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1285.3,1285.21 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1285.21,1287.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1290.2,1290.30 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1293.158,1296.16 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1296.16,1299.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1299.8,1299.53 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1299.53,1303.3 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1303.8,1305.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1306.2,1306.49 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1309.124,1311.13 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1311.13,1314.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1316.2,1316.17 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1317.11,1318.19 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1319.11,1321.17 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1321.17,1323.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1324.3,1324.45 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1324.45,1326.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1327.10,1328.72 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1331.2,1331.19 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1334.85,1336.38 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1336.38,1338.18 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1338.18,1340.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1341.3,1341.56 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1343.2,1343.23 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1346.92,1348.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1348.16,1353.3 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1355.2,1355.53 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1355.53,1360.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1362.2,1363.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1363.16,1368.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1368.8,1368.23 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1368.23,1373.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1375.2,1375.153 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1378.128,1388.108 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1388.108,1390.17 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1390.17,1392.12 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1394.3,1394.15 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1394.15,1395.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1398.3,1398.18 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1399.38,1402.33 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1402.33,1404.5 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1405.38,1406.72 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1406.72,1408.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1408.10,1410.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1414.2,1414.20 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1417.80,1421.16 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1421.16,1423.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1425.2,1425.27 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1425.27,1427.62 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1427.62,1429.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1432.2,1432.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1435.75,1437.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1437.16,1439.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1441.2,1444.31 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1444.31,1445.60 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1445.60,1447.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1450.2,1452.53 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1452.53,1453.42 1 6 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1453.42,1456.18 3 6 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1456.18,1458.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1459.4,1459.29 1 6 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1459.29,1460.88 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1460.88,1463.6 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1465.5,1466.102 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1466.102,1468.134 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1468.134,1469.124 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1469.124,1471.13 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1476.5,1478.89 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1478.89,1483.42 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1483.42,1485.21 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1485.21,1487.8 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1488.7,1488.54 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1488.54,1491.8 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1493.11,1495.40 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1495.40,1497.7 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1499.6,1499.103 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1499.103,1502.7 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1504.6,1504.42 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1504.42,1506.85 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1506.85,1508.8 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1511.5,1511.24 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1511.24,1513.65 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1513.65,1515.7 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1518.4,1518.88 1 6 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1518.88,1520.19 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1520.19,1522.6 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1523.5,1523.41 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1523.41,1525.20 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1525.20,1527.7 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1528.6,1528.18 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1528.18,1529.15 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1533.5,1535.19 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1535.19,1536.40 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1536.40,1538.65 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1538.65,1540.8 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1542.7,1543.17 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1545.6,1545.16 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1550.2,1550.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1553.202,1567.2 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1569.82,1573.16 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1573.16,1576.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1577.2,1580.16 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1580.16,1582.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1583.2,1583.35 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1583.35,1586.47 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1586.47,1588.12 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1590.3,1590.18 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1590.18,1591.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1593.3,1595.61 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1595.61,1596.58 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1596.58,1600.13 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1605.2,1605.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1608.172,1609.103 1 5 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1609.103,1611.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1613.2,1613.27 1 5 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1613.27,1615.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1617.2,1618.48 2 5 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1618.48,1621.14 2 15 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1621.14,1623.12 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1625.3,1625.27 1 15 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1626.84,1627.24 1 7 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1628.41,1629.25 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1630.11,1631.27 1 6 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1635.2,1635.52 1 5 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1635.52,1637.62 2 15 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1637.62,1638.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1640.3,1641.14 2 15 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1641.14,1642.12 1 6 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1644.3,1645.17 2 9 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1645.17,1647.12 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1649.3,1649.53 1 9 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1649.53,1650.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1658.3,1659.14 2 9 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1659.14,1663.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1664.3,1664.27 1 9 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1665.41,1666.89 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1666.89,1667.13 1 1 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1669.4,1669.25 1 1 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1670.84,1671.47 1 3 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1671.47,1672.13 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1674.4,1674.24 1 1 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1675.11,1676.69 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1676.69,1677.13 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1679.4,1679.27 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1682.3,1683.44 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1687.72,1688.27 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1688.27,1690.3 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1692.2,1693.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1693.16,1695.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1697.2,1699.21 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1702.61,1704.2 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1706.123,1707.52 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1707.52,1711.98 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1711.98,1713.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1714.3,1714.102 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1714.102,1716.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1719.2,1719.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1722.182,1728.16 4 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1728.16,1731.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1732.2,1733.31 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1733.31,1735.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1737.2,1737.43 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1737.43,1739.42 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1739.42,1741.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1744.2,1744.35 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1744.35,1747.64 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1747.64,1748.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1751.3,1752.49 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1752.49,1754.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1757.2,1757.71 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1760.174,1762.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1762.16,1764.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1766.2,1766.58 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1766.58,1768.86 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1768.86,1770.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1773.2,1774.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1774.16,1776.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1778.2,1778.33 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1778.33,1779.47 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1779.47,1780.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1783.3,1784.71 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1784.71,1785.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1788.3,1788.92 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1788.92,1789.88 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1789.88,1791.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1794.2,1794.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1797.170,1798.54 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1798.54,1799.113 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1799.113,1802.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1804.2,1804.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1807.139,1811.62 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1811.62,1813.3 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1815.2,1834.12 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1837.115,1839.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1839.16,1841.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1843.2,1844.65 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1844.65,1847.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1849.2,1849.31 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1853.184,1854.23 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1854.23,1855.35 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1855.35,1858.81 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1858.81,1860.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1864.2,1864.14 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1867.71,1868.35 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1868.35,1870.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1872.2,1872.40 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1872.40,1873.46 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1873.46,1875.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1876.3,1877.35 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1877.35,1879.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1880.3,1880.41 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1880.41,1882.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1883.3,1883.46 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1883.46,1885.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1887.3,1890.48 4 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1893.2,1893.47 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1893.47,1894.54 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1894.54,1896.11 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1896.11,1897.13 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1902.4,1903.30 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1903.30,1905.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1906.4,1906.148 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1906.148,1908.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1909.4,1909.44 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1914.121,1920.16 4 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1920.16,1922.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1924.2,1925.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1925.16,1927.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1928.2,1930.114 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1930.114,1932.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1934.2,1934.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1937.79,1939.2 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1941.103,1942.52 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1942.52,1946.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1948.2,1948.52 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1948.52,1950.10 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1950.10,1953.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1955.3,1957.31 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1957.31,1960.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1963.2,1963.13 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1966.84,1967.15 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1967.15,1968.17 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1968.17,1970.4 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1973.2,1973.31 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1973.31,1975.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1977.2,1978.16 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1978.16,1980.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1982.2,1984.17 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1987.88,1989.43 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1989.43,1991.3 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1992.2,1995.16 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1995.16,1997.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:1999.2,2006.50 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2006.50,2010.64 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2010.64,2011.63 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2011.63,2015.5 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2016.9,2017.63 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2017.63,2018.70 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2018.70,2022.6 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2027.2,2027.57 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2027.57,2032.43 4 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2032.43,2035.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2037.3,2038.86 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2038.86,2041.12 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2044.3,2044.184 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2047.2,2047.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2050.106,2054.16 4 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2054.16,2056.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2058.2,2064.50 3 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2064.50,2066.56 2 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2066.56,2068.18 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2068.18,2070.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2071.4,2073.18 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2073.18,2075.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2076.4,2076.60 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2076.60,2079.5 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2081.4,2081.101 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2081.101,2084.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2088.2,2088.47 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2088.47,2090.43 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2090.43,2092.72 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2092.72,2095.13 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2097.4,2097.222 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2098.9,2100.72 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2100.72,2103.13 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2105.4,2105.222 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2109.2,2109.12 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2113.75,2116.83 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2116.83,2118.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2118.8,2118.28 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2118.28,2120.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2121.2,2121.21 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2121.21,2123.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2125.2,2125.63 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2125.63,2127.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2128.2,2128.34 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2128.34,2131.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2132.2,2132.70 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2132.70,2134.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2135.2,2135.91 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2135.91,2137.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2139.2,2140.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2140.16,2142.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2143.2,2144.73 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2144.73,2145.68 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2145.68,2147.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2150.2,2150.26 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2150.26,2152.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2154.2,2154.57 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2157.63,2158.33 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2158.33,2160.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2162.2,2162.43 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2162.43,2163.33 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2163.33,2165.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2168.2,2168.14 1 2 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2171.137,2175.15 4 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2175.15,2181.3 1 3 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2183.2,2185.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2185.16,2187.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2188.2,2190.12 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2193.93,2195.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2195.16,2197.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2199.2,2201.39 3 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2201.39,2205.59 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2205.59,2208.9 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2212.2,2212.26 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2212.26,2219.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2219.8,2226.3 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2227.2,2227.12 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2230.127,2232.34 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2232.34,2233.37 1 6 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2233.37,2236.47 3 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2236.47,2237.45 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2237.45,2238.94 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2238.94,2245.7 2 1 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2246.6,2246.11 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2249.4,2249.9 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2252.2,2252.23 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2252.23,2259.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2260.2,2260.18 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2263.121,2265.37 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2265.37,2266.19 1 20 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2267.25,2268.42 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2268.42,2270.74 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2270.74,2275.6 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2275.11,2282.6 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2287.34,2288.42 1 16 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2288.42,2295.5 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2298.2,2298.18 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2303.40,2311.63 6 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2311.63,2315.3 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2315.8,2315.87 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2315.87,2319.3 3 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2321.2,2321.23 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2321.23,2331.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2331.8,2341.3 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2344.90,2346.16 2 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2346.16,2348.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2349.2,2349.14 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2349.14,2351.3 1 4 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2353.2,2354.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2354.16,2356.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2357.2,2357.22 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2357.22,2359.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2361.2,2362.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2362.16,2364.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2365.2,2366.25 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2366.25,2370.17 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2370.17,2372.26 2 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2372.26,2374.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_controller.go:2378.2,2378.20 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:53.62,76.42 5 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:76.42,76.82 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:78.17,80.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:81.2,83.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:86.90,88.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:88.16,91.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:93.2,93.19 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:96.85,103.69 5 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:103.69,105.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:106.2,106.31 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:106.31,108.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:109.2,109.10 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:112.53,113.31 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:113.32,114.3 0 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:117.71,119.10 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:119.10,121.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:122.2,125.13 4 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:128.82,129.16 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:129.16,132.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:134.2,135.44 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:135.44,139.3 3 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:141.2,143.22 3 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:146.126,152.2 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:154.107,158.2 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:160.94,161.15 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:161.15,163.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:165.2,166.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:166.16,168.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:169.2,169.31 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:169.31,171.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:173.2,173.27 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:176.86,178.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:178.16,179.33 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:179.33,181.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:182.3,182.13 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:185.2,187.39 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:187.39,189.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:191.2,191.51 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:191.51,194.17 3 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:194.17,196.47 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:196.47,198.5 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:199.4,199.14 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:201.3,201.101 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:204.2,204.45 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:204.45,205.45 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:205.45,208.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:210.3,210.68 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:213.2,214.58 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:214.58,216.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:218.2,219.15 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:219.15,220.17 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:220.17,222.4 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:223.3,223.73 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:223.73,224.125 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:224.125,227.5 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:231.2,231.78 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:231.78,233.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:235.2,235.44 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:235.44,237.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:239.2,240.58 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:240.58,242.45 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:242.45,245.4 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:248.2,248.12 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:251.123,255.16 3 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:255.16,258.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:259.2,260.9 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:260.9,263.3 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:265.2,268.35 4 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:268.35,273.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:276.149,277.44 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:277.44,279.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:281.2,282.16 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:282.16,284.3 1 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:286.2,288.32 2 0 +github.com/longhorn/longhorn-manager/controller/node_upgrade_controller.go:291.95,293.2 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:56.47,80.42 6 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:80.42,80.67 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:82.17,84.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:85.2,88.37 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:88.37,88.71 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:89.42,89.76 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:90.37,90.71 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:91.20,93.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:94.2,96.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:99.60,101.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:101.16,104.3 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:106.2,106.19 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:109.69,111.9 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:111.9,113.10 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:113.10,116.4 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:118.3,119.10 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:119.10,122.4 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:125.2,126.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:126.16,129.3 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:131.2,131.33 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:131.33,133.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:136.70,143.69 5 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:143.69,145.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:146.2,146.31 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:146.31,148.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:149.2,149.10 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:152.38,153.31 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:153.32,154.3 0 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:157.56,159.10 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:159.10,161.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:162.2,165.13 4 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:168.67,169.16 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:169.16,172.3 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:174.2,175.44 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:175.44,179.3 3 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:181.2,183.22 3 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:186.64,187.15 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:187.15,189.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:191.2,192.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:192.16,194.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:195.2,195.31 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:195.31,197.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:198.2,198.27 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:201.70,203.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:203.16,204.33 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:204.33,206.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:207.3,207.13 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:210.2,212.34 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:212.34,214.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:216.2,216.46 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:216.46,219.17 3 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:219.17,221.47 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:221.47,223.5 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:224.4,224.14 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:226.3,226.56 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:229.2,229.40 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:229.40,230.16 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:230.16,231.18 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:231.18,233.5 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:236.3,236.40 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:239.2,240.15 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:240.15,241.17 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:241.17,243.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:244.3,244.62 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:244.62,246.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:247.3,247.104 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:247.104,250.4 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:253.2,253.52 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:253.52,255.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:257.2,257.12 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:260.91,266.2 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:268.76,270.2 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:272.86,275.15 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:275.15,276.17 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:276.17,278.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:280.3,282.85 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:287.2,287.43 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:287.43,291.3 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:293.2,294.32 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:294.32,297.3 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:299.2,299.26 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:300.34,301.41 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:302.10,303.63 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:306.2,306.61 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:306.61,308.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:310.2,310.12 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:313.82,319.9 3 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:319.9,321.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:323.2,323.37 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:324.35,328.118 4 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:329.30,330.187 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:331.10,332.81 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:336.125,339.15 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:339.15,341.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:343.2,344.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:344.16,346.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:348.2,349.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:349.16,351.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:352.2,355.47 3 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:355.47,357.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:359.2,359.12 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:362.77,363.64 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:363.64,365.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:367.2,367.124 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:367.124,369.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:371.2,371.12 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:375.95,378.15 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:378.15,379.17 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:379.17,381.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:383.3,384.19 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:384.19,386.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:388.3,388.137 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:391.2,392.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:392.16,394.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:395.2,395.19 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:395.19,398.3 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:400.2,401.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:401.16,402.33 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:402.33,404.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:405.3,406.13 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:409.2,409.33 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:409.33,412.3 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:414.2,414.9 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:415.54,416.62 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:419.2,419.12 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:422.116,424.16 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:424.16,425.66 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:425.66,427.4 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:429.3,429.12 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:432.2,435.64 2 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:435.64,437.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:439.2,439.28 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:439.28,441.3 1 0 +github.com/longhorn/longhorn-manager/controller/orphan_controller.go:443.2,443.11 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:57.36,81.42 6 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:81.42,81.72 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:83.17,85.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:86.2,88.15 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:91.71,93.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:93.16,96.3 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:98.2,98.18 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:101.75,108.86 5 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:108.86,110.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:112.2,112.31 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:112.31,114.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:116.2,116.10 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:119.43,120.30 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:120.31,121.3 0 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:124.61,127.10 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:127.10,129.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:130.2,135.13 4 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:138.72,139.16 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:139.16,142.3 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:144.2,145.43 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:145.43,149.3 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:151.2,153.21 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:156.109,162.2 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:164.75,165.15 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:165.15,167.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:168.2,169.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:169.16,171.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:172.2,172.30 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:172.30,174.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:176.2,177.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:177.16,179.38 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:179.38,181.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:183.3,194.17 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:194.17,196.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:197.3,197.31 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:197.31,198.78 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:198.78,200.5 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:202.3,202.13 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:205.2,207.39 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:207.39,209.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:210.2,210.51 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:210.51,213.17 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:213.17,215.47 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:215.47,217.5 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:218.4,218.14 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:220.3,220.62 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:223.2,223.43 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:223.43,225.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:227.2,228.15 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:228.15,229.17 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:229.17,231.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:232.3,233.68 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:233.68,235.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:236.3,237.60 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:237.60,240.4 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:243.2,244.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:244.16,246.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:248.2,248.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:251.124,252.15 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:252.15,254.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:259.2,260.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:260.16,262.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:263.2,267.16 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:267.16,269.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:270.2,270.30 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:270.30,272.34 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:272.34,273.19 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:273.19,274.31 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:274.31,275.14 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:277.5,279.59 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:280.10,280.43 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:280.43,284.5 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:287.3,287.70 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:287.70,289.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:291.3,291.51 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:291.51,293.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:295.2,295.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:298.125,299.48 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:299.48,302.3 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:303.2,303.15 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:308.175,312.49 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:312.49,314.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:317.2,317.49 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:317.49,318.62 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:318.62,319.54 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:319.54,320.13 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:324.4,324.62 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:324.62,326.10 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:330.2,330.24 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:333.109,335.63 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:335.63,337.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:339.2,340.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:340.16,342.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:344.2,344.15 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:344.15,346.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:348.2,348.129 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:348.129,350.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:352.2,352.87 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:352.87,354.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:355.2,355.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:358.112,359.35 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:359.35,361.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:362.2,362.52 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:362.52,365.49 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:365.49,367.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:369.2,369.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:372.93,374.2 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:376.105,378.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:378.16,380.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:382.2,383.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:383.16,385.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:386.2,386.27 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:386.27,388.17 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:388.17,390.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:391.8,393.17 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:393.17,395.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:397.2,397.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:400.117,404.16 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:404.16,406.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:407.2,408.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:408.16,410.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:411.2,412.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:412.16,414.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:415.2,415.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:418.110,420.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:420.16,422.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:423.2,426.16 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:426.16,428.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:429.2,429.36 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:429.36,431.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:432.2,433.77 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:433.77,435.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:436.2,436.55 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:436.55,438.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:439.2,439.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:442.108,445.16 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:445.16,447.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:448.2,450.16 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:450.16,452.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:453.2,462.16 4 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:462.16,464.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:465.2,466.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:466.16,468.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:469.2,470.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:470.16,472.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:473.2,474.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:474.16,476.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:477.2,552.26 3 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:552.26,558.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:560.2,560.21 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:563.131,565.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:565.16,567.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:568.2,569.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:569.16,571.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:573.2,574.25 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:574.25,576.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:577.2,578.25 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:578.25,580.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:582.2,582.39 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:582.39,583.38 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:583.38,584.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:587.3,587.87 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:587.87,588.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:591.3,592.28 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:595.2,595.39 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:595.39,596.38 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:596.38,597.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:600.3,600.71 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:600.71,601.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:604.3,605.28 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:608.2,609.12 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:612.67,614.16 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:614.16,616.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:618.2,619.22 2 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:619.22,621.3 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:623.2,623.36 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:623.36,624.44 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:624.44,625.12 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:628.3,628.47 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:628.47,630.4 1 0 +github.com/longhorn/longhorn-manager/controller/recurring_job_controller.go:632.2,632.19 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:68.61,96.42 7 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:96.42,101.63 4 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:101.63,103.5 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:106.17,108.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:109.2,113.42 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:113.42,113.82 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:115.20,117.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:118.2,124.20 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:124.20,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:127.2,131.42 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:131.42,131.79 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:133.20,135.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:136.2,139.42 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:139.42,139.74 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:140.20,142.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:143.2,145.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:148.71,155.81 5 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:155.81,157.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:159.2,159.31 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:159.31,161.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:163.2,163.10 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:166.39,167.31 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:167.32,168.3 0 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:171.57,174.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:174.10,176.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:177.2,182.13 4 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:185.68,186.16 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:186.16,189.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:191.2,192.44 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:192.44,196.3 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:198.2,200.22 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:203.88,211.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:213.66,214.15 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:214.15,216.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:217.2,218.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:218.16,220.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:221.2,221.31 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:221.31,224.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:226.2,227.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:227.16,228.37 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:228.37,230.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:231.3,231.51 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:233.2,238.16 4 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:238.16,240.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:241.2,241.20 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:241.20,243.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:244.2,244.47 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:244.47,247.17 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:247.17,249.47 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:249.47,251.5 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:252.4,252.14 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:254.3,254.57 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:257.2,257.38 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:257.38,258.52 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:258.52,260.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:262.3,263.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:263.17,265.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:267.3,267.74 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:267.74,269.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:269.9,269.39 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:269.39,270.53 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:270.53,273.84 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:273.84,275.73 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:275.73,277.7 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:278.6,279.59 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:279.59,281.7 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:282.11,284.6 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:288.3,288.50 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:291.2,292.15 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:292.15,294.79 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:294.79,296.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:298.3,298.46 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:298.46,302.4 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:306.2,308.119 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:311.62,313.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:313.16,316.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:318.2,318.19 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:321.126,323.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:323.9,325.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:327.2,328.92 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:328.92,330.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:332.2,334.31 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:334.31,335.86 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:335.86,339.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:340.3,340.29 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:340.29,344.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:347.2,350.28 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:350.28,352.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:352.17,354.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:355.3,355.16 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:355.16,357.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:360.2,361.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:361.16,363.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:365.2,366.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:366.16,368.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:369.2,372.16 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:372.16,374.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:376.2,377.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:377.16,379.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:381.2,382.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:382.16,384.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:386.2,394.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:397.87,399.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:399.16,401.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:402.2,402.46 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:402.46,403.37 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:403.37,405.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:407.2,407.71 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:410.105,414.16 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:414.16,416.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:417.2,417.26 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:417.26,420.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:421.2,421.36 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:421.36,424.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:425.2,425.66 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:425.66,427.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:427.17,429.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:430.3,430.11 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:430.11,432.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:433.3,435.57 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:435.57,437.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:438.3,438.17 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:440.2,440.134 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:440.134,442.24 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:442.24,444.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:445.3,446.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:448.2,448.119 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:451.52,453.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:455.91,459.16 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:459.16,461.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:466.2,466.35 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:466.35,468.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:473.2,478.16 5 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:478.16,480.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:481.2,481.42 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:481.42,487.80 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:487.80,489.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:494.2,494.64 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:494.64,495.38 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:495.38,497.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:498.3,499.14 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:499.14,501.12 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:503.3,503.49 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:503.49,505.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:508.2,508.71 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:508.71,512.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:514.2,516.18 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:519.74,521.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:521.9,523.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:524.2,528.40 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:528.40,529.26 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:529.26,532.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:533.3,534.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:534.17,537.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:538.3,538.95 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:539.8,541.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:541.17,542.34 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:542.34,544.5 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:546.4,547.14 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:551.2,551.93 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:551.93,554.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:556.2,557.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:557.16,559.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:561.2,561.15 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:561.15,562.17 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:562.17,565.30 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:565.30,568.5 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:572.2,573.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:573.16,575.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:576.2,580.26 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:580.26,582.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:584.2,584.70 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:584.70,586.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:586.17,588.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:589.3,589.23 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:589.23,593.18 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:593.18,595.5 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:599.2,602.47 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:602.47,604.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:606.2,606.95 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:606.95,608.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:611.2,611.77 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:611.77,614.66 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:614.66,616.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:619.2,619.12 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:622.103,624.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:624.16,625.32 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:625.32,627.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:628.3,628.13 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:631.2,632.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:632.16,634.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:636.2,637.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:637.16,639.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:640.2,642.71 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:642.71,643.59 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:643.59,645.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:646.3,646.94 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:649.2,649.12 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:652.50,655.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:657.52,659.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:661.69,663.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:665.68,667.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:669.70,671.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:673.66,675.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:677.89,679.2 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:681.61,684.2 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:686.123,688.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:688.9,690.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:692.2,696.40 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:696.40,698.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:698.17,700.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:701.8,703.17 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:703.17,705.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:708.2,709.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:709.16,711.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:712.2,715.16 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:715.16,717.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:719.2,719.52 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:719.52,720.61 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:720.61,722.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:725.2,725.22 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:728.140,730.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:730.9,732.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:734.2,735.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:735.16,737.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:739.2,740.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:740.16,742.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:745.2,746.23 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:749.76,751.24 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:751.24,753.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:753.10,756.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:759.3,760.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:760.10,763.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:766.2,767.117 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:767.117,769.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:772.2,773.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:773.16,776.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:778.2,778.31 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:778.31,780.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:784.70,786.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:786.9,788.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:788.10,791.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:794.3,795.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:795.10,798.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:801.2,801.40 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:801.40,802.71 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:802.71,803.57 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:803.57,804.68 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:804.68,806.6 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:813.77,815.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:815.9,817.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:817.10,820.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:823.3,824.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:824.10,827.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:830.2,831.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:831.9,833.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:833.10,836.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:839.3,840.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:840.10,843.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:847.2,848.57 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:848.57,851.153 3 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:851.153,852.57 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:852.57,853.66 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:853.66,855.6 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:862.73,864.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:864.9,866.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:866.10,869.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:871.3,872.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:872.10,875.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:878.2,879.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:879.16,882.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:883.2,883.62 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:883.62,884.30 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:884.30,885.77 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:885.77,887.5 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:893.68,895.9 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:895.9,897.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:897.10,900.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:903.3,904.10 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:904.10,907.4 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:910.2,910.94 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:910.94,912.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:914.2,914.47 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:918.73,920.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:920.16,924.3 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:925.2,925.29 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:925.29,926.29 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:926.29,928.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:932.82,935.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:935.16,937.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:938.2,939.16 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:939.16,941.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:942.2,943.51 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:943.51,945.47 2 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:945.47,947.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:948.3,948.16 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:948.16,950.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:953.2,953.108 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:956.96,957.29 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:957.29,962.63 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:962.63,964.4 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:966.2,966.14 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:969.101,971.104 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:971.104,973.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:975.2,975.70 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:978.128,980.53 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:980.53,982.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:984.2,984.18 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:984.18,986.3 1 0 +github.com/longhorn/longhorn-manager/controller/replica_controller.go:988.2,988.18 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:117.71,142.42 6 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:142.42,142.68 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:144.48,146.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:147.2,151.42 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:151.42,151.75 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:153.20,155.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:156.2,160.20 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:160.20,162.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:163.2,165.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:168.58,175.81 5 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:175.81,177.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:180.2,182.10 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:185.39,186.31 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:186.32,187.3 0 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:190.57,193.10 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:193.10,195.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:196.2,201.13 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:204.68,205.16 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:205.16,208.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:210.2,211.44 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:211.44,215.3 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:217.2,219.22 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:222.66,223.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:223.15,225.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:227.2,228.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:228.16,230.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:232.2,232.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:232.15,234.19 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:234.19,237.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:238.3,239.44 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:239.44,241.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:241.9,241.24 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:241.24,243.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:244.3,244.48 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:244.48,245.68 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:245.68,247.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:251.2,251.98 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:251.98,253.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:255.2,255.79 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:258.113,259.21 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:260.39,261.49 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:261.49,263.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:264.126,265.47 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:265.47,267.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:268.59,269.71 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:269.71,271.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:272.56,273.58 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:273.58,275.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:276.33,277.56 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:277.56,279.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:280.58,281.68 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:281.68,283.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:286.2,286.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:289.86,291.13 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:291.13,294.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:296.2,296.70 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:299.110,300.42 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:300.42,302.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:304.2,311.77 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:311.77,312.22 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:313.41,314.53 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:314.53,316.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:317.61,318.50 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:318.50,320.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:321.39,322.51 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:322.51,324.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:325.40,326.34 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:326.34,328.19 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:328.19,330.6 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:332.5,332.18 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:332.18,334.6 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:336.5,336.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:339.4,339.54 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:339.54,341.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:344.3,344.13 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:347.2,350.76 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:350.76,351.22 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:352.59,353.34 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:353.34,355.19 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:355.19,357.6 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:358.5,358.18 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:358.18,360.6 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:362.5,362.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:365.4,365.54 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:365.54,367.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:369.3,369.13 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:374.2,381.92 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:381.92,382.22 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:383.69,384.59 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:384.59,387.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:388.113,390.80 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:390.80,392.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:394.4,394.73 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:394.73,396.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:400.2,400.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:404.68,406.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:406.16,408.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:409.2,409.26 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:409.26,411.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:416.2,417.31 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:417.31,419.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:420.2,421.33 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:424.61,425.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:425.15,427.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:429.2,429.22 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:429.22,430.24 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:430.24,433.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:436.2,437.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:437.16,439.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:440.2,440.42 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:440.42,443.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:446.2,447.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:447.16,449.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:451.2,452.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:452.16,454.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:456.2,457.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:457.16,459.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:460.2,463.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:463.16,464.38 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:464.38,466.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:469.3,479.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:479.17,481.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:484.2,485.15 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:485.15,489.71 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:489.71,492.111 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:492.111,494.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:495.4,495.231 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:495.231,497.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:501.2,502.19 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:502.19,505.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:507.2,507.23 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:507.23,508.46 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:508.46,511.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:513.3,513.14 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:516.2,528.12 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:531.164,533.51 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:533.51,535.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:537.2,538.23 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:538.23,540.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:540.17,542.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:544.2,545.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:545.16,547.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:549.2,549.35 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:549.35,550.60 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:550.60,552.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:554.2,554.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:562.170,563.22 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:563.22,565.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:567.2,568.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:568.16,569.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:569.32,571.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:572.3,572.27 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:575.2,575.17 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:575.17,578.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:578.8,579.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:579.32,581.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:582.3,582.105 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:585.2,585.67 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:585.67,587.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:588.2,588.31 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:591.69,593.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:593.16,595.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:597.2,598.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:598.16,600.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:601.2,603.27 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:603.27,605.13 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:605.13,606.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:608.3,610.49 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:610.49,611.33 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:611.33,612.13 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:614.4,614.14 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:617.2,617.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:621.60,623.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:623.16,625.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:626.2,628.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:628.16,630.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:631.2,634.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:634.16,636.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:637.2,638.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:638.16,640.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:641.2,641.40 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:641.40,643.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:645.2,646.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:646.16,648.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:649.2,649.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:649.15,651.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:653.2,653.47 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:653.47,655.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:655.17,657.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:658.3,658.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:659.26,662.110 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:662.110,664.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:665.27,668.111 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:668.111,670.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:671.20,674.52 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:674.52,676.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:677.11,678.115 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:682.2,682.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:685.112,687.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:687.16,689.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:691.2,692.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:692.16,694.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:696.2,697.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:697.16,699.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:700.2,701.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:701.16,703.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:704.2,705.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:705.16,707.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:708.2,711.28 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:711.28,713.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:714.2,714.28 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:714.28,716.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:717.2,717.30 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:717.30,719.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:721.2,721.41 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:724.132,726.27 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:726.27,728.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:728.17,730.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:731.3,731.98 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:731.98,733.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:736.2,736.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:739.149,745.16 6 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:745.16,747.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:748.2,748.150 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:748.150,750.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:751.2,752.54 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:752.54,754.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:755.2,755.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:758.147,764.16 6 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:764.16,766.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:767.2,767.150 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:767.150,769.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:770.2,771.53 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:771.53,773.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:774.2,774.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:778.85,780.16 2 1 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:780.16,782.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:784.2,784.34 1 1 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:784.34,786.3 1 1 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:788.2,789.100 2 1 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:789.100,791.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:793.2,793.40 1 1 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:797.58,799.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:799.16,801.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:802.2,805.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:805.16,807.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:808.2,809.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:809.16,811.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:812.2,812.43 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:812.43,814.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:816.2,817.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:817.16,819.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:820.2,820.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:820.15,822.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:824.2,824.50 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:824.50,825.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:826.26,830.55 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:830.55,832.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:833.27,837.56 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:837.56,839.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:840.20,843.52 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:843.52,845.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:846.11,847.113 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:851.2,851.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:854.116,857.27 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:857.27,858.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:859.26,861.66 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:862.27,864.66 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:865.20,867.53 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:868.11,869.118 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:871.3,871.51 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:871.51,872.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:875.3,875.55 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:878.2,878.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:881.79,885.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:885.16,887.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:889.2,892.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:892.16,894.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:896.2,897.46 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:897.46,899.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:901.2,901.23 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:901.23,903.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:905.2,905.36 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:905.36,906.44 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:906.44,907.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:910.3,911.18 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:911.18,913.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:914.3,914.31 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:914.31,915.104 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:915.104,916.13 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:919.4,920.107 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:921.9,922.44 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:922.44,923.13 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:926.4,927.75 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:929.3,930.55 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:930.55,932.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:935.2,935.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:939.74,941.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:941.16,943.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:945.2,946.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:946.16,948.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:950.2,951.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:951.16,953.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:955.2,956.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:956.16,958.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:960.2,961.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:961.16,963.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:965.2,965.68 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:965.68,967.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:969.2,970.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:970.16,972.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:974.2,974.51 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:974.51,976.61 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:976.61,978.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:981.2,981.39 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:981.39,986.51 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:986.51,988.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:991.2,991.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:994.111,1003.16 5 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1003.16,1005.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1008.2,1009.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1009.16,1011.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1013.2,1016.27 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1016.27,1017.46 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1017.46,1018.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1020.3,1020.51 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1023.2,1023.30 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1026.165,1031.41 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1031.41,1033.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1035.2,1042.47 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1042.47,1044.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1044.17,1046.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1048.3,1048.23 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1048.23,1049.72 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1049.72,1052.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1053.9,1053.73 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1053.73,1056.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1059.2,1059.36 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1062.82,1064.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1064.16,1066.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1067.2,1069.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1069.16,1071.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1072.2,1072.26 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1072.26,1075.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1077.2,1077.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1080.76,1082.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1082.16,1084.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1086.2,1089.9 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1089.9,1091.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1095.2,1095.57 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1095.57,1097.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1099.2,1100.45 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1100.45,1111.67 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1111.67,1113.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1114.3,1114.13 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1117.2,1117.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1121.80,1123.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1123.16,1125.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1127.2,1130.17 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1131.37,1134.17 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1134.17,1136.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1137.37,1140.17 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1140.17,1142.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1143.10,1144.76 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1147.2,1147.14 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1147.14,1149.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1151.2,1151.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1154.128,1155.19 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1155.19,1157.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1159.2,1161.25 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1161.25,1163.62 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1163.62,1165.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1168.2,1168.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1171.136,1174.40 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1174.40,1176.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1178.2,1178.40 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1178.40,1180.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1182.2,1182.35 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1182.35,1184.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1186.2,1187.30 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1187.30,1189.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1191.2,1191.20 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1195.57,1197.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1197.16,1199.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1200.2,1201.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1201.16,1203.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1205.2,1206.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1206.16,1208.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1209.2,1210.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1210.16,1212.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1213.2,1213.42 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1213.42,1215.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1217.2,1218.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1218.16,1220.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1221.2,1221.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1221.15,1223.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1225.2,1225.49 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1225.49,1226.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1227.26,1231.55 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1231.55,1233.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1234.27,1238.56 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1238.56,1240.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1241.20,1243.36 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1243.36,1245.53 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1245.53,1247.6 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1249.11,1250.113 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1254.2,1254.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1257.121,1260.27 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1260.27,1261.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1262.26,1264.56 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1265.27,1267.56 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1268.20,1270.43 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1271.11,1272.140 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1274.3,1274.58 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1274.58,1275.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1277.3,1277.58 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1277.58,1278.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1281.3,1281.55 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1284.2,1284.32 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1287.38,1288.16 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1288.16,1290.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1291.2,1296.119 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1296.119,1298.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1298.17,1301.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1303.3,1305.111 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1305.111,1307.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1308.3,1308.20 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1309.17,1311.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1313.2,1313.41 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1316.37,1317.16 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1317.16,1319.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1320.2,1320.14 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1323.57,1325.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1325.16,1327.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1329.2,1330.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1330.16,1332.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1333.2,1334.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1334.16,1336.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1338.2,1338.28 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1338.28,1339.40 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1339.40,1341.72 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1341.72,1343.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1345.3,1345.41 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1345.41,1347.73 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1347.73,1349.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1353.3,1354.13 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1357.2,1358.74 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1358.74,1360.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1362.2,1365.16 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1365.16,1369.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1371.2,1373.57 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1373.57,1375.71 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1375.71,1379.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1381.2,1381.59 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1381.59,1383.72 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1383.72,1387.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1390.2,1390.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1393.93,1400.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1400.16,1402.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1404.2,1405.38 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1405.38,1407.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1408.2,1413.62 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1413.62,1415.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1416.2,1417.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1417.16,1419.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1420.2,1421.35 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1421.35,1424.17 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1424.17,1426.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1426.9,1428.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1429.3,1429.94 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1431.2,1431.62 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1431.62,1433.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1435.2,1437.34 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1437.34,1438.30 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1438.30,1439.31 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1439.31,1441.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1442.4,1442.31 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1442.31,1444.5 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1447.2,1447.25 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1447.25,1449.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1450.2,1451.62 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1454.62,1456.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1456.16,1459.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1461.2,1461.19 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1464.69,1465.40 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1465.40,1468.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1470.2,1471.74 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1474.77,1475.48 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1475.48,1477.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1478.2,1478.74 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1482.104,1484.45 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1484.45,1486.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1487.2,1488.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1488.16,1490.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1491.2,1492.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1492.16,1494.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1495.2,1497.34 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1497.34,1498.46 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1498.46,1499.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1501.3,1502.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1502.17,1504.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1505.3,1505.123 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1505.123,1506.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1509.3,1510.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1510.17,1512.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1513.3,1514.67 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1514.67,1515.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1518.3,1518.49 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1521.2,1521.30 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1521.30,1523.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1525.2,1526.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1526.16,1528.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1529.2,1529.15 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1529.15,1531.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1533.2,1533.37 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1533.37,1535.51 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1535.51,1537.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1540.2,1540.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1543.66,1545.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1545.16,1547.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1549.2,1549.21 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1549.21,1551.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1553.2,1554.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1554.16,1556.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1558.2,1558.50 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1558.50,1559.54 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1559.54,1560.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1563.3,1563.71 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1563.71,1564.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1566.3,1566.72 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1566.72,1567.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1569.3,1569.69 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1569.69,1570.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1573.3,1575.47 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1575.47,1577.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1579.3,1581.104 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1584.2,1584.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1587.150,1601.15 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1601.15,1604.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1606.2,1607.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1607.16,1610.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1611.2,1614.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1614.16,1617.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1619.2,1619.27 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1619.27,1621.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1623.2,1626.16 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1626.16,1629.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1630.2,1630.42 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1630.42,1632.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1634.2,1634.8 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1699.48,1700.48 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1700.48,1702.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1704.2,1704.48 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1704.48,1706.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1708.2,1708.52 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1708.52,1710.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1712.2,1712.50 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1712.50,1714.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1716.2,1716.47 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1716.47,1718.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1721.51,1723.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1723.16,1725.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1726.2,1726.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1729.51,1731.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1731.16,1733.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1734.2,1734.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1737.55,1744.45 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1744.45,1748.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1748.17,1750.12 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1753.3,1754.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1754.17,1756.12 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1758.3,1760.20 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1760.20,1761.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1764.3,1766.28 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1766.28,1768.48 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1768.48,1770.13 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1772.4,1772.52 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1772.52,1775.5 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1778.3,1784.66 6 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1787.2,1787.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1790.50,1858.16 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1858.16,1860.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1862.2,1863.35 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1863.35,1866.10 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1868.53,1869.80 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1872.38,1874.11 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1874.11,1876.13 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1878.4,1878.66 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1881.29,1883.18 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1883.18,1885.13 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1887.4,1887.45 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1890.3,1890.63 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1890.63,1892.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1895.2,1895.38 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1895.38,1898.39 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1899.113,1900.54 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1901.11,1902.64 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1905.2,1905.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1908.117,1910.9 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1910.9,1912.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1914.2,1914.25 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1915.28,1916.49 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1917.29,1918.42 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1919.10,1920.28 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1924.53,1926.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1926.16,1928.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1929.2,1931.35 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1931.35,1932.58 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1932.58,1934.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1937.2,1940.46 4 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1940.46,1940.99 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1941.2,1953.35 13 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1953.35,1955.35 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1955.35,1957.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1958.3,1963.33 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1963.33,1966.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1967.3,1970.35 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1970.35,1972.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1973.3,1976.37 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1976.37,1978.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1979.3,1981.63 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1981.63,1984.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:1986.3,2008.190 16 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2010.2,2027.46 15 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2027.46,2030.32 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2030.32,2032.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2035.2,2037.21 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2037.21,2041.17 3 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2041.17,2043.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2044.3,2044.58 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2046.2,2051.12 5 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2054.125,2055.37 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2055.37,2057.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2057.17,2059.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2060.3,2060.29 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2062.2,2062.24 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2065.45,2066.56 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2066.56,2068.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2070.2,2070.51 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2070.51,2072.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2074.2,2074.52 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2074.52,2076.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2078.2,2078.61 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2078.61,2080.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2083.59,2085.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2085.16,2087.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2088.2,2088.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2091.60,2092.25 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2092.25,2094.17 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2094.17,2096.4 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2098.2,2099.12 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2102.64,2104.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2104.16,2107.3 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2108.2,2108.12 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2111.55,2113.16 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2113.16,2115.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2117.2,2118.39 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2118.39,2120.20 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2121.36,2122.54 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2123.31,2124.57 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2125.11,2126.55 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2128.3,2128.17 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2128.17,2131.4 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2133.3,2134.114 2 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2137.2,2137.43 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2137.43,2139.3 1 0 +github.com/longhorn/longhorn-manager/controller/setting_controller.go:2141.2,2141.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:68.83,95.42 6 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:95.42,95.72 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:97.17,99.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:100.2,105.42 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:105.42,105.81 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:107.20,109.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:110.2,117.43 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:117.43,117.79 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:120.20,122.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:123.2,125.15 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:128.99,137.2 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:139.71,141.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:141.16,144.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:146.2,146.18 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:149.80,151.15 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:151.15,153.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:153.10,156.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:159.3,160.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:160.10,163.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:166.2,166.32 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:166.32,172.3 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:175.77,177.12 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:177.12,179.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:179.10,182.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:185.3,186.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:186.10,189.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:194.2,196.18 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:200.46,202.9 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:202.9,204.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:204.10,206.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:209.3,210.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:210.10,212.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:216.2,217.36 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:217.36,218.50 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:218.50,220.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:222.2,222.14 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:225.72,227.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:227.16,229.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:230.2,230.14 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:230.14,232.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:234.2,235.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:235.16,237.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:238.2,238.25 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:238.25,240.17 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:240.17,242.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:243.3,243.14 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:243.14,245.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:248.2,248.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:251.72,256.6 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:256.6,257.10 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:258.17,260.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:261.19,262.60 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:262.60,264.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:269.75,276.96 5 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:276.96,278.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:279.2,279.31 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:279.31,281.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:282.2,283.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:286.43,287.30 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:287.31,288.3 0 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:291.61,293.10 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:293.10,295.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:296.2,299.13 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:302.72,303.16 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:303.16,306.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:308.2,309.43 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:309.43,313.3 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:315.2,317.30 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:320.75,321.15 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:321.15,323.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:324.2,325.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:325.16,327.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:328.2,328.30 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:328.30,330.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:332.2,333.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:333.16,334.38 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:334.38,336.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:337.3,337.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:339.2,342.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:342.16,344.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:345.2,345.20 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:345.20,347.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:349.2,349.41 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:349.41,352.17 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:352.17,353.47 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:353.47,355.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:356.4,356.14 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:361.3,361.62 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:364.2,364.33 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:364.33,365.54 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:365.54,367.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:369.3,370.52 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:370.52,372.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:374.3,374.49 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:377.2,378.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:378.16,380.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:381.2,381.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:381.13,383.17 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:383.17,385.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:386.3,386.20 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:386.20,390.37 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:390.37,392.79 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:392.79,394.6 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:397.4,398.59 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:398.59,400.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:405.2,406.15 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:406.15,407.79 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:407.79,409.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:411.3,411.46 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:411.46,415.4 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:418.2,418.52 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:418.52,420.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:422.2,422.49 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:422.49,424.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:426.2,426.54 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:426.54,428.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:430.2,430.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:433.92,437.58 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:437.58,440.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:442.2,443.46 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:443.46,445.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:447.2,448.20 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:448.20,452.3 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:454.2,455.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:455.16,457.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:459.2,459.32 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:459.32,462.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:462.8,464.56 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:464.56,466.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:467.3,467.69 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:470.2,470.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:475.154,476.19 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:476.19,478.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:480.2,480.64 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:480.64,482.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:485.2,485.66 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:485.66,487.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:490.2,490.35 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:490.35,492.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:495.2,495.67 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:495.67,497.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:500.2,500.52 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:500.52,502.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:504.2,504.61 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:504.61,505.74 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:505.74,507.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:509.2,509.14 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:512.133,516.46 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:516.46,518.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:521.2,521.16 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:521.16,524.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:525.2,525.29 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:525.29,528.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:529.2,529.84 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:529.84,532.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:533.2,537.9 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:537.9,548.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:549.2,549.51 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:549.51,552.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:554.2,556.12 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:561.87,566.46 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:566.46,569.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:571.2,571.16 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:571.16,573.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:575.2,578.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:578.16,581.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:582.2,584.41 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:584.41,586.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:590.91,593.46 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:593.46,595.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:597.2,597.16 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:597.16,599.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:601.2,602.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:602.16,604.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:605.2,607.39 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:607.39,609.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:611.2,611.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:614.117,618.76 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:618.76,621.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:630.96,633.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:633.16,634.32 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:634.32,635.60 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:635.60,638.5 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:639.4,639.14 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:641.3,641.88 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:644.2,645.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:645.16,647.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:648.2,649.15 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:649.15,650.17 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:650.17,652.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:653.3,653.50 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:653.50,655.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:657.3,657.61 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:657.61,659.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:662.2,663.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:663.16,665.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:667.2,667.56 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:667.56,671.59 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:671.59,674.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:675.3,675.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:676.8,676.82 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:676.82,678.17 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:678.17,681.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:682.3,682.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:689.2,689.48 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:689.48,693.59 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:693.59,696.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:697.3,697.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:701.2,701.59 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:701.59,703.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:707.2,707.59 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:707.59,710.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:718.2,720.12 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:725.100,726.15 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:726.15,728.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:730.2,731.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:731.16,733.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:735.2,736.51 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:736.51,738.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:739.2,739.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:744.96,745.15 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:745.15,747.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:749.2,752.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:752.16,753.32 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:753.32,755.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:756.3,756.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:759.2,760.36 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:760.36,763.52 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:763.52,765.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:768.2,768.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:771.96,772.15 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:772.15,774.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:776.2,780.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:780.16,782.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:785.2,786.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:786.16,788.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:790.2,792.46 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:792.46,794.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:796.2,796.16 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:796.16,798.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:800.2,801.78 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:801.78,804.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:808.2,809.62 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:809.62,813.47 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:813.47,815.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:818.2,818.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:828.93,829.15 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:829.15,831.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:833.2,833.15 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:833.15,836.55 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:836.55,838.18 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:838.18,840.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:846.2,846.58 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:846.58,848.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:850.2,852.46 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:852.46,854.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:854.8,854.23 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:854.23,855.60 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:855.60,859.4 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:863.3,863.60 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:863.60,867.4 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:869.3,869.57 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:869.57,871.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:876.2,877.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:877.16,879.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:880.2,880.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:880.13,885.60 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:885.60,887.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:889.3,889.59 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:889.59,892.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:894.3,894.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:897.2,898.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:898.16,900.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:900.8,900.19 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:900.19,902.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:903.2,903.44 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:903.44,906.60 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:906.60,908.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:910.3,910.59 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:910.59,913.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:915.3,915.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:920.2,920.59 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:920.59,922.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:924.2,924.26 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:925.25,926.60 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:926.60,929.4 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:930.25,934.51 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:934.51,936.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:938.3,938.25 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:938.25,939.61 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:939.61,941.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:942.4,942.60 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:942.60,944.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:947.10,949.52 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:952.2,952.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:955.107,958.48 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:958.48,959.61 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:959.61,965.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:968.2,968.37 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:968.37,970.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:972.2,982.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:985.121,1007.21 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1007.21,1011.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1011.8,1013.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1015.2,1015.17 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1018.124,1020.9 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1020.9,1022.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1024.2,1025.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1025.16,1028.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1030.2,1030.21 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1033.125,1035.9 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1035.9,1037.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1039.2,1040.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1040.16,1043.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1045.2,1045.20 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1048.77,1050.38 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1050.38,1051.75 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1051.75,1053.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1055.2,1055.18 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1058.91,1060.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1060.16,1064.32 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1064.32,1066.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1067.3,1067.58 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1071.2,1072.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1072.16,1074.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1075.2,1075.22 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1075.22,1078.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1080.2,1081.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1081.16,1083.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1086.2,1086.32 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1086.32,1087.51 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1087.51,1089.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1090.8,1091.51 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1091.51,1093.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1095.2,1095.18 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1098.92,1099.74 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1099.74,1100.17 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1100.17,1102.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1103.3,1103.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1107.2,1109.46 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1109.46,1111.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1117.2,1117.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1120.102,1123.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1123.16,1124.33 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1124.33,1126.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1128.3,1130.17 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1130.17,1132.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1136.2,1137.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1137.16,1138.33 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1138.33,1140.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1142.3,1143.17 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1143.17,1144.39 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1144.39,1146.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1147.4,1147.86 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1151.2,1151.12 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1156.104,1160.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1160.16,1162.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1164.2,1165.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1165.16,1167.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1169.2,1170.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1170.16,1172.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1173.2,1176.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1176.16,1178.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1180.2,1181.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1181.16,1183.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1184.2,1187.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1187.16,1189.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1190.2,1193.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1193.16,1195.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1197.2,1198.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1198.16,1200.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1202.2,1209.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1209.16,1211.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1212.2,1212.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1212.13,1219.53 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1219.53,1220.34 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1220.34,1222.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1224.4,1224.72 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1224.72,1226.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1231.2,1232.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1232.16,1234.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1236.2,1237.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1237.16,1239.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1241.2,1243.36 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1243.36,1245.17 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1245.17,1247.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1247.9,1251.27 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1251.27,1253.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1254.4,1255.51 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1255.51,1257.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1260.4,1260.26 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1260.26,1262.5 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1263.4,1264.69 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1268.2,1269.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1269.16,1271.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1272.2,1272.42 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1272.42,1275.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1277.2,1282.27 5 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1282.27,1285.17 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1285.17,1287.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1289.3,1290.26 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1290.26,1292.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1293.3,1298.43 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1301.2,1305.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1305.16,1307.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1309.2,1310.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1310.16,1312.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1314.2,1314.91 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1314.91,1316.51 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1316.51,1318.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1321.2,1322.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1322.16,1324.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1325.2,1326.17 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1329.99,1352.16 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1352.16,1354.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1356.2,1356.32 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1356.32,1362.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1362.8,1366.3 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1368.2,1368.16 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1371.103,1386.2 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1388.103,1412.2 6 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1417.42,1422.21 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1422.21,1424.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1426.2,1426.27 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1426.27,1428.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1430.2,1488.24 4 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1488.24,1515.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1517.2,1572.26 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1572.26,1578.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1580.2,1580.24 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1580.24,1582.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1583.2,1585.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1590.123,1591.15 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1591.15,1593.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1595.2,1598.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1598.16,1600.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1601.2,1601.14 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1601.14,1603.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1605.2,1607.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1607.16,1608.33 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1608.33,1610.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1611.3,1611.24 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1619.2,1620.18 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1620.18,1622.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1623.2,1623.37 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1623.37,1625.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1626.2,1626.73 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1626.73,1629.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1630.2,1631.34 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1631.34,1634.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1636.2,1636.27 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1642.92,1650.30 5 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1650.30,1652.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1655.2,1658.16 3 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1658.16,1660.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1661.2,1661.40 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1661.40,1663.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1665.2,1673.44 7 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1673.44,1676.3 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1681.2,1682.16 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1682.16,1684.3 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1685.2,1685.13 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1685.13,1690.46 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1690.46,1692.4 1 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1693.3,1694.37 2 0 +github.com/longhorn/longhorn-manager/controller/share_manager_controller.go:1697.2,1697.71 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:65.32,88.42 6 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:88.42,88.69 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:90.20,92.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:93.2,97.20 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:97.20,99.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:100.2,104.20 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:104.20,106.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:107.2,110.42 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:110.42,110.74 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:111.20,113.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:114.2,116.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:119.64,121.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:121.16,124.3 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:126.2,126.19 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:129.79,131.9 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:131.9,133.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:133.10,136.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:138.3,139.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:139.10,142.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:145.2,146.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:146.16,149.3 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:151.2,151.43 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:151.43,153.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:155.2,156.9 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:156.9,158.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:158.10,161.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:163.3,164.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:164.10,167.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:170.2,174.27 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:174.27,176.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:178.2,179.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:179.16,182.3 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:184.2,185.33 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:185.33,187.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:190.150,193.68 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:193.68,195.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:197.2,197.84 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:197.84,198.41 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:198.41,199.37 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:199.37,201.5 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:205.2,205.40 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:205.40,206.101 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:206.101,208.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:211.2,211.24 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:214.68,216.9 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:216.9,218.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:218.10,221.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:223.3,224.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:224.10,227.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:229.2,229.36 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:229.36,231.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:233.2,234.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:234.16,237.3 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:238.2,238.33 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:238.33,240.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:245.69,247.9 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:247.9,249.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:249.10,252.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:255.3,256.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:256.10,259.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:262.2,262.105 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:262.105,264.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:266.2,267.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:267.16,271.3 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:272.2,272.33 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:272.33,273.39 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:273.39,275.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:279.72,286.69 5 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:286.69,288.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:290.2,290.31 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:290.31,292.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:293.2,293.10 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:296.40,297.31 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:297.32,298.3 0 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:301.58,303.10 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:303.10,305.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:306.2,309.13 4 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:312.69,313.16 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:313.16,316.3 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:318.2,320.30 3 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:323.67,324.15 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:324.15,326.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:328.2,329.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:329.16,331.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:332.2,332.31 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:332.31,334.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:335.2,335.27 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:338.74,340.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:340.16,341.33 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:341.33,343.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:344.3,344.13 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:347.2,348.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:348.16,350.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:351.2,351.20 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:351.20,353.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:355.2,356.15 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:356.15,357.45 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:357.45,359.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:360.3,360.66 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:360.66,362.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:364.3,365.17 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:365.17,367.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:368.3,368.61 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:372.2,372.42 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:372.42,374.17 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:374.17,376.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:377.3,377.33 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:377.33,379.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:381.3,382.17 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:382.17,384.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:386.3,386.16 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:386.16,388.18 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:388.18,390.5 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:391.4,391.70 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:391.70,392.104 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:392.104,394.6 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:398.3,399.149 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:399.149,403.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:405.3,406.17 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:406.17,408.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:409.3,409.19 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:409.19,415.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:417.3,417.75 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:417.75,419.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:421.3,421.66 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:421.66,423.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:425.3,425.69 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:425.69,427.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:430.3,431.17 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:431.17,433.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:434.3,434.59 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:434.59,435.69 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:435.69,437.5 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:438.4,438.53 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:441.3,441.13 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:444.2,447.15 3 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:447.15,448.56 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:448.56,450.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:453.2,454.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:454.16,456.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:459.2,459.55 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:459.55,460.76 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:460.76,462.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:463.3,463.66 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:463.66,466.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:467.3,468.17 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:468.17,471.4 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:474.2,475.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:475.16,477.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:478.2,479.9 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:479.9,480.56 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:480.56,485.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:487.3,488.13 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:491.2,491.101 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:491.101,493.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:495.2,495.12 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:499.99,500.15 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:500.15,502.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:504.2,505.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:505.16,506.32 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:506.32,508.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:509.3,509.13 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:512.2,514.64 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:514.64,516.62 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:516.62,518.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:521.2,521.12 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:526.42,527.15 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:527.15,529.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:531.2,532.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:532.16,534.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:536.2,537.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:537.16,539.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:541.2,542.15 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:542.15,543.50 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:543.50,545.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:547.3,547.28 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:547.28,552.73 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:552.73,554.5 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:557.3,557.62 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:557.62,559.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:562.2,565.12 3 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:568.106,569.73 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:569.73,571.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:572.2,572.118 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:572.118,574.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:575.2,575.91 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:575.91,576.49 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:576.49,581.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:581.9,583.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:585.2,585.70 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:585.70,586.33 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:586.33,588.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:588.9,590.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:594.94,596.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:596.16,597.32 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:597.32,599.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:600.3,600.20 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:602.2,602.48 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:605.118,607.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:607.16,609.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:610.2,618.62 9 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:618.62,620.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:620.8,623.3 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:624.2,624.12 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:627.118,629.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:629.16,631.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:632.2,632.23 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:632.23,634.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:635.2,636.28 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:636.28,638.8 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:640.2,640.20 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:643.112,645.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:645.16,647.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:649.2,650.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:650.16,652.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:654.2,655.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:655.16,657.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:658.2,661.16 3 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:661.16,663.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:664.2,664.25 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:664.25,667.17 3 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:667.17,669.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:671.2,671.12 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:675.114,677.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:677.16,679.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:680.2,681.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:681.16,683.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:684.2,687.16 3 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:687.16,689.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:690.2,690.25 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:690.25,692.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:694.2,694.27 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:694.27,696.80 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:696.80,698.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:701.2,702.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:702.16,704.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:705.2,706.37 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:706.37,707.23 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:707.23,709.9 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:712.2,712.16 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:712.16,715.65 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:715.65,717.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:720.2,720.12 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:723.87,725.15 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:725.15,727.3 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:729.2,730.16 2 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:730.16,731.32 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:731.32,733.4 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:734.3,734.20 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:736.2,736.54 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:739.93,745.2 1 0 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:752.41,753.25 1 3 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:754.22,755.30 1 2 +github.com/longhorn/longhorn-manager/controller/snapshot_controller.go:757.2,757.14 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:93.70,120.42 6 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:120.42,120.60 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:122.20,124.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:125.2,127.15 2 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:130.60,132.16 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:132.16,135.3 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:137.2,137.18 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:140.86,142.16 2 4 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:142.16,145.3 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:147.2,147.30 1 4 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:150.76,157.67 5 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:157.67,159.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:160.2,160.31 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:160.31,162.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:163.2,163.10 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:166.44,167.30 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:167.31,168.3 0 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:171.62,173.10 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:173.10,175.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:176.2,181.13 4 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:184.73,185.16 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:185.16,188.3 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:190.2,192.43 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:192.43,196.3 3 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:198.2,200.21 3 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:203.180,205.27 2 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:206.32,210.17 3 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:210.17,212.9 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:215.3,215.22 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:215.22,216.9 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:219.3,223.17 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:223.17,228.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:229.3,229.14 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:231.33,232.50 1 7 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:235.2,236.20 2 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:236.20,238.46 2 7 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:238.46,241.4 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:243.3,243.58 1 7 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:243.58,245.4 1 7 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:246.3,246.9 1 7 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:249.2,249.36 1 4 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:250.74,251.9 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:254.2,254.58 1 4 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:257.195,263.2 5 8 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:265.86,271.2 1 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:273.77,274.15 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:274.15,276.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:278.2,279.16 2 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:279.16,281.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:283.2,283.30 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:283.30,285.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:287.2,287.26 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:290.70,292.16 2 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:292.16,293.33 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:293.33,295.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:296.3,296.13 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:299.2,301.40 2 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:301.40,303.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:305.2,305.52 1 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:305.52,308.17 3 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:308.17,310.47 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:310.47,312.5 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:313.4,313.14 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:315.3,315.63 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:318.2,322.116 4 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:322.116,327.3 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:329.2,329.36 1 10 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:330.39,331.72 1 3 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:331.72,336.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:338.3,340.17 3 3 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:340.17,345.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:347.3,352.17 3 3 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:352.17,354.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:356.42,359.17 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:359.17,360.33 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:360.33,362.5 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:364.4,364.18 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:364.18,369.5 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:372.3,373.17 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:373.17,376.4 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:378.3,382.17 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:382.17,384.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:386.45,389.17 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:389.17,395.4 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:397.3,399.43 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:399.43,401.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:403.3,411.17 3 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:411.17,413.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:415.43,419.17 3 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:419.17,424.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:426.3,427.17 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:427.17,432.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:434.42,436.17 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:436.17,441.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:443.3,443.53 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:443.53,444.54 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:444.54,445.13 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:447.4,447.53 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:447.53,448.13 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:450.4,450.62 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:450.62,451.13 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:453.4,453.75 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:453.75,454.13 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:457.4,459.78 3 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:459.78,461.5 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:464.3,465.47 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:465.47,467.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:468.43,470.47 2 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:470.47,472.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:475.2,475.12 1 8 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:478.111,480.16 2 3 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:480.16,482.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:484.2,484.52 1 3 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:484.52,485.52 1 4 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:485.52,486.12 1 3 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:489.3,489.74 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:489.74,490.12 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:493.3,495.47 3 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:495.47,497.4 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:499.2,499.12 1 3 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:518.153,520.16 2 4 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:520.16,522.3 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:524.2,528.16 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:528.16,530.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:532.2,534.16 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:534.16,536.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:537.2,539.34 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:542.118,544.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:544.16,546.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:548.2,549.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:549.16,551.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:553.2,553.38 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:553.38,555.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:557.2,559.16 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:559.16,561.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:563.2,563.20 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:566.144,578.2 4 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:580.145,585.2 3 7 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:587.161,595.120 7 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:595.120,597.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:599.2,608.19 3 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:612.96,614.2 1 11 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:616.101,619.16 3 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:619.16,620.32 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:620.32,622.4 1 1 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:623.3,623.13 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:626.2,626.47 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:629.80,631.2 1 5 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:633.139,635.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:635.16,637.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:639.2,640.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:640.16,642.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:644.2,645.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:645.16,647.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:648.2,651.16 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:651.16,653.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:654.2,657.16 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:657.16,659.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:661.2,662.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:662.16,664.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:665.2,665.55 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:669.138,672.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:672.16,674.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:675.2,676.16 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:676.16,678.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:680.2,785.26 3 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:785.26,791.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:793.2,793.24 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:796.96,798.33 2 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:798.33,800.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:801.2,801.32 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:804.94,805.20 1 2 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:805.20,807.3 1 0 +github.com/longhorn/longhorn-manager/controller/support_bundle_controller.go:808.2,808.52 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:120.56,145.42 6 59 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:145.42,145.60 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:147.20,149.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:150.2,152.15 2 59 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:155.59,157.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:157.16,160.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:162.2,162.18 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:165.75,172.67 5 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:172.67,174.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:175.2,175.31 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:175.31,177.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:178.2,178.10 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:181.43,182.30 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:182.31,183.3 0 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:186.61,188.10 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:188.10,190.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:191.2,196.13 4 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:199.72,200.16 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:200.16,203.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:205.2,207.43 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:207.43,211.3 3 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:213.2,215.21 3 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:218.198,219.27 1 59 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:220.35,221.43 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:222.36,223.44 1 52 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:224.10,225.9 1 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:228.2,228.74 1 55 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:228.74,230.71 2 55 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:230.71,235.4 4 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:238.2,238.27 1 55 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:239.35,240.45 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:241.36,242.46 1 52 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:243.10,244.9 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:247.2,247.68 1 55 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:247.68,249.3 1 55 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:252.93,254.2 1 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:256.75,257.15 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:257.15,259.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:261.2,262.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:262.16,264.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:266.2,266.30 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:266.30,268.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:270.2,271.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:271.16,273.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:275.2,276.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:276.16,278.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:280.2,280.60 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:283.114,285.48 2 61 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:285.48,287.3 1 61 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:288.2,288.15 1 61 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:291.137,294.2 2 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:296.138,299.2 2 52 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:301.116,310.2 2 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:312.117,314.2 1 52 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:316.184,321.2 4 55 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:323.167,325.16 2 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:325.16,326.33 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:326.33,328.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:329.3,329.13 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:332.2,332.39 1 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:332.39,334.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:336.2,338.51 2 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:338.51,341.17 3 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:341.17,343.47 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:343.47,345.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:346.4,346.14 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:349.3,349.62 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:352.2,357.67 4 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:357.67,363.3 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:365.2,368.35 3 8 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:369.41,371.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:371.17,377.4 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:379.3,382.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:384.38,386.57 1 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:386.57,393.4 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:395.3,397.17 3 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:397.17,403.4 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:405.3,405.28 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:405.28,406.92 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:406.92,408.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:410.4,411.18 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:411.18,413.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:414.4,414.10 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:417.3,418.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:418.17,420.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:422.3,425.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:427.46,429.17 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:429.17,435.4 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:438.3,438.60 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:440.52,442.17 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:442.17,448.4 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:450.3,450.78 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:452.44,453.80 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:455.43,456.98 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:458.72,459.75 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:461.42,467.17 4 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:467.17,469.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:472.2,472.12 1 5 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:475.168,477.16 2 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:477.16,479.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:481.2,481.52 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:481.52,482.40 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:482.40,483.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:486.3,487.17 2 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:487.17,489.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:491.3,491.30 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:493.2,493.16 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:496.85,498.2 1 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:500.143,501.32 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:501.32,504.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:506.2,507.27 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:507.27,510.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:512.2,513.16 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:513.16,515.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:517.2,521.12 5 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:524.118,528.2 3 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:530.181,536.15 4 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:536.15,538.23 2 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:538.23,543.4 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:543.9,551.4 3 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:553.3,553.83 1 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:556.2,557.16 2 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:557.16,560.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:562.2,569.6 6 4 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:569.6,570.10 1 23 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:571.18,573.10 2 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:574.19,576.49 2 20 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:576.49,578.13 2 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:581.4,581.30 1 11 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:581.30,583.5 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:585.4,586.18 2 10 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:586.18,587.38 1 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:587.38,589.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:591.5,591.83 1 9 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:597.196,598.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:598.39,601.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:602.2,602.109 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:602.109,605.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:605.8,605.36 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:605.36,607.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:609.2,610.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:610.16,613.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:615.2,615.98 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:615.98,617.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:619.2,620.47 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:620.47,623.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:625.2,626.47 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:626.47,629.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:631.2,631.28 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:631.28,634.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:636.2,636.52 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:648.118,650.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:650.16,652.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:654.2,655.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:655.16,657.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:659.2,666.8 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:669.122,675.15 5 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:675.15,677.17 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:677.17,682.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:682.9,687.4 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:689.3,689.77 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:692.2,693.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:693.16,695.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:697.2,698.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:698.16,701.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:703.2,704.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:704.16,707.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:709.2,712.16 4 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:712.16,715.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:717.2,718.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:718.16,721.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:724.122,725.46 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:726.65,727.51 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:728.59,729.45 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:731.2,731.17 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:734.128,736.16 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:736.16,738.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:740.2,744.33 4 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:744.33,747.30 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:747.30,749.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:752.3,755.17 3 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:755.17,757.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:759.3,760.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:760.17,762.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:764.3,764.38 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:767.2,767.27 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:770.134,772.16 2 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:772.16,774.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:776.2,780.33 4 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:780.33,784.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:784.17,786.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:788.3,789.17 2 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:789.17,791.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:793.3,793.17 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:793.17,794.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:797.3,798.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:798.17,800.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:802.3,802.38 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:805.2,805.27 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:808.150,812.15 3 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:812.15,814.17 2 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:814.17,819.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:819.9,824.4 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:826.3,826.77 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:829.2,833.21 4 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:833.21,834.29 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:834.29,838.18 3 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:838.18,839.34 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:839.34,841.14 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:843.5,843.10 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:846.4,846.31 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:847.39,848.26 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:849.35,850.105 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:854.3,854.24 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:854.24,856.4 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:859.3,859.60 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:859.60,861.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:864.2,864.117 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:867.133,872.36 3 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:872.36,874.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:877.2,878.16 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:878.16,880.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:882.2,883.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:883.16,885.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:887.2,888.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:888.16,890.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:893.2,894.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:894.16,896.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:898.2,898.37 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:898.37,899.32 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:899.32,900.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:903.3,904.17 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:904.17,906.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:908.3,908.41 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:908.41,911.4 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:914.2,915.18 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:918.156,928.16 3 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:928.16,930.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:931.2,931.20 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:934.169,946.16 3 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:946.16,948.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:950.2,950.31 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:950.31,952.3 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:955.2,959.6 4 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:959.6,960.10 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:961.21,962.25 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:963.18,964.58 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:965.19,967.18 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:967.18,969.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:971.4,971.34 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:971.34,973.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:978.104,980.16 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:980.16,982.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:984.2,985.45 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:985.45,987.17 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:987.17,989.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:991.3,991.68 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:994.2,994.33 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:997.168,1002.15 4 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1002.15,1004.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1004.17,1009.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1009.9,1014.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1016.3,1016.77 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1019.2,1023.21 4 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1023.21,1024.41 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1024.41,1028.18 3 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1028.18,1029.34 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1029.34,1031.14 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1033.5,1033.10 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1036.4,1036.43 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1037.39,1038.38 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1039.35,1041.11 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1045.3,1045.36 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1045.36,1047.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1050.3,1050.66 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1050.66,1053.4 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1056.2,1056.114 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1059.157,1061.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1061.16,1062.33 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1062.33,1064.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1067.2,1067.31 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1067.31,1077.52 3 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1077.52,1079.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1081.2,1081.32 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1084.119,1087.16 3 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1087.16,1089.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1091.2,1091.69 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1094.89,1095.15 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1095.15,1097.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1099.2,1104.44 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1104.44,1106.17 2 126 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1106.17,1108.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1110.2,1110.8 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1113.95,1116.16 3 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1116.16,1118.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1121.2,1129.39 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1129.39,1131.17 2 210 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1131.17,1133.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1136.2,1136.12 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1139.97,1143.16 3 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1143.16,1145.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1147.2,1148.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1148.16,1150.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1152.2,1153.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1153.16,1155.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1157.2,1158.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1158.16,1160.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1162.2,1163.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1163.16,1165.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1167.2,1168.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1168.16,1170.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1172.2,1173.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1173.16,1175.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1177.2,1178.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1178.16,1180.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1182.2,1182.136 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1185.125,1186.15 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1186.15,1188.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1190.2,1191.46 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1191.46,1194.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1196.2,1197.9 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1197.9,1199.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1201.2,1202.44 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1202.44,1203.35 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1203.35,1205.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1207.3,1207.37 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1207.37,1209.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1211.3,1211.39 1 2 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1214.2,1216.76 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1216.76,1218.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1221.143,1224.46 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1224.46,1226.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1228.2,1229.9 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1229.9,1231.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1233.2,1233.79 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1233.79,1235.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1236.2,1236.16 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1236.16,1238.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1241.2,1241.91 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1246.38,1248.46 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1248.46,1251.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1253.2,1254.9 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1254.9,1256.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1258.2,1258.89 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1258.89,1260.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1261.2,1261.16 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1261.16,1263.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1266.2,1267.46 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1267.46,1270.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1272.2,1273.9 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1273.9,1275.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1277.2,1280.16 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1280.16,1282.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1285.2,1286.46 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1286.46,1289.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1291.2,1292.9 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1292.9,1294.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1296.2,1298.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1304.56,1306.66 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1306.66,1307.71 1 39 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1307.71,1308.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1310.3,1310.61 1 39 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1313.2,1314.52 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1314.52,1315.57 1 40 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1315.57,1316.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1318.3,1318.43 1 39 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1321.2,1323.76 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1323.76,1325.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1331.56,1333.66 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1333.66,1335.59 2 40 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1335.59,1336.56 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1336.56,1337.59 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1337.59,1338.14 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1340.5,1340.44 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1340.44,1341.14 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1343.5,1343.54 1 39 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1343.54,1344.14 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1346.5,1347.10 2 39 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1349.4,1349.20 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1349.20,1350.10 1 39 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1353.3,1353.19 1 40 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1353.19,1355.4 1 39 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1357.2,1359.76 2 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1359.76,1361.3 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1364.100,1367.16 3 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1367.16,1369.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1371.2,1371.121 1 42 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1376.123,1377.15 1 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1377.15,1379.3 1 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1381.2,1382.16 2 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1382.16,1384.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1386.2,1387.16 2 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1387.16,1389.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1391.2,1392.16 2 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1392.16,1394.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1396.2,1398.16 3 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1398.16,1400.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1401.2,1405.16 4 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1405.16,1407.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1409.2,1409.12 1 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1412.83,1414.16 2 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1414.16,1416.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1418.2,1418.27 1 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1418.27,1419.25 1 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1419.25,1420.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1422.3,1422.73 1 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1422.73,1423.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1425.3,1426.8 2 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1429.2,1429.12 1 756 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1432.90,1433.71 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1433.71,1435.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1437.2,1437.69 1 3 +github.com/longhorn/longhorn-manager/controller/system_backup_controller.go:1437.69,1439.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:82.57,106.42 6 6 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:106.42,106.73 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:108.20,110.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:111.2,113.15 2 6 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:116.73,118.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:118.16,121.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:123.2,123.18 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:126.76,133.67 5 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:133.67,135.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:136.2,136.31 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:136.31,138.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:139.2,139.10 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:142.44,143.30 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:143.31,144.3 0 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:147.62,149.10 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:149.10,151.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:152.2,157.13 4 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:160.73,161.16 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:161.16,164.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:166.2,168.43 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:168.43,172.3 3 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:174.2,176.21 3 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:179.112,181.2 1 6 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:183.141,186.2 2 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:188.142,191.2 2 3 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:193.77,194.15 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:194.15,196.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:198.2,199.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:199.16,201.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:203.2,203.30 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:203.30,205.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:207.2,208.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:208.16,210.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:212.2,213.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:213.16,215.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:217.2,217.46 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:220.131,222.16 2 6 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:222.16,223.32 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:223.32,225.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:226.3,226.13 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:229.2,231.40 2 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:231.40,233.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:235.2,235.52 1 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:235.52,238.17 3 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:238.17,240.47 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:240.47,242.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:243.4,243.14 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:245.3,245.69 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:248.2,250.15 3 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:250.15,252.3 1 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:254.2,254.116 1 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:254.116,260.3 2 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:262.2,262.36 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:263.78,265.13 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:267.43,268.47 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:270.39,272.17 2 3 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:272.17,274.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:276.3,276.33 1 3 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:276.33,278.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:280.3,281.17 2 3 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:281.17,289.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:291.3,295.13 2 2 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:297.10,297.10 0 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:302.2,302.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:305.204,306.27 1 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:307.36,308.44 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:309.37,310.45 1 3 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:311.10,312.9 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:315.2,315.76 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:315.76,317.17 2 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:317.17,322.4 4 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:323.3,323.26 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:326.2,326.27 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:327.36,328.46 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:329.37,330.47 1 3 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:331.10,332.9 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:335.2,335.70 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:335.70,337.3 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:340.120,349.2 2 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:351.121,353.2 1 3 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:355.189,360.2 4 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:362.180,364.16 2 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:364.16,366.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:368.2,369.16 2 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:369.16,371.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:373.2,374.16 2 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:374.16,376.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:378.2,379.16 2 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:379.16,381.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:382.2,383.16 2 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:383.16,385.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:387.2,387.125 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:390.188,465.2 5 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:467.83,469.16 2 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:469.16,471.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:473.2,473.34 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:473.34,475.3 1 4 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:476.2,476.78 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:479.96,481.2 1 5 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:483.107,486.15 2 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:486.15,487.17 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:487.17,489.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:491.3,493.92 2 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:496.2,498.16 3 1 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:498.16,499.32 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:499.32,501.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:502.3,502.9 1 0 +github.com/longhorn/longhorn-manager/controller/system_restore_controller.go:505.2,506.42 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:164.37,193.37 7 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:193.37,193.52 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:194.42,194.57 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:195.17,197.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:198.2,200.15 2 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:203.45,205.2 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:207.47,211.88 3 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:211.88,213.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:215.2,216.15 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:216.15,219.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:220.2,223.12 3 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:226.44,227.30 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:227.31,228.3 0 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:231.62,234.10 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:234.10,236.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:237.2,242.13 4 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:245.61,247.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:247.16,249.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:251.2,251.15 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:251.15,254.17 3 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:254.17,257.4 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:259.3,261.32 3 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:261.32,265.4 3 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:267.3,268.17 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:268.17,273.4 4 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:275.3,276.18 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:279.2,279.26 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:282.73,283.16 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:283.16,286.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:288.2,289.29 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:292.152,293.16 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:293.16,295.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:297.2,297.69 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:297.69,299.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:301.2,301.29 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:301.29,302.26 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:302.26,304.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:306.3,306.27 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:306.27,308.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:310.3,310.73 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:312.8,312.63 1 39 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:312.63,314.3 1 39 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:316.2,316.65 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:316.65,318.17 2 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:318.17,321.4 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:325.77,328.29 2 708 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:328.29,330.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:332.2,332.25 1 708 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:332.25,334.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:336.2,336.12 1 708 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:339.156,353.2 5 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:355.157,359.2 3 39 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:361.189,366.2 4 40 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:368.57,372.16 3 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:372.16,374.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:375.2,377.30 2 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:377.30,379.3 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:380.2,380.31 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:380.31,382.17 2 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:382.17,384.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:387.2,389.15 3 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:389.15,391.3 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:393.2,393.38 1 41 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:394.42,396.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:396.17,398.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:400.3,403.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:405.46,407.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:407.17,409.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:411.3,414.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:416.44,418.17 2 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:418.17,424.4 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:426.3,429.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:431.44,452.32 8 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:452.32,454.14 2 407 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:454.14,457.5 2 407 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:459.3,467.30 5 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:467.30,472.4 1 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:475.2,475.12 1 40 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:478.89,483.16 4 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:483.16,485.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:486.2,489.16 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:489.16,491.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:493.2,493.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:496.58,497.28 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:497.28,499.17 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:499.17,501.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:503.3,506.17 3 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:506.17,508.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:510.3,511.17 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:511.17,513.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:514.3,514.66 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:514.66,519.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:520.3,522.34 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:525.2,526.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:526.16,528.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:530.2,531.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:531.16,533.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:535.2,536.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:536.16,538.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:540.2,541.51 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:541.51,543.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:544.2,545.9 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:545.9,547.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:549.2,549.67 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:549.67,551.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:553.2,554.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:554.16,556.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:558.2,565.12 6 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:568.109,570.16 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:570.16,571.34 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:571.34,573.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:575.2,575.16 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:575.16,577.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:579.2,593.67 5 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:593.67,595.10 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:595.10,597.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:598.3,598.37 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:600.2,600.94 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:603.68,606.2 2 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:608.71,611.16 3 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:611.16,613.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:614.2,614.105 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:617.66,620.16 3 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:620.16,622.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:623.2,623.100 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:626.106,630.16 3 114 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:630.16,631.34 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:631.34,633.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:635.3,635.64 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:638.2,638.26 1 114 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:638.26,639.16 1 684 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:639.16,640.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:643.3,645.17 3 684 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:645.17,647.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:650.3,652.17 3 684 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:652.17,654.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:656.3,656.19 1 684 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:658.60,659.88 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:661.44,662.53 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:663.51,664.67 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:665.37,666.39 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:667.44,668.53 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:670.42,671.49 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:672.43,673.51 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:675.49,676.63 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:677.54,678.73 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:679.47,680.59 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:681.40,682.45 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:683.42,684.49 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:686.45,687.58 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:689.42,690.55 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:691.43,692.57 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:693.38,694.47 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:695.37,696.45 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:697.43,698.57 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:699.11,701.51 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:704.2,704.12 1 114 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:707.72,709.2 1 114 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:711.74,713.16 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:713.16,715.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:717.2,718.16 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:718.16,720.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:722.2,722.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:725.72,728.34 3 39 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:728.34,730.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:732.2,732.53 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:732.53,734.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:736.2,736.56 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:736.56,738.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:740.2,740.51 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:740.51,742.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:744.2,744.12 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:747.72,751.16 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:751.16,753.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:755.2,755.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:755.39,759.60 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:759.60,760.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:763.3,764.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:764.17,766.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:768.3,768.52 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:768.52,770.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:773.3,773.50 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:776.2,776.155 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:779.97,787.6 6 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:787.6,788.10 1 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:789.18,791.10 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:792.19,794.18 2 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:794.18,797.5 2 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:798.4,798.64 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:803.86,807.16 3 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:807.16,810.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:812.2,812.68 1 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:812.68,814.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:816.2,816.25 1 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:816.25,819.3 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:821.2,823.131 3 666 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:826.207,828.16 2 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:828.16,829.36 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:829.36,831.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:832.3,832.18 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:835.2,835.23 1 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:838.69,839.30 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:839.30,841.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:843.2,843.50 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:843.50,847.17 3 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:847.17,848.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:848.39,850.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:852.4,856.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:856.69,858.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:858.12,860.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:861.5,861.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:863.4,864.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:864.53,866.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:867.4,867.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:870.3,871.53 2 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:871.53,876.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:877.3,877.66 1 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:877.66,879.11 2 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:879.11,881.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:882.4,882.38 1 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:884.3,885.17 2 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:885.17,887.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:890.2,890.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:893.76,894.37 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:894.37,896.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:898.2,898.57 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:898.57,902.17 3 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:902.17,903.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:903.39,905.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:907.4,911.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:911.69,913.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:913.12,915.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:916.5,916.46 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:918.4,919.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:919.53,921.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:922.4,922.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:925.3,926.113 2 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:926.113,932.4 4 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:933.3,933.66 1 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:933.66,935.11 2 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:935.11,937.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:938.4,938.45 1 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:940.3,941.17 2 35 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:941.17,943.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:946.2,946.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:949.67,950.28 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:950.28,952.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:954.2,954.48 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:954.48,957.63 2 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:957.63,959.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:962.3,963.17 2 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:963.17,964.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:964.39,966.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:968.4,972.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:972.69,974.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:974.12,976.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:977.5,977.37 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:979.4,980.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:980.53,982.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:983.4,983.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:986.3,987.51 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:987.51,992.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:993.3,993.66 1 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:993.66,995.11 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:995.11,997.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:998.4,998.36 1 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1000.3,1001.17 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1001.17,1003.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1006.2,1006.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1009.82,1010.43 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1010.43,1012.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1014.2,1014.63 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1014.63,1018.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1018.17,1019.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1019.39,1021.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1023.4,1027.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1027.69,1029.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1029.12,1031.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1032.5,1032.52 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1034.4,1035.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1035.53,1037.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1038.4,1038.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1041.3,1042.47 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1042.47,1044.4 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1046.3,1047.56 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1047.56,1049.14 2 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1049.14,1057.13 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1060.4,1060.59 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1060.59,1061.49 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1061.49,1062.14 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1065.5,1065.57 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1065.57,1072.6 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1073.5,1073.10 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1077.3,1078.73 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1078.73,1082.4 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1083.3,1083.72 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1083.72,1085.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1085.11,1087.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1088.4,1088.51 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1090.3,1091.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1091.17,1093.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1096.2,1096.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1099.69,1100.30 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1100.30,1102.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1104.2,1104.50 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1104.50,1108.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1108.17,1109.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1109.39,1111.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1113.4,1117.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1117.69,1119.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1119.12,1121.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1122.5,1122.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1124.4,1125.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1125.53,1127.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1128.4,1128.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1131.3,1132.51 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1132.51,1137.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1139.3,1139.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1139.66,1141.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1141.11,1143.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1144.4,1144.38 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1146.3,1147.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1147.17,1149.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1152.2,1152.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1155.67,1156.28 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1156.28,1158.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1160.2,1160.48 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1160.48,1164.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1164.17,1165.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1165.39,1167.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1169.4,1173.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1173.69,1175.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1175.12,1177.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1178.5,1178.37 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1180.4,1181.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1181.53,1183.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1185.4,1185.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1188.3,1189.51 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1189.51,1194.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1195.3,1195.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1195.66,1197.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1197.11,1199.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1200.4,1200.36 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1202.3,1203.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1203.17,1205.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1208.2,1208.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1211.68,1212.29 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1212.29,1214.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1216.2,1216.49 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1216.49,1220.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1220.17,1221.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1221.39,1223.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1225.4,1229.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1229.69,1231.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1231.12,1233.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1234.5,1234.38 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1236.4,1237.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1237.53,1239.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1240.4,1240.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1243.3,1244.51 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1244.51,1249.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1250.3,1250.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1250.66,1252.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1252.11,1254.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1255.4,1255.37 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1257.3,1258.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1258.17,1260.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1263.2,1263.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1266.74,1267.35 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1267.35,1269.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1271.2,1271.55 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1271.55,1273.17 2 4 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1273.17,1275.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1276.3,1276.33 1 4 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1276.33,1277.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1280.3,1283.17 3 4 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1283.17,1284.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1284.39,1286.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1288.4,1289.18 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1289.18,1291.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1293.4,1294.63 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1294.63,1296.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1298.4,1298.37 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1298.37,1300.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1303.4,1308.69 4 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1308.69,1310.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1310.12,1312.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1313.5,1313.44 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1315.4,1316.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1316.53,1318.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1319.4,1319.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1322.3,1322.66 1 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1322.66,1324.11 2 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1324.11,1326.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1327.4,1327.43 1 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1329.3,1330.17 2 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1330.17,1332.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1335.2,1335.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1338.79,1339.40 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1339.40,1341.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1343.2,1343.60 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1343.60,1345.17 2 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1345.17,1347.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1348.3,1348.33 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1348.33,1349.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1352.3,1355.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1355.17,1356.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1356.39,1358.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1360.4,1361.18 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1361.18,1363.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1365.4,1369.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1369.69,1371.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1371.12,1373.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1374.5,1374.69 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1376.4,1377.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1377.53,1379.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1380.4,1380.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1383.3,1383.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1383.66,1385.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1385.11,1387.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1388.4,1388.68 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1390.3,1391.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1391.17,1393.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1396.2,1396.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1399.70,1400.31 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1400.31,1402.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1404.2,1404.51 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1404.51,1408.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1408.17,1409.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1409.39,1411.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1413.4,1417.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1417.69,1419.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1419.12,1421.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1422.5,1422.40 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1424.4,1425.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1425.53,1427.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1428.4,1428.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1431.3,1432.51 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1432.51,1437.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1438.3,1438.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1438.66,1440.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1440.11,1442.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1443.4,1443.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1445.3,1446.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1446.17,1448.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1451.2,1451.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1454.62,1455.23 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1455.23,1457.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1459.2,1459.43 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1459.43,1463.17 3 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1463.17,1464.39 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1464.39,1466.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1468.4,1472.69 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1472.69,1474.12 2 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1474.12,1476.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1477.5,1477.32 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1479.4,1480.53 2 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1480.53,1482.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1483.4,1483.12 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1486.3,1487.53 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1487.53,1492.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1493.3,1493.66 1 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1493.66,1495.11 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1495.11,1497.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1498.4,1498.31 1 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1500.3,1501.17 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1501.17,1503.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1506.2,1506.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1509.69,1510.30 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1510.30,1512.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1514.2,1514.50 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1514.50,1518.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1518.17,1519.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1519.39,1521.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1523.4,1527.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1527.69,1529.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1529.12,1531.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1532.5,1532.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1534.4,1535.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1535.53,1537.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1538.4,1538.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1541.3,1542.113 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1542.113,1548.4 4 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1550.3,1550.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1550.66,1552.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1552.11,1554.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1555.4,1555.38 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1557.3,1558.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1558.17,1560.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1563.2,1563.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1566.64,1567.26 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1567.26,1569.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1571.2,1571.46 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1571.46,1575.17 3 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1575.17,1576.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1576.39,1578.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1580.4,1584.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1584.69,1586.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1586.12,1588.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1589.5,1589.55 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1591.4,1592.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1592.53,1594.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1595.4,1595.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1598.3,1599.51 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1599.51,1604.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1606.3,1606.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1606.66,1608.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1608.11,1610.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1611.4,1611.54 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1613.3,1614.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1614.17,1616.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1619.2,1619.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1622.72,1623.33 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1623.33,1625.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1627.2,1627.53 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1627.53,1631.17 3 39 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1631.17,1632.39 1 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1632.39,1634.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1636.4,1640.69 3 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1640.69,1642.12 2 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1642.12,1644.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1645.5,1645.42 1 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1647.4,1648.53 2 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1648.53,1650.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1651.4,1651.12 1 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1654.3,1654.66 1 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1654.66,1656.11 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1656.11,1658.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1659.4,1659.41 1 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1661.3,1662.17 2 36 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1662.17,1664.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1667.2,1667.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1678.54,1679.62 1 83 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1679.62,1680.29 1 397 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1680.29,1682.4 1 6 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1684.2,1684.14 1 77 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1687.65,1688.26 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1688.26,1690.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1692.2,1692.46 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1692.46,1695.50 2 42 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1695.50,1697.12 2 3 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1700.3,1701.17 2 39 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1701.17,1702.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1702.39,1704.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1706.4,1710.69 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1710.69,1712.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1712.12,1714.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1715.5,1715.35 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1717.4,1718.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1718.53,1720.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1721.4,1721.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1724.3,1725.35 2 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1725.35,1730.4 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1731.3,1731.66 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1731.66,1733.11 2 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1733.11,1735.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1736.4,1736.34 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1738.3,1739.17 2 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1739.17,1741.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1744.2,1744.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1747.71,1748.31 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1748.31,1750.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1752.2,1752.51 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1752.51,1756.17 3 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1756.17,1757.39 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1757.39,1759.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1761.4,1765.69 3 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1765.69,1767.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1767.12,1769.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1770.5,1770.40 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1772.4,1773.53 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1773.53,1775.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1776.4,1776.12 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1779.3,1779.66 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1779.66,1781.11 2 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1781.11,1783.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1784.4,1784.39 1 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1786.3,1787.17 2 38 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1787.17,1789.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1792.2,1792.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1795.70,1796.31 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1796.31,1798.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1800.2,1800.51 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1800.51,1805.17 4 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1805.17,1806.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1806.39,1808.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1810.4,1811.18 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1811.18,1813.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1815.4,1831.74 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1831.74,1833.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1833.12,1835.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1836.5,1836.40 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1838.4,1839.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1839.53,1846.5 5 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1847.4,1847.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1850.3,1850.66 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1850.66,1852.11 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1852.11,1854.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1855.4,1855.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1857.3,1858.17 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1858.17,1860.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1863.2,1863.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1866.64,1867.30 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1867.30,1868.62 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1868.62,1870.18 2 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1870.18,1872.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1874.4,1875.11 2 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1875.11,1877.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1879.4,1879.38 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1879.38,1881.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1883.4,1883.60 1 2 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1883.60,1885.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1889.2,1889.25 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1889.25,1891.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1893.2,1893.45 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1893.45,1898.60 4 6 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1898.60,1900.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1902.9,1902.24 1 6 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1902.24,1903.39 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1903.39,1905.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1907.4,1910.68 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1910.68,1913.5 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1915.4,1915.105 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1915.105,1917.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1919.4,1921.69 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1921.69,1923.12 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1923.12,1925.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1926.5,1926.34 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1928.4,1929.53 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1929.53,1937.78 6 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1937.78,1939.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1941.5,1941.83 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1941.83,1943.6 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1945.4,1945.12 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1948.3,1948.66 1 5 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1948.66,1950.11 2 5 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1950.11,1952.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1953.4,1953.33 1 5 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1955.3,1956.17 2 5 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1956.17,1958.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1961.2,1961.12 1 37 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1964.106,1966.63 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1966.63,1967.59 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1967.59,1973.52 4 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1973.52,1975.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1977.4,1978.84 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1980.3,1980.87 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1983.2,1984.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1987.111,1989.73 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1989.73,1990.58 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1990.58,1996.52 4 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:1996.52,1998.5 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2000.4,2001.84 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2003.3,2003.102 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2006.2,2007.12 2 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2010.107,2016.27 2 297 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2016.27,2018.17 2 594 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2018.17,2020.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2022.3,2022.44 1 594 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2022.44,2024.4 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2026.2,2026.19 1 297 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2029.156,2031.16 2 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2031.16,2033.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2035.2,2036.18 2 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2036.18,2038.3 1 290 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2040.2,2041.16 2 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2041.16,2043.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2044.2,2044.17 1 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2044.17,2046.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2048.2,2048.15 1 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2048.15,2054.3 4 259 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2054.8,2060.3 4 32 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2062.2,2064.12 3 291 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2067.103,2069.16 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2069.16,2071.3 1 0 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2073.2,2074.18 2 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2074.18,2076.3 1 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2077.2,2079.12 3 1 +github.com/longhorn/longhorn-manager/controller/system_rollout_controller.go:2082.60,2084.2 1 15 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:79.33,97.86 4 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:97.86,99.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:100.2,100.96 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:100.96,102.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:103.2,103.97 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:103.97,105.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:106.2,112.146 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:112.146,113.84 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:113.84,115.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:116.3,116.63 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:118.2,118.147 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:118.147,119.85 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:119.85,121.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:122.3,122.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:124.2,124.146 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:124.146,125.84 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:125.84,127.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:128.3,128.63 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:130.2,130.151 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:130.151,131.89 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:131.89,133.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:134.3,134.68 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:136.2,136.144 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:136.144,137.82 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:137.82,139.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:140.3,140.61 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:142.2,142.155 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:142.155,143.93 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:143.93,145.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:146.3,146.72 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:148.2,148.152 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:148.152,149.90 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:149.90,151.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:152.3,152.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:154.2,154.152 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:154.152,155.90 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:155.90,157.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:158.3,158.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:160.2,160.159 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:160.159,161.97 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:161.97,163.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:164.3,164.76 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:166.2,166.162 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:166.162,167.100 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:167.100,169.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:170.3,170.79 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:172.2,172.152 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:172.152,173.90 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:173.90,175.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:176.3,176.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:178.2,178.152 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:178.152,179.90 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:179.90,181.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:182.3,182.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:184.2,184.146 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:184.146,185.84 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:185.84,187.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:188.3,188.63 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:190.2,190.152 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:190.152,191.90 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:191.90,193.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:194.3,194.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:196.2,196.146 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:196.146,197.84 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:197.84,199.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:200.3,200.63 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:202.2,202.148 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:202.148,203.86 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:203.86,205.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:206.3,206.65 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:208.2,208.164 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:208.164,209.102 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:209.102,211.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:212.3,212.81 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:214.2,214.161 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:214.161,215.99 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:215.99,217.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:218.3,218.78 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:221.2,223.15 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:226.78,228.37 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:228.37,228.68 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:229.42,229.73 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:230.37,230.68 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:234.88,236.37 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:236.37,236.81 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:237.42,237.86 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:238.37,238.81 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:242.57,244.2 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:246.82,248.16 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:248.16,251.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:253.2,253.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:253.64,255.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:258.43,262.83 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:262.83,264.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:266.2,266.47 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:266.47,269.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:271.2,273.15 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:273.15,276.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:277.2,280.12 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:283.40,284.30 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:284.31,285.3 0 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:288.58,291.10 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:291.10,293.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:294.2,299.13 4 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:302.69,303.16 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:303.16,306.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:308.2,309.29 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:312.91,314.2 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:316.91,318.2 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:320.92,322.2 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:324.49,325.48 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:325.48,327.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:327.8,327.18 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:327.18,335.65 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:335.65,337.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:337.9,337.36 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:337.36,338.37 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:338.37,339.101 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:339.101,341.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:345.3,345.71 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:345.71,347.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:352.2,352.74 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:352.74,354.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:356.2,356.79 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:356.79,358.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:360.2,360.73 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:360.73,362.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:366.2,367.70 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:367.70,369.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:371.2,371.55 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:371.55,373.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:375.2,375.47 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:375.47,377.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:379.2,379.40 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:379.40,381.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:383.2,383.42 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:383.42,385.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:387.2,387.39 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:387.39,389.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:392.2,393.12 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:396.58,398.16 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:398.16,400.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:401.2,401.23 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:401.23,405.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:407.2,407.48 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:407.48,409.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:409.8,409.19 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:409.19,410.14 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:410.14,413.4 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:413.9,415.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:418.2,418.51 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:418.51,420.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:420.8,420.26 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:420.26,422.28 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:422.28,424.54 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:424.54,428.5 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:430.3,430.31 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:430.31,432.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:435.2,435.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:438.58,440.51 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:440.51,442.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:443.2,443.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:446.51,451.53 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:451.53,453.52 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:453.52,455.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:457.2,457.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:460.53,461.104 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:461.104,463.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:464.2,464.106 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:464.106,466.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:467.2,467.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:470.50,472.16 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:472.16,473.38 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:473.38,475.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:476.3,476.13 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:478.2,478.28 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:478.28,481.52 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:481.52,482.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:484.3,484.84 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:484.84,486.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:488.2,488.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:493.66,495.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:495.64,497.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:497.8,497.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:497.35,500.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:501.2,501.19 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:506.57,507.52 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:507.52,509.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:509.8,509.29 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:509.29,512.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:514.2,514.56 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:514.56,516.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:516.8,516.31 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:516.31,521.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:523.2,523.52 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:523.52,525.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:525.8,525.29 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:525.29,528.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:530.2,530.54 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:530.54,532.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:532.8,532.30 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:532.30,535.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:544.2,545.16 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:545.16,547.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:548.2,548.31 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:548.31,550.62 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:550.62,552.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:556.2,556.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:556.64,558.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:558.8,558.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:558.35,561.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:564.2,564.52 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:564.52,566.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:566.8,566.29 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:566.29,568.34 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:568.34,569.54 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:569.54,571.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:573.3,573.19 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:577.2,577.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:577.64,579.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:579.8,579.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:579.35,581.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:583.2,583.62 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:583.62,585.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:585.8,585.34 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:585.34,588.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:590.2,590.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:590.64,592.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:592.8,592.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:592.35,595.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:597.2,597.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:597.64,599.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:599.8,599.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:599.35,602.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:604.2,604.78 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:604.78,606.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:606.8,606.42 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:606.42,609.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:611.2,611.84 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:611.84,613.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:613.8,613.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:613.45,616.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:618.2,618.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:618.64,620.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:620.8,620.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:620.35,623.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:625.2,625.48 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:625.48,627.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:627.8,627.27 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:627.27,630.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:632.2,632.70 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:632.70,634.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:634.8,634.38 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:634.38,637.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:639.2,639.52 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:639.52,641.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:641.8,641.29 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:641.29,644.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:646.2,646.66 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:646.66,648.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:648.8,648.36 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:648.36,651.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:653.2,653.78 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:653.78,655.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:655.8,655.37 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:655.37,658.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:660.2,660.72 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:660.72,662.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:662.8,662.34 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:662.34,665.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:667.2,667.19 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:670.91,671.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:671.15,673.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:674.2,674.27 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:674.27,678.35 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:678.35,679.66 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:679.66,680.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:680.45,682.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:682.11,685.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:686.10,688.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:689.9,689.52 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:689.52,690.73 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:690.73,691.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:691.45,693.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:693.11,696.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:697.10,699.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:702.2,702.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:705.100,706.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:706.15,708.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:709.2,709.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:709.33,713.36 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:713.36,714.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:714.69,715.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:715.45,717.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:717.11,720.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:721.10,723.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:724.9,724.53 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:724.53,725.76 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:725.76,726.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:726.45,728.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:728.11,731.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:732.10,734.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:737.2,737.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:740.94,741.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:741.15,743.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:744.2,744.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:744.33,748.38 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:748.38,749.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:749.69,750.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:750.45,752.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:752.11,755.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:757.4,757.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:758.9,758.55 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:758.55,759.76 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:759.76,760.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:760.45,762.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:762.11,765.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:767.4,767.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:770.2,770.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:773.97,774.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:774.15,776.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:777.2,777.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:777.35,781.39 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:781.39,782.71 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:782.71,783.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:783.45,785.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:785.11,788.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:790.4,790.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:791.9,791.56 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:791.56,792.78 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:792.78,793.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:793.45,795.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:795.11,798.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:800.4,800.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:803.2,803.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:807.86,809.9 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:809.9,811.55 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:811.55,812.34 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:812.34,814.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:817.2,818.45 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:818.45,819.55 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:819.55,820.34 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:820.34,822.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:824.3,824.13 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:826.2,826.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:829.112,830.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:830.15,832.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:833.2,833.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:833.35,835.34 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:835.34,836.71 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:836.71,837.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:837.45,839.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:839.11,842.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:843.10,845.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:848.2,848.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:851.109,852.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:852.15,854.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:855.2,855.34 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:855.34,859.34 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:859.34,860.70 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:860.70,861.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:861.45,863.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:863.11,866.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:867.10,869.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:870.9,870.51 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:870.51,872.67 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:872.67,873.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:873.45,875.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:875.11,878.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:879.10,881.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:882.4,882.77 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:882.77,883.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:883.45,885.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:885.11,888.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:889.10,891.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:894.2,894.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:897.88,898.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:898.15,900.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:901.2,901.29 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:901.29,904.36 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:904.36,905.65 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:905.65,906.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:906.45,908.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:908.11,911.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:912.10,914.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:915.9,916.72 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:916.72,917.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:917.45,919.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:919.11,922.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:923.10,925.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:928.2,928.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:931.121,932.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:932.15,934.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:935.2,935.38 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:935.38,937.34 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:937.34,938.74 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:938.74,939.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:939.45,941.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:941.11,944.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:945.10,947.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:950.2,950.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:953.112,954.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:954.15,956.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:957.2,957.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:957.35,961.34 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:961.34,962.71 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:962.71,963.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:963.45,965.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:965.11,968.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:969.10,971.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:972.9,972.51 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:972.51,974.62 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:974.62,975.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:975.45,977.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:977.11,980.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:981.10,983.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:984.4,984.78 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:984.78,985.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:985.45,987.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:987.11,990.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:991.10,993.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:996.2,996.8 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:999.112,1000.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1000.15,1002.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1003.2,1003.35 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1003.35,1007.34 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1007.34,1008.71 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1008.71,1009.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1009.45,1011.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1011.11,1014.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1015.10,1017.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1018.9,1018.51 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1018.51,1019.78 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1019.78,1020.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1020.45,1022.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1022.11,1025.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1026.10,1028.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1031.2,1031.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1034.133,1035.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1035.15,1037.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1038.2,1038.43 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1038.43,1042.35 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1042.35,1043.79 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1043.79,1044.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1044.45,1046.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1046.11,1049.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1050.10,1052.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1053.9,1053.52 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1053.52,1054.63 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1054.63,1055.40 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1055.40,1057.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1057.11,1060.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1061.10,1063.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1064.4,1064.86 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1064.86,1065.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1065.45,1067.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1067.11,1070.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1071.10,1073.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1076.2,1076.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1079.141,1080.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1080.15,1082.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1083.2,1083.47 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1083.47,1087.36 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1087.36,1088.83 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1088.83,1089.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1089.45,1091.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1091.11,1094.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1095.10,1097.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1098.9,1098.53 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1098.53,1099.64 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1099.64,1100.40 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1100.40,1102.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1102.11,1105.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1106.10,1108.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1109.4,1109.90 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1109.90,1110.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1110.45,1112.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1112.11,1115.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1116.10,1118.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1121.2,1121.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1124.112,1125.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1125.15,1127.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1128.2,1128.36 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1128.36,1130.35 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1130.35,1131.72 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1131.72,1132.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1132.45,1134.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1134.11,1137.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1138.10,1140.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1143.2,1143.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1146.94,1147.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1147.15,1149.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1150.2,1150.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1150.33,1152.38 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1152.38,1153.69 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1153.69,1154.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1154.45,1156.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1156.11,1159.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1160.10,1162.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1165.2,1165.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1168.115,1169.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1169.15,1171.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1172.2,1172.47 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1172.47,1174.45 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1174.45,1175.83 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1175.83,1176.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1176.45,1178.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1178.11,1181.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1182.10,1184.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1187.2,1187.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1190.138,1191.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1191.15,1193.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1194.2,1194.49 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1194.49,1197.46 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1197.46,1198.95 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1198.95,1199.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1199.45,1201.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1201.11,1204.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1205.10,1207.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1208.9,1208.63 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1208.63,1209.102 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1209.102,1210.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1210.45,1212.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1212.11,1215.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1216.10,1218.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1221.2,1221.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1224.139,1225.15 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1225.15,1227.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1228.2,1228.63 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1228.63,1231.53 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1231.53,1232.99 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1232.99,1233.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1233.45,1235.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1235.11,1238.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1239.10,1241.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1242.9,1242.70 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1242.70,1243.106 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1243.106,1244.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1244.45,1246.6 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1246.11,1249.6 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1250.10,1252.5 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1255.2,1255.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1258.61,1261.82 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1261.82,1262.32 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1262.32,1264.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1265.3,1265.19 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1266.8,1266.40 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1266.40,1267.82 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1267.82,1270.4 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1271.3,1272.19 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1274.2,1275.18 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1278.66,1279.173 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1279.173,1281.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1281.8,1281.44 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1281.44,1283.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1285.2,1285.169 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1285.169,1287.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1287.8,1287.44 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1287.44,1289.3 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1291.2,1291.12 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1294.60,1297.82 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1297.82,1298.32 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1298.32,1300.4 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1301.3,1301.20 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1302.8,1302.40 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1302.40,1305.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1305.8,1305.71 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1305.71,1311.3 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1312.2,1312.18 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1315.60,1324.42 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1324.42,1327.58 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1327.58,1328.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1328.33,1329.13 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1331.4,1333.12 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1334.9,1334.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1334.45,1335.54 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1335.54,1338.13 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1340.4,1342.12 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1344.3,1345.14 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1348.2,1351.41 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1351.41,1354.57 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1354.57,1355.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1355.33,1356.13 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1358.4,1360.12 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1361.9,1361.45 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1361.45,1362.53 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1362.53,1365.13 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1367.4,1369.12 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1371.3,1372.14 2 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1375.2,1375.71 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1375.71,1376.33 1 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1376.33,1380.4 3 0 +github.com/longhorn/longhorn-manager/controller/uninstall_controller.go:1383.2,1383.18 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:53.65,76.42 5 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:76.42,76.85 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:78.17,80.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:81.2,83.16 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:86.96,88.16 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:88.16,91.3 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:93.2,93.19 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:96.88,103.69 5 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:103.69,105.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:106.2,106.31 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:106.31,108.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:109.2,109.10 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:112.56,113.31 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:113.32,114.3 0 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:117.74,119.10 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:119.10,121.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:122.2,125.13 4 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:128.85,129.16 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:129.16,132.3 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:134.2,135.44 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:135.44,139.3 3 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:141.2,143.22 3 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:146.135,152.2 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:154.113,156.2 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:158.100,159.15 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:159.15,161.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:163.2,164.16 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:164.16,166.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:167.2,167.31 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:167.31,169.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:171.2,171.27 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:174.96,176.16 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:176.16,177.33 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:177.33,179.4 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:180.3,180.13 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:183.2,185.42 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:185.42,187.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:189.2,189.54 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:189.54,192.17 3 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:192.17,194.47 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:194.47,196.5 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:197.4,197.14 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:199.3,199.107 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:202.2,202.48 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:202.48,203.48 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:203.48,206.4 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:208.3,208.74 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:211.2,212.61 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:212.61,214.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:216.2,217.15 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:217.15,218.17 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:218.17,220.4 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:221.3,221.79 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:221.79,222.131 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:222.131,225.5 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:229.2,229.84 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:229.84,231.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:233.2,233.47 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:233.47,235.17 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:235.17,237.4 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:237.9,239.11 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:239.11,241.5 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:241.10,247.43 6 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:247.43,252.6 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:257.2,258.61 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:258.61,261.3 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:263.2,263.12 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:266.161,267.47 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:267.47,269.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:271.2,272.16 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:272.16,274.3 1 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:276.2,278.21 2 0 +github.com/longhorn/longhorn-manager/controller/upgrade_manager_controller.go:281.101,283.2 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:16.72,17.23 1 26 +github.com/longhorn/longhorn-manager/controller/utils.go:17.23,18.31 1 49 +github.com/longhorn/longhorn-manager/controller/utils.go:18.31,20.4 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:23.2,23.14 1 26 +github.com/longhorn/longhorn-manager/controller/utils.go:27.63,32.2 3 22 +github.com/longhorn/longhorn-manager/controller/utils.go:35.64,39.2 3 53 +github.com/longhorn/longhorn-manager/controller/utils.go:41.55,45.2 1 10 +github.com/longhorn/longhorn-manager/controller/utils.go:47.146,49.9 2 0 +github.com/longhorn/longhorn-manager/controller/utils.go:49.9,59.3 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:60.2,60.39 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:60.39,62.3 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:63.2,63.67 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:66.85,67.36 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:67.36,70.3 2 0 +github.com/longhorn/longhorn-manager/controller/utils.go:72.2,72.31 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:72.31,74.3 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:74.8,76.3 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:81.64,83.21 2 7 +github.com/longhorn/longhorn-manager/controller/utils.go:83.21,85.3 1 4 +github.com/longhorn/longhorn-manager/controller/utils.go:88.50,89.14 1 29 +github.com/longhorn/longhorn-manager/controller/utils.go:89.14,91.3 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:92.2,92.84 1 29 +github.com/longhorn/longhorn-manager/controller/utils.go:95.100,96.29 1 1 +github.com/longhorn/longhorn-manager/controller/utils.go:96.29,98.3 1 1 +github.com/longhorn/longhorn-manager/controller/utils.go:99.2,100.16 2 0 +github.com/longhorn/longhorn-manager/controller/utils.go:100.16,102.3 1 0 +github.com/longhorn/longhorn-manager/controller/utils.go:104.2,104.54 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:53.57,78.42 6 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:78.42,78.78 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:80.20,82.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:83.2,87.42 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:87.42,87.79 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:89.20,91.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:92.2,96.42 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:96.42,96.74 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:98.20,100.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:101.2,104.42 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:104.42,104.72 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:105.20,107.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:108.2,110.17 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:113.81,115.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:115.16,118.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:119.2,119.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:122.110,124.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:124.16,127.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:129.2,129.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:132.82,134.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:134.9,136.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:136.10,139.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:141.3,142.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:142.10,145.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:148.2,149.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:149.16,152.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:154.2,154.39 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:154.39,156.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:159.77,162.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:162.9,164.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:164.10,167.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:169.3,170.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:170.10,173.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:176.2,177.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:177.16,180.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:182.2,182.39 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:182.39,184.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:188.75,190.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:190.9,192.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:192.10,195.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:198.3,199.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:199.10,202.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:205.2,206.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:206.16,209.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:211.2,211.39 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:211.39,213.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:216.81,223.71 5 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:223.71,225.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:227.2,227.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:227.31,229.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:231.2,231.10 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:234.49,235.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:235.33,236.3 0 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:239.67,241.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:241.10,243.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:244.2,247.13 4 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:250.78,251.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:251.16,254.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:256.2,258.31 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:261.76,262.15 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:262.15,264.3 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:266.2,267.16 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:267.16,269.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:270.2,270.32 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:270.32,272.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:273.2,273.28 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:276.77,278.16 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:278.16,279.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:279.33,281.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:282.3,282.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:285.2,286.16 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:286.16,288.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:289.2,289.20 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:289.20,291.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:293.2,294.16 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:294.16,295.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:295.32,296.38 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:296.38,298.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:299.4,299.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:301.3,301.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:304.2,306.15 3 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:306.15,307.17 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:307.17,309.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:310.3,310.53 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:310.53,311.53 1 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:311.53,313.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:316.3,316.51 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:316.51,317.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:317.64,319.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:321.3,321.55 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:321.55,322.70 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:322.70,324.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:331.2,339.42 5 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:343.112,347.16 3 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:347.16,350.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:352.2,353.61 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:353.61,354.64 1 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:354.64,356.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:360.2,360.35 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:360.35,362.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:362.17,365.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:366.3,366.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:366.20,367.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:367.50,371.5 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:373.4,374.64 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:379.115,380.35 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:380.35,382.3 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:388.2,388.27 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:388.27,389.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:389.37,393.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:394.3,394.9 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:397.2,399.44 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:402.120,403.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:403.33,405.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:409.2,410.47 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:410.47,412.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:414.2,414.69 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:414.69,416.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:419.2,419.116 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:419.116,424.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:427.127,429.45 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:429.45,431.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:433.2,435.68 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:435.68,437.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:445.2,445.101 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:445.101,447.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:447.8,447.26 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:447.26,453.3 5 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:459.2,459.79 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:459.79,462.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:464.2,465.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:465.16,467.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:468.2,468.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:468.32,471.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:473.2,476.34 4 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:479.141,481.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:481.16,483.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:485.2,487.28 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:487.28,488.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:488.20,490.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:492.3,492.48 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:492.48,494.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:497.2,497.22 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:497.22,499.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:501.2,501.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:501.28,503.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:505.2,505.80 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:505.80,511.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:513.2,513.18 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:516.69,517.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:517.28,519.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:521.2,521.24 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:521.24,522.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:522.30,524.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:527.2,527.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:530.123,532.36 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:532.36,534.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:536.2,536.78 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:536.78,540.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:543.116,547.27 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:547.27,549.3 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:551.2,551.34 1 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:551.34,553.3 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:555.2,561.50 3 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:564.113,568.63 2 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:568.63,570.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:571.2,571.65 1 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:571.65,574.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:576.2,578.61 3 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:578.61,584.67 1 8 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:584.67,585.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:587.3,587.113 1 8 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:587.113,589.4 1 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:590.3,590.49 1 8 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:590.49,592.4 1 2 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:595.2,595.40 1 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:595.40,598.3 2 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:602.2,602.128 1 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:602.128,605.3 2 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:610.2,610.141 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:610.141,613.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:615.2,615.14 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:618.93,619.43 1 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:619.43,622.67 1 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:622.67,624.4 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:626.2,626.14 1 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:629.110,630.43 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:630.43,631.69 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:631.69,633.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:635.2,635.14 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:638.110,639.43 1 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:639.43,642.63 1 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:642.63,643.44 1 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:643.44,645.5 1 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:646.4,646.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:646.32,648.39 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:648.39,650.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:654.2,654.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:657.116,661.33 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:661.33,663.3 1 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:667.2,667.63 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:667.63,669.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:671.2,672.29 2 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:672.29,674.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:676.2,679.58 3 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:683.51,687.61 3 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:687.61,688.67 1 5 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:688.67,689.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:691.3,691.64 1 5 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:694.2,695.52 2 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:695.52,697.47 2 5 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:697.47,699.4 1 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:702.2,703.52 2 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:703.52,705.48 2 5 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:705.48,707.4 1 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:715.2,717.41 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:717.41,722.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:727.2,727.44 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:727.44,729.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:730.2,731.64 2 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:731.64,732.60 1 4 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:732.60,734.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:737.2,737.37 1 3 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:740.120,741.47 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:741.47,743.3 1 6 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:746.2,746.76 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:746.76,747.73 1 5 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:747.73,749.4 1 2 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:753.2,753.61 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:753.61,755.3 1 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:756.2,756.12 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:759.146,761.2 1 2 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:763.168,766.74 2 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:766.74,771.3 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:773.2,776.15 3 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:776.15,778.3 1 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:780.2,780.66 1 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:780.66,781.34 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:781.34,791.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:792.3,801.9 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:804.2,804.57 1 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:804.57,805.69 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:805.69,815.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:816.3,825.9 3 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:828.2,828.88 1 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:828.88,842.3 3 5 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:844.2,844.57 1 8 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:844.57,854.3 3 2 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:856.2,856.109 1 6 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:856.109,857.68 1 6 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:857.68,860.97 3 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:860.97,862.5 1 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:863.4,870.10 2 1 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:872.3,879.4 2 5 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:883.90,885.57 2 12 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:885.57,887.3 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:887.8,887.56 1 2 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:887.56,889.3 1 2 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:890.2,890.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:893.81,895.57 2 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:895.57,897.3 1 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:897.8,897.56 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:897.56,899.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:900.2,900.56 1 7 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:903.102,905.15 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:905.15,907.3 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:909.2,910.16 2 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:910.16,911.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:911.32,913.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:914.3,914.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:916.2,916.55 1 10 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:919.109,925.2 1 53 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:928.38,937.2 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:939.114,941.2 1 26 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:943.66,944.19 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:944.19,946.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:947.2,947.56 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:950.107,951.43 1 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:951.43,953.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:954.2,956.112 3 13 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:959.56,963.2 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:965.94,967.23 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:967.23,968.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:968.28,969.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:971.3,971.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:971.33,972.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:974.3,974.116 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:974.116,975.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:977.3,978.48 2 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:978.48,980.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:981.3,981.27 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:981.27,982.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:984.3,984.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:987.2,987.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:990.116,991.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:991.61,992.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:992.64,993.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:995.3,995.104 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:995.104,997.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:999.2,999.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:1002.141,1003.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:1003.61,1004.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:1004.64,1005.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:1007.3,1007.104 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:1007.104,1009.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_attachment_controller.go:1011.2,1011.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:51.35,70.42 5 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:70.42,70.68 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:72.20,74.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:75.2,77.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:80.66,82.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:82.16,85.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:87.2,90.9 3 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:90.9,92.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:92.10,95.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:96.3,97.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:97.10,100.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:103.2,103.49 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:103.49,104.79 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:104.79,107.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:112.95,114.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:114.16,117.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:119.2,119.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:122.76,129.71 5 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:129.71,131.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:133.2,133.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:133.31,135.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:137.2,137.10 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:140.44,141.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:141.33,142.3 0 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:145.62,147.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:147.10,149.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:150.2,153.13 4 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:156.73,157.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:157.16,160.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:162.2,164.31 3 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:167.71,168.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:168.15,170.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:172.2,173.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:173.16,175.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:176.2,176.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:176.32,178.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:179.2,179.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:182.73,184.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:184.16,185.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:185.33,187.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:188.3,188.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:191.2,191.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:191.32,193.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:195.2,196.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:196.16,197.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:197.33,199.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:200.3,201.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:203.2,204.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:204.15,205.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:205.17,207.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:208.3,208.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:208.50,210.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:212.3,212.63 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:212.63,214.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:217.2,220.42 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:220.42,224.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:227.2,228.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:228.16,230.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:231.2,231.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:231.25,233.95 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:233.95,236.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:240.2,240.78 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:240.78,241.74 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:241.74,242.67 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:242.67,244.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:248.2,248.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_clone_controller.go:251.79,253.2 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:100.30,130.42 7 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:130.42,130.66 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:132.17,134.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:135.2,139.42 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:139.42,139.76 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:141.20,143.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:144.2,148.42 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:148.42,148.76 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:150.20,152.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:153.2,157.42 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:157.42,157.82 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:159.20,161.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:162.2,165.42 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:165.42,165.82 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:167.20,169.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:170.2,174.42 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:174.42,174.92 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:176.20,178.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:179.2,183.42 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:183.42,183.70 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:185.20,187.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:188.2,194.43 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:194.43,194.74 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:196.20,198.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:199.2,201.15 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:204.69,211.79 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:211.79,213.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:215.2,215.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:215.31,217.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:219.2,219.10 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:222.37,223.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:223.31,224.3 0 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:227.55,230.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:230.10,232.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:233.2,238.13 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:241.66,242.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:242.16,245.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:247.2,248.43 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:248.43,252.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:254.2,256.21 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:259.86,271.59 2 417 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:271.59,277.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:279.2,279.12 1 417 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:282.63,283.15 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:283.15,285.3 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:286.2,287.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:287.16,289.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:290.2,290.30 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:290.30,293.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:295.2,296.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:296.16,297.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:297.37,299.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:300.3,300.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:303.2,306.16 3 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:306.16,308.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:309.2,310.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:310.16,312.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:313.2,313.20 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:313.20,315.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:317.2,317.45 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:317.45,320.17 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:320.17,322.47 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:322.47,324.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:325.4,325.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:327.3,327.55 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:330.2,331.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:331.16,333.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:334.2,335.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:335.16,337.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:338.2,339.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:339.16,341.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:343.2,343.37 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:343.37,344.58 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:344.58,347.18 3 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:347.18,349.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:350.4,350.121 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:353.3,353.65 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:353.65,355.98 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:355.98,357.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:360.3,360.34 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:360.34,361.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:361.37,362.58 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:362.58,364.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:367.3,367.29 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:367.29,368.34 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:368.34,369.53 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:369.53,371.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:374.3,374.51 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:374.51,378.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:378.18,380.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:381.4,381.24 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:381.24,383.32 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:383.32,384.36 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:384.36,386.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:389.5,389.24 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:389.24,393.6 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:397.3,397.30 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:397.30,398.34 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:398.34,399.54 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:399.54,401.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:405.3,407.30 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:407.30,408.73 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:408.73,409.40 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:409.40,411.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:415.3,415.64 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:415.64,416.101 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:416.101,417.40 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:417.40,419.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:422.3,423.93 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:423.93,425.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:428.3,428.72 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:428.72,430.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:430.9,430.30 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:430.30,432.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:433.3,433.74 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:433.74,435.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:435.9,435.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:435.31,437.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:440.3,440.47 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:443.2,445.28 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:445.28,447.3 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:448.2,449.29 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:449.29,451.3 1 46 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:452.2,452.15 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:452.15,456.30 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:456.30,458.58 1 49 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:458.58,459.52 1 23 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:459.52,461.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:465.3,465.21 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:465.21,466.30 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:466.30,468.58 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:468.58,469.52 1 11 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:469.52,471.7 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:476.3,476.21 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:476.21,479.64 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:479.64,481.5 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:483.3,483.17 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:483.17,485.4 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:487.3,487.46 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:487.46,491.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:494.2,494.65 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:494.65,496.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:498.2,498.81 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:498.81,500.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:502.2,502.96 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:502.96,504.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:506.2,506.79 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:506.79,508.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:510.2,510.54 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:510.54,512.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:514.2,514.76 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:514.76,516.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:518.2,518.70 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:518.70,520.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:522.2,522.60 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:522.60,524.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:526.2,526.61 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:526.61,528.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:530.2,530.61 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:530.61,532.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:534.2,534.74 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:534.74,536.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:538.2,538.69 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:538.69,540.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:542.2,542.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:546.90,547.52 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:547.52,548.63 1 92 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:548.63,552.55 1 303 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:552.55,554.5 1 80 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:561.85,566.29 4 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:566.29,568.68 1 12 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:568.68,570.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:571.3,571.66 1 12 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:571.66,573.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:577.2,577.73 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:577.73,579.59 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:579.59,584.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:587.2,587.12 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:590.85,593.16 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:593.16,594.33 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:594.33,596.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:597.3,607.63 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:607.63,609.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:611.2,611.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:616.153,617.15 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:617.15,619.63 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:619.63,621.4 1 23 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:625.2,627.23 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:627.23,629.74 2 46 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:629.74,631.103 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:631.103,633.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:636.2,636.25 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:636.25,637.57 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:637.57,641.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:641.9,644.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:645.8,648.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:650.2,651.16 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:651.16,653.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:654.2,654.14 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:654.14,656.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:658.2,660.60 2 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:660.60,661.62 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:661.62,664.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:665.3,665.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:667.2,667.60 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:667.60,672.24 3 12 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:672.24,673.111 1 24 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:673.111,680.5 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:682.3,682.13 1 12 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:686.2,686.36 1 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:686.36,688.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:690.2,691.23 2 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:691.23,693.3 1 20 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:695.2,696.51 2 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:696.51,698.37 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:698.37,700.4 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:703.2,704.49 2 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:704.49,706.37 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:706.37,708.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:713.2,714.51 2 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:714.51,716.15 2 18 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:716.15,717.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:719.3,723.52 3 18 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:723.52,724.57 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:724.57,726.5 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:727.4,727.53 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:727.53,729.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:730.4,730.29 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:730.29,735.5 4 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:736.4,736.54 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:737.9,737.44 1 15 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:737.44,739.30 2 15 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:739.30,744.5 3 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:746.4,746.75 1 15 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:746.75,749.5 2 15 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:749.10,751.19 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:751.19,753.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:754.5,754.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:754.28,756.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:758.4,758.18 1 15 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:763.2,763.23 1 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:763.23,764.84 1 20 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:764.84,771.4 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:775.2,778.23 3 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:778.23,781.3 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:781.8,781.52 1 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:781.52,783.57 2 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:783.57,785.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:787.3,787.22 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:787.22,789.66 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:789.66,791.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:795.4,796.78 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:796.78,797.72 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:797.72,799.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:802.4,803.54 2 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:803.54,804.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:804.61,806.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:809.8,811.57 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:811.57,814.4 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:816.3,817.17 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:817.17,819.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:825.3,828.63 3 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:828.63,829.60 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:829.60,831.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:836.2,836.46 1 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:836.46,837.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:837.20,838.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:841.3,841.121 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:841.121,846.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:846.9,846.122 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:846.122,851.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:854.2,854.12 1 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:857.64,858.27 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:858.27,860.3 1 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:861.2,861.82 1 16 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:864.65,865.23 1 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:865.23,866.28 1 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:866.28,868.4 1 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:870.2,870.13 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:875.62,876.23 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:876.23,877.29 1 34 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:877.29,879.4 1 16 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:881.2,881.13 1 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:884.58,885.27 1 180 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:885.27,887.3 1 19 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:888.2,888.28 1 161 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:888.28,890.3 1 58 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:891.2,891.20 1 103 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:891.20,893.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:894.2,894.13 1 103 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:907.52,908.35 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:908.35,910.3 1 24 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:912.2,912.31 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:912.31,914.17 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:914.17,916.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:917.3,917.40 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:917.40,919.4 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:921.2,921.13 1 24 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:924.75,926.23 2 68 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:926.23,927.35 1 130 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:927.35,929.4 1 77 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:931.2,931.14 1 68 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:935.69,937.23 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:937.23,938.29 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:938.29,940.4 1 24 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:942.2,942.14 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:945.65,947.23 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:947.23,948.28 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:948.28,950.4 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:952.2,952.14 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:955.135,961.31 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:961.31,963.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:965.2,966.16 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:966.16,968.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:970.2,970.65 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:970.65,972.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:975.2,975.26 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:975.26,977.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:979.2,979.65 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:979.65,981.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:983.2,983.64 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:983.64,985.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:987.2,987.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:990.119,997.23 4 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:997.23,998.30 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:998.30,999.22 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:999.22,1002.50 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1002.50,1004.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1005.5,1005.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1006.10,1006.43 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1006.43,1008.48 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1008.48,1012.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1016.3,1016.28 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1016.28,1017.12 1 45 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1020.3,1020.33 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1020.33,1021.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1024.3,1024.65 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1024.65,1026.49 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1026.49,1028.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1032.2,1032.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1035.125,1039.37 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1039.37,1041.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1043.2,1043.23 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1043.23,1044.52 1 49 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1044.52,1048.66 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1048.66,1050.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1052.4,1052.100 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1052.100,1054.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1058.2,1058.38 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1058.38,1060.48 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1060.48,1062.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1065.2,1065.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1068.141,1070.45 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1070.45,1072.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1074.2,1075.85 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1075.85,1077.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1079.2,1079.83 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1079.83,1081.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1089.2,1089.83 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1089.83,1091.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1093.2,1093.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1096.128,1103.23 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1103.23,1104.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1104.46,1105.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1107.3,1107.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1107.32,1109.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1111.3,1111.34 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1114.2,1114.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1114.23,1115.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1115.32,1116.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1118.3,1118.72 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1118.72,1120.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1122.3,1122.48 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1122.48,1123.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1123.64,1129.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1130.4,1130.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1132.3,1133.19 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1135.2,1135.19 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1138.143,1142.52 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1142.52,1144.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1146.2,1147.54 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1147.54,1149.23 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1149.23,1151.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1154.2,1155.22 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1155.22,1157.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1157.17,1159.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1161.3,1161.60 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1162.8,1164.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1166.2,1167.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1167.16,1169.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1171.2,1173.47 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1173.47,1175.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1176.2,1176.18 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1179.143,1181.44 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1181.44,1183.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1183.17,1185.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1191.3,1192.32 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1192.32,1194.38 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1194.38,1195.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1195.50,1197.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1198.5,1198.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1202.2,1202.19 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1205.97,1206.83 1 30 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1206.83,1208.3 1 30 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1210.2,1210.84 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1213.162,1214.28 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1214.28,1216.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1218.2,1219.16 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1219.16,1221.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1223.2,1223.23 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1223.23,1225.3 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1226.2,1226.23 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1226.23,1228.3 1 46 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1230.2,1230.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1233.145,1234.28 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1234.28,1236.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1240.2,1240.31 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1240.31,1242.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1244.2,1244.23 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1244.23,1247.3 2 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1248.2,1248.23 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1248.23,1251.3 2 46 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1253.2,1253.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1257.146,1258.15 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1258.15,1260.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1262.2,1265.16 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1265.16,1267.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1269.2,1269.33 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1269.33,1271.3 1 11 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1273.2,1273.55 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1273.55,1275.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1277.2,1277.70 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1277.70,1279.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1281.2,1281.61 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1281.61,1283.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1285.2,1285.74 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1285.74,1287.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1289.2,1290.16 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1290.16,1292.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1293.2,1293.14 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1293.14,1296.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1298.2,1300.66 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1300.66,1302.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1304.2,1304.56 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1304.56,1306.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1308.2,1311.57 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1311.57,1313.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1315.2,1315.29 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1315.29,1321.79 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1321.79,1323.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1325.3,1326.17 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1326.17,1328.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1337.3,1337.70 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1337.70,1341.4 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1343.3,1343.120 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1343.120,1350.25 5 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1350.25,1351.31 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1351.31,1352.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1354.5,1355.51 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1355.51,1356.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1358.5,1358.84 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1358.84,1360.14 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1361.11,1361.31 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1361.31,1362.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1364.5,1365.19 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1365.19,1367.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1368.5,1369.55 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1369.55,1370.46 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1370.46,1371.130 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1371.130,1373.13 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1377.5,1377.25 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1377.25,1378.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1380.5,1381.19 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1381.19,1383.14 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1385.5,1385.37 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1385.37,1387.6 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1389.5,1389.37 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1391.4,1391.19 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1391.19,1393.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1393.10,1399.44 3 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1399.44,1400.88 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1400.88,1406.7 5 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1408.5,1408.17 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1408.17,1415.6 5 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1418.8,1419.112 1 23 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1419.112,1427.4 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1432.3,1432.59 1 23 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1432.59,1433.143 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1433.143,1438.26 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1438.26,1439.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1439.64,1442.7 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1444.5,1449.81 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1449.81,1451.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1457.2,1459.88 2 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1459.88,1461.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1463.2,1465.58 1 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1465.58,1466.42 1 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1466.42,1469.4 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1473.3,1473.72 1 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1473.72,1476.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1479.2,1479.48 1 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1482.103,1483.28 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1483.28,1485.3 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1486.2,1486.74 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1489.103,1491.110 2 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1491.110,1495.17 3 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1495.17,1498.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1500.3,1500.101 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1500.101,1503.18 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1503.18,1506.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1508.4,1509.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1509.18,1512.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1513.4,1515.69 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1515.69,1518.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1524.178,1528.41 1 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1528.41,1531.3 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1533.2,1533.25 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1533.25,1534.35 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1534.35,1535.26 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1536.99,1538.51 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1539.39,1541.54 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1541.54,1544.6 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1545.38,1548.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1550.4,1550.14 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1552.3,1552.35 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1552.35,1553.26 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1554.99,1556.51 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1557.39,1559.54 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1559.54,1563.6 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1565.4,1565.14 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1569.2,1569.25 1 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1569.25,1570.35 1 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1570.35,1571.26 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1572.38,1574.51 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1575.39,1577.54 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1577.54,1580.6 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1581.38,1582.73 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1582.73,1584.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1585.5,1585.51 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1586.39,1587.73 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1587.73,1589.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1590.5,1590.51 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1590.51,1594.6 3 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1596.4,1596.14 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1599.3,1599.35 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1599.35,1600.47 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1600.47,1601.27 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1602.70,1604.52 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1605.40,1607.55 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1607.55,1611.7 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1612.39,1615.74 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1615.74,1617.7 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1618.6,1618.53 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1618.53,1620.7 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1622.5,1622.15 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1624.4,1624.47 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1624.47,1625.27 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1626.70,1628.52 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1629.40,1631.55 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1631.55,1635.7 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1636.39,1637.125 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1637.125,1638.75 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1638.75,1640.8 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1641.7,1641.54 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1641.54,1643.8 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1644.12,1647.7 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1649.5,1649.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1654.2,1654.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1657.189,1663.18 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1663.18,1666.17 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1666.17,1668.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1669.3,1670.17 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1673.2,1673.18 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1673.18,1675.58 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1675.58,1677.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1680.2,1680.28 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1683.101,1685.23 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1685.23,1686.49 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1686.49,1688.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1689.3,1690.17 2 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1692.2,1692.68 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1692.68,1694.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1698.60,1700.52 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1700.52,1706.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1706.8,1710.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1712.2,1714.23 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1714.23,1716.26 1 50 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1716.26,1717.12 1 44 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1719.3,1719.62 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1719.62,1720.27 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1720.27,1721.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1724.4,1724.43 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1726.3,1727.17 2 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1727.17,1729.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1730.3,1732.30 2 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1732.30,1733.37 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1733.37,1738.5 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1738.10,1743.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1744.4,1746.43 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1747.9,1749.4 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1752.2,1754.40 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1754.40,1756.3 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1758.2,1759.38 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1759.38,1762.3 1 20 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1762.8,1762.41 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1762.41,1764.17 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1764.17,1766.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1767.3,1767.26 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1767.26,1769.25 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1769.25,1770.53 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1770.53,1772.11 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1775.4,1775.34 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1775.34,1780.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1783.2,1783.16 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1783.16,1784.48 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1784.48,1786.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1787.3,1789.65 3 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1789.65,1791.38 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1791.38,1793.5 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1794.4,1796.47 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1800.2,1800.116 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1800.116,1802.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1804.2,1804.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1807.54,1809.2 1 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1811.155,1812.31 1 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1812.31,1815.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1817.2,1817.23 1 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1817.23,1819.26 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1819.26,1820.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1822.3,1823.17 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1823.17,1825.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1826.3,1826.25 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1826.25,1827.29 1 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1827.29,1828.63 1 23 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1828.63,1829.49 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1829.49,1830.48 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1830.48,1832.8 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1833.12,1836.7 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1839.9,1841.28 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1841.28,1842.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1847.4,1848.18 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1848.18,1850.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1852.4,1852.69 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1852.69,1854.20 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1854.20,1856.6 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1857.5,1858.30 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1858.30,1860.6 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1861.5,1861.55 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1864.3,1864.17 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1867.2,1868.23 2 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1868.23,1870.26 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1870.26,1871.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1874.3,1874.46 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1874.46,1875.45 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1875.45,1876.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1879.3,1879.34 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1879.34,1880.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1882.3,1882.28 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1882.28,1883.12 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1885.3,1885.59 1 19 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1885.59,1886.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1889.3,1889.61 1 19 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1889.61,1891.4 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1892.3,1892.24 1 14 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1892.24,1894.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1896.3,1896.31 1 14 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1896.31,1898.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1900.3,1900.25 1 14 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1900.25,1902.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1904.3,1905.35 1 14 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1905.35,1909.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1911.3,1911.79 1 14 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1913.2,1913.33 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1913.33,1915.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1917.2,1917.59 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1917.59,1920.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1921.2,1924.45 3 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1924.45,1926.3 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1926.8,1927.127 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1927.127,1929.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1933.2,1936.12 3 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1939.120,1942.23 2 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1942.23,1943.61 1 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1943.61,1945.9 2 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1948.2,1948.84 1 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1951.131,1955.61 2 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1955.61,1957.3 1 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1957.8,1958.53 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1958.53,1961.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1964.2,1964.80 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1964.80,1965.62 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1965.62,1967.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1969.3,1969.55 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1969.55,1971.4 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1972.3,1975.53 4 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1979.2,1979.60 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1979.60,1981.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1984.2,1985.23 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1985.23,1986.29 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1986.29,1988.9 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1991.2,1991.23 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1991.23,1992.68 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1992.68,1997.50 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:1997.50,1999.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2001.3,2001.58 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2001.58,2002.63 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2002.63,2004.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2005.4,2006.18 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2011.123,2012.36 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2012.36,2013.24 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2013.24,2014.62 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2014.62,2016.5 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2018.3,2018.14 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2020.2,2020.87 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2023.127,2026.35 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2026.35,2028.47 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2028.47,2030.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2030.18,2033.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2034.4,2034.22 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2036.3,2036.35 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2039.2,2039.27 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2039.27,2041.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2042.2,2042.38 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2042.38,2044.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2047.2,2047.41 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2047.41,2051.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2051.8,2052.123 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2052.123,2054.37 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2054.37,2056.119 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2056.119,2058.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2060.4,2060.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2062.3,2063.36 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2066.2,2067.23 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2067.23,2069.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2071.2,2071.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2074.95,2076.16 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2076.16,2078.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2079.2,2079.37 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2079.37,2081.3 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2083.2,2083.40 1 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2083.40,2085.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2086.2,2087.16 2 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2087.16,2089.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2090.2,2091.78 1 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2094.120,2100.16 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2100.16,2102.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2103.2,2104.32 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2104.32,2106.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2108.2,2108.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2108.23,2111.45 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2111.45,2113.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2116.2,2120.33 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2120.33,2122.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2125.2,2126.33 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2126.33,2128.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2131.2,2132.33 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2132.33,2134.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2137.2,2138.24 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2138.24,2140.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2141.2,2141.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2148.158,2150.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2150.15,2151.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2151.17,2153.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2156.2,2157.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2157.16,2159.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2162.2,2163.32 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2163.32,2165.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2168.2,2169.48 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2169.48,2171.32 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2171.32,2172.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2175.3,2176.53 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2176.53,2177.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2177.50,2178.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2181.4,2182.103 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2187.2,2188.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2188.16,2190.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2193.2,2194.44 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2194.44,2196.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2198.2,2199.28 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2202.65,2204.22 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2204.22,2205.26 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2205.26,2207.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2209.2,2209.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2212.56,2214.2 1 55 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2216.54,2218.2 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2223.98,2224.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2224.23,2225.106 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2225.106,2227.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2229.2,2229.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2235.150,2239.45 2 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2239.45,2240.29 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2240.29,2243.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2244.3,2245.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2245.17,2247.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2248.3,2249.81 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2249.81,2252.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2255.2,2256.16 2 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2256.16,2258.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2259.2,2262.45 2 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2262.45,2264.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2266.2,2266.31 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2266.31,2268.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2270.2,2270.70 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2270.70,2272.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2274.2,2274.14 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2274.14,2276.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2284.2,2284.37 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2284.37,2286.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2288.2,2288.79 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2288.79,2290.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2292.2,2293.56 2 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2293.56,2295.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2297.2,2300.66 2 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2300.66,2302.3 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2303.2,2303.38 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2303.38,2305.17 2 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2305.17,2307.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2309.3,2309.35 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2309.35,2310.81 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2310.81,2315.67 4 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2315.67,2317.6 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2318.5,2321.13 3 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2323.4,2326.70 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2328.3,2328.106 1 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2328.106,2333.30 2 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2333.30,2334.82 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2334.82,2338.27 3 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2338.27,2340.7 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2342.6,2345.14 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2349.4,2349.73 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2349.73,2351.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2352.9,2355.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2357.2,2357.12 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2360.56,2364.53 3 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2364.53,2366.37 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2366.37,2368.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2371.2,2371.57 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2371.57,2372.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2372.30,2374.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2376.2,2376.19 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2382.72,2386.15 3 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2386.15,2387.17 1 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2387.17,2389.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2392.2,2400.46 3 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2400.46,2402.3 1 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2404.2,2404.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2404.61,2407.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2409.2,2411.16 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2411.16,2413.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2414.2,2415.20 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2420.61,2425.15 3 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2425.15,2426.17 1 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2426.17,2428.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2431.2,2432.54 2 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2432.54,2434.3 1 42 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2436.2,2436.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2436.61,2439.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2441.2,2445.47 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2445.47,2447.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2449.2,2453.41 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2453.41,2455.61 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2455.61,2459.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2459.9,2459.44 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2459.44,2461.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2462.3,2462.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2462.35,2465.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2468.2,2468.65 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2468.65,2471.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2471.8,2474.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2476.2,2476.22 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2476.22,2478.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2478.17,2481.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2483.3,2483.40 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2483.40,2484.47 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2484.47,2485.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2488.4,2489.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2489.18,2491.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2494.4,2496.70 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2499.3,2499.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2499.23,2501.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2501.9,2503.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2506.2,2506.55 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2509.84,2511.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2511.16,2513.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2515.2,2515.40 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2515.40,2517.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2519.2,2520.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2520.16,2522.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2524.2,2526.29 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2526.29,2527.41 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2527.41,2528.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2531.3,2531.60 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2531.60,2535.18 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2535.18,2537.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2539.4,2539.80 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2539.80,2540.58 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2540.58,2542.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2546.2,2546.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2549.124,2551.52 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2551.52,2552.67 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2552.67,2554.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2558.2,2559.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2559.16,2561.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2563.2,2563.84 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2563.84,2565.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2567.2,2570.12 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2573.133,2579.16 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2579.16,2581.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2583.2,2583.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2583.33,2585.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2587.2,2588.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2588.16,2590.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2592.2,2593.29 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2593.29,2594.39 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2594.39,2595.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2598.3,2599.8 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2606.2,2607.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2607.16,2609.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2611.2,2612.68 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2612.68,2613.67 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2613.67,2614.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2617.3,2618.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2618.13,2619.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2622.3,2622.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2622.32,2623.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2626.3,2627.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2627.17,2629.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2632.3,2632.136 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2632.136,2634.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2637.2,2637.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2637.32,2639.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2641.2,2641.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2644.169,2648.16 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2648.16,2650.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2652.2,2657.23 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2657.23,2659.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2659.13,2660.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2662.3,2662.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2662.37,2666.9 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2669.2,2669.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2669.23,2670.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2670.61,2671.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2674.3,2675.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2675.13,2677.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2680.3,2680.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2680.37,2682.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2685.3,2687.12 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2687.12,2689.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2689.9,2692.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2693.3,2693.47 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2693.47,2695.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2697.2,2699.49 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2699.49,2702.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2704.2,2705.45 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2705.45,2707.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2707.17,2709.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2712.2,2713.41 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2713.41,2714.49 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2714.49,2716.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2719.3,2719.41 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2719.41,2721.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2724.3,2724.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2724.33,2726.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2729.3,2729.109 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2729.109,2731.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2734.3,2734.80 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2736.2,2736.26 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2736.26,2739.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2741.2,2744.31 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2744.31,2746.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2746.8,2748.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2749.2,2751.38 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2754.185,2756.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2756.16,2758.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2760.2,2763.16 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2763.16,2765.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2767.2,2768.40 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2768.40,2769.42 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2769.42,2770.104 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2770.104,2772.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2776.2,2780.23 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2780.23,2781.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2781.61,2782.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2785.3,2786.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2786.12,2787.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2790.3,2791.52 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2791.52,2793.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2795.3,2795.18 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2795.18,2796.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2799.3,2800.64 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2800.64,2801.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2804.3,2809.43 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2812.2,2812.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2815.169,2819.16 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2819.16,2821.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2823.2,2824.23 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2824.23,2825.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2825.61,2826.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2829.3,2830.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2830.13,2832.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2835.3,2837.18 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2837.18,2839.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2839.9,2841.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2843.3,2843.57 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2843.57,2847.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2850.2,2850.49 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2850.49,2853.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2855.2,2856.45 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2856.45,2858.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2858.17,2860.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2863.2,2863.41 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2863.41,2865.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2865.12,2866.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2869.3,2869.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2869.33,2872.12 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2875.3,2875.110 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2875.110,2878.12 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2882.2,2882.41 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2882.41,2885.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2887.2,2890.31 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2890.31,2892.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2892.8,2894.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2895.2,2895.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2895.21,2897.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2898.2,2900.38 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2903.141,2905.23 2 31 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2905.23,2908.86 1 54 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2908.86,2909.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2912.3,2912.76 1 54 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2912.76,2914.4 1 46 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2918.2,2918.41 1 31 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2918.41,2919.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2919.23,2921.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2922.3,2922.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2925.2,2925.9 1 31 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2926.45,2927.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2928.45,2929.51 1 10 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2930.46,2931.129 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2931.129,2933.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2934.3,2934.129 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2934.129,2936.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2938.3,2940.23 3 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2940.23,2942.24 2 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2942.24,2944.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2946.3,2946.48 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2946.48,2949.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2951.3,2951.25 1 21 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2953.2,2953.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2956.179,2965.15 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2965.15,2966.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2966.17,2968.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2971.2,2971.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2971.21,2973.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2975.2,2975.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2975.61,2978.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2980.2,2981.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2981.16,2983.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2985.2,2986.45 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2986.45,2988.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2988.17,2990.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2992.2,2992.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2992.35,2993.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2993.30,2994.29 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:2994.29,2996.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3000.3,3000.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3000.30,3003.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3006.3,3006.106 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3006.106,3009.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3012.3,3012.24 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3012.24,3013.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3013.30,3015.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3020.2,3020.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3020.32,3022.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3023.2,3023.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3023.30,3025.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3026.2,3026.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3029.108,3031.23 2 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3031.23,3032.68 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3032.68,3034.4 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3037.2,3037.60 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3037.60,3039.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3040.2,3040.67 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3040.67,3042.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3043.2,3043.46 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3043.46,3045.14 2 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3045.14,3047.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3048.3,3048.38 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3048.38,3050.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3052.2,3052.13 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3055.148,3056.17 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3056.17,3058.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3060.2,3061.16 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3061.16,3063.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3064.2,3064.14 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3064.14,3066.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3068.2,3073.27 2 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3073.27,3075.35 1 11 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3075.35,3079.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3082.3,3082.75 1 11 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3082.75,3084.4 1 11 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3085.3,3085.13 1 11 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3090.2,3090.52 1 11 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3090.52,3092.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3097.2,3097.42 1 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3097.42,3098.113 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3098.113,3100.4 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3107.3,3108.25 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3108.25,3110.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3111.3,3114.44 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3114.44,3116.52 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3116.52,3118.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3121.3,3121.38 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3121.38,3123.72 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3123.72,3125.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3126.4,3126.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3130.3,3132.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3135.2,3136.23 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3136.23,3137.26 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3137.26,3138.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3140.3,3140.71 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3143.2,3143.45 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3143.45,3144.97 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3144.97,3147.4 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3149.3,3154.66 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3154.66,3156.51 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3156.51,3158.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3159.31,3161.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3164.3,3164.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3164.35,3166.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3166.18,3168.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3179.4,3179.57 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3179.57,3182.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3184.8,3185.44 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3185.44,3187.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3189.3,3191.46 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3191.46,3192.78 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3192.78,3193.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3193.37,3196.6 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3198.5,3200.15 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3203.4,3203.133 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3203.133,3206.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3208.4,3208.87 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3208.87,3209.63 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3209.63,3213.6 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3213.12,3215.6 0 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3224.4,3224.84 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3224.84,3226.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3226.10,3227.80 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3227.80,3230.6 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3233.4,3233.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3233.64,3237.5 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3239.4,3239.62 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3239.62,3242.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3250.4,3250.87 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3250.87,3253.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3257.2,3259.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3262.159,3263.34 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3263.34,3267.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3269.2,3269.26 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3269.26,3270.55 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3270.55,3272.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3273.3,3273.21 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3273.21,3275.49 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3275.49,3277.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3278.4,3278.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3280.3,3280.15 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3284.2,3285.12 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3288.97,3289.34 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3289.34,3291.3 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3293.2,3293.45 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3293.45,3296.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3298.2,3299.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3299.16,3301.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3302.2,3303.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3306.65,3307.52 1 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3307.52,3309.3 1 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3311.2,3311.45 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3311.45,3312.62 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3312.62,3314.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3317.2,3317.45 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3317.45,3319.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3319.61,3321.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3324.2,3324.14 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3327.66,3332.2 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3334.173,3342.41 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3342.41,3344.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3344.61,3346.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3347.3,3347.24 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3347.24,3349.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3351.3,3351.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3351.31,3353.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3355.3,3355.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3355.25,3357.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3359.3,3359.79 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3362.2,3362.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3365.228,3375.23 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3375.23,3377.128 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3377.128,3379.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3379.9,3379.42 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3379.42,3381.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3381.9,3384.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3387.2,3387.75 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3390.112,3392.16 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3392.16,3394.3 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3396.2,3396.93 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3396.93,3398.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3399.2,3400.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3400.16,3402.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3403.2,3403.93 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3403.93,3405.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3407.2,3407.60 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3407.60,3409.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3411.2,3412.82 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3412.82,3417.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3419.2,3419.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3422.144,3423.43 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3423.43,3425.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3426.2,3426.60 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3426.60,3428.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3430.2,3430.45 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3430.45,3431.75 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3431.75,3433.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3436.2,3442.45 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3442.45,3445.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3448.118,3449.14 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3449.14,3451.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3453.2,3453.29 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3453.29,3455.3 1 13 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3458.2,3458.31 1 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3458.31,3460.3 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3463.2,3463.24 1 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3463.24,3464.88 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3464.88,3466.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3467.3,3467.13 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3471.2,3471.85 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3471.85,3474.3 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3476.2,3476.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3479.80,3482.58 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3482.58,3484.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3486.2,3487.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3487.16,3489.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3491.2,3492.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3492.16,3494.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3496.2,3497.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3497.16,3499.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3500.2,3504.77 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3504.77,3505.72 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3505.72,3507.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3507.9,3509.65 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3509.65,3511.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3512.4,3512.77 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3512.77,3514.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3517.4,3518.28 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3521.2,3523.20 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3523.20,3525.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3527.2,3530.12 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3533.135,3536.14 2 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3536.14,3538.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3545.2,3545.29 1 25 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3545.29,3547.3 1 16 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3548.2,3549.46 2 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3549.46,3550.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3550.23,3552.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3555.2,3556.20 1 9 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3556.20,3558.3 1 8 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3560.2,3560.24 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3560.24,3563.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3563.17,3565.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3566.3,3567.47 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3567.47,3569.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3570.3,3570.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3570.16,3572.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3572.64,3575.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3576.4,3576.38 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3576.38,3581.19 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3581.19,3583.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3584.5,3584.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3584.46,3588.6 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3593.2,3594.16 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3594.16,3596.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3598.2,3599.16 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3599.16,3601.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3603.2,3603.200 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3603.200,3607.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3609.2,3609.12 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3612.149,3616.23 3 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3616.23,3618.26 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3618.26,3619.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3621.3,3621.82 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3621.82,3623.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3623.9,3623.29 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3623.29,3624.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3626.3,3626.78 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3626.78,3628.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3628.9,3630.4 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3633.2,3633.113 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3636.122,3637.15 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3637.15,3639.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3641.2,3641.14 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3641.14,3643.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3645.2,3645.42 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3645.42,3647.3 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3649.2,3649.108 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3649.108,3654.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3654.17,3656.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3657.3,3658.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3660.2,3660.12 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3663.72,3664.48 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3664.48,3666.3 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3667.2,3667.66 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3667.66,3669.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3670.2,3671.53 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3671.53,3672.54 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3672.54,3674.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3675.3,3676.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3676.17,3679.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3680.3,3680.29 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3682.2,3682.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3685.123,3686.15 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3686.15,3688.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3690.2,3690.14 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3690.14,3692.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3694.2,3695.36 2 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3695.36,3697.3 1 22 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3699.2,3702.16 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3702.16,3703.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3703.37,3707.4 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3708.3,3708.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3712.2,3712.60 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3712.60,3714.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3717.2,3717.38 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3717.38,3719.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3721.2,3721.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3721.46,3726.42 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3726.42,3728.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3731.2,3732.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3732.16,3734.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3736.2,3736.24 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3736.24,3743.17 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3743.17,3745.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3746.3,3746.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3751.2,3759.12 8 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3762.93,3763.29 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3763.29,3765.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3767.2,3768.42 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3771.113,3796.57 3 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3796.57,3798.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3798.17,3800.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3801.3,3805.78 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3808.2,3809.16 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3809.16,3811.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3812.2,3814.29 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3814.29,3816.3 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3818.2,3818.34 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3821.122,3823.45 2 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3823.45,3827.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3829.2,3851.3 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3854.166,3856.16 2 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3856.16,3858.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3860.2,3860.30 1 6 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3860.30,3862.3 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3864.2,3864.17 1 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3867.154,3870.25 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3870.25,3876.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3878.2,3884.16 3 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3884.16,3886.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3887.2,3889.12 2 4 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3892.104,3901.2 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3903.59,3905.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3905.16,3908.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3910.2,3910.18 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3913.88,3915.16 2 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3915.16,3918.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3920.2,3920.33 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3923.69,3924.66 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3924.66,3926.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3928.2,3929.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3929.16,3932.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3933.2,3934.32 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3934.32,3938.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3941.95,3942.42 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3942.42,3944.34 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3944.34,3946.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3948.2,3949.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3949.16,3951.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3952.2,3952.27 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3952.27,3956.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3957.2,3957.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3962.137,3965.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3965.16,3968.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3969.2,3969.55 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3969.55,3970.78 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3970.78,3971.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3973.3,3974.52 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3974.52,3976.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3980.2,3980.48 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3980.48,3982.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3984.2,3987.28 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3991.117,3993.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3993.17,3997.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3998.2,3998.42 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:3998.42,4002.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4004.2,4004.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4008.167,4009.67 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4009.67,4010.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4010.33,4012.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4013.8,4013.62 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4013.62,4016.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4016.17,4018.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4019.3,4019.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4019.25,4021.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4022.3,4022.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4023.8,4025.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4028.2,4029.138 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4029.138,4031.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4033.2,4033.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4037.81,4042.12 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4042.12,4045.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4047.2,4048.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4048.16,4050.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4052.2,4053.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4053.12,4055.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4057.2,4057.106 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4057.106,4059.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4061.2,4061.58 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4061.58,4062.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4062.32,4064.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4065.3,4065.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4065.32,4067.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4068.3,4068.36 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4068.36,4070.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4071.3,4071.89 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4071.89,4073.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4074.3,4074.73 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4074.73,4076.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4079.2,4079.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4083.80,4084.76 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4084.76,4086.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4088.2,4088.83 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4088.83,4090.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4092.2,4092.84 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4092.84,4094.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4097.2,4098.41 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4098.41,4099.67 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4099.67,4102.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4105.2,4106.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4106.16,4108.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4110.2,4110.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4113.80,4114.15 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4114.15,4116.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4118.2,4120.55 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4120.55,4122.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4124.2,4124.54 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4124.54,4126.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4129.2,4129.37 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4129.37,4130.57 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4130.57,4132.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4135.2,4135.71 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4135.71,4137.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4139.2,4139.12 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4142.85,4144.63 2 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4144.63,4146.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4148.2,4149.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4149.16,4150.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4150.32,4152.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4153.3,4153.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4156.2,4157.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4157.16,4159.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4161.2,4161.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4161.21,4165.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4167.2,4167.112 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4167.112,4169.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4170.2,4170.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4173.90,4176.16 3 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4176.16,4178.3 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4179.2,4179.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4182.151,4183.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4183.15,4185.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4186.2,4187.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4187.16,4189.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4191.2,4191.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4191.31,4192.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4192.37,4193.52 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4193.52,4195.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4198.2,4198.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4203.69,4205.45 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4205.45,4206.36 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4206.36,4207.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4207.32,4208.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4210.4,4212.25 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4214.3,4214.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4217.2,4217.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4217.35,4218.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4218.31,4219.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4221.3,4226.17 6 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4226.17,4228.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4229.3,4231.35 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4233.2,4233.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4236.144,4237.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4237.35,4241.50 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4241.50,4242.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4244.3,4245.46 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4245.46,4246.49 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4246.49,4248.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4249.9,4251.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4253.2,4253.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4257.73,4262.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4262.23,4263.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4263.46,4266.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4270.142,4271.15 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4271.15,4273.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4275.2,4275.33 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4275.33,4277.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4279.2,4282.26 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4282.26,4285.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4287.2,4287.34 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4287.34,4293.59 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4293.59,4295.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4299.3,4299.58 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4299.58,4302.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4306.3,4306.69 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4306.69,4309.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4315.3,4316.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4316.17,4319.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4321.3,4321.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4321.25,4323.34 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4323.34,4324.49 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4324.49,4326.6 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4327.5,4327.111 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4331.3,4334.46 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4334.46,4335.81 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4335.81,4337.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4338.9,4339.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4339.25,4342.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4346.3,4348.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4353.2,4353.73 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4353.73,4355.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4356.2,4356.121 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4356.121,4359.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4362.2,4362.43 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4362.43,4364.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4366.2,4367.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4367.15,4368.22 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4368.22,4370.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4372.3,4375.18 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4375.18,4378.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4380.3,4380.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4380.46,4381.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4381.25,4382.48 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4382.48,4383.14 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4385.5,4385.52 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4385.52,4388.6 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4390.9,4391.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4391.25,4393.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4397.2,4398.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4398.16,4400.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4402.2,4402.72 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4402.72,4406.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4408.2,4410.31 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4410.31,4411.37 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4411.37,4412.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4417.3,4419.29 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4419.29,4421.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4426.2,4428.53 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4428.53,4433.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4435.2,4435.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4435.28,4437.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4437.17,4439.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4440.3,4440.45 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4443.2,4446.124 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4446.124,4448.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4449.2,4449.30 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4449.30,4451.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4453.2,4454.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4457.207,4461.96 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4461.96,4465.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4466.2,4466.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4466.46,4469.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4470.2,4470.140 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4470.140,4473.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4474.2,4474.72 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4474.72,4477.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4480.2,4482.23 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4482.23,4484.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4484.17,4486.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4487.3,4487.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4487.20,4488.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4490.3,4491.46 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4491.46,4492.55 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4493.32,4495.28 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4496.32,4497.43 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4498.12,4499.66 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4499.66,4502.6 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4503.5,4503.106 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4504.12,4505.155 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4507.9,4507.55 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4507.55,4509.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4509.9,4509.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4509.64,4511.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4511.9,4513.49 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4513.49,4515.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4519.2,4519.109 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4519.109,4521.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4523.2,4523.142 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4523.142,4524.46 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4524.46,4526.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4526.9,4528.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4529.39,4531.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4533.2,4533.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4533.33,4536.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4539.2,4541.38 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4541.38,4542.61 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4542.61,4544.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4546.3,4546.24 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4546.24,4548.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4550.3,4550.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4550.31,4552.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4554.3,4554.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4554.25,4556.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4558.3,4558.79 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4560.2,4560.71 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4560.71,4561.34 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4561.34,4564.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4567.3,4567.114 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4567.114,4573.4 5 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4574.8,4575.105 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4575.105,4577.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4580.2,4584.74 4 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4584.74,4586.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4588.2,4588.25 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4591.84,4592.107 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4592.107,4594.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4596.2,4597.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4597.16,4599.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4600.2,4600.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4600.21,4602.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4604.2,4605.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4605.16,4607.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4608.2,4608.52 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4608.52,4609.43 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4609.43,4610.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4612.3,4612.120 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4612.120,4614.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4617.2,4617.19 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4623.106,4625.15 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4625.15,4627.3 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4630.2,4631.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4631.16,4633.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4634.2,4635.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4635.16,4637.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4638.2,4639.51 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4639.51,4641.47 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4641.47,4643.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4644.3,4644.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4644.16,4646.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4649.2,4651.45 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4651.45,4653.17 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4653.17,4655.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4658.3,4658.40 1 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4658.40,4660.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4663.2,4664.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4664.16,4666.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4667.2,4668.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4668.16,4670.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4671.2,4672.16 2 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4672.16,4674.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4676.2,4680.71 4 27 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4683.102,4685.49 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4685.49,4687.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4688.2,4688.51 1 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4688.51,4690.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4691.2,4692.12 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4695.99,4697.48 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4697.48,4699.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4700.2,4700.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4700.50,4702.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4703.2,4704.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4708.75,4710.21 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4710.21,4712.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4712.10,4715.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4718.3,4719.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4719.10,4722.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4727.2,4728.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4732.86,4735.46 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4735.46,4737.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4739.2,4739.90 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4739.90,4740.16 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4740.16,4742.98 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4742.98,4744.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4746.3,4746.13 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4750.2,4750.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4750.15,4752.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4752.17,4754.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4757.2,4757.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4757.32,4760.56 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4760.56,4762.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4764.3,4764.87 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4770.2,4770.112 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4770.112,4774.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4777.2,4779.12 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4782.127,4796.2 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4800.75,4802.21 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4802.21,4804.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4804.10,4807.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4810.3,4811.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4811.10,4814.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4818.2,4820.16 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4820.16,4824.3 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4827.2,4828.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4828.16,4830.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4831.2,4831.34 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4831.34,4832.38 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4832.38,4834.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4837.3,4838.19 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4842.85,4844.31 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4844.31,4846.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4846.10,4849.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4852.3,4853.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4853.10,4856.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4859.2,4859.113 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4859.113,4862.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4865.63,4867.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4867.9,4869.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4869.10,4872.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4875.3,4876.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4876.10,4879.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4882.2,4883.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4883.16,4886.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4887.2,4887.29 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4887.29,4889.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4889.17,4891.12 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4894.3,4897.112 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4897.112,4899.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4903.53,4905.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4905.9,4907.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4907.10,4909.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4912.3,4913.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4913.10,4915.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4918.2,4918.87 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4921.66,4923.9 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4923.9,4925.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4925.10,4928.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4931.3,4932.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4932.10,4935.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4938.2,4939.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4939.16,4942.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4943.2,4943.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4943.23,4945.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4949.86,4955.35 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4955.35,4957.10 2 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4957.10,4960.4 2 7 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4961.3,4961.26 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4962.8,4964.3 1 19 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4966.2,4967.46 2 19 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4967.46,4969.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4972.2,4972.49 1 19 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4972.49,4976.3 3 17 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4978.2,4980.12 3 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4986.167,4987.23 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4987.23,4989.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4991.2,4991.58 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4991.58,4993.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4995.2,4995.60 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4995.60,4997.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:4999.2,5000.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5000.16,5002.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5004.2,5005.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5005.16,5007.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5009.2,5010.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5010.16,5012.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5013.2,5018.24 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5018.24,5020.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5020.17,5022.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5023.3,5023.18 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5023.18,5025.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5028.2,5029.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5029.16,5031.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5033.2,5034.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5034.16,5036.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5038.2,5038.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5038.17,5040.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5042.2,5043.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5046.85,5047.39 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5047.39,5049.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5050.2,5050.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5054.85,5058.29 3 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5058.29,5060.3 1 26 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5062.2,5063.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5063.16,5064.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5064.32,5066.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5067.3,5067.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5070.2,5071.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5071.15,5072.51 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5072.51,5077.47 3 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5077.47,5080.5 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5084.2,5084.94 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5084.94,5090.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5091.2,5091.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5094.129,5100.63 2 5 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5100.63,5102.3 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5104.2,5104.70 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5104.70,5107.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5113.2,5114.102 1 3 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5114.102,5117.3 2 1 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5119.2,5119.34 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5119.34,5122.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5123.2,5123.14 1 2 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5126.49,5129.45 2 75 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5129.45,5131.3 1 75 +github.com/longhorn/longhorn-manager/controller/volume_controller.go:5133.2,5133.107 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:53.38,74.42 6 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:74.42,74.68 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:76.17,78.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:79.2,83.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:86.69,88.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:88.16,91.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:93.2,93.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:96.98,98.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:98.16,101.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:103.2,103.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:106.79,113.71 5 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:113.71,115.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:117.2,117.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:117.31,119.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:121.2,121.10 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:124.47,125.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:125.33,126.3 0 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:129.65,131.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:131.10,133.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:134.2,137.13 4 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:140.76,141.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:141.16,144.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:146.2,148.31 3 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:151.74,152.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:152.15,154.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:156.2,157.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:157.16,159.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:160.2,160.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:160.32,162.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:163.2,163.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:166.76,168.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:168.16,169.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:169.33,171.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:172.3,172.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:175.2,175.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:175.32,177.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:179.2,180.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:180.16,182.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:184.2,185.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:185.16,186.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:186.33,188.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:189.3,190.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:192.2,193.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:193.15,194.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:194.17,196.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:197.3,197.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:197.50,199.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:201.3,201.63 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:201.63,203.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:206.2,208.43 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:208.43,209.60 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:209.60,211.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:212.8,214.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:216.2,216.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:219.142,220.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:220.35,225.17 4 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:225.17,228.4 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:230.3,230.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:230.31,232.25 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:232.25,234.5 1 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:235.4,236.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:240.2,241.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_eviction_controller.go:244.82,246.2 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:50.39,69.42 5 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:69.42,69.68 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:71.20,73.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:74.2,76.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:79.70,81.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:81.16,84.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:86.2,86.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:89.99,91.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:91.16,94.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:96.2,96.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:99.80,106.71 5 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:106.71,108.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:110.2,110.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:110.31,112.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:114.2,114.10 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:117.48,118.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:118.33,119.3 0 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:122.66,124.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:124.10,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:127.2,130.13 4 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:133.77,134.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:134.16,137.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:139.2,141.31 3 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:144.75,145.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:145.15,147.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:149.2,150.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:150.16,152.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:153.2,153.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:153.32,155.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:156.2,156.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:159.77,161.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:161.16,162.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:162.33,164.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:165.3,165.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:168.2,168.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:168.32,170.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:172.2,173.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:173.16,174.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:174.33,176.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:177.3,178.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:180.2,181.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:181.15,182.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:182.17,184.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:185.3,185.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:185.50,187.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:189.3,189.63 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:189.63,191.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:194.2,196.34 2 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:196.34,198.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:198.8,200.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:202.2,202.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_expansion_controller.go:205.83,207.2 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:50.40,69.42 5 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:69.42,69.68 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:71.20,73.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:74.2,76.17 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:79.71,81.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:81.16,84.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:86.2,86.20 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:89.100,91.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:91.16,94.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:96.2,96.35 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:99.81,106.71 5 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:106.71,108.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:110.2,110.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:110.31,112.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:114.2,114.10 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:117.49,118.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:118.33,119.3 0 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:122.67,124.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:124.10,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:127.2,130.13 4 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:133.78,134.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:134.16,137.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:139.2,141.31 3 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:144.76,145.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:145.15,147.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:149.2,150.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:150.16,152.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:153.2,153.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:153.32,155.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:156.2,156.28 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:159.78,161.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:161.16,162.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:162.33,164.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:165.3,165.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:168.2,168.32 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:168.32,170.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:172.2,173.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:173.16,174.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:174.33,176.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:177.3,178.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:180.2,181.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:181.15,182.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:182.17,184.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:185.3,185.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:185.50,187.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:189.3,189.63 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:189.63,191.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:194.2,198.12 3 0 +github.com/longhorn/longhorn-manager/controller/volume_rebuilding_controller.go:201.84,203.2 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:50.37,69.42 5 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:69.42,69.69 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:71.20,73.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:74.2,76.18 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:79.69,81.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:81.16,84.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:86.2,86.21 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:89.98,91.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:91.16,94.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:96.2,96.36 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:99.79,106.73 5 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:106.73,108.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:110.2,110.31 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:110.31,112.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:114.2,114.10 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:117.47,118.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:118.34,119.3 0 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:122.65,124.10 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:124.10,126.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:127.2,130.13 4 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:133.76,134.16 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:134.16,137.3 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:139.2,141.32 3 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:144.74,145.15 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:145.15,147.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:149.2,150.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:150.16,152.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:153.2,153.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:153.33,155.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:156.2,156.29 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:159.76,161.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:161.16,162.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:162.33,164.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:165.3,165.13 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:168.2,168.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:168.33,170.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:172.2,173.16 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:173.16,174.33 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:174.33,176.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:177.3,178.13 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:180.2,181.15 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:181.15,182.17 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:182.17,184.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:185.3,185.50 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:185.50,187.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:189.3,189.64 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:189.64,191.4 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:194.2,196.32 2 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:196.32,198.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:198.8,200.3 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:202.2,202.12 1 0 +github.com/longhorn/longhorn-manager/controller/volume_restore_controller.go:205.82,207.2 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:15.82,15.100 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:16.82,16.100 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:17.82,17.100 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:25.44,27.2 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:29.27,31.2 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:44.33,51.96 3 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:51.96,53.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:54.2,55.96 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:55.96,57.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:58.2,59.98 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:59.98,61.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:62.2,63.98 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:63.98,65.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:66.2,67.106 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:67.106,69.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:70.2,71.108 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:71.108,73.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:74.2,75.92 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:75.92,77.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:78.2,79.108 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:79.108,81.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:82.2,83.108 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:83.108,85.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:86.2,87.96 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:87.96,89.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:90.2,91.108 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:91.108,93.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:94.2,95.108 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:95.108,97.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:98.2,99.110 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:99.110,101.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:102.2,104.120 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:104.120,106.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:107.2,109.16 2 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:112.73,123.2 5 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:125.60,131.82 4 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:131.82,133.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:135.2,135.10 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:138.40,142.32 3 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:142.32,144.3 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:145.2,145.31 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:148.98,152.2 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:154.75,155.16 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:155.16,158.33 3 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:158.33,159.34 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:159.34,160.22 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:160.22,161.13 1 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:162.37,162.37 0 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:163.14,163.14 0 0 +github.com/longhorn/longhorn-manager/controller/websocket_controller.go:165.6,165.11 1 0 diff --git a/datastore/datastore.go b/datastore/datastore.go index e933165592..f090d11a60 100644 --- a/datastore/datastore.go +++ b/datastore/datastore.go @@ -45,51 +45,55 @@ type DataStore struct { cacheSyncs []cache.InformerSynced - lhClient lhclientset.Interface - volumeLister lhlisters.VolumeLister - VolumeInformer cache.SharedInformer - engineLister lhlisters.EngineLister - EngineInformer cache.SharedInformer - replicaLister lhlisters.ReplicaLister - ReplicaInformer cache.SharedInformer - engineImageLister lhlisters.EngineImageLister - EngineImageInformer cache.SharedInformer - nodeLister lhlisters.NodeLister - NodeInformer cache.SharedInformer - settingLister lhlisters.SettingLister - SettingInformer cache.SharedInformer - instanceManagerLister lhlisters.InstanceManagerLister - InstanceManagerInformer cache.SharedInformer - shareManagerLister lhlisters.ShareManagerLister - ShareManagerInformer cache.SharedInformer - backingImageLister lhlisters.BackingImageLister - BackingImageInformer cache.SharedInformer - backingImageManagerLister lhlisters.BackingImageManagerLister - BackingImageManagerInformer cache.SharedInformer - backingImageDataSourceLister lhlisters.BackingImageDataSourceLister - BackingImageDataSourceInformer cache.SharedInformer - backupBackingImageLister lhlisters.BackupBackingImageLister - BackupBackingImageInformer cache.SharedInformer - backupTargetLister lhlisters.BackupTargetLister - BackupTargetInformer cache.SharedInformer - backupVolumeLister lhlisters.BackupVolumeLister - BackupVolumeInformer cache.SharedInformer - backupLister lhlisters.BackupLister - BackupInformer cache.SharedInformer - recurringJobLister lhlisters.RecurringJobLister - RecurringJobInformer cache.SharedInformer - orphanLister lhlisters.OrphanLister - OrphanInformer cache.SharedInformer - snapshotLister lhlisters.SnapshotLister - SnapshotInformer cache.SharedInformer - supportBundleLister lhlisters.SupportBundleLister - SupportBundleInformer cache.SharedInformer - systemBackupLister lhlisters.SystemBackupLister - SystemBackupInformer cache.SharedInformer - systemRestoreLister lhlisters.SystemRestoreLister - SystemRestoreInformer cache.SharedInformer - lhVolumeAttachmentLister lhlisters.VolumeAttachmentLister - LHVolumeAttachmentInformer cache.SharedInformer + lhClient lhclientset.Interface + volumeLister lhlisters.VolumeLister + VolumeInformer cache.SharedInformer + engineLister lhlisters.EngineLister + EngineInformer cache.SharedInformer + replicaLister lhlisters.ReplicaLister + ReplicaInformer cache.SharedInformer + engineImageLister lhlisters.EngineImageLister + EngineImageInformer cache.SharedInformer + nodeLister lhlisters.NodeLister + NodeInformer cache.SharedInformer + settingLister lhlisters.SettingLister + SettingInformer cache.SharedInformer + instanceManagerLister lhlisters.InstanceManagerLister + InstanceManagerInformer cache.SharedInformer + shareManagerLister lhlisters.ShareManagerLister + ShareManagerInformer cache.SharedInformer + backingImageLister lhlisters.BackingImageLister + BackingImageInformer cache.SharedInformer + backingImageManagerLister lhlisters.BackingImageManagerLister + BackingImageManagerInformer cache.SharedInformer + backingImageDataSourceLister lhlisters.BackingImageDataSourceLister + BackingImageDataSourceInformer cache.SharedInformer + backupBackingImageLister lhlisters.BackupBackingImageLister + BackupBackingImageInformer cache.SharedInformer + backupTargetLister lhlisters.BackupTargetLister + BackupTargetInformer cache.SharedInformer + backupVolumeLister lhlisters.BackupVolumeLister + BackupVolumeInformer cache.SharedInformer + backupLister lhlisters.BackupLister + BackupInformer cache.SharedInformer + recurringJobLister lhlisters.RecurringJobLister + RecurringJobInformer cache.SharedInformer + orphanLister lhlisters.OrphanLister + OrphanInformer cache.SharedInformer + snapshotLister lhlisters.SnapshotLister + SnapshotInformer cache.SharedInformer + supportBundleLister lhlisters.SupportBundleLister + SupportBundleInformer cache.SharedInformer + systemBackupLister lhlisters.SystemBackupLister + SystemBackupInformer cache.SharedInformer + systemRestoreLister lhlisters.SystemRestoreLister + SystemRestoreInformer cache.SharedInformer + lhVolumeAttachmentLister lhlisters.VolumeAttachmentLister + LHVolumeAttachmentInformer cache.SharedInformer + dataEngineUpgradeManagerLister lhlisters.DataEngineUpgradeManagerLister + DataEngineUpgradeManagerInformer cache.SharedInformer + nodeDataEngineUpgradeLister lhlisters.NodeDataEngineUpgradeLister + NodeDataEngineUpgradeInformer cache.SharedInformer kubeClient clientset.Interface podLister corelisters.PodLister @@ -179,6 +183,10 @@ func NewDataStore(namespace string, lhClient lhclientset.Interface, kubeClient c cacheSyncs = append(cacheSyncs, systemRestoreInformer.Informer().HasSynced) lhVolumeAttachmentInformer := informerFactories.LhInformerFactory.Longhorn().V1beta2().VolumeAttachments() cacheSyncs = append(cacheSyncs, lhVolumeAttachmentInformer.Informer().HasSynced) + dataEngineUpgradeManagerInformer := informerFactories.LhInformerFactory.Longhorn().V1beta2().DataEngineUpgradeManagers() + cacheSyncs = append(cacheSyncs, dataEngineUpgradeManagerInformer.Informer().HasSynced) + nodeDataEngineUpgradeInformer := informerFactories.LhInformerFactory.Longhorn().V1beta2().NodeDataEngineUpgrades() + cacheSyncs = append(cacheSyncs, nodeDataEngineUpgradeInformer.Informer().HasSynced) // Kube Informers podInformer := informerFactories.KubeInformerFactory.Core().V1().Pods() @@ -223,51 +231,55 @@ func NewDataStore(namespace string, lhClient lhclientset.Interface, kubeClient c cacheSyncs: cacheSyncs, - lhClient: lhClient, - volumeLister: volumeInformer.Lister(), - VolumeInformer: volumeInformer.Informer(), - engineLister: engineInformer.Lister(), - EngineInformer: engineInformer.Informer(), - replicaLister: replicaInformer.Lister(), - ReplicaInformer: replicaInformer.Informer(), - engineImageLister: engineImageInformer.Lister(), - EngineImageInformer: engineImageInformer.Informer(), - nodeLister: nodeInformer.Lister(), - NodeInformer: nodeInformer.Informer(), - settingLister: settingInformer.Lister(), - SettingInformer: settingInformer.Informer(), - instanceManagerLister: instanceManagerInformer.Lister(), - InstanceManagerInformer: instanceManagerInformer.Informer(), - shareManagerLister: shareManagerInformer.Lister(), - ShareManagerInformer: shareManagerInformer.Informer(), - backingImageLister: backingImageInformer.Lister(), - BackingImageInformer: backingImageInformer.Informer(), - backingImageManagerLister: backingImageManagerInformer.Lister(), - BackingImageManagerInformer: backingImageManagerInformer.Informer(), - backingImageDataSourceLister: backingImageDataSourceInformer.Lister(), - BackingImageDataSourceInformer: backingImageDataSourceInformer.Informer(), - backupBackingImageLister: backupBackingImageInformer.Lister(), - BackupBackingImageInformer: backupBackingImageInformer.Informer(), - backupTargetLister: backupTargetInformer.Lister(), - BackupTargetInformer: backupTargetInformer.Informer(), - backupVolumeLister: backupVolumeInformer.Lister(), - BackupVolumeInformer: backupVolumeInformer.Informer(), - backupLister: backupInformer.Lister(), - BackupInformer: backupInformer.Informer(), - recurringJobLister: recurringJobInformer.Lister(), - RecurringJobInformer: recurringJobInformer.Informer(), - orphanLister: orphanInformer.Lister(), - OrphanInformer: orphanInformer.Informer(), - snapshotLister: snapshotInformer.Lister(), - SnapshotInformer: snapshotInformer.Informer(), - supportBundleLister: supportBundleInformer.Lister(), - SupportBundleInformer: supportBundleInformer.Informer(), - systemBackupLister: systemBackupInformer.Lister(), - SystemBackupInformer: systemBackupInformer.Informer(), - systemRestoreLister: systemRestoreInformer.Lister(), - SystemRestoreInformer: systemRestoreInformer.Informer(), - lhVolumeAttachmentLister: lhVolumeAttachmentInformer.Lister(), - LHVolumeAttachmentInformer: lhVolumeAttachmentInformer.Informer(), + lhClient: lhClient, + volumeLister: volumeInformer.Lister(), + VolumeInformer: volumeInformer.Informer(), + engineLister: engineInformer.Lister(), + EngineInformer: engineInformer.Informer(), + replicaLister: replicaInformer.Lister(), + ReplicaInformer: replicaInformer.Informer(), + engineImageLister: engineImageInformer.Lister(), + EngineImageInformer: engineImageInformer.Informer(), + nodeLister: nodeInformer.Lister(), + NodeInformer: nodeInformer.Informer(), + settingLister: settingInformer.Lister(), + SettingInformer: settingInformer.Informer(), + instanceManagerLister: instanceManagerInformer.Lister(), + InstanceManagerInformer: instanceManagerInformer.Informer(), + shareManagerLister: shareManagerInformer.Lister(), + ShareManagerInformer: shareManagerInformer.Informer(), + backingImageLister: backingImageInformer.Lister(), + BackingImageInformer: backingImageInformer.Informer(), + backingImageManagerLister: backingImageManagerInformer.Lister(), + BackingImageManagerInformer: backingImageManagerInformer.Informer(), + backingImageDataSourceLister: backingImageDataSourceInformer.Lister(), + BackingImageDataSourceInformer: backingImageDataSourceInformer.Informer(), + backupBackingImageLister: backupBackingImageInformer.Lister(), + BackupBackingImageInformer: backupBackingImageInformer.Informer(), + backupTargetLister: backupTargetInformer.Lister(), + BackupTargetInformer: backupTargetInformer.Informer(), + backupVolumeLister: backupVolumeInformer.Lister(), + BackupVolumeInformer: backupVolumeInformer.Informer(), + backupLister: backupInformer.Lister(), + BackupInformer: backupInformer.Informer(), + recurringJobLister: recurringJobInformer.Lister(), + RecurringJobInformer: recurringJobInformer.Informer(), + orphanLister: orphanInformer.Lister(), + OrphanInformer: orphanInformer.Informer(), + snapshotLister: snapshotInformer.Lister(), + SnapshotInformer: snapshotInformer.Informer(), + supportBundleLister: supportBundleInformer.Lister(), + SupportBundleInformer: supportBundleInformer.Informer(), + systemBackupLister: systemBackupInformer.Lister(), + SystemBackupInformer: systemBackupInformer.Informer(), + systemRestoreLister: systemRestoreInformer.Lister(), + SystemRestoreInformer: systemRestoreInformer.Informer(), + lhVolumeAttachmentLister: lhVolumeAttachmentInformer.Lister(), + LHVolumeAttachmentInformer: lhVolumeAttachmentInformer.Informer(), + dataEngineUpgradeManagerLister: dataEngineUpgradeManagerInformer.Lister(), + DataEngineUpgradeManagerInformer: dataEngineUpgradeManagerInformer.Informer(), + nodeDataEngineUpgradeLister: nodeDataEngineUpgradeInformer.Lister(), + NodeDataEngineUpgradeInformer: nodeDataEngineUpgradeInformer.Informer(), kubeClient: kubeClient, podLister: podInformer.Lister(), diff --git a/datastore/longhorn.go b/datastore/longhorn.go index b8e5d98bcc..7b6de9115a 100644 --- a/datastore/longhorn.go +++ b/datastore/longhorn.go @@ -1798,7 +1798,7 @@ func (s *DataStore) ListVolumePDBProtectedHealthyReplicasRO(volumeName string) ( func (s *DataStore) getRunningReplicaInstanceManagerRO(r *longhorn.Replica) (im *longhorn.InstanceManager, err error) { if r.Status.InstanceManagerName == "" { - im, err = s.GetInstanceManagerByInstanceRO(r) + im, err = s.GetInstanceManagerByInstanceRO(r, false) if err != nil && !types.ErrorIsNotFound(err) { return nil, err } @@ -3739,15 +3739,15 @@ func (s *DataStore) ListInstanceManagersBySelectorRO(node, imImage string, imTyp // GetInstanceManagerByInstance returns an InstanceManager for a given object, // or an error if more than one InstanceManager is found. -func (s *DataStore) GetInstanceManagerByInstance(obj interface{}) (*longhorn.InstanceManager, error) { - im, err := s.GetInstanceManagerByInstanceRO(obj) +func (s *DataStore) GetInstanceManagerByInstance(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceManager, error) { + im, err := s.GetInstanceManagerByInstanceRO(obj, isInstanceOnRemoteNode) if err != nil { return nil, err } return im.DeepCopy(), nil } -func (s *DataStore) GetInstanceManagerByInstanceRO(obj interface{}) (*longhorn.InstanceManager, error) { +func (s *DataStore) GetInstanceManagerByInstanceRO(obj interface{}, isInstanceOnRemoteNode bool) (*longhorn.InstanceManager, error) { var ( name string // name of the object nodeID string @@ -3759,6 +3759,9 @@ func (s *DataStore) GetInstanceManagerByInstanceRO(obj interface{}) (*longhorn.I name = obj.Name dataEngine = obj.Spec.DataEngine nodeID = obj.Spec.NodeID + if isInstanceOnRemoteNode { + nodeID = obj.Spec.TargetNodeIDForLiveUpgrade + } case *longhorn.Replica: name = obj.Name dataEngine = obj.Spec.DataEngine @@ -3985,14 +3988,14 @@ func (s *DataStore) GetEngineImageCLIAPIVersion(imageName string) (int, error) { // GetDataEngineImageCLIAPIVersion get engine or instance manager image for the given name and returns the CLIAPIVersion func (s *DataStore) GetDataEngineImageCLIAPIVersion(imageName string, dataEngine longhorn.DataEngineType) (int, error) { - if imageName == "" { - return -1, fmt.Errorf("cannot check the CLI API Version based on empty image name") - } - if types.IsDataEngineV2(dataEngine) { return 0, nil } + if imageName == "" { + return -1, fmt.Errorf("cannot check the CLI API Version based on empty image name") + } + ei, err := s.GetEngineImageRO(types.GetEngineImageChecksumName(imageName)) if err != nil { return -1, errors.Wrapf(err, "failed to get engine image object based on image name %v", imageName) @@ -5635,6 +5638,251 @@ func (s *DataStore) ListBackupBackingImagesRO() ([]*longhorn.BackupBackingImage, return s.backupBackingImageLister.BackupBackingImages(s.namespace).List(labels.Everything()) } +// CreateDataEngineUpgradeManager creates a Longhorn DataEngineUpgradeManager resource and verifies creation +func (s *DataStore) CreateDataEngineUpgradeManager(upgradeManager *longhorn.DataEngineUpgradeManager) (*longhorn.DataEngineUpgradeManager, error) { + ret, err := s.lhClient.LonghornV1beta2().DataEngineUpgradeManagers(s.namespace).Create(context.TODO(), upgradeManager, metav1.CreateOptions{}) + if err != nil { + return nil, err + } + if SkipListerCheck { + return ret, nil + } + + obj, err := verifyCreation(ret.Name, "dataEngineUpgradeManager", func(name string) (k8sruntime.Object, error) { + return s.GetDataEngineUpgradeManagerRO(name) + }) + if err != nil { + return nil, err + } + ret, ok := obj.(*longhorn.DataEngineUpgradeManager) + if !ok { + return nil, fmt.Errorf("BUG: datastore: verifyCreation returned wrong type for dataEngineUpgradeManager") + } + + return ret.DeepCopy(), nil +} + +// GetDataEngineUpgradeManagerRO returns the DataEngineUpgradeManager with the given dataEngineUpgradeManager name in the cluster +func (s *DataStore) GetDataEngineUpgradeManagerRO(upgradeManagerName string) (*longhorn.DataEngineUpgradeManager, error) { + return s.dataEngineUpgradeManagerLister.DataEngineUpgradeManagers(s.namespace).Get(upgradeManagerName) +} + +// GetDataEngineUpgradeManager returns a copy of DataEngineUpgradeManager with the given dataEngineUpgradeManager name in the cluster +func (s *DataStore) GetDataEngineUpgradeManager(name string) (*longhorn.DataEngineUpgradeManager, error) { + resultRO, err := s.GetDataEngineUpgradeManagerRO(name) + if err != nil { + return nil, err + } + // Cannot use cached object from lister + return resultRO.DeepCopy(), nil +} + +// UpdateDataEngineUpgradeManager updates the given Longhorn dataEngineUpgradeManager in the cluster DataEngineUpgradeManager CR and verifies update +func (s *DataStore) UpdateDataEngineUpgradeManager(upgradeManager *longhorn.DataEngineUpgradeManager) (*longhorn.DataEngineUpgradeManager, error) { + obj, err := s.lhClient.LonghornV1beta2().DataEngineUpgradeManagers(s.namespace).Update(context.TODO(), upgradeManager, metav1.UpdateOptions{}) + if err != nil { + return nil, err + } + verifyUpdate(upgradeManager.Name, obj, func(name string) (k8sruntime.Object, error) { + return s.GetDataEngineUpgradeManagerRO(name) + }) + return obj, nil +} + +// UpdateDataEngineUpgradeManagerStatus updates the given Longhorn dataEngineUpgradeManager status in the cluster DataEngineUpgradeManagers CR status and verifies update +func (s *DataStore) UpdateDataEngineUpgradeManagerStatus(upgradeManager *longhorn.DataEngineUpgradeManager) (*longhorn.DataEngineUpgradeManager, error) { + obj, err := s.lhClient.LonghornV1beta2().DataEngineUpgradeManagers(s.namespace).UpdateStatus(context.TODO(), upgradeManager, metav1.UpdateOptions{}) + if err != nil { + return nil, err + } + verifyUpdate(upgradeManager.Name, obj, func(name string) (k8sruntime.Object, error) { + return s.GetDataEngineUpgradeManagerRO(name) + }) + return obj, nil +} + +// RemoveFinalizerForDataEngineUpgradeManager will result in deletion if DeletionTimestamp was set +func (s *DataStore) RemoveFinalizerForDataEngineUpgradeManager(upgradeManager *longhorn.DataEngineUpgradeManager) error { + if !util.FinalizerExists(longhornFinalizerKey, upgradeManager) { + // finalizer already removed + return nil + } + if err := util.RemoveFinalizer(longhornFinalizerKey, upgradeManager); err != nil { + return err + } + _, err := s.lhClient.LonghornV1beta2().DataEngineUpgradeManagers(s.namespace).Update(context.TODO(), upgradeManager, metav1.UpdateOptions{}) + if err != nil { + // workaround `StorageError: invalid object, Code: 4` due to empty object + if upgradeManager.DeletionTimestamp != nil { + return nil + } + return errors.Wrapf(err, "unable to remove finalizer for dataEngineUpgradeManager %s", upgradeManager.Name) + } + return nil +} + +func (s *DataStore) listDataEngineUpgradeManagers(selector labels.Selector) (map[string]*longhorn.DataEngineUpgradeManager, error) { + list, err := s.dataEngineUpgradeManagerLister.DataEngineUpgradeManagers(s.namespace).List(selector) + if err != nil { + return nil, err + } + + itemMap := map[string]*longhorn.DataEngineUpgradeManager{} + for _, itemRO := range list { + // Cannot use cached object from lister + itemMap[itemRO.Name] = itemRO.DeepCopy() + } + return itemMap, nil +} + +// ListDataEngineUpgradeManagers returns an object contains all DataEngineUpgradeManagers for the given namespace +func (s *DataStore) ListDataEngineUpgradeManagers() (map[string]*longhorn.DataEngineUpgradeManager, error) { + return s.listDataEngineUpgradeManagers(labels.Everything()) +} + +// ListDataEngineUpgradeManagersRO returns a list of all UpgradeManagers for the given namespace +func (s *DataStore) ListDataEngineUpgradeManagersRO() ([]*longhorn.DataEngineUpgradeManager, error) { + return s.dataEngineUpgradeManagerLister.DataEngineUpgradeManagers(s.namespace).List(labels.Everything()) +} + +// DeleteDataEngineUpgradeManager won't result in immediately deletion since finalizer was set by default +func (s *DataStore) DeleteDataEngineUpgradeManager(upgradeManagerName string) error { + return s.lhClient.LonghornV1beta2().DataEngineUpgradeManagers(s.namespace).Delete(context.TODO(), upgradeManagerName, metav1.DeleteOptions{}) +} + +// GetOwnerReferencesForDataEngineUpgradeManager returns OwnerReference for the given DataEngineUpgradeManager name and UID +func GetOwnerReferencesForDataEngineUpgradeManager(upgradeManager *longhorn.DataEngineUpgradeManager) []metav1.OwnerReference { + return []metav1.OwnerReference{ + { + APIVersion: longhorn.SchemeGroupVersion.String(), + Kind: types.LonghornKindDataEngineUpgradeManager, + Name: upgradeManager.Name, + UID: upgradeManager.UID, + }, + } +} + +// CreateNodeDataEngineUpgrade creates a Longhorn NodeDataEngineUpgrade resource and verifies creation +func (s *DataStore) CreateNodeDataEngineUpgrade(nodeUpgrade *longhorn.NodeDataEngineUpgrade) (*longhorn.NodeDataEngineUpgrade, error) { + ret, err := s.lhClient.LonghornV1beta2().NodeDataEngineUpgrades(s.namespace).Create(context.TODO(), nodeUpgrade, metav1.CreateOptions{}) + if err != nil { + return nil, err + } + if SkipListerCheck { + return ret, nil + } + + obj, err := verifyCreation(ret.Name, "nodeDataEngineUpgrade", func(name string) (k8sruntime.Object, error) { + return s.GetNodeDataEngineUpgradeRO(name) + }) + if err != nil { + return nil, err + } + ret, ok := obj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + return nil, fmt.Errorf("BUG: datastore: verifyCreation returned wrong type for nodeDataEngineUpgrade") + } + + return ret.DeepCopy(), nil +} + +// GetNodeDataEngineUpgradeRO returns the NodeDataEngineUpgrade with the given nodeDataEngineUpgrade name in the cluster +func (s *DataStore) GetNodeDataEngineUpgradeRO(upgradeName string) (*longhorn.NodeDataEngineUpgrade, error) { + return s.nodeDataEngineUpgradeLister.NodeDataEngineUpgrades(s.namespace).Get(upgradeName) +} + +// GetNodeDataEngineUpgrade returns a copy of NodeDataEngineUpgrade with the given nodeDataEngineUpgrade name in the cluster +func (s *DataStore) GetNodeDataEngineUpgrade(name string) (*longhorn.NodeDataEngineUpgrade, error) { + resultRO, err := s.GetNodeDataEngineUpgradeRO(name) + if err != nil { + return nil, err + } + // Cannot use cached object from lister + return resultRO.DeepCopy(), nil +} + +// UpdateNodeDataEngineUpgrade updates the given Longhorn nodeDataEngineUpgrade in the cluster NodeDataEngineUpgrade CR and verifies update +func (s *DataStore) UpdateNodeDataEngineUpgrade(upgrade *longhorn.NodeDataEngineUpgrade) (*longhorn.NodeDataEngineUpgrade, error) { + obj, err := s.lhClient.LonghornV1beta2().NodeDataEngineUpgrades(s.namespace).Update(context.TODO(), upgrade, metav1.UpdateOptions{}) + if err != nil { + return nil, err + } + verifyUpdate(upgrade.Name, obj, func(name string) (k8sruntime.Object, error) { + return s.GetNodeDataEngineUpgradeRO(name) + }) + return obj, nil +} + +// UpdateNodeDataEngineUpgradeStatus updates the given Longhorn nodeDataEngineUpgrade status in the cluster NodeDataEngineUpgrades CR status and verifies update +func (s *DataStore) UpdateNodeDataEngineUpgradeStatus(upgrade *longhorn.NodeDataEngineUpgrade) (*longhorn.NodeDataEngineUpgrade, error) { + obj, err := s.lhClient.LonghornV1beta2().NodeDataEngineUpgrades(s.namespace).UpdateStatus(context.TODO(), upgrade, metav1.UpdateOptions{}) + if err != nil { + return nil, err + } + verifyUpdate(upgrade.Name, obj, func(name string) (k8sruntime.Object, error) { + return s.GetNodeDataEngineUpgradeRO(name) + }) + return obj, nil +} + +// RemoveFinalizerForNodeDataEngineUpgrade will result in deletion if DeletionTimestamp was set +func (s *DataStore) RemoveFinalizerForNodeDataEngineUpgrade(upgrade *longhorn.NodeDataEngineUpgrade) error { + if !util.FinalizerExists(longhornFinalizerKey, upgrade) { + // finalizer already removed + return nil + } + if err := util.RemoveFinalizer(longhornFinalizerKey, upgrade); err != nil { + return err + } + _, err := s.lhClient.LonghornV1beta2().NodeDataEngineUpgrades(s.namespace).Update(context.TODO(), upgrade, metav1.UpdateOptions{}) + if err != nil { + // workaround `StorageError: invalid object, Code: 4` due to empty object + if upgrade.DeletionTimestamp != nil { + return nil + } + return errors.Wrapf(err, "unable to remove finalizer for nodeDataEngineUpgrade %s", upgrade.Name) + } + return nil +} + +func (s *DataStore) listNodeDataEngineUpgrades(selector labels.Selector) (map[string]*longhorn.NodeDataEngineUpgrade, error) { + list, err := s.nodeDataEngineUpgradeLister.NodeDataEngineUpgrades(s.namespace).List(selector) + if err != nil { + return nil, err + } + + itemMap := map[string]*longhorn.NodeDataEngineUpgrade{} + for _, itemRO := range list { + // Cannot use cached object from lister + itemMap[itemRO.Name] = itemRO.DeepCopy() + } + return itemMap, nil +} + +// ListNodeDataEngineUpgrades returns an object contains all NodeDataEngineUpgrades for the given namespace +func (s *DataStore) ListNodeDataEngineUpgrades() (map[string]*longhorn.NodeDataEngineUpgrade, error) { + return s.listNodeDataEngineUpgrades(labels.Everything()) +} + +// ListNodeDataEngineUpgradesByNodeRO returns a list of all NodeDataEngineUpgrades for the given node +func (s *DataStore) ListNodeDataEngineUpgradesByNodeRO(name string) ([]*longhorn.NodeDataEngineUpgrade, error) { + nodeSelector, err := getLonghornNodeSelector(name) + if err != nil { + return nil, err + } + return s.nodeDataEngineUpgradeLister.NodeDataEngineUpgrades(s.namespace).List(nodeSelector) +} + +// ListNodeDataEngineUpgradesRO returns a list of all NodeDataEngineUpgrades for the given namespace +func (s *DataStore) ListNodeDataEngineUpgradesRO() ([]*longhorn.NodeDataEngineUpgrade, error) { + return s.nodeDataEngineUpgradeLister.NodeDataEngineUpgrades(s.namespace).List(labels.Everything()) +} + +// DeleteNodeDataEngineUpgrade won't result in immediately deletion since finalizer was set by default +func (s *DataStore) DeleteNodeDataEngineUpgrade(upgradeName string) error { + return s.lhClient.LonghornV1beta2().NodeDataEngineUpgrades(s.namespace).Delete(context.TODO(), upgradeName, metav1.DeleteOptions{}) +} + // GetRunningInstanceManagerByNodeRO returns the running instance manager for the given node and data engine func (s *DataStore) GetRunningInstanceManagerByNodeRO(node string, dataEngine longhorn.DataEngineType) (*longhorn.InstanceManager, error) { // Trying to get the default instance manager first. @@ -5755,3 +6003,13 @@ func (s *DataStore) IsStorageNetworkForRWXVolume() (bool, error) { return types.IsStorageNetworkForRWXVolume(storageNetworkSetting, storageNetworkForRWXVolumeEnabled), nil } + +func (s *DataStore) IsNodeDataEngineUpgradeRequested(name string) (bool, error) { + node, err := s.GetNodeRO(name) + if err != nil { + return false, err + } + + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + return dataEngineUpgradeRequestedCondition.Status == longhorn.ConditionStatusTrue, nil +} diff --git a/engineapi/engine.go b/engineapi/engine.go index eedd19933f..42ea266fcb 100644 --- a/engineapi/engine.go +++ b/engineapi/engine.go @@ -177,7 +177,7 @@ func (e *EngineBinary) ReplicaAdd(engine *longhorn.Engine, replicaName, url stri // ReplicaRemove calls engine binary // TODO: Deprecated, replaced by gRPC proxy -func (e *EngineBinary) ReplicaRemove(engine *longhorn.Engine, url string) error { +func (e *EngineBinary) ReplicaRemove(engine *longhorn.Engine, url, replicaName string) error { if err := ValidateReplicaURL(url); err != nil { return err } diff --git a/engineapi/enginesim.go b/engineapi/enginesim.go index 18f6a3f223..86d4950fd6 100644 --- a/engineapi/enginesim.go +++ b/engineapi/enginesim.go @@ -143,14 +143,14 @@ func (e *EngineSimulator) ReplicaAdd(engine *longhorn.Engine, replicaName, url s return nil } -func (e *EngineSimulator) ReplicaRemove(engine *longhorn.Engine, addr string) error { +func (e *EngineSimulator) ReplicaRemove(engine *longhorn.Engine, replicaAddress, replicaName string) error { e.mutex.Lock() defer e.mutex.Unlock() - if e.replicas[addr] == nil { - return fmt.Errorf("unable to find replica %v", addr) + if e.replicas[replicaAddress] == nil { + return fmt.Errorf("unable to find replica %v", replicaAddress) } - delete(e.replicas, addr) + delete(e.replicas, replicaAddress) return nil } diff --git a/engineapi/enginesim_test.go b/engineapi/enginesim_test.go index cb6d2f2ef8..518f0f2507 100644 --- a/engineapi/enginesim_test.go +++ b/engineapi/enginesim_test.go @@ -56,7 +56,7 @@ func (s *TestSuite) TestBasic(c *C) { c.Assert(replicas[Replica1Addr].Mode, Equals, longhorn.ReplicaModeRW) c.Assert(replicas[Replica2Addr].Mode, Equals, longhorn.ReplicaModeRW) - err = sim.ReplicaRemove(e, Replica2Addr) + err = sim.ReplicaRemove(e, Replica2Addr, "") c.Assert(err, IsNil) replicas, err = sim.ReplicaList(e) diff --git a/engineapi/instance_manager.go b/engineapi/instance_manager.go index 3f7d00a67c..c1d422389a 100644 --- a/engineapi/instance_manager.go +++ b/engineapi/instance_manager.go @@ -3,6 +3,7 @@ package engineapi import ( "context" "fmt" + "net" "path/filepath" "strconv" @@ -279,14 +280,16 @@ func parseInstance(p *imapi.Instance) *longhorn.InstanceProcess { DataEngine: getDataEngineFromInstanceProcess(p), }, Status: longhorn.InstanceProcessStatus{ - Type: getTypeForInstance(longhorn.InstanceType(p.Type), p.Name), - State: longhorn.InstanceState(p.InstanceStatus.State), - ErrorMsg: p.InstanceStatus.ErrorMsg, - Conditions: p.InstanceStatus.Conditions, - PortStart: p.InstanceStatus.PortStart, - PortEnd: p.InstanceStatus.PortEnd, - TargetPortStart: p.InstanceStatus.TargetPortStart, - TargetPortEnd: p.InstanceStatus.TargetPortEnd, + Type: getTypeForInstance(longhorn.InstanceType(p.Type), p.Name), + State: longhorn.InstanceState(p.InstanceStatus.State), + ErrorMsg: p.InstanceStatus.ErrorMsg, + Conditions: p.InstanceStatus.Conditions, + PortStart: p.InstanceStatus.PortStart, + PortEnd: p.InstanceStatus.PortEnd, + TargetPortStart: p.InstanceStatus.TargetPortStart, + TargetPortEnd: p.InstanceStatus.TargetPortEnd, + StandbyTargetPortEnd: p.InstanceStatus.StandbyTargetPortEnd, + StandbyTargetPortStart: p.InstanceStatus.StandbyTargetPortStart, // FIXME: These fields are not used, maybe we can deprecate them later. Listen: "", @@ -482,7 +485,10 @@ func (c *InstanceManagerClient) EngineInstanceCreate(req *EngineInstanceCreateRe return nil, err } case longhorn.DataEngineTypeV2: - replicaAddresses = req.Engine.Status.CurrentReplicaAddressMap + replicaAddresses, err = getReplicaAddresses(req.Engine.Status.CurrentReplicaAddressMap, req.InitiatorAddress, req.TargetAddress) + if err != nil { + return nil, err + } } if c.GetAPIVersion() < 4 { @@ -523,6 +529,31 @@ func (c *InstanceManagerClient) EngineInstanceCreate(req *EngineInstanceCreateRe return parseInstance(instance), nil } +func getReplicaAddresses(replicaAddresses map[string]string, initiatorAddress, targetAddress string) (map[string]string, error) { + initiatorIP, _, err := net.SplitHostPort(initiatorAddress) + if err != nil { + return nil, errors.New("invalid initiator address format") + } + + targetIP, _, err := net.SplitHostPort(targetAddress) + if err != nil { + return nil, errors.New("invalid target address format") + } + + addresses := make(map[string]string) + for name, addr := range replicaAddresses { + replicaIP, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, errors.New("invalid replica address format") + } + if initiatorIP != targetIP && initiatorIP == replicaIP { + continue + } + addresses[name] = addr + } + return addresses, nil +} + type ReplicaInstanceCreateRequest struct { Replica *longhorn.Replica DiskName string @@ -829,3 +860,92 @@ func (c *InstanceManagerClient) LogSetFlags(dataEngine longhorn.DataEngineType, return c.instanceServiceGrpcClient.LogSetFlags(string(dataEngine), component, flags) } + +type EngineInstanceSuspendRequest struct { + Engine *longhorn.Engine +} + +// EngineInstanceSuspend suspends engine instance +func (c *InstanceManagerClient) EngineInstanceSuspend(req *EngineInstanceSuspendRequest) error { + if req.Engine == nil { + return errors.New("EngineInstanceSuspend: engine is nil") + } + + engine := req.Engine + switch engine.Spec.DataEngine { + case longhorn.DataEngineTypeV1: + return fmt.Errorf("engine suspension for data engine %v is not supported yet", longhorn.DataEngineTypeV1) + case longhorn.DataEngineTypeV2: + return c.instanceServiceGrpcClient.InstanceSuspend(string(engine.Spec.DataEngine), req.Engine.Name, string(longhorn.InstanceManagerTypeEngine)) + default: + return fmt.Errorf("unknown data engine %v", engine.Spec.DataEngine) + } +} + +type EngineInstanceResumeRequest struct { + Engine *longhorn.Engine +} + +// EngineInstanceResume resumes engine instance +func (c *InstanceManagerClient) EngineInstanceResume(req *EngineInstanceResumeRequest) error { + if req.Engine == nil { + return errors.New("EngineInstanceResume: engine is nil") + } + + engine := req.Engine + switch engine.Spec.DataEngine { + case longhorn.DataEngineTypeV1: + return fmt.Errorf("engine resumption for data engine %v is not supported yet", longhorn.DataEngineTypeV1) + case longhorn.DataEngineTypeV2: + return c.instanceServiceGrpcClient.InstanceResume(string(engine.Spec.DataEngine), req.Engine.Name, string(longhorn.InstanceManagerTypeEngine)) + default: + return fmt.Errorf("unknown data engine %v", engine.Spec.DataEngine) + } +} + +type EngineInstanceSwitchOverTargetRequest struct { + Engine *longhorn.Engine + TargetAddress string +} + +// EngineInstanceSwitchOverTarget switches over target for engine instance +func (c *InstanceManagerClient) EngineInstanceSwitchOverTarget(req *EngineInstanceSwitchOverTargetRequest) error { + if req.Engine == nil { + return errors.New("EngineInstanceSwitchOverTarget: engine is nil") + } + + if req.TargetAddress == "" { + return errors.New("EngineInstanceSwitchOverTarget: targetAddress is empty") + } + + engine := req.Engine + switch engine.Spec.DataEngine { + case longhorn.DataEngineTypeV1: + return fmt.Errorf("target switchover for data engine %v is not supported yet", longhorn.DataEngineTypeV1) + case longhorn.DataEngineTypeV2: + return c.instanceServiceGrpcClient.InstanceSwitchOverTarget(string(engine.Spec.DataEngine), req.Engine.Name, string(longhorn.InstanceManagerTypeEngine), req.TargetAddress) + default: + return fmt.Errorf("unknown data engine %v", engine.Spec.DataEngine) + } +} + +type EngineInstanceDeleteTargetRequest struct { + Engine *longhorn.Engine +} + +// EngineInstanceDeleteTarget deletes target for engine instance +func (c *InstanceManagerClient) EngineInstanceDeleteTarget(req *EngineInstanceDeleteTargetRequest) error { + if req.Engine == nil { + return errors.New("EngineInstanceDeleteTarget: engine is nil") + } + + engine := req.Engine + switch engine.Spec.DataEngine { + case longhorn.DataEngineTypeV1: + return fmt.Errorf("target deletion for data engine %v is not supported yet", longhorn.DataEngineTypeV1) + case longhorn.DataEngineTypeV2: + return c.instanceServiceGrpcClient.InstanceDeleteTarget(string(engine.Spec.DataEngine), req.Engine.Name, string(longhorn.InstanceManagerTypeEngine)) + default: + return fmt.Errorf("unknown data engine %v", engine.Spec.DataEngine) + } +} diff --git a/engineapi/instance_manager_test.go b/engineapi/instance_manager_test.go new file mode 100644 index 0000000000..ea0603f147 --- /dev/null +++ b/engineapi/instance_manager_test.go @@ -0,0 +1,96 @@ +package engineapi + +import "testing" + +func TestGetReplicaAddresses(t *testing.T) { + tests := []struct { + name string + replicaAddresses map[string]string + initiatorAddress string + targetAddress string + expected map[string]string + expectError bool + }{ + { + name: "No filtering needed", + replicaAddresses: map[string]string{ + "replica1": "192.168.1.1:9502", + "replica2": "192.168.1.2:9502", + }, + initiatorAddress: "192.168.1.3:9502", + targetAddress: "192.168.1.3:9502", + expected: map[string]string{ + "replica1": "192.168.1.1:9502", + "replica2": "192.168.1.2:9502", + }, + expectError: false, + }, + { + name: "Filter out initiator IP", + replicaAddresses: map[string]string{ + "replica1": "192.168.1.1:9502", + "replica2": "192.168.1.2:9502", + }, + initiatorAddress: "192.168.1.1:9502", + targetAddress: "192.168.1.3:9502", + expected: map[string]string{ + "replica2": "192.168.1.2:9502", + }, + expectError: false, + }, + { + name: "Invalid initiator address format", + replicaAddresses: map[string]string{ + "replica1": "192.168.1.1:9502", + }, + initiatorAddress: "192.168.1.1", + targetAddress: "192.168.1.3:9502", + expected: nil, + expectError: true, + }, + { + name: "Invalid target address format", + replicaAddresses: map[string]string{ + "replica1": "192.168.1.1:9502", + }, + initiatorAddress: "192.168.1.3:9502", + targetAddress: "192.168.1.3", + expected: nil, + expectError: true, + }, + { + name: "Invalid replica address format", + replicaAddresses: map[string]string{ + "replica1": "192.168.1.1", + }, + initiatorAddress: "192.168.1.3:9502", + targetAddress: "192.168.1.3:9502", + expected: nil, + expectError: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := getReplicaAddresses(tt.replicaAddresses, tt.initiatorAddress, tt.targetAddress) + if (err != nil) != tt.expectError { + t.Errorf("expected error: %v, got: %v", tt.expectError, err) + } + if !tt.expectError && !equalMaps(result, tt.expected) { + t.Errorf("expected: %v, got: %v", tt.expected, result) + } + }) + } +} + +func equalMaps(a, b map[string]string) bool { + if len(a) != len(b) { + return false + } + for k, v := range a { + if b[k] != v { + return false + } + } + return true +} diff --git a/engineapi/proxy_replica.go b/engineapi/proxy_replica.go index bb0892a03d..d4da14ff78 100644 --- a/engineapi/proxy_replica.go +++ b/engineapi/proxy_replica.go @@ -12,8 +12,8 @@ func (p *Proxy) ReplicaAdd(e *longhorn.Engine, replicaName, replicaAddress strin int(replicaFileSyncHTTPClientTimeout), fastSync, localSync, grpcTimeoutSeconds) } -func (p *Proxy) ReplicaRemove(e *longhorn.Engine, address string) (err error) { - return p.grpcClient.ReplicaRemove(string(e.Spec.DataEngine), p.DirectToURL(e), e.Name, address, "") +func (p *Proxy) ReplicaRemove(e *longhorn.Engine, replicaAddress, replicaName string) (err error) { + return p.grpcClient.ReplicaRemove(string(e.Spec.DataEngine), p.DirectToURL(e), e.Name, replicaAddress, replicaName) } func (p *Proxy) ReplicaList(e *longhorn.Engine) (replicas map[string]*Replica, err error) { diff --git a/engineapi/types.go b/engineapi/types.go index 7854bffd0d..7ccf0dd245 100644 --- a/engineapi/types.go +++ b/engineapi/types.go @@ -87,7 +87,7 @@ type EngineClient interface { ReplicaList(*longhorn.Engine) (map[string]*Replica, error) ReplicaAdd(engine *longhorn.Engine, replicaName, url string, isRestoreVolume, fastSync bool, localSync *etypes.FileLocalSync, replicaFileSyncHTTPClientTimeout, grpcTimeoutSeconds int64) error - ReplicaRemove(engine *longhorn.Engine, url string) error + ReplicaRemove(engine *longhorn.Engine, url, replicaName string) error ReplicaRebuildStatus(*longhorn.Engine) (map[string]*longhorn.RebuildStatus, error) ReplicaRebuildVerify(engine *longhorn.Engine, replicaName, url string) error ReplicaModeUpdate(engine *longhorn.Engine, url string, mode string) error diff --git a/go.mod b/go.mod index 4e3314bcfa..74474598c3 100644 --- a/go.mod +++ b/go.mod @@ -61,6 +61,7 @@ require ( github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.3 github.com/jinzhu/copier v0.4.0 + github.com/jrhouston/k8slock v0.2.0 github.com/kubernetes-csi/csi-lib-utils v0.19.0 github.com/longhorn/backing-image-manager v1.8.0-dev-20241215 github.com/longhorn/backupstore v0.0.0-20241208150358-e44f7d35fe1f @@ -68,7 +69,7 @@ require ( github.com/longhorn/go-iscsi-helper v0.0.0-20241208120713-c4ac270fbe7e github.com/longhorn/go-spdk-helper v0.0.0-20241210055426-92898a883955 github.com/longhorn/longhorn-engine v1.8.0-dev-20241215 - github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215 + github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215.0.20241215041917-483e7a8c95d3 github.com/longhorn/longhorn-share-manager v1.8.0-dev-20241215 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.20.5 diff --git a/go.sum b/go.sum index 2ed8b8577b..d32aecd393 100644 --- a/go.sum +++ b/go.sum @@ -130,6 +130,8 @@ github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jrhouston/k8slock v0.2.0 h1:/303qjpwpTeNh0pCKj+yA1qUdYDoGxZ+kL/Ecu5p0AY= +github.com/jrhouston/k8slock v0.2.0/go.mod h1:olQjuryLy6Q32mFUlBJrVyJKm4S8JFKFUFPXWrsO6x8= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -163,8 +165,8 @@ github.com/longhorn/go-spdk-helper v0.0.0-20241210055426-92898a883955 h1:QcnR9b2 github.com/longhorn/go-spdk-helper v0.0.0-20241210055426-92898a883955/go.mod h1:isAM1U36SWOh7XWfktlbveHWSLXV3HfEF7p/tyNqAUQ= github.com/longhorn/longhorn-engine v1.8.0-dev-20241215 h1:sTQn2kHZqgwycM9Y3n3fuiSaURxeIS4h98ACJbbJDl8= github.com/longhorn/longhorn-engine v1.8.0-dev-20241215/go.mod h1:fcQI1dyu1KcQDvxrnHJ3rsSSauCKV1+IzaCLTbtdVY0= -github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215 h1:Q4rOIUWqEgwYDxVPLtrFrRBwxh6RTbMPuflwMxxa1qc= -github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215/go.mod h1:rZXKK0fs2avpeDONPfyR46N8xqnLv0Hnp/m0C8sYbWw= +github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215.0.20241215041917-483e7a8c95d3 h1:VNDjeT733DsSKvSv37B3IPmVVLI56MHf8/ZCseTsRBs= +github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215.0.20241215041917-483e7a8c95d3/go.mod h1:8CEoeY03OrSg/gbXlg7aC6MmVgI3T7TUEvAqZtMZIVo= github.com/longhorn/longhorn-share-manager v1.8.0-dev-20241215 h1:UBdkcAFfE1ipvtQZCyOIGZNdfw6rmMayyQKC+qHl5/M= github.com/longhorn/longhorn-share-manager v1.8.0-dev-20241215/go.mod h1:/EfupmQMayDFanwroXFLVqRbWI46M6e1iJypf1Oa7p8= github.com/longhorn/types v0.0.0-20241214151852-cf9e27d3d0a9 h1:mgIwf1do39qeJWwZDK+MhGMZmeNIbEluQITZ2TsDUGg= diff --git a/k8s/crds.yaml b/k8s/crds.yaml index 735a11092b..83c891d6fa 100644 --- a/k8s/crds.yaml +++ b/k8s/crds.yaml @@ -19,7 +19,8 @@ spec: scope: Namespaced versions: - additionalPrinterColumns: - - description: The current state of the pod used to provision the backing image file from source + - description: The current state of the pod used to provision the backing image + file from source jsonPath: .status.currentState name: State type: string @@ -41,7 +42,8 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: BackingImageDataSource is where Longhorn stores backing image data source object. + description: BackingImageDataSource is where Longhorn stores backing image + data source object. properties: apiVersion: description: |- @@ -74,7 +76,8 @@ spec: jsonPath: .spec.uuid name: UUID type: string - - description: The current state of the pod used to provision the backing image file from source + - description: The current state of the pod used to provision the backing image + file from source jsonPath: .status.currentState name: State type: string @@ -100,7 +103,8 @@ spec: name: v1beta2 schema: openAPIV3Schema: - description: BackingImageDataSource is where Longhorn stores backing image data source object. + description: BackingImageDataSource is where Longhorn stores backing image + data source object. properties: apiVersion: description: |- @@ -120,7 +124,8 @@ spec: metadata: type: object spec: - description: BackingImageDataSourceSpec defines the desired state of the Longhorn backing image data source + description: BackingImageDataSourceSpec defines the desired state of the + Longhorn backing image data source properties: checksum: type: string @@ -148,7 +153,8 @@ spec: type: string type: object status: - description: BackingImageDataSourceStatus defines the observed state of the Longhorn backing image data source + description: BackingImageDataSourceStatus defines the observed state of + the Longhorn backing image data source properties: checksum: type: string @@ -225,7 +231,8 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: BackingImageManager is where Longhorn stores backing image manager object. + description: BackingImageManager is where Longhorn stores backing image manager + object. properties: apiVersion: description: |- @@ -280,7 +287,8 @@ spec: name: v1beta2 schema: openAPIV3Schema: - description: BackingImageManager is where Longhorn stores backing image manager object. + description: BackingImageManager is where Longhorn stores backing image manager + object. properties: apiVersion: description: |- @@ -300,7 +308,8 @@ spec: metadata: type: object spec: - description: BackingImageManagerSpec defines the desired state of the Longhorn backing image manager + description: BackingImageManagerSpec defines the desired state of the + Longhorn backing image manager properties: backingImages: additionalProperties: @@ -316,7 +325,8 @@ spec: type: string type: object status: - description: BackingImageManagerStatus defines the observed state of the Longhorn backing image manager + description: BackingImageManagerStatus defines the observed state of the + Longhorn backing image manager properties: apiMinVersion: type: integer @@ -481,7 +491,8 @@ spec: metadata: type: object spec: - description: BackingImageSpec defines the desired state of the Longhorn backing image + description: BackingImageSpec defines the desired state of the Longhorn + backing image properties: checksum: type: string @@ -499,7 +510,8 @@ spec: disks: additionalProperties: type: string - description: Deprecated. We are now using DiskFileSpecMap to assign different spec to the file on different disks. + description: Deprecated. We are now using DiskFileSpecMap to assign + different spec to the file on different disks. type: object minNumberOfCopies: type: integer @@ -525,7 +537,8 @@ spec: type: string type: object status: - description: BackingImageStatus defines the observed state of the Longhorn backing image status + description: BackingImageStatus defines the observed state of the Longhorn + backing image status properties: checksum: type: string @@ -551,7 +564,9 @@ spec: ownerID: type: string realSize: - description: Real size of image in bytes, which may be smaller than the size when the file is a sparse file. Will be zero until known (e.g. while a backing image is uploading) + description: Real size of image in bytes, which may be smaller than + the size when the file is a sparse file. Will be zero until known + (e.g. while a backing image is uploading) format: int64 type: integer size: @@ -560,7 +575,9 @@ spec: uuid: type: string virtualSize: - description: Virtual size of image in bytes, which may be larger than physical size. Will be zero until known (e.g. while a backing image is uploading) + description: Virtual size of image in bytes, which may be larger than + physical size. Will be zero until known (e.g. while a backing image + is uploading) format: int64 type: integer type: object @@ -613,7 +630,8 @@ spec: name: v1beta2 schema: openAPIV3Schema: - description: BackupBackingImage is where Longhorn stores backing image backup object. + description: BackupBackingImage is where Longhorn stores backing image backup + object. properties: apiVersion: description: |- @@ -633,7 +651,8 @@ spec: metadata: type: object spec: - description: BackupBackingImageSpec defines the desired state of the Longhorn backing image backup + description: BackupBackingImageSpec defines the desired state of the Longhorn + backing image backup properties: labels: additionalProperties: @@ -641,7 +660,8 @@ spec: description: The labels of backing image backup. type: object syncRequestedAt: - description: The time to request run sync the remote backing image backup. + description: The time to request run sync the remote backing image + backup. format: date-time nullable: true type: string @@ -654,7 +674,8 @@ spec: - userCreated type: object status: - description: BackupBackingImageStatus defines the observed state of the Longhorn backing image backup + description: BackupBackingImageStatus defines the observed state of the + Longhorn backing image backup properties: backingImage: description: The backing image name. @@ -678,21 +699,25 @@ spec: nullable: true type: object lastSyncedAt: - description: The last time that the backing image backup was synced with the remote backup target. + description: The last time that the backing image backup was synced + with the remote backup target. format: date-time nullable: true type: string managerAddress: - description: The address of the backing image manager that runs backing image backup. + description: The address of the backing image manager that runs backing + image backup. type: string messages: additionalProperties: type: string - description: The error messages when listing or inspecting backing image backup. + description: The error messages when listing or inspecting backing + image backup. nullable: true type: object ownerID: - description: The node ID on which the controller is responsible to reconcile this CR. + description: The node ID on which the controller is responsible to + reconcile this CR. type: string progress: description: The backing image backup progress. @@ -701,7 +726,8 @@ spec: description: Record the secret if this backup backing image is encrypted type: string secretNamespace: - description: Record the secret namespace if this backup backing image is encrypted + description: Record the secret namespace if this backup backing image + is encrypted type: string size: description: The backing image size. @@ -881,21 +907,24 @@ spec: nullable: true type: object lastSyncedAt: - description: The last time that the backup was synced with the remote backup target. + description: The last time that the backup was synced with the remote + backup target. format: date-time nullable: true type: string messages: additionalProperties: type: string - description: The error messages when calling longhorn engine on listing or inspecting backups. + description: The error messages when calling longhorn engine on listing + or inspecting backups. nullable: true type: object newlyUploadDataSize: description: Size in bytes of newly uploaded data type: string ownerID: - description: The node ID on which the controller is responsible to reconcile this backup CR. + description: The node ID on which the controller is responsible to + reconcile this backup CR. type: string progress: description: The snapshot backup progress. @@ -1069,7 +1098,8 @@ spec: metadata: type: object spec: - description: BackupTargetSpec defines the desired state of the Longhorn backup target + description: BackupTargetSpec defines the desired state of the Longhorn + backup target properties: backupTargetURL: description: The backup target URL. @@ -1078,7 +1108,8 @@ spec: description: The backup target credential secret. type: string pollInterval: - description: The interval that the cluster needs to run sync with the backup target. + description: The interval that the cluster needs to run sync with + the backup target. type: string syncRequestedAt: description: The time to request run sync the remote backup target. @@ -1087,10 +1118,12 @@ spec: type: string type: object status: - description: BackupTargetStatus defines the observed state of the Longhorn backup target + description: BackupTargetStatus defines the observed state of the Longhorn + backup target properties: available: - description: Available indicates if the remote backup target is available or not. + description: Available indicates if the remote backup target is available + or not. type: boolean conditions: description: Records the reason on why the backup target is unavailable. @@ -1100,13 +1133,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -1120,12 +1156,14 @@ spec: nullable: true type: array lastSyncedAt: - description: The last time that the controller synced with the remote backup target. + description: The last time that the controller synced with the remote + backup target. format: date-time nullable: true type: string ownerID: - description: The node ID on which the controller is responsible to reconcile this backup target CR. + description: The node ID on which the controller is responsible to + reconcile this backup target CR. type: string type: object type: object @@ -1241,7 +1279,8 @@ spec: metadata: type: object spec: - description: BackupVolumeSpec defines the desired state of the Longhorn backup volume + description: BackupVolumeSpec defines the desired state of the Longhorn + backup volume properties: syncRequestedAt: description: The time to request run sync the remote backup volume. @@ -1250,7 +1289,8 @@ spec: type: string type: object status: - description: BackupVolumeStatus defines the observed state of the Longhorn backup volume + description: BackupVolumeStatus defines the observed state of the Longhorn + backup volume properties: backingImageChecksum: description: the backing image checksum. @@ -1282,18 +1322,21 @@ spec: nullable: true type: string lastSyncedAt: - description: The last time that the backup volume was synced into the cluster. + description: The last time that the backup volume was synced into + the cluster. format: date-time nullable: true type: string messages: additionalProperties: type: string - description: The error messages when call longhorn engine on list or inspect backup volumes. + description: The error messages when call longhorn engine on list + or inspect backup volumes. nullable: true type: object ownerID: - description: The node ID on which the controller is responsible to reconcile this backup volume CR. + description: The node ID on which the controller is responsible to + reconcile this backup volume CR. type: string size: description: The backup volume size. @@ -1310,6 +1353,115 @@ spec: --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + labels: + longhorn-manager: "" + name: dataengineupgrademanagers.longhorn.io +spec: + group: longhorn.io + names: + kind: DataEngineUpgradeManager + listKind: DataEngineUpgradeManagerList + plural: dataengineupgrademanagers + shortNames: + - lhum + singular: dataengineupgrademanager + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The node that the upgrade manager is being performed on + jsonPath: .status.ownerID + name: Node + type: string + - description: The data engine targeted for upgrade + jsonPath: .spec.dataEngine + name: Data Engine + type: string + - description: The current state of the upgrade process + jsonPath: .status.state + name: State + type: string + - description: The node that is currently being upgraded + jsonPath: .status.upgradingNode + name: Upgrading Node + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: DataEngineUpgradeManager is where Longhorn stores upgrade manager + object. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: DataEngineUpgradeManagerSpec defines the desired state of + the upgrade manager resource + properties: + dataEngine: + description: DataEngine specifies the data engine type to upgrade + to. + enum: + - v2 + type: string + nodes: + description: |- + Nodes specifies the list of nodes to perform the data engine upgrade on. + If empty, the upgrade will be performed on all available nodes. + items: + type: string + type: array + type: object + status: + description: DataEngineUpgradeManagerStatus defines the observed state + of the upgrade manager resource + properties: + instanceManagerImage: + type: string + message: + type: string + ownerID: + type: string + state: + type: string + upgradeNodes: + additionalProperties: + description: UpgradeState defines the state of the node upgrade + process + properties: + message: + type: string + state: + type: string + type: object + type: object + upgradingNode: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 @@ -1438,7 +1590,8 @@ spec: metadata: type: object spec: - description: EngineImageSpec defines the desired state of the Longhorn engine image + description: EngineImageSpec defines the desired state of the Longhorn + engine image properties: image: minLength: 1 @@ -1447,7 +1600,8 @@ spec: - image type: object status: - description: EngineImageStatus defines the observed state of the Longhorn engine image + description: EngineImageStatus defines the observed state of the Longhorn + engine image properties: buildDate: type: string @@ -1462,13 +1616,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -1684,6 +1841,10 @@ spec: snapshotMaxSize: format: int64 type: string + targetNodeIDForLiveUpgrade: + description: TargetNodeID is specifies the node where the volume's + initiator instance should be scheduled during data engine live upgrade. + type: string unmapMarkSnapChainRemovedEnabled: type: boolean upgradedReplicaAddressMap: @@ -1742,13 +1903,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -1773,6 +1937,8 @@ spec: type: string currentState: type: string + currentTargetNodeIDForLiveUpgrade: + type: string endpoint: type: string instanceManagerName: @@ -1899,6 +2065,14 @@ spec: type: boolean storageIP: type: string + storageTargetIP: + type: string + targetIP: + type: string + targetInstanceReplacementCreated: + type: boolean + targetPort: + type: integer unmapMarkSnapChainRemovedEnabled: type: boolean type: object @@ -1992,6 +2166,10 @@ spec: jsonPath: .spec.nodeID name: Node type: string + - description: The image used by the instance manager + jsonPath: .spec.image + name: Image + type: string - jsonPath: .metadata.creationTimestamp name: Age type: date @@ -2018,7 +2196,8 @@ spec: metadata: type: object spec: - description: InstanceManagerSpec defines the desired state of the Longhorn instance manager + description: InstanceManagerSpec defines the desired state of the Longhorn + instance manager properties: dataEngine: type: string @@ -2042,7 +2221,8 @@ spec: type: string type: object status: - description: InstanceManagerStatus defines the observed state of the Longhorn instance manager + description: InstanceManagerStatus defines the observed state of the Longhorn + instance manager properties: apiMinVersion: type: integer @@ -2093,6 +2273,12 @@ spec: resourceVersion: format: int64 type: integer + standbyTargetPortEnd: + format: int32 + type: integer + standbyTargetPortStart: + format: int32 + type: integer state: type: string targetPortEnd: @@ -2142,6 +2328,12 @@ spec: resourceVersion: format: int64 type: integer + standbyTargetPortEnd: + format: int32 + type: integer + standbyTargetPortStart: + format: int32 + type: integer state: type: string targetPortEnd: @@ -2191,6 +2383,12 @@ spec: resourceVersion: format: int64 type: integer + standbyTargetPortEnd: + format: int32 + type: integer + standbyTargetPortStart: + format: int32 + type: integer state: type: string targetPortEnd: @@ -2223,6 +2421,109 @@ spec: --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + labels: + longhorn-manager: "" + name: nodedataengineupgrades.longhorn.io +spec: + group: longhorn.io + names: + kind: NodeDataEngineUpgrade + listKind: NodeDataEngineUpgradeList + plural: nodedataengineupgrades + shortNames: + - lhnu + singular: nodedataengineupgrade + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The node that the upgrade is being performed on + jsonPath: .status.ownerID + name: Node + type: string + - description: The data engine targeted for node upgrade + jsonPath: .spec.dataEngine + name: Data Engine + type: string + - description: The current state of the node upgrade process + jsonPath: .status.state + name: State + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: NodeDataEngineUpgrade is where Longhorn stores node upgrade object. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: NodeDataEngineUpgradeSpec defines the desired state of the + node data engine upgrade resource + properties: + dataEngine: + description: DataEngine specifies the data engine type to upgrade + to. + enum: + - v2 + type: string + dataEngineUpgradeManager: + description: DataEngineUpgradeManager specifies the name of the upgrade + manager resource that is managing the upgrade process. + type: string + instanceManagerImage: + description: InstanceManagerImage specifies the image to use for the + instance manager upgrade. + type: string + nodeID: + description: NodeID specifies the ID of the node where the data engine + upgrade will take place. + type: string + type: object + status: + description: NodeDataEngineUpgradeStatus defines the observed state of + the node upgrade resource + properties: + message: + type: string + ownerID: + type: string + state: + type: string + volumes: + additionalProperties: + properties: + message: + type: string + state: + type: string + type: object + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 @@ -2258,7 +2559,8 @@ spec: jsonPath: .status.conditions['Ready']['status'] name: Ready type: string - - description: Indicate whether the user disabled/enabled replica scheduling for the node + - description: Indicate whether the user disabled/enabled replica scheduling for + the node jsonPath: .spec.allowScheduling name: AllowScheduling type: boolean @@ -2305,7 +2607,8 @@ spec: jsonPath: .status.conditions[?(@.type=='Ready')].status name: Ready type: string - - description: Indicate whether the user disabled/enabled replica scheduling for the node + - description: Indicate whether the user disabled/enabled replica scheduling for + the node jsonPath: .spec.allowScheduling name: AllowScheduling type: boolean @@ -2395,13 +2698,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -2424,13 +2730,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from + one status to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details + about last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the + condition's last transition. type: string status: description: |- @@ -2549,10 +2858,12 @@ spec: metadata: type: object spec: - description: OrphanSpec defines the desired state of the Longhorn orphaned data + description: OrphanSpec defines the desired state of the Longhorn orphaned + data properties: nodeID: - description: The node ID on which the controller is responsible to reconcile this orphan CR. + description: The node ID on which the controller is responsible to + reconcile this orphan CR. type: string orphanType: description: |- @@ -2566,7 +2877,8 @@ spec: type: object type: object status: - description: OrphanStatus defines the observed state of the Longhorn orphaned data + description: OrphanStatus defines the observed state of the Longhorn orphaned + data properties: conditions: items: @@ -2575,13 +2887,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -2623,7 +2938,8 @@ spec: scope: Namespaced versions: - additionalPrinterColumns: - - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume + - description: Sets groupings to the jobs. When set to "default" group will be + added to the volume label when no other job label exist in volume jsonPath: .spec.groups name: Groups type: string @@ -2682,11 +2998,13 @@ spec: subresources: status: {} - additionalPrinterColumns: - - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume + - description: Sets groupings to the jobs. When set to "default" group will be + added to the volume label when no other job label exist in volume jsonPath: .spec.groups name: Groups type: string - - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" + - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup", + "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" jsonPath: .spec.task name: Task type: string @@ -2732,7 +3050,8 @@ spec: metadata: type: object spec: - description: RecurringJobSpec defines the desired state of the Longhorn recurring job + description: RecurringJobSpec defines the desired state of the Longhorn + recurring job properties: concurrency: description: The concurrency of taking the snapshot/backup. @@ -2778,13 +3097,15 @@ spec: type: string type: object status: - description: RecurringJobStatus defines the observed state of the Longhorn recurring job + description: RecurringJobStatus defines the observed state of the Longhorn + recurring job properties: executionCount: description: The number of jobs that have been triggered. type: integer ownerID: - description: The owner ID which is responsible to reconcile this recurring job CR. + description: The owner ID which is responsible to reconcile this recurring + job CR. type: string type: object type: object @@ -3007,6 +3328,10 @@ spec: snapshotMaxSize: format: int64 type: string + targetNodeIDForLiveUpgrade: + description: TargetNodeID is specifies the node where the volume's + initiator instance should be scheduled during data engine live upgrade. + type: string unmapMarkDiskChainRemovedEnabled: type: boolean volumeName: @@ -3016,7 +3341,8 @@ spec: type: string type: object status: - description: ReplicaStatus defines the observed state of the Longhorn replica + description: ReplicaStatus defines the observed state of the Longhorn + replica properties: conditions: items: @@ -3025,13 +3351,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -3048,6 +3377,8 @@ spec: type: string currentState: type: string + currentTargetNodeIDForLiveUpgrade: + type: string evictionRequested: description: 'Deprecated: Replaced by field `spec.evictionRequested`.' type: boolean @@ -3067,6 +3398,14 @@ spec: type: boolean storageIP: type: string + storageTargetIP: + type: string + targetIP: + type: string + targetInstanceReplacementCreated: + type: boolean + targetPort: + type: integer type: object type: object served: true @@ -3284,20 +3623,25 @@ spec: metadata: type: object spec: - description: ShareManagerSpec defines the desired state of the Longhorn share manager + description: ShareManagerSpec defines the desired state of the Longhorn + share manager properties: image: - description: Share manager image used for creating a share manager pod + description: Share manager image used for creating a share manager + pod type: string type: object status: - description: ShareManagerStatus defines the observed state of the Longhorn share manager + description: ShareManagerStatus defines the observed state of the Longhorn + share manager properties: endpoint: - description: NFS endpoint that can access the mounted filesystem of the volume + description: NFS endpoint that can access the mounted filesystem of + the volume type: string ownerID: - description: The node ID on which the controller is responsible to reconcile this share manager resource + description: The node ID on which the controller is responsible to + reconcile this share manager resource type: string state: description: The state of the share manager resource @@ -3337,11 +3681,13 @@ spec: jsonPath: .status.creationTime name: CreationTime type: string - - description: Indicates if the snapshot is ready to be used to restore/backup a volume + - description: Indicates if the snapshot is ready to be used to restore/backup + a volume jsonPath: .status.readyToUse name: ReadyToUse type: boolean - - description: Represents the minimum size of volume required to rehydrate from this snapshot + - description: Represents the minimum size of volume required to rehydrate from + this snapshot jsonPath: .status.restoreSize name: RestoreSize type: string @@ -3495,7 +3841,8 @@ spec: metadata: type: object spec: - description: SupportBundleSpec defines the desired state of the Longhorn SupportBundle + description: SupportBundleSpec defines the desired state of the Longhorn + SupportBundle properties: description: description: A brief description of the issue @@ -3511,7 +3858,8 @@ spec: - description type: object status: - description: SupportBundleStatus defines the observed state of the Longhorn SupportBundle + description: SupportBundleStatus defines the observed state of the Longhorn + SupportBundle properties: conditions: items: @@ -3520,13 +3868,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -3622,7 +3973,8 @@ spec: metadata: type: object spec: - description: SystemBackupSpec defines the desired state of the Longhorn SystemBackup + description: SystemBackupSpec defines the desired state of the Longhorn + SystemBackup properties: volumeBackupPolicy: description: |- @@ -3632,7 +3984,8 @@ spec: type: string type: object status: - description: SystemBackupStatus defines the observed state of the Longhorn SystemBackup + description: SystemBackupStatus defines the observed state of the Longhorn + SystemBackup properties: conditions: items: @@ -3641,13 +3994,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -3669,7 +4025,8 @@ spec: nullable: true type: string lastSyncedAt: - description: The last time that the system backup was synced into the cluster. + description: The last time that the system backup was synced into + the cluster. format: date-time nullable: true type: string @@ -3677,7 +4034,8 @@ spec: description: The saved manager image. type: string ownerID: - description: The node ID of the responsible controller to reconcile this SystemBackup. + description: The node ID of the responsible controller to reconcile + this SystemBackup. type: string state: description: The system backup state. @@ -3743,7 +4101,8 @@ spec: metadata: type: object spec: - description: SystemRestoreSpec defines the desired state of the Longhorn SystemRestore + description: SystemRestoreSpec defines the desired state of the Longhorn + SystemRestore properties: systemBackup: description: The system backup name in the object store. @@ -3752,7 +4111,8 @@ spec: - systemBackup type: object status: - description: SystemRestoreStatus defines the observed state of the Longhorn SystemRestore + description: SystemRestoreStatus defines the observed state of the Longhorn + SystemRestore properties: conditions: items: @@ -3761,13 +4121,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -3781,7 +4144,8 @@ spec: nullable: true type: array ownerID: - description: The node ID of the responsible controller to reconcile this SystemRestore. + description: The node ID of the responsible controller to reconcile + this SystemRestore. type: string sourceURL: description: The source system backup URL. @@ -3822,7 +4186,8 @@ spec: name: v1beta2 schema: openAPIV3Schema: - description: VolumeAttachment stores attachment information of a Longhorn volume + description: VolumeAttachment stores attachment information of a Longhorn + volume properties: apiVersion: description: |- @@ -3842,7 +4207,8 @@ spec: metadata: type: object spec: - description: VolumeAttachmentSpec defines the desired state of Longhorn VolumeAttachment + description: VolumeAttachmentSpec defines the desired state of Longhorn + VolumeAttachment properties: attachmentTickets: additionalProperties: @@ -3854,7 +4220,8 @@ spec: format: int64 type: integer id: - description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. + description: The unique ID of this attachment. Used to differentiate + different attachments of the same volume. type: string nodeID: description: The node that this attachment is requesting @@ -3875,7 +4242,8 @@ spec: - volume type: object status: - description: VolumeAttachmentStatus defines the observed state of Longhorn VolumeAttachment + description: VolumeAttachmentStatus defines the observed state of Longhorn + VolumeAttachment properties: attachmentTicketStatuses: additionalProperties: @@ -3888,13 +4256,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from + one status to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details + about last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the + condition's last transition. type: string status: description: |- @@ -3914,10 +4285,12 @@ spec: format: int64 type: integer id: - description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. + description: The unique ID of this attachment. Used to differentiate + different attachments of the same volume. type: string satisfied: - description: Indicate whether this attachment ticket has been satisfied + description: Indicate whether this attachment ticket has been + satisfied type: boolean required: - conditions @@ -4114,7 +4487,8 @@ spec: description: 'Deprecated: Replaced by field `image`.' type: string freezeFilesystemForSnapshot: - description: Setting that freezes the filesystem on the root partition before a snapshot is created. + description: Setting that freezes the filesystem on the root partition + before a snapshot is created. enum: - ignored - enabled @@ -4153,21 +4527,24 @@ spec: - best-effort type: string replicaDiskSoftAntiAffinity: - description: Replica disk soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same disk. + description: Replica disk soft anti affinity of the volume. Set enabled + to allow replicas to be scheduled in the same disk. enum: - ignored - enabled - disabled type: string replicaSoftAntiAffinity: - description: Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node. + description: Replica soft anti affinity of the volume. Set enabled + to allow replicas to be scheduled on the same node. enum: - ignored - enabled - disabled type: string replicaZoneSoftAntiAffinity: - description: Replica zone soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same zone. + description: Replica zone soft anti affinity of the volume. Set enabled + to allow replicas to be scheduled in the same zone. enum: - ignored - enabled @@ -4198,6 +4575,11 @@ spec: type: string staleReplicaTimeout: type: integer + targetNodeIDForLiveUpgrade: + description: TargetNodeIDForLiveUpgrade is specifies the node where + the volume's initiator instance should be scheduled during data + engine live upgrade. + type: string unmapMarkSnapChainRemoved: enum: - ignored @@ -4231,13 +4613,16 @@ spec: description: Last time we probed the condition. type: string lastTransitionTime: - description: Last time the condition transitioned from one status to another. + description: Last time the condition transitioned from one status + to another. type: string message: - description: Human-readable message indicating details about last transition. + description: Human-readable message indicating details about + last transition. type: string reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. + description: Unique, one-word, CamelCase reason for the condition's + last transition. type: string status: description: |- @@ -4257,6 +4642,8 @@ spec: type: string currentNodeID: type: string + currentTargetNodeIDForLiveUpgrade: + type: string expansionRequired: type: boolean frontendDisabled: diff --git a/k8s/pkg/apis/longhorn/v1beta2/dataengineupgrademanager.go b/k8s/pkg/apis/longhorn/v1beta2/dataengineupgrademanager.go new file mode 100644 index 0000000000..20ac22d2bd --- /dev/null +++ b/k8s/pkg/apis/longhorn/v1beta2/dataengineupgrademanager.go @@ -0,0 +1,66 @@ +package v1beta2 + +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +// DataEngineUpgradeManagerSpec defines the desired state of the upgrade manager resource +type DataEngineUpgradeManagerSpec struct { + // DataEngine specifies the data engine type to upgrade to. + // +optional + // +kubebuilder:validation:Enum=v2 + DataEngine DataEngineType `json:"dataEngine"` + // Nodes specifies the list of nodes to perform the data engine upgrade on. + // If empty, the upgrade will be performed on all available nodes. + // +optional + Nodes []string `json:"nodes"` +} + +// UpgradeState defines the state of the node upgrade process +type UpgradeNodeStatus struct { + // +optional + State UpgradeState `json:"state"` + // +optional + Message string `json:"message"` +} + +// DataEngineUpgradeManagerStatus defines the observed state of the upgrade manager resource +type DataEngineUpgradeManagerStatus struct { + // +optional + OwnerID string `json:"ownerID"` + // +optional + InstanceManagerImage string `json:"instanceManagerImage"` + // +optional + State UpgradeState `json:"state"` + // +optional + Message string `json:"message"` + // +optional + UpgradingNode string `json:"upgradingNode"` + // +optional + UpgradeNodes map[string]*UpgradeNodeStatus `json:"upgradeNodes"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:shortName=lhum +// +kubebuilder:subresource:status +// +kubebuilder:storageversion +// +kubebuilder:printcolumn:name="Node",type=string,JSONPath=`.status.ownerID`,description="The node that the upgrade manager is being performed on" +// +kubebuilder:printcolumn:name="Data Engine",type=string,JSONPath=`.spec.dataEngine`,description="The data engine targeted for upgrade" +// +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state`,description="The current state of the upgrade process" +// +kubebuilder:printcolumn:name="Upgrading Node",type=string,JSONPath=`.status.upgradingNode`,description="The node that is currently being upgraded" +// DataEngineUpgradeManager is where Longhorn stores upgrade manager object. +type DataEngineUpgradeManager struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec DataEngineUpgradeManagerSpec `json:"spec,omitempty"` + Status DataEngineUpgradeManagerStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// DataEngineUpgradeManagerList is a list of DataEngineUpgradeManagers. +type DataEngineUpgradeManagerList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DataEngineUpgradeManager `json:"items"` +} diff --git a/k8s/pkg/apis/longhorn/v1beta2/instancemanager.go b/k8s/pkg/apis/longhorn/v1beta2/instancemanager.go index bcb6ddf041..63481ae87d 100644 --- a/k8s/pkg/apis/longhorn/v1beta2/instancemanager.go +++ b/k8s/pkg/apis/longhorn/v1beta2/instancemanager.go @@ -58,12 +58,13 @@ type InstanceProcessSpec struct { type InstanceState string const ( - InstanceStateRunning = InstanceState("running") - InstanceStateStopped = InstanceState("stopped") - InstanceStateError = InstanceState("error") - InstanceStateStarting = InstanceState("starting") - InstanceStateStopping = InstanceState("stopping") - InstanceStateUnknown = InstanceState("unknown") + InstanceStateRunning = InstanceState("running") + InstanceStateStopped = InstanceState("stopped") + InstanceStateError = InstanceState("error") + InstanceStateStarting = InstanceState("starting") + InstanceStateStopping = InstanceState("stopping") + InstanceStateSuspended = InstanceState("suspended") + InstanceStateUnknown = InstanceState("unknown") ) type InstanceSpec struct { @@ -91,6 +92,9 @@ type InstanceSpec struct { // +kubebuilder:validation:Enum=v1;v2 // +optional DataEngine DataEngineType `json:"dataEngine"` + // TargetNodeID is specifies the node where the volume's initiator instance should be scheduled during data engine live upgrade. + // +optional + TargetNodeIDForLiveUpgrade string `json:"targetNodeIDForLiveUpgrade"` } type InstanceStatus struct { @@ -109,6 +113,12 @@ type InstanceStatus struct { // +optional Port int `json:"port"` // +optional + TargetIP string `json:"targetIP"` + // +optional + StorageTargetIP string `json:"storageTargetIP"` + // +optional + TargetPort int `json:"targetPort"` + // +optional Started bool `json:"started"` // +optional LogFetched bool `json:"logFetched"` @@ -117,6 +127,10 @@ type InstanceStatus struct { // +optional // +nullable Conditions []Condition `json:"conditions"` + // +optional + CurrentTargetNodeIDForLiveUpgrade string `json:"currentTargetNodeIDForLiveUpgrade"` + // +optional + TargetInstanceReplacementCreated bool `json:"targetInstanceReplacementCreated"` } type InstanceProcessStatus struct { @@ -138,6 +152,10 @@ type InstanceProcessStatus struct { // +optional TargetPortStart int32 `json:"targetPortStart"` // +optional + StandbyTargetPortEnd int32 `json:"standbyTargetPortEnd"` + // +optional + StandbyTargetPortStart int32 `json:"standbyTargetPortStart"` + // +optional State InstanceState `json:"state"` // +optional Type InstanceType `json:"type"` @@ -219,6 +237,7 @@ type InstanceManagerStatus struct { // +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.currentState`,description="The state of the instance manager" // +kubebuilder:printcolumn:name="Type",type=string,JSONPath=`.spec.type`,description="The type of the instance manager (engine or replica)" // +kubebuilder:printcolumn:name="Node",type=string,JSONPath=`.spec.nodeID`,description="The node that the instance manager is running on" +// +kubebuilder:printcolumn:name="Image",type=string,JSONPath=`.spec.image`,description="The image used by the instance manager" // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // InstanceManager is where Longhorn stores instance manager object. diff --git a/k8s/pkg/apis/longhorn/v1beta2/node.go b/k8s/pkg/apis/longhorn/v1beta2/node.go index b314e81011..26b4d7b60f 100644 --- a/k8s/pkg/apis/longhorn/v1beta2/node.go +++ b/k8s/pkg/apis/longhorn/v1beta2/node.go @@ -3,32 +3,34 @@ package v1beta2 import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" const ( - NodeConditionTypeReady = "Ready" - NodeConditionTypeMountPropagation = "MountPropagation" - NodeConditionTypeMultipathd = "Multipathd" - NodeConditionTypeKernelModulesLoaded = "KernelModulesLoaded" - NodeConditionTypeRequiredPackages = "RequiredPackages" - NodeConditionTypeNFSClientInstalled = "NFSClientInstalled" - NodeConditionTypeSchedulable = "Schedulable" + NodeConditionTypeReady = "Ready" + NodeConditionTypeMountPropagation = "MountPropagation" + NodeConditionTypeMultipathd = "Multipathd" + NodeConditionTypeKernelModulesLoaded = "KernelModulesLoaded" + NodeConditionTypeRequiredPackages = "RequiredPackages" + NodeConditionTypeNFSClientInstalled = "NFSClientInstalled" + NodeConditionTypeSchedulable = "Schedulable" + NodeConditionTypeDataEngineUpgradeRequested = "DataEngineUpgradeRequested" ) const ( - NodeConditionReasonManagerPodDown = "ManagerPodDown" - NodeConditionReasonManagerPodMissing = "ManagerPodMissing" - NodeConditionReasonKubernetesNodeGone = "KubernetesNodeGone" - NodeConditionReasonKubernetesNodeNotReady = "KubernetesNodeNotReady" - NodeConditionReasonKubernetesNodePressure = "KubernetesNodePressure" - NodeConditionReasonUnknownNodeConditionTrue = "UnknownNodeConditionTrue" - NodeConditionReasonNoMountPropagationSupport = "NoMountPropagationSupport" - NodeConditionReasonMultipathdIsRunning = "MultipathdIsRunning" - NodeConditionReasonUnknownOS = "UnknownOS" - NodeConditionReasonNamespaceExecutorErr = "NamespaceExecutorErr" - NodeConditionReasonKernelModulesNotLoaded = "KernelModulesNotLoaded" - NodeConditionReasonPackagesNotInstalled = "PackagesNotInstalled" - NodeConditionReasonCheckKernelConfigFailed = "CheckKernelConfigFailed" - NodeConditionReasonNFSClientIsNotFound = "NFSClientIsNotFound" - NodeConditionReasonNFSClientIsMisconfigured = "NFSClientIsMisconfigured" - NodeConditionReasonKubernetesNodeCordoned = "KubernetesNodeCordoned" + NodeConditionReasonManagerPodDown = "ManagerPodDown" + NodeConditionReasonManagerPodMissing = "ManagerPodMissing" + NodeConditionReasonKubernetesNodeGone = "KubernetesNodeGone" + NodeConditionReasonKubernetesNodeNotReady = "KubernetesNodeNotReady" + NodeConditionReasonKubernetesNodePressure = "KubernetesNodePressure" + NodeConditionReasonUnknownNodeConditionTrue = "UnknownNodeConditionTrue" + NodeConditionReasonNoMountPropagationSupport = "NoMountPropagationSupport" + NodeConditionReasonMultipathdIsRunning = "MultipathdIsRunning" + NodeConditionReasonUnknownOS = "UnknownOS" + NodeConditionReasonNamespaceExecutorErr = "NamespaceExecutorErr" + NodeConditionReasonKernelModulesNotLoaded = "KernelModulesNotLoaded" + NodeConditionReasonPackagesNotInstalled = "PackagesNotInstalled" + NodeConditionReasonCheckKernelConfigFailed = "CheckKernelConfigFailed" + NodeConditionReasonNFSClientIsNotFound = "NFSClientIsNotFound" + NodeConditionReasonNFSClientIsMisconfigured = "NFSClientIsMisconfigured" + NodeConditionReasonKubernetesNodeCordoned = "KubernetesNodeCordoned" + NodeConditionReasonNodeDataEngineUpgradeRequested = "NodeDataEngineUpgradeRequested" ) const ( diff --git a/k8s/pkg/apis/longhorn/v1beta2/nodedataengineupgrade.go b/k8s/pkg/apis/longhorn/v1beta2/nodedataengineupgrade.go new file mode 100644 index 0000000000..28899175ad --- /dev/null +++ b/k8s/pkg/apis/longhorn/v1beta2/nodedataengineupgrade.go @@ -0,0 +1,84 @@ +package v1beta2 + +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +type UpgradeState string + +const ( + UpgradeStateUndefined = UpgradeState("") + UpgradeStatePending = UpgradeState("pending") + UpgradeStateInitializing = UpgradeState("initializing") + UpgradeStateSwitchingOver = UpgradeState("switching-over") + UpgradeStateFailingReplicas = UpgradeState("failing-replicas") + UpgradeStateSwitchedOver = UpgradeState("switched-over") + UpgradeStateUpgrading = UpgradeState("upgrading") + UpgradeStateUpgradingInstanceManager = UpgradeState("upgrading-instance-manager") + UpgradeStateSwitchingBack = UpgradeState("switching-back") + UpgradeStateSwitchedBack = UpgradeState("switched-back") + UpgradeStateRebuildingReplica = UpgradeState("rebuilding-replica") + UpgradeStateFinalizing = UpgradeState("finalizing") + UpgradeStateCompleted = UpgradeState("completed") + UpgradeStateError = UpgradeState("error") +) + +// NodeDataEngineUpgradeSpec defines the desired state of the node data engine upgrade resource +type NodeDataEngineUpgradeSpec struct { + // NodeID specifies the ID of the node where the data engine upgrade will take place. + // +optional + NodeID string `json:"nodeID"` + // DataEngine specifies the data engine type to upgrade to. + // +optional + // +kubebuilder:validation:Enum=v2 + DataEngine DataEngineType `json:"dataEngine"` + // InstanceManagerImage specifies the image to use for the instance manager upgrade. + // +optional + InstanceManagerImage string `json:"instanceManagerImage"` + // DataEngineUpgradeManager specifies the name of the upgrade manager resource that is managing the upgrade process. + // +optional + DataEngineUpgradeManager string `json:"dataEngineUpgradeManager"` +} + +type VolumeUpgradeStatus struct { + // +optional + State UpgradeState `json:"state"` + // +optional + Message string `json:"message"` +} + +// NodeDataEngineUpgradeStatus defines the observed state of the node upgrade resource +type NodeDataEngineUpgradeStatus struct { + // +optional + OwnerID string `json:"ownerID"` + // +optional + Volumes map[string]*VolumeUpgradeStatus `json:"volumes"` + // +optional + State UpgradeState `json:"state"` + // +optional + Message string `json:"message"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:shortName=lhnu +// +kubebuilder:subresource:status +// +kubebuilder:storageversion +// +kubebuilder:printcolumn:name="Node",type=string,JSONPath=`.status.ownerID`,description="The node that the upgrade is being performed on" +// +kubebuilder:printcolumn:name="Data Engine",type=string,JSONPath=`.spec.dataEngine`,description="The data engine targeted for node upgrade" +// +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state`,description="The current state of the node upgrade process" +// NodeDataEngineUpgrade is where Longhorn stores node upgrade object. +type NodeDataEngineUpgrade struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec NodeDataEngineUpgradeSpec `json:"spec,omitempty"` + Status NodeDataEngineUpgradeStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NodeDataEngineUpgradeList is a list of NodeDataEngineUpgrades. +type NodeDataEngineUpgradeList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []NodeDataEngineUpgrade `json:"items"` +} diff --git a/k8s/pkg/apis/longhorn/v1beta2/register.go b/k8s/pkg/apis/longhorn/v1beta2/register.go index f2851553fa..18b182e11a 100644 --- a/k8s/pkg/apis/longhorn/v1beta2/register.go +++ b/k8s/pkg/apis/longhorn/v1beta2/register.go @@ -65,6 +65,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { &VolumeList{}, &VolumeAttachment{}, &VolumeAttachmentList{}, + &DataEngineUpgradeManager{}, + &DataEngineUpgradeManagerList{}, + &NodeDataEngineUpgrade{}, + &NodeDataEngineUpgradeList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil diff --git a/k8s/pkg/apis/longhorn/v1beta2/volume.go b/k8s/pkg/apis/longhorn/v1beta2/volume.go index 528a4d2870..54c35b56b4 100644 --- a/k8s/pkg/apis/longhorn/v1beta2/volume.go +++ b/k8s/pkg/apis/longhorn/v1beta2/volume.go @@ -302,6 +302,9 @@ type VolumeSpec struct { // Setting that freezes the filesystem on the root partition before a snapshot is created. // +optional FreezeFilesystemForSnapshot FreezeFilesystemForSnapshot `json:"freezeFilesystemForSnapshot"` + // TargetNodeIDForLiveUpgrade is specifies the node where the volume's initiator instance should be scheduled during data engine live upgrade. + // +optional + TargetNodeIDForLiveUpgrade string `json:"targetNodeIDForLiveUpgrade"` } // VolumeStatus defines the observed state of the Longhorn volume @@ -353,6 +356,8 @@ type VolumeStatus struct { ShareEndpoint string `json:"shareEndpoint"` // +optional ShareState ShareManagerState `json:"shareState"` + // +optional + CurrentTargetNodeIDForLiveUpgrade string `json:"currentTargetNodeIDForLiveUpgrade"` } // +genclient diff --git a/k8s/pkg/apis/longhorn/v1beta2/zz_generated.deepcopy.go b/k8s/pkg/apis/longhorn/v1beta2/zz_generated.deepcopy.go index 83ae61fbdb..239eee7dbd 100644 --- a/k8s/pkg/apis/longhorn/v1beta2/zz_generated.deepcopy.go +++ b/k8s/pkg/apis/longhorn/v1beta2/zz_generated.deepcopy.go @@ -978,6 +978,119 @@ func (in *DataEngineStatus) DeepCopy() *DataEngineStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataEngineUpgradeManager) DeepCopyInto(out *DataEngineUpgradeManager) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataEngineUpgradeManager. +func (in *DataEngineUpgradeManager) DeepCopy() *DataEngineUpgradeManager { + if in == nil { + return nil + } + out := new(DataEngineUpgradeManager) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DataEngineUpgradeManager) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataEngineUpgradeManagerList) DeepCopyInto(out *DataEngineUpgradeManagerList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DataEngineUpgradeManager, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataEngineUpgradeManagerList. +func (in *DataEngineUpgradeManagerList) DeepCopy() *DataEngineUpgradeManagerList { + if in == nil { + return nil + } + out := new(DataEngineUpgradeManagerList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DataEngineUpgradeManagerList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataEngineUpgradeManagerSpec) DeepCopyInto(out *DataEngineUpgradeManagerSpec) { + *out = *in + if in.Nodes != nil { + in, out := &in.Nodes, &out.Nodes + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataEngineUpgradeManagerSpec. +func (in *DataEngineUpgradeManagerSpec) DeepCopy() *DataEngineUpgradeManagerSpec { + if in == nil { + return nil + } + out := new(DataEngineUpgradeManagerSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataEngineUpgradeManagerStatus) DeepCopyInto(out *DataEngineUpgradeManagerStatus) { + *out = *in + if in.UpgradeNodes != nil { + in, out := &in.UpgradeNodes, &out.UpgradeNodes + *out = make(map[string]*UpgradeNodeStatus, len(*in)) + for key, val := range *in { + var outVal *UpgradeNodeStatus + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = new(UpgradeNodeStatus) + **out = **in + } + (*out)[key] = outVal + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataEngineUpgradeManagerStatus. +func (in *DataEngineUpgradeManagerStatus) DeepCopy() *DataEngineUpgradeManagerStatus { + if in == nil { + return nil + } + out := new(DataEngineUpgradeManagerStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DiskSpec) DeepCopyInto(out *DiskSpec) { *out = *in @@ -1667,6 +1780,114 @@ func (in *Node) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeDataEngineUpgrade) DeepCopyInto(out *NodeDataEngineUpgrade) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDataEngineUpgrade. +func (in *NodeDataEngineUpgrade) DeepCopy() *NodeDataEngineUpgrade { + if in == nil { + return nil + } + out := new(NodeDataEngineUpgrade) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeDataEngineUpgrade) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeDataEngineUpgradeList) DeepCopyInto(out *NodeDataEngineUpgradeList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NodeDataEngineUpgrade, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDataEngineUpgradeList. +func (in *NodeDataEngineUpgradeList) DeepCopy() *NodeDataEngineUpgradeList { + if in == nil { + return nil + } + out := new(NodeDataEngineUpgradeList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeDataEngineUpgradeList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeDataEngineUpgradeSpec) DeepCopyInto(out *NodeDataEngineUpgradeSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDataEngineUpgradeSpec. +func (in *NodeDataEngineUpgradeSpec) DeepCopy() *NodeDataEngineUpgradeSpec { + if in == nil { + return nil + } + out := new(NodeDataEngineUpgradeSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeDataEngineUpgradeStatus) DeepCopyInto(out *NodeDataEngineUpgradeStatus) { + *out = *in + if in.Volumes != nil { + in, out := &in.Volumes, &out.Volumes + *out = make(map[string]*VolumeUpgradeStatus, len(*in)) + for key, val := range *in { + var outVal *VolumeUpgradeStatus + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = new(VolumeUpgradeStatus) + **out = **in + } + (*out)[key] = outVal + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDataEngineUpgradeStatus. +func (in *NodeDataEngineUpgradeStatus) DeepCopy() *NodeDataEngineUpgradeStatus { + if in == nil { + return nil + } + out := new(NodeDataEngineUpgradeStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeList) DeepCopyInto(out *NodeList) { *out = *in @@ -2767,6 +2988,22 @@ func (in *SystemRestoreStatus) DeepCopy() *SystemRestoreStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeNodeStatus) DeepCopyInto(out *UpgradeNodeStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeNodeStatus. +func (in *UpgradeNodeStatus) DeepCopy() *UpgradeNodeStatus { + if in == nil { + return nil + } + out := new(UpgradeNodeStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *V2DataEngineSpec) DeepCopyInto(out *V2DataEngineSpec) { *out = *in @@ -3086,6 +3323,22 @@ func (in *VolumeStatus) DeepCopy() *VolumeStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeUpgradeStatus) DeepCopyInto(out *VolumeUpgradeStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeUpgradeStatus. +func (in *VolumeUpgradeStatus) DeepCopy() *VolumeUpgradeStatus { + if in == nil { + return nil + } + out := new(VolumeUpgradeStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *WorkloadStatus) DeepCopyInto(out *WorkloadStatus) { *out = *in diff --git a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/dataengineupgrademanager.go b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/dataengineupgrademanager.go new file mode 100644 index 0000000000..3138f4865a --- /dev/null +++ b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/dataengineupgrademanager.go @@ -0,0 +1,195 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta2 + +import ( + "context" + "time" + + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + scheme "github.com/longhorn/longhorn-manager/k8s/pkg/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// DataEngineUpgradeManagersGetter has a method to return a DataEngineUpgradeManagerInterface. +// A group's client should implement this interface. +type DataEngineUpgradeManagersGetter interface { + DataEngineUpgradeManagers(namespace string) DataEngineUpgradeManagerInterface +} + +// DataEngineUpgradeManagerInterface has methods to work with DataEngineUpgradeManager resources. +type DataEngineUpgradeManagerInterface interface { + Create(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.CreateOptions) (*v1beta2.DataEngineUpgradeManager, error) + Update(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.UpdateOptions) (*v1beta2.DataEngineUpgradeManager, error) + UpdateStatus(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.UpdateOptions) (*v1beta2.DataEngineUpgradeManager, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.DataEngineUpgradeManager, error) + List(ctx context.Context, opts v1.ListOptions) (*v1beta2.DataEngineUpgradeManagerList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.DataEngineUpgradeManager, err error) + DataEngineUpgradeManagerExpansion +} + +// dataEngineUpgradeManagers implements DataEngineUpgradeManagerInterface +type dataEngineUpgradeManagers struct { + client rest.Interface + ns string +} + +// newDataEngineUpgradeManagers returns a DataEngineUpgradeManagers +func newDataEngineUpgradeManagers(c *LonghornV1beta2Client, namespace string) *dataEngineUpgradeManagers { + return &dataEngineUpgradeManagers{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the dataEngineUpgradeManager, and returns the corresponding dataEngineUpgradeManager object, and an error if there is any. +func (c *dataEngineUpgradeManagers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.DataEngineUpgradeManager, err error) { + result = &v1beta2.DataEngineUpgradeManager{} + err = c.client.Get(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of DataEngineUpgradeManagers that match those selectors. +func (c *dataEngineUpgradeManagers) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.DataEngineUpgradeManagerList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta2.DataEngineUpgradeManagerList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested dataEngineUpgradeManagers. +func (c *dataEngineUpgradeManagers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a dataEngineUpgradeManager and creates it. Returns the server's representation of the dataEngineUpgradeManager, and an error, if there is any. +func (c *dataEngineUpgradeManagers) Create(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.CreateOptions) (result *v1beta2.DataEngineUpgradeManager, err error) { + result = &v1beta2.DataEngineUpgradeManager{} + err = c.client.Post(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(dataEngineUpgradeManager). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a dataEngineUpgradeManager and updates it. Returns the server's representation of the dataEngineUpgradeManager, and an error, if there is any. +func (c *dataEngineUpgradeManagers) Update(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.UpdateOptions) (result *v1beta2.DataEngineUpgradeManager, err error) { + result = &v1beta2.DataEngineUpgradeManager{} + err = c.client.Put(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + Name(dataEngineUpgradeManager.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(dataEngineUpgradeManager). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *dataEngineUpgradeManagers) UpdateStatus(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.UpdateOptions) (result *v1beta2.DataEngineUpgradeManager, err error) { + result = &v1beta2.DataEngineUpgradeManager{} + err = c.client.Put(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + Name(dataEngineUpgradeManager.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(dataEngineUpgradeManager). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the dataEngineUpgradeManager and deletes it. Returns an error if one occurs. +func (c *dataEngineUpgradeManagers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *dataEngineUpgradeManagers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched dataEngineUpgradeManager. +func (c *dataEngineUpgradeManagers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.DataEngineUpgradeManager, err error) { + result = &v1beta2.DataEngineUpgradeManager{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("dataengineupgrademanagers"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_dataengineupgrademanager.go b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_dataengineupgrademanager.go new file mode 100644 index 0000000000..41fcd55dff --- /dev/null +++ b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_dataengineupgrademanager.go @@ -0,0 +1,142 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeDataEngineUpgradeManagers implements DataEngineUpgradeManagerInterface +type FakeDataEngineUpgradeManagers struct { + Fake *FakeLonghornV1beta2 + ns string +} + +var dataengineupgrademanagersResource = schema.GroupVersionResource{Group: "longhorn.io", Version: "v1beta2", Resource: "dataengineupgrademanagers"} + +var dataengineupgrademanagersKind = schema.GroupVersionKind{Group: "longhorn.io", Version: "v1beta2", Kind: "DataEngineUpgradeManager"} + +// Get takes name of the dataEngineUpgradeManager, and returns the corresponding dataEngineUpgradeManager object, and an error if there is any. +func (c *FakeDataEngineUpgradeManagers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.DataEngineUpgradeManager, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(dataengineupgrademanagersResource, c.ns, name), &v1beta2.DataEngineUpgradeManager{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.DataEngineUpgradeManager), err +} + +// List takes label and field selectors, and returns the list of DataEngineUpgradeManagers that match those selectors. +func (c *FakeDataEngineUpgradeManagers) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.DataEngineUpgradeManagerList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(dataengineupgrademanagersResource, dataengineupgrademanagersKind, c.ns, opts), &v1beta2.DataEngineUpgradeManagerList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta2.DataEngineUpgradeManagerList{ListMeta: obj.(*v1beta2.DataEngineUpgradeManagerList).ListMeta} + for _, item := range obj.(*v1beta2.DataEngineUpgradeManagerList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested dataEngineUpgradeManagers. +func (c *FakeDataEngineUpgradeManagers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(dataengineupgrademanagersResource, c.ns, opts)) + +} + +// Create takes the representation of a dataEngineUpgradeManager and creates it. Returns the server's representation of the dataEngineUpgradeManager, and an error, if there is any. +func (c *FakeDataEngineUpgradeManagers) Create(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.CreateOptions) (result *v1beta2.DataEngineUpgradeManager, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(dataengineupgrademanagersResource, c.ns, dataEngineUpgradeManager), &v1beta2.DataEngineUpgradeManager{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.DataEngineUpgradeManager), err +} + +// Update takes the representation of a dataEngineUpgradeManager and updates it. Returns the server's representation of the dataEngineUpgradeManager, and an error, if there is any. +func (c *FakeDataEngineUpgradeManagers) Update(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.UpdateOptions) (result *v1beta2.DataEngineUpgradeManager, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(dataengineupgrademanagersResource, c.ns, dataEngineUpgradeManager), &v1beta2.DataEngineUpgradeManager{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.DataEngineUpgradeManager), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeDataEngineUpgradeManagers) UpdateStatus(ctx context.Context, dataEngineUpgradeManager *v1beta2.DataEngineUpgradeManager, opts v1.UpdateOptions) (*v1beta2.DataEngineUpgradeManager, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(dataengineupgrademanagersResource, "status", c.ns, dataEngineUpgradeManager), &v1beta2.DataEngineUpgradeManager{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.DataEngineUpgradeManager), err +} + +// Delete takes name of the dataEngineUpgradeManager and deletes it. Returns an error if one occurs. +func (c *FakeDataEngineUpgradeManagers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(dataengineupgrademanagersResource, c.ns, name), &v1beta2.DataEngineUpgradeManager{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeDataEngineUpgradeManagers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(dataengineupgrademanagersResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v1beta2.DataEngineUpgradeManagerList{}) + return err +} + +// Patch applies the patch and returns the patched dataEngineUpgradeManager. +func (c *FakeDataEngineUpgradeManagers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.DataEngineUpgradeManager, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(dataengineupgrademanagersResource, c.ns, name, pt, data, subresources...), &v1beta2.DataEngineUpgradeManager{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.DataEngineUpgradeManager), err +} diff --git a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_longhorn_client.go b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_longhorn_client.go index bacdf941c8..fad629bd6e 100644 --- a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_longhorn_client.go +++ b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_longhorn_client.go @@ -56,6 +56,10 @@ func (c *FakeLonghornV1beta2) BackupVolumes(namespace string) v1beta2.BackupVolu return &FakeBackupVolumes{c, namespace} } +func (c *FakeLonghornV1beta2) DataEngineUpgradeManagers(namespace string) v1beta2.DataEngineUpgradeManagerInterface { + return &FakeDataEngineUpgradeManagers{c, namespace} +} + func (c *FakeLonghornV1beta2) Engines(namespace string) v1beta2.EngineInterface { return &FakeEngines{c, namespace} } @@ -72,6 +76,10 @@ func (c *FakeLonghornV1beta2) Nodes(namespace string) v1beta2.NodeInterface { return &FakeNodes{c, namespace} } +func (c *FakeLonghornV1beta2) NodeDataEngineUpgrades(namespace string) v1beta2.NodeDataEngineUpgradeInterface { + return &FakeNodeDataEngineUpgrades{c, namespace} +} + func (c *FakeLonghornV1beta2) Orphans(namespace string) v1beta2.OrphanInterface { return &FakeOrphans{c, namespace} } diff --git a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_nodedataengineupgrade.go b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_nodedataengineupgrade.go new file mode 100644 index 0000000000..75b83e8bce --- /dev/null +++ b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/fake/fake_nodedataengineupgrade.go @@ -0,0 +1,142 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeNodeDataEngineUpgrades implements NodeDataEngineUpgradeInterface +type FakeNodeDataEngineUpgrades struct { + Fake *FakeLonghornV1beta2 + ns string +} + +var nodedataengineupgradesResource = schema.GroupVersionResource{Group: "longhorn.io", Version: "v1beta2", Resource: "nodedataengineupgrades"} + +var nodedataengineupgradesKind = schema.GroupVersionKind{Group: "longhorn.io", Version: "v1beta2", Kind: "NodeDataEngineUpgrade"} + +// Get takes name of the nodeDataEngineUpgrade, and returns the corresponding nodeDataEngineUpgrade object, and an error if there is any. +func (c *FakeNodeDataEngineUpgrades) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.NodeDataEngineUpgrade, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(nodedataengineupgradesResource, c.ns, name), &v1beta2.NodeDataEngineUpgrade{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.NodeDataEngineUpgrade), err +} + +// List takes label and field selectors, and returns the list of NodeDataEngineUpgrades that match those selectors. +func (c *FakeNodeDataEngineUpgrades) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.NodeDataEngineUpgradeList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(nodedataengineupgradesResource, nodedataengineupgradesKind, c.ns, opts), &v1beta2.NodeDataEngineUpgradeList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta2.NodeDataEngineUpgradeList{ListMeta: obj.(*v1beta2.NodeDataEngineUpgradeList).ListMeta} + for _, item := range obj.(*v1beta2.NodeDataEngineUpgradeList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested nodeDataEngineUpgrades. +func (c *FakeNodeDataEngineUpgrades) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(nodedataengineupgradesResource, c.ns, opts)) + +} + +// Create takes the representation of a nodeDataEngineUpgrade and creates it. Returns the server's representation of the nodeDataEngineUpgrade, and an error, if there is any. +func (c *FakeNodeDataEngineUpgrades) Create(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.CreateOptions) (result *v1beta2.NodeDataEngineUpgrade, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(nodedataengineupgradesResource, c.ns, nodeDataEngineUpgrade), &v1beta2.NodeDataEngineUpgrade{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.NodeDataEngineUpgrade), err +} + +// Update takes the representation of a nodeDataEngineUpgrade and updates it. Returns the server's representation of the nodeDataEngineUpgrade, and an error, if there is any. +func (c *FakeNodeDataEngineUpgrades) Update(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.UpdateOptions) (result *v1beta2.NodeDataEngineUpgrade, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(nodedataengineupgradesResource, c.ns, nodeDataEngineUpgrade), &v1beta2.NodeDataEngineUpgrade{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.NodeDataEngineUpgrade), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeNodeDataEngineUpgrades) UpdateStatus(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.UpdateOptions) (*v1beta2.NodeDataEngineUpgrade, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(nodedataengineupgradesResource, "status", c.ns, nodeDataEngineUpgrade), &v1beta2.NodeDataEngineUpgrade{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.NodeDataEngineUpgrade), err +} + +// Delete takes name of the nodeDataEngineUpgrade and deletes it. Returns an error if one occurs. +func (c *FakeNodeDataEngineUpgrades) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(nodedataengineupgradesResource, c.ns, name), &v1beta2.NodeDataEngineUpgrade{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeNodeDataEngineUpgrades) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(nodedataengineupgradesResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v1beta2.NodeDataEngineUpgradeList{}) + return err +} + +// Patch applies the patch and returns the patched nodeDataEngineUpgrade. +func (c *FakeNodeDataEngineUpgrades) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.NodeDataEngineUpgrade, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(nodedataengineupgradesResource, c.ns, name, pt, data, subresources...), &v1beta2.NodeDataEngineUpgrade{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.NodeDataEngineUpgrade), err +} diff --git a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/generated_expansion.go b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/generated_expansion.go index a4f32ddc2d..21bfaa727a 100644 --- a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/generated_expansion.go +++ b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/generated_expansion.go @@ -32,6 +32,8 @@ type BackupTargetExpansion interface{} type BackupVolumeExpansion interface{} +type DataEngineUpgradeManagerExpansion interface{} + type EngineExpansion interface{} type EngineImageExpansion interface{} @@ -40,6 +42,8 @@ type InstanceManagerExpansion interface{} type NodeExpansion interface{} +type NodeDataEngineUpgradeExpansion interface{} + type OrphanExpansion interface{} type RecurringJobExpansion interface{} diff --git a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/longhorn_client.go b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/longhorn_client.go index e753262ead..cef15ef5e3 100644 --- a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/longhorn_client.go +++ b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/longhorn_client.go @@ -33,10 +33,12 @@ type LonghornV1beta2Interface interface { BackupBackingImagesGetter BackupTargetsGetter BackupVolumesGetter + DataEngineUpgradeManagersGetter EnginesGetter EngineImagesGetter InstanceManagersGetter NodesGetter + NodeDataEngineUpgradesGetter OrphansGetter RecurringJobsGetter ReplicasGetter @@ -83,6 +85,10 @@ func (c *LonghornV1beta2Client) BackupVolumes(namespace string) BackupVolumeInte return newBackupVolumes(c, namespace) } +func (c *LonghornV1beta2Client) DataEngineUpgradeManagers(namespace string) DataEngineUpgradeManagerInterface { + return newDataEngineUpgradeManagers(c, namespace) +} + func (c *LonghornV1beta2Client) Engines(namespace string) EngineInterface { return newEngines(c, namespace) } @@ -99,6 +105,10 @@ func (c *LonghornV1beta2Client) Nodes(namespace string) NodeInterface { return newNodes(c, namespace) } +func (c *LonghornV1beta2Client) NodeDataEngineUpgrades(namespace string) NodeDataEngineUpgradeInterface { + return newNodeDataEngineUpgrades(c, namespace) +} + func (c *LonghornV1beta2Client) Orphans(namespace string) OrphanInterface { return newOrphans(c, namespace) } diff --git a/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/nodedataengineupgrade.go b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/nodedataengineupgrade.go new file mode 100644 index 0000000000..fae6fad5f4 --- /dev/null +++ b/k8s/pkg/client/clientset/versioned/typed/longhorn/v1beta2/nodedataengineupgrade.go @@ -0,0 +1,195 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta2 + +import ( + "context" + "time" + + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + scheme "github.com/longhorn/longhorn-manager/k8s/pkg/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// NodeDataEngineUpgradesGetter has a method to return a NodeDataEngineUpgradeInterface. +// A group's client should implement this interface. +type NodeDataEngineUpgradesGetter interface { + NodeDataEngineUpgrades(namespace string) NodeDataEngineUpgradeInterface +} + +// NodeDataEngineUpgradeInterface has methods to work with NodeDataEngineUpgrade resources. +type NodeDataEngineUpgradeInterface interface { + Create(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.CreateOptions) (*v1beta2.NodeDataEngineUpgrade, error) + Update(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.UpdateOptions) (*v1beta2.NodeDataEngineUpgrade, error) + UpdateStatus(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.UpdateOptions) (*v1beta2.NodeDataEngineUpgrade, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta2.NodeDataEngineUpgrade, error) + List(ctx context.Context, opts v1.ListOptions) (*v1beta2.NodeDataEngineUpgradeList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.NodeDataEngineUpgrade, err error) + NodeDataEngineUpgradeExpansion +} + +// nodeDataEngineUpgrades implements NodeDataEngineUpgradeInterface +type nodeDataEngineUpgrades struct { + client rest.Interface + ns string +} + +// newNodeDataEngineUpgrades returns a NodeDataEngineUpgrades +func newNodeDataEngineUpgrades(c *LonghornV1beta2Client, namespace string) *nodeDataEngineUpgrades { + return &nodeDataEngineUpgrades{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the nodeDataEngineUpgrade, and returns the corresponding nodeDataEngineUpgrade object, and an error if there is any. +func (c *nodeDataEngineUpgrades) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta2.NodeDataEngineUpgrade, err error) { + result = &v1beta2.NodeDataEngineUpgrade{} + err = c.client.Get(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of NodeDataEngineUpgrades that match those selectors. +func (c *nodeDataEngineUpgrades) List(ctx context.Context, opts v1.ListOptions) (result *v1beta2.NodeDataEngineUpgradeList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta2.NodeDataEngineUpgradeList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested nodeDataEngineUpgrades. +func (c *nodeDataEngineUpgrades) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a nodeDataEngineUpgrade and creates it. Returns the server's representation of the nodeDataEngineUpgrade, and an error, if there is any. +func (c *nodeDataEngineUpgrades) Create(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.CreateOptions) (result *v1beta2.NodeDataEngineUpgrade, err error) { + result = &v1beta2.NodeDataEngineUpgrade{} + err = c.client.Post(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(nodeDataEngineUpgrade). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a nodeDataEngineUpgrade and updates it. Returns the server's representation of the nodeDataEngineUpgrade, and an error, if there is any. +func (c *nodeDataEngineUpgrades) Update(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.UpdateOptions) (result *v1beta2.NodeDataEngineUpgrade, err error) { + result = &v1beta2.NodeDataEngineUpgrade{} + err = c.client.Put(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + Name(nodeDataEngineUpgrade.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(nodeDataEngineUpgrade). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *nodeDataEngineUpgrades) UpdateStatus(ctx context.Context, nodeDataEngineUpgrade *v1beta2.NodeDataEngineUpgrade, opts v1.UpdateOptions) (result *v1beta2.NodeDataEngineUpgrade, err error) { + result = &v1beta2.NodeDataEngineUpgrade{} + err = c.client.Put(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + Name(nodeDataEngineUpgrade.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(nodeDataEngineUpgrade). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the nodeDataEngineUpgrade and deletes it. Returns an error if one occurs. +func (c *nodeDataEngineUpgrades) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *nodeDataEngineUpgrades) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched nodeDataEngineUpgrade. +func (c *nodeDataEngineUpgrades) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.NodeDataEngineUpgrade, err error) { + result = &v1beta2.NodeDataEngineUpgrade{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("nodedataengineupgrades"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/k8s/pkg/client/informers/externalversions/generic.go b/k8s/pkg/client/informers/externalversions/generic.go index 82df24c85b..d8f4db907b 100644 --- a/k8s/pkg/client/informers/externalversions/generic.go +++ b/k8s/pkg/client/informers/externalversions/generic.go @@ -100,6 +100,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().BackupTargets().Informer()}, nil case v1beta2.SchemeGroupVersion.WithResource("backupvolumes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().BackupVolumes().Informer()}, nil + case v1beta2.SchemeGroupVersion.WithResource("dataengineupgrademanagers"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().DataEngineUpgradeManagers().Informer()}, nil case v1beta2.SchemeGroupVersion.WithResource("engines"): return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().Engines().Informer()}, nil case v1beta2.SchemeGroupVersion.WithResource("engineimages"): @@ -108,6 +110,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().InstanceManagers().Informer()}, nil case v1beta2.SchemeGroupVersion.WithResource("nodes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().Nodes().Informer()}, nil + case v1beta2.SchemeGroupVersion.WithResource("nodedataengineupgrades"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().NodeDataEngineUpgrades().Informer()}, nil case v1beta2.SchemeGroupVersion.WithResource("orphans"): return &genericInformer{resource: resource.GroupResource(), informer: f.Longhorn().V1beta2().Orphans().Informer()}, nil case v1beta2.SchemeGroupVersion.WithResource("recurringjobs"): diff --git a/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/dataengineupgrademanager.go b/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/dataengineupgrademanager.go new file mode 100644 index 0000000000..233f956545 --- /dev/null +++ b/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/dataengineupgrademanager.go @@ -0,0 +1,90 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta2 + +import ( + "context" + time "time" + + longhornv1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + versioned "github.com/longhorn/longhorn-manager/k8s/pkg/client/clientset/versioned" + internalinterfaces "github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/internalinterfaces" + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/client/listers/longhorn/v1beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// DataEngineUpgradeManagerInformer provides access to a shared informer and lister for +// DataEngineUpgradeManagers. +type DataEngineUpgradeManagerInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta2.DataEngineUpgradeManagerLister +} + +type dataEngineUpgradeManagerInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewDataEngineUpgradeManagerInformer constructs a new informer for DataEngineUpgradeManager type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewDataEngineUpgradeManagerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDataEngineUpgradeManagerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDataEngineUpgradeManagerInformer constructs a new informer for DataEngineUpgradeManager type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredDataEngineUpgradeManagerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.LonghornV1beta2().DataEngineUpgradeManagers(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.LonghornV1beta2().DataEngineUpgradeManagers(namespace).Watch(context.TODO(), options) + }, + }, + &longhornv1beta2.DataEngineUpgradeManager{}, + resyncPeriod, + indexers, + ) +} + +func (f *dataEngineUpgradeManagerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDataEngineUpgradeManagerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *dataEngineUpgradeManagerInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&longhornv1beta2.DataEngineUpgradeManager{}, f.defaultInformer) +} + +func (f *dataEngineUpgradeManagerInformer) Lister() v1beta2.DataEngineUpgradeManagerLister { + return v1beta2.NewDataEngineUpgradeManagerLister(f.Informer().GetIndexer()) +} diff --git a/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/interface.go b/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/interface.go index 67ed563524..aaf9ea4abf 100644 --- a/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/interface.go +++ b/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/interface.go @@ -38,6 +38,8 @@ type Interface interface { BackupTargets() BackupTargetInformer // BackupVolumes returns a BackupVolumeInformer. BackupVolumes() BackupVolumeInformer + // DataEngineUpgradeManagers returns a DataEngineUpgradeManagerInformer. + DataEngineUpgradeManagers() DataEngineUpgradeManagerInformer // Engines returns a EngineInformer. Engines() EngineInformer // EngineImages returns a EngineImageInformer. @@ -46,6 +48,8 @@ type Interface interface { InstanceManagers() InstanceManagerInformer // Nodes returns a NodeInformer. Nodes() NodeInformer + // NodeDataEngineUpgrades returns a NodeDataEngineUpgradeInformer. + NodeDataEngineUpgrades() NodeDataEngineUpgradeInformer // Orphans returns a OrphanInformer. Orphans() OrphanInformer // RecurringJobs returns a RecurringJobInformer. @@ -116,6 +120,11 @@ func (v *version) BackupVolumes() BackupVolumeInformer { return &backupVolumeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } +// DataEngineUpgradeManagers returns a DataEngineUpgradeManagerInformer. +func (v *version) DataEngineUpgradeManagers() DataEngineUpgradeManagerInformer { + return &dataEngineUpgradeManagerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + // Engines returns a EngineInformer. func (v *version) Engines() EngineInformer { return &engineInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} @@ -136,6 +145,11 @@ func (v *version) Nodes() NodeInformer { return &nodeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } +// NodeDataEngineUpgrades returns a NodeDataEngineUpgradeInformer. +func (v *version) NodeDataEngineUpgrades() NodeDataEngineUpgradeInformer { + return &nodeDataEngineUpgradeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + // Orphans returns a OrphanInformer. func (v *version) Orphans() OrphanInformer { return &orphanInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} diff --git a/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/nodedataengineupgrade.go b/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/nodedataengineupgrade.go new file mode 100644 index 0000000000..1f50324f27 --- /dev/null +++ b/k8s/pkg/client/informers/externalversions/longhorn/v1beta2/nodedataengineupgrade.go @@ -0,0 +1,90 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta2 + +import ( + "context" + time "time" + + longhornv1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + versioned "github.com/longhorn/longhorn-manager/k8s/pkg/client/clientset/versioned" + internalinterfaces "github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/internalinterfaces" + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/client/listers/longhorn/v1beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// NodeDataEngineUpgradeInformer provides access to a shared informer and lister for +// NodeDataEngineUpgrades. +type NodeDataEngineUpgradeInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta2.NodeDataEngineUpgradeLister +} + +type nodeDataEngineUpgradeInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewNodeDataEngineUpgradeInformer constructs a new informer for NodeDataEngineUpgrade type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewNodeDataEngineUpgradeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNodeDataEngineUpgradeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredNodeDataEngineUpgradeInformer constructs a new informer for NodeDataEngineUpgrade type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredNodeDataEngineUpgradeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.LonghornV1beta2().NodeDataEngineUpgrades(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.LonghornV1beta2().NodeDataEngineUpgrades(namespace).Watch(context.TODO(), options) + }, + }, + &longhornv1beta2.NodeDataEngineUpgrade{}, + resyncPeriod, + indexers, + ) +} + +func (f *nodeDataEngineUpgradeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNodeDataEngineUpgradeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *nodeDataEngineUpgradeInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&longhornv1beta2.NodeDataEngineUpgrade{}, f.defaultInformer) +} + +func (f *nodeDataEngineUpgradeInformer) Lister() v1beta2.NodeDataEngineUpgradeLister { + return v1beta2.NewNodeDataEngineUpgradeLister(f.Informer().GetIndexer()) +} diff --git a/k8s/pkg/client/listers/longhorn/v1beta2/dataengineupgrademanager.go b/k8s/pkg/client/listers/longhorn/v1beta2/dataengineupgrademanager.go new file mode 100644 index 0000000000..7c95a28b8b --- /dev/null +++ b/k8s/pkg/client/listers/longhorn/v1beta2/dataengineupgrademanager.go @@ -0,0 +1,94 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// DataEngineUpgradeManagerLister helps list DataEngineUpgradeManagers. +type DataEngineUpgradeManagerLister interface { + // List lists all DataEngineUpgradeManagers in the indexer. + List(selector labels.Selector) (ret []*v1beta2.DataEngineUpgradeManager, err error) + // DataEngineUpgradeManagers returns an object that can list and get DataEngineUpgradeManagers. + DataEngineUpgradeManagers(namespace string) DataEngineUpgradeManagerNamespaceLister + DataEngineUpgradeManagerListerExpansion +} + +// dataEngineUpgradeManagerLister implements the DataEngineUpgradeManagerLister interface. +type dataEngineUpgradeManagerLister struct { + indexer cache.Indexer +} + +// NewDataEngineUpgradeManagerLister returns a new DataEngineUpgradeManagerLister. +func NewDataEngineUpgradeManagerLister(indexer cache.Indexer) DataEngineUpgradeManagerLister { + return &dataEngineUpgradeManagerLister{indexer: indexer} +} + +// List lists all DataEngineUpgradeManagers in the indexer. +func (s *dataEngineUpgradeManagerLister) List(selector labels.Selector) (ret []*v1beta2.DataEngineUpgradeManager, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta2.DataEngineUpgradeManager)) + }) + return ret, err +} + +// DataEngineUpgradeManagers returns an object that can list and get DataEngineUpgradeManagers. +func (s *dataEngineUpgradeManagerLister) DataEngineUpgradeManagers(namespace string) DataEngineUpgradeManagerNamespaceLister { + return dataEngineUpgradeManagerNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// DataEngineUpgradeManagerNamespaceLister helps list and get DataEngineUpgradeManagers. +type DataEngineUpgradeManagerNamespaceLister interface { + // List lists all DataEngineUpgradeManagers in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta2.DataEngineUpgradeManager, err error) + // Get retrieves the DataEngineUpgradeManager from the indexer for a given namespace and name. + Get(name string) (*v1beta2.DataEngineUpgradeManager, error) + DataEngineUpgradeManagerNamespaceListerExpansion +} + +// dataEngineUpgradeManagerNamespaceLister implements the DataEngineUpgradeManagerNamespaceLister +// interface. +type dataEngineUpgradeManagerNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all DataEngineUpgradeManagers in the indexer for a given namespace. +func (s dataEngineUpgradeManagerNamespaceLister) List(selector labels.Selector) (ret []*v1beta2.DataEngineUpgradeManager, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta2.DataEngineUpgradeManager)) + }) + return ret, err +} + +// Get retrieves the DataEngineUpgradeManager from the indexer for a given namespace and name. +func (s dataEngineUpgradeManagerNamespaceLister) Get(name string) (*v1beta2.DataEngineUpgradeManager, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta2.Resource("dataengineupgrademanager"), name) + } + return obj.(*v1beta2.DataEngineUpgradeManager), nil +} diff --git a/k8s/pkg/client/listers/longhorn/v1beta2/expansion_generated.go b/k8s/pkg/client/listers/longhorn/v1beta2/expansion_generated.go index 970afc8374..9e7ef29889 100644 --- a/k8s/pkg/client/listers/longhorn/v1beta2/expansion_generated.go +++ b/k8s/pkg/client/listers/longhorn/v1beta2/expansion_generated.go @@ -74,6 +74,14 @@ type BackupVolumeListerExpansion interface{} // BackupVolumeNamespaceLister. type BackupVolumeNamespaceListerExpansion interface{} +// DataEngineUpgradeManagerListerExpansion allows custom methods to be added to +// DataEngineUpgradeManagerLister. +type DataEngineUpgradeManagerListerExpansion interface{} + +// DataEngineUpgradeManagerNamespaceListerExpansion allows custom methods to be added to +// DataEngineUpgradeManagerNamespaceLister. +type DataEngineUpgradeManagerNamespaceListerExpansion interface{} + // EngineListerExpansion allows custom methods to be added to // EngineLister. type EngineListerExpansion interface{} @@ -106,6 +114,14 @@ type NodeListerExpansion interface{} // NodeNamespaceLister. type NodeNamespaceListerExpansion interface{} +// NodeDataEngineUpgradeListerExpansion allows custom methods to be added to +// NodeDataEngineUpgradeLister. +type NodeDataEngineUpgradeListerExpansion interface{} + +// NodeDataEngineUpgradeNamespaceListerExpansion allows custom methods to be added to +// NodeDataEngineUpgradeNamespaceLister. +type NodeDataEngineUpgradeNamespaceListerExpansion interface{} + // OrphanListerExpansion allows custom methods to be added to // OrphanLister. type OrphanListerExpansion interface{} diff --git a/k8s/pkg/client/listers/longhorn/v1beta2/nodedataengineupgrade.go b/k8s/pkg/client/listers/longhorn/v1beta2/nodedataengineupgrade.go new file mode 100644 index 0000000000..cb58e40e2f --- /dev/null +++ b/k8s/pkg/client/listers/longhorn/v1beta2/nodedataengineupgrade.go @@ -0,0 +1,94 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// NodeDataEngineUpgradeLister helps list NodeDataEngineUpgrades. +type NodeDataEngineUpgradeLister interface { + // List lists all NodeDataEngineUpgrades in the indexer. + List(selector labels.Selector) (ret []*v1beta2.NodeDataEngineUpgrade, err error) + // NodeDataEngineUpgrades returns an object that can list and get NodeDataEngineUpgrades. + NodeDataEngineUpgrades(namespace string) NodeDataEngineUpgradeNamespaceLister + NodeDataEngineUpgradeListerExpansion +} + +// nodeDataEngineUpgradeLister implements the NodeDataEngineUpgradeLister interface. +type nodeDataEngineUpgradeLister struct { + indexer cache.Indexer +} + +// NewNodeDataEngineUpgradeLister returns a new NodeDataEngineUpgradeLister. +func NewNodeDataEngineUpgradeLister(indexer cache.Indexer) NodeDataEngineUpgradeLister { + return &nodeDataEngineUpgradeLister{indexer: indexer} +} + +// List lists all NodeDataEngineUpgrades in the indexer. +func (s *nodeDataEngineUpgradeLister) List(selector labels.Selector) (ret []*v1beta2.NodeDataEngineUpgrade, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta2.NodeDataEngineUpgrade)) + }) + return ret, err +} + +// NodeDataEngineUpgrades returns an object that can list and get NodeDataEngineUpgrades. +func (s *nodeDataEngineUpgradeLister) NodeDataEngineUpgrades(namespace string) NodeDataEngineUpgradeNamespaceLister { + return nodeDataEngineUpgradeNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// NodeDataEngineUpgradeNamespaceLister helps list and get NodeDataEngineUpgrades. +type NodeDataEngineUpgradeNamespaceLister interface { + // List lists all NodeDataEngineUpgrades in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta2.NodeDataEngineUpgrade, err error) + // Get retrieves the NodeDataEngineUpgrade from the indexer for a given namespace and name. + Get(name string) (*v1beta2.NodeDataEngineUpgrade, error) + NodeDataEngineUpgradeNamespaceListerExpansion +} + +// nodeDataEngineUpgradeNamespaceLister implements the NodeDataEngineUpgradeNamespaceLister +// interface. +type nodeDataEngineUpgradeNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all NodeDataEngineUpgrades in the indexer for a given namespace. +func (s nodeDataEngineUpgradeNamespaceLister) List(selector labels.Selector) (ret []*v1beta2.NodeDataEngineUpgrade, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta2.NodeDataEngineUpgrade)) + }) + return ret, err +} + +// Get retrieves the NodeDataEngineUpgrade from the indexer for a given namespace and name. +func (s nodeDataEngineUpgradeNamespaceLister) Get(name string) (*v1beta2.NodeDataEngineUpgrade, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta2.Resource("nodedataengineupgrade"), name) + } + return obj.(*v1beta2.NodeDataEngineUpgrade), nil +} diff --git a/scheduler/replica_scheduler.go b/scheduler/replica_scheduler.go index 37241d90c2..e5fce8eeed 100644 --- a/scheduler/replica_scheduler.go +++ b/scheduler/replica_scheduler.go @@ -92,7 +92,7 @@ func (rcs *ReplicaScheduler) ScheduleReplica(replica *longhorn.Replica, replicas // - MultiError for non-fatal errors encountered. // - Error for any fatal errors encountered. func (rcs *ReplicaScheduler) FindDiskCandidates(replica *longhorn.Replica, replicas map[string]*longhorn.Replica, volume *longhorn.Volume) (map[string]*Disk, util.MultiError, error) { - nodesInfo, err := rcs.getNodeInfo() + nodesInfo, err := rcs.getNodeInfo(volume.Spec.DataEngine) if err != nil { return nil, nil, err } @@ -489,7 +489,7 @@ func filterDisksWithMatchingReplicas(disks map[string]*Disk, replicas map[string return disks } -func (rcs *ReplicaScheduler) getNodeInfo() (map[string]*longhorn.Node, error) { +func (rcs *ReplicaScheduler) getNodeInfo(dataEngine longhorn.DataEngineType) (map[string]*longhorn.Node, error) { nodeInfo, err := rcs.ds.ListNodes() if err != nil { return nil, err @@ -511,6 +511,14 @@ func (rcs *ReplicaScheduler) getNodeInfo() (map[string]*longhorn.Node, error) { if nodeSchedulableCondition.Status != longhorn.ConditionStatusTrue { continue } + + if types.IsDataEngineV2(dataEngine) { + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + if dataEngineUpgradeRequestedCondition.Status != longhorn.ConditionStatusTrue { + continue + } + } + if !node.Spec.AllowScheduling { continue } @@ -573,7 +581,7 @@ func (rcs *ReplicaScheduler) CheckAndReuseFailedReplica(replicas map[string]*lon replicas = filterActiveReplicas(replicas) - allNodesInfo, err := rcs.getNodeInfo() + allNodesInfo, err := rcs.getNodeInfo(volume.Spec.DataEngine) if err != nil { return nil, err } @@ -741,7 +749,7 @@ func (rcs *ReplicaScheduler) isFailedReplicaReusable(r *longhorn.Replica, v *lon return false, nil } - im, err := rcs.ds.GetInstanceManagerByInstanceRO(r) + im, err := rcs.ds.GetInstanceManagerByInstanceRO(r, false) if err != nil { logrus.Errorf("Failed to get instance manager when checking replica %v is reusable: %v", r.Name, err) return false, nil diff --git a/types/types.go b/types/types.go index 6ab849880e..66c2db5e0a 100644 --- a/types/types.go +++ b/types/types.go @@ -23,23 +23,25 @@ import ( ) const ( - LonghornKindNode = "Node" - LonghornKindVolume = "Volume" - LonghornKindVolumeAttachment = "VolumeAttachment" - LonghornKindEngine = "Engine" - LonghornKindReplica = "Replica" - LonghornKindBackup = "Backup" - LonghornKindSnapshot = "Snapshot" - LonghornKindEngineImage = "EngineImage" - LonghornKindInstanceManager = "InstanceManager" - LonghornKindShareManager = "ShareManager" - LonghornKindBackingImage = "BackingImage" - LonghornKindBackingImageManager = "BackingImageManager" - LonghornKindRecurringJob = "RecurringJob" - LonghornKindSetting = "Setting" - LonghornKindSupportBundle = "SupportBundle" - LonghornKindSystemRestore = "SystemRestore" - LonghornKindOrphan = "Orphan" + LonghornKindNode = "Node" + LonghornKindVolume = "Volume" + LonghornKindVolumeAttachment = "VolumeAttachment" + LonghornKindEngine = "Engine" + LonghornKindReplica = "Replica" + LonghornKindBackup = "Backup" + LonghornKindSnapshot = "Snapshot" + LonghornKindEngineImage = "EngineImage" + LonghornKindInstanceManager = "InstanceManager" + LonghornKindShareManager = "ShareManager" + LonghornKindBackingImage = "BackingImage" + LonghornKindBackingImageManager = "BackingImageManager" + LonghornKindRecurringJob = "RecurringJob" + LonghornKindSetting = "Setting" + LonghornKindSupportBundle = "SupportBundle" + LonghornKindSystemRestore = "SystemRestore" + LonghornKindOrphan = "Orphan" + LonghornKindDataEngineUpgradeManager = "DataEngineUpgradeManager" + LonghornKindNodeDataEngineUpgrade = "NodeDataEngineUpgrade" LonghornKindBackingImageDataSource = "BackingImageDataSource" @@ -158,6 +160,8 @@ const ( LonghornLabelManagedBy = "managed-by" LonghornLabelSnapshotForCloningVolume = "for-cloning-volume" LonghornLabelBackingImageDataSource = "backing-image-data-source" + LonghornLabelDataEngineUpgradeManager = "data-engine-upgrade-manager" + LonghornLabelNodeDataEngineUpgrade = "node-data-engine-upgrade" LonghornLabelBackupVolume = "backup-volume" LonghornLabelRecurringJob = "job" LonghornLabelRecurringJobGroup = "job-group" @@ -186,6 +190,7 @@ const ( LonghornLabelExportFromVolume = "export-from-volume" LonghornLabelSnapshotForExportingBackingImage = "for-exporting-backing-image" + LonghornLabelSnapshotForDataEngineLiveUpgrade = "for-data-engine-live-upgrade" KubernetesFailureDomainRegionLabelKey = "failure-domain.beta.kubernetes.io/region" KubernetesFailureDomainZoneLabelKey = "failure-domain.beta.kubernetes.io/zone" @@ -1269,3 +1274,25 @@ func MergeStringMaps(baseMap, overwriteMap map[string]string) map[string]string } return result } + +func GenerateNodeDataEngineUpgradeName(prefix, nodeID string) string { + return prefix + "-" + nodeID + "-" + util.RandomID() +} + +func GetDataEngineUpgradeManagerLabels() map[string]string { + labels := GetBaseLabelsForSystemManagedComponent() + labels[GetLonghornLabelComponentKey()] = LonghornLabelDataEngineUpgradeManager + return labels +} + +func GetNodeDataEngineUpgradeLabels(upgradeManagerID, nodeID string) map[string]string { + labels := GetBaseLabelsForSystemManagedComponent() + labels[GetLonghornLabelComponentKey()] = LonghornLabelNodeDataEngineUpgrade + if upgradeManagerID != "" { + labels[GetLonghornLabelKey(LonghornLabelDataEngineUpgradeManager)] = upgradeManagerID + } + if nodeID != "" { + labels[GetLonghornLabelKey(LonghornLabelNode)] = nodeID + } + return labels +} diff --git a/vendor/github.com/jrhouston/k8slock/LICENSE b/vendor/github.com/jrhouston/k8slock/LICENSE new file mode 100644 index 0000000000..ea9b7b90db --- /dev/null +++ b/vendor/github.com/jrhouston/k8slock/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2020 John Houston + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/jrhouston/k8slock/README.md b/vendor/github.com/jrhouston/k8slock/README.md new file mode 100644 index 0000000000..b3b31f2aad --- /dev/null +++ b/vendor/github.com/jrhouston/k8slock/README.md @@ -0,0 +1,78 @@ +# k8slock [![Godoc](https://godoc.org/github.com/jrhouston/k8slock?status.svg)](https://godoc.org/github.com/jrhouston/k8slock) [![Go Report Card](https://goreportcard.com/badge/github.com/jrhouston/k8slock)](https://goreportcard.com/report/github.com/jrhouston/k8slock) + +k8slock is a Go module that makes it easy to do distributed locking using the [Lease](https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/lease-v1/) resource from the Kubernetes coordination API. + +If you want to use Kubernetes to create a simple distributed lock, this module is for you. + +This module implements the [sync.Locker](https://golang.org/pkg/sync/#Locker) interface using the `Lock()` and `Unlock()` functions. + +This module also supports using contexts via the `LockContext()` and `UnlockContext()` functions. + + +## Basic Usage + +```go +package main + +import "github.com/jrhouston/k8slock" + +func main() { + locker, err := k8slock.NewLocker("example-lock") + if err != nil { + panic(err) + } + + locker.Lock() + // do some work + locker.Unlock() +} +``` + +## Basic Usage – Context + +```go +package main + +import ( + "context" + "github.com/jrhouston/k8slock" +) + +func main() { + locker, err := k8slock.NewLocker("example-lock") + if err != nil { + panic(err) + } + + ctx := context.Background() + if err := locker.LockContext(ctx); err != nil { + fmt.Println("Error trying to lock", err) + } + + // do some work + + if err := locker.Unlock(ctx); err != nil { + fmt.Println("Error trying to unlock", err) + } +} +``` + +# Locker Options + +The locker can be configured using the following [functional options](https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis): + +| Option | Details | +|---|---| +| `TTL(duration)` | The duration until the lock expires and can be forcibly claimed. By default the lock can be held infinitely. | +| `RetryWaitDuration(duration)` | The duration to wait before retrying after failing to acquired the lock. Default: 1 second. | +| `InClusterConfig()` | Get the kubernetes client config from inside a pod. Defaults to a clientset using the local kubeconfig. | +| `Clientset(kubernetes.Interface)` | Configure a custom Kubernetes Clientset. Defaults to a clientset using the local kubeconfig. | +| `Namespace(string)` | The kubernetes namespace to store the Lease resource. Defaults to "default". | +| `ClientID(string)` | A unique ID for the client that is trying to obtain the lock. Defaults to a random UUID. | +| `CreateLease(bool)` | Create a Lease resource if it does not already exist. Defaults to `true`. | + +e.g: + +```go +locker, err := k8slock.NewLocker("example-lock", k8slock.Namespace("locks"), k8slock.ClientID("client-0")) +``` diff --git a/vendor/github.com/jrhouston/k8slock/locker.go b/vendor/github.com/jrhouston/k8slock/locker.go new file mode 100644 index 0000000000..ec05b41a6f --- /dev/null +++ b/vendor/github.com/jrhouston/k8slock/locker.go @@ -0,0 +1,297 @@ +package k8slock + +import ( + "context" + "fmt" + "time" + + "github.com/google/uuid" + + k8serrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + "k8s.io/utils/pointer" + + coordinationv1 "k8s.io/api/coordination/v1" + coordinationclientv1 "k8s.io/client-go/kubernetes/typed/coordination/v1" +) + +// Locker implements the Locker interface using the kubernetes Lease resource +type Locker struct { + clientset kubernetes.Interface + leaseClient coordinationclientv1.LeaseInterface + namespace string + name string + clientID string + retryWait time.Duration + ttl time.Duration + skipLeaseCreation bool +} + +type lockerOption func(*Locker) error + +// Namespace is the namespace used to store the Lease +func Namespace(ns string) lockerOption { + return func(l *Locker) error { + l.namespace = ns + return nil + } +} + +// InClusterConfig configures the Kubernetes client assuming it is running inside a pod +func InClusterConfig() lockerOption { + return func(l *Locker) error { + c, err := inClusterClientset() + if err != nil { + return err + } + l.clientset = c + return nil + } +} + +// Clientset configures a custom Kubernetes Clientset +func Clientset(c kubernetes.Interface) lockerOption { + return func(l *Locker) error { + l.clientset = c + return nil + } +} + +// RetryWaitDuration is the duration the Lock function will wait before retrying +// after failing to acquire the lock +func RetryWaitDuration(d time.Duration) lockerOption { + return func(l *Locker) error { + l.retryWait = d + return nil + } +} + +// ClientID is a unique ID for the client acquiring the lock +func ClientID(id string) lockerOption { + return func(l *Locker) error { + l.clientID = id + return nil + } +} + +// TTL is the duration a lock can exist before it can be forcibly acquired +// by another client +func TTL(ttl time.Duration) lockerOption { + return func(l *Locker) error { + l.ttl = ttl + return nil + } +} + +// CreateLease specifies whether to create lease when it's absent. +func CreateLease(create bool) lockerOption { + return func(l *Locker) error { + l.skipLeaseCreation = !create + return nil + } +} + +// NewLocker creates a Locker +func NewLocker(name string, options ...lockerOption) (*Locker, error) { + locker := &Locker{ + name: name, + } + + for _, opt := range options { + err := opt(locker) + if err != nil { + return nil, fmt.Errorf("locker options: %v", err) + } + } + + if locker.namespace == "" { + locker.namespace = "default" + } + + if locker.clientID == "" { + locker.clientID = uuid.NewString() + } + + if locker.retryWait == 0 { + locker.retryWait = time.Duration(1) * time.Second + } + + if locker.clientset == nil { + c, err := localClientset() + if err != nil { + return nil, err + } + locker.clientset = c + } + + leaseClient := locker.clientset.CoordinationV1().Leases(locker.namespace) + + if !locker.skipLeaseCreation { + // create the Lease if it doesn't exist + _, err := leaseClient.Get(context.TODO(), name, metav1.GetOptions{}) + if err != nil { + if !k8serrors.IsNotFound(err) { + return nil, err + } + + lease := &coordinationv1.Lease{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + Spec: coordinationv1.LeaseSpec{ + LeaseTransitions: pointer.Int32(0), + }, + } + + _, err := leaseClient.Create(context.TODO(), lease, metav1.CreateOptions{}) + if err != nil { + return nil, err + } + } + } + + locker.leaseClient = leaseClient + return locker, nil +} + +func (l *Locker) lock(ctx context.Context) error { + // block until we get a lock + for { + // get the Lease + lease, err := l.leaseClient.Get(ctx, l.name, metav1.GetOptions{}) + if err != nil { + return fmt.Errorf("could not get Lease resource for lock: %w", err) + } + + if lease.Spec.HolderIdentity != nil { + if lease.Spec.LeaseDurationSeconds == nil { + // The lock is already held and has no expiry + time.Sleep(l.retryWait) + continue + } + + acquireTime := lease.Spec.AcquireTime.Time + leaseDuration := time.Duration(*lease.Spec.LeaseDurationSeconds) * time.Second + + if acquireTime.Add(leaseDuration).After(time.Now()) { + // The lock is already held and hasn't expired yet + time.Sleep(l.retryWait) + continue + } + } + + // nobody holds the lock, try and lock it + lease.Spec.HolderIdentity = pointer.String(l.clientID) + if lease.Spec.LeaseTransitions != nil { + lease.Spec.LeaseTransitions = pointer.Int32((*lease.Spec.LeaseTransitions) + 1) + } else { + lease.Spec.LeaseTransitions = pointer.Int32((*lease.Spec.LeaseTransitions) + 1) + } + lease.Spec.AcquireTime = &metav1.MicroTime{ + Time: time.Now(), + } + if l.ttl.Seconds() > 0 { + lease.Spec.LeaseDurationSeconds = pointer.Int32(int32(l.ttl.Seconds())) + } + _, err = l.leaseClient.Update(ctx, lease, metav1.UpdateOptions{}) + if err == nil { + // we got the lock, break the loop + break + } + + if !k8serrors.IsConflict(err) { + // if the error isn't a conflict then something went horribly wrong + return fmt.Errorf("lock: error when trying to update Lease: %w", err) + } + + // Another client beat us to the lock + time.Sleep(l.retryWait) + } + + return nil +} + +func (l *Locker) unlock(ctx context.Context) error { + lease, err := l.leaseClient.Get(ctx, l.name, metav1.GetOptions{}) + if err != nil { + return fmt.Errorf("could not get Lease resource for lock: %w", err) + } + + // the holder has to have a value and has to be our ID for us to be able to unlock + if lease.Spec.HolderIdentity == nil { + return fmt.Errorf("unlock: no lock holder value") + } + + if *lease.Spec.HolderIdentity != l.clientID { + return fmt.Errorf("unlock: not the lock holder (%v != %v)", *lease.Spec.HolderIdentity, l.clientID) + } + + lease.Spec.HolderIdentity = nil + lease.Spec.AcquireTime = nil + lease.Spec.LeaseDurationSeconds = nil + _, err = l.leaseClient.Update(ctx, lease, metav1.UpdateOptions{}) + if err != nil { + return fmt.Errorf("unlock: error when trying to update Lease: %w", err) + } + + return nil +} + +// Lock will block until the client is the holder of the Lease resource +func (l *Locker) Lock() { + err := l.lock(context.Background()) + if err != nil { + panic(err) + } +} + +// Unlock will remove the client as the holder of the Lease resource +func (l *Locker) Unlock() { + err := l.unlock(context.Background()) + if err != nil { + panic(err) + } +} + +// LockContext will block until the client is the holder of the Lease resource +func (l *Locker) LockContext(ctx context.Context) error { + return l.lock(ctx) +} + +// UnlockContext will remove the client as the holder of the Lease resource +func (l *Locker) UnlockContext(ctx context.Context) error { + return l.unlock(ctx) +} + +func localClientset() (kubernetes.Interface, error) { + rules := clientcmd.NewDefaultClientConfigLoadingRules() + overrides := &clientcmd.ConfigOverrides{} + config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(rules, overrides).ClientConfig() + if err != nil { + return nil, err + } + + if config == nil { + config = &rest.Config{} + } + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + return nil, err + } + return clientset, nil +} + +func inClusterClientset() (kubernetes.Interface, error) { + config, err := rest.InClusterConfig() + if err != nil { + return nil, err + } + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + return nil, err + } + return clientset, nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 8eb297b87c..45659871c2 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -200,6 +200,9 @@ github.com/jinzhu/copier # github.com/josharian/intern v1.0.0 ## explicit; go 1.5 github.com/josharian/intern +# github.com/jrhouston/k8slock v0.2.0 +## explicit; go 1.20 +github.com/jrhouston/k8slock # github.com/json-iterator/go v1.1.12 ## explicit; go 1.12 github.com/json-iterator/go @@ -274,7 +277,7 @@ github.com/longhorn/longhorn-engine/pkg/meta github.com/longhorn/longhorn-engine/pkg/replica/client github.com/longhorn/longhorn-engine/pkg/types github.com/longhorn/longhorn-engine/pkg/util -# github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215 +# github.com/longhorn/longhorn-instance-manager v1.8.0-dev-20241215.0.20241215041917-483e7a8c95d3 ## explicit; go 1.23.0 github.com/longhorn/longhorn-instance-manager/pkg/api github.com/longhorn/longhorn-instance-manager/pkg/client diff --git a/webhook/resources/dataengineupgrademanager/mutator.go b/webhook/resources/dataengineupgrademanager/mutator.go new file mode 100644 index 0000000000..1729ab48c7 --- /dev/null +++ b/webhook/resources/dataengineupgrademanager/mutator.go @@ -0,0 +1,74 @@ +package dataengineupgrademanager + +import ( + "fmt" + + "github.com/pkg/errors" + + "k8s.io/apimachinery/pkg/runtime" + + admissionregv1 "k8s.io/api/admissionregistration/v1" + + "github.com/longhorn/longhorn-manager/datastore" + "github.com/longhorn/longhorn-manager/types" + "github.com/longhorn/longhorn-manager/webhook/admission" + "github.com/longhorn/longhorn-manager/webhook/common" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + werror "github.com/longhorn/longhorn-manager/webhook/error" +) + +type dataEngineUpgradeManagerMutator struct { + admission.DefaultMutator + ds *datastore.DataStore +} + +func NewMutator(ds *datastore.DataStore) admission.Mutator { + return &dataEngineUpgradeManagerMutator{ds: ds} +} + +func (u *dataEngineUpgradeManagerMutator) Resource() admission.Resource { + return admission.Resource{ + Name: "dataengineupgrademanagers", + Scope: admissionregv1.NamespacedScope, + APIGroup: longhorn.SchemeGroupVersion.Group, + APIVersion: longhorn.SchemeGroupVersion.Version, + ObjectType: &longhorn.DataEngineUpgradeManager{}, + OperationTypes: []admissionregv1.OperationType{ + admissionregv1.Create, + }, + } +} + +func (u *dataEngineUpgradeManagerMutator) Create(request *admission.Request, newObj runtime.Object) (admission.PatchOps, error) { + return mutate(newObj) +} + +func mutate(newObj runtime.Object) (admission.PatchOps, error) { + upgradeManager, ok := newObj.(*longhorn.DataEngineUpgradeManager) + if !ok { + return nil, werror.NewInvalidError(fmt.Sprintf("%v is not a *longhorn.DataEngineUpgradeManager", newObj), "") + } + var patchOps admission.PatchOps + + longhornLabels := types.GetDataEngineUpgradeManagerLabels() + patchOp, err := common.GetLonghornLabelsPatchOp(upgradeManager, longhornLabels, nil) + if err != nil { + err := errors.Wrapf(err, "failed to get label patch for upgradeManager %v", upgradeManager.Name) + return nil, werror.NewInvalidError(err.Error(), "") + } + if patchOp != "" { + patchOps = append(patchOps, patchOp) + } + + patchOp, err = common.GetLonghornFinalizerPatchOpIfNeeded(upgradeManager) + if err != nil { + err := errors.Wrapf(err, "failed to get finalizer patch for dataEngineUpgradeManager %v", upgradeManager.Name) + return nil, werror.NewInvalidError(err.Error(), "") + } + if patchOp != "" { + patchOps = append(patchOps, patchOp) + } + + return patchOps, nil +} diff --git a/webhook/resources/dataengineupgrademanager/validator.go b/webhook/resources/dataengineupgrademanager/validator.go new file mode 100644 index 0000000000..f76ce423b8 --- /dev/null +++ b/webhook/resources/dataengineupgrademanager/validator.go @@ -0,0 +1,135 @@ +package dataengineupgrademanager + +import ( + "context" + "fmt" + "reflect" + "time" + + "github.com/jrhouston/k8slock" + "github.com/pkg/errors" + "k8s.io/apimachinery/pkg/runtime" + + admissionregv1 "k8s.io/api/admissionregistration/v1" + + "github.com/longhorn/longhorn-manager/datastore" + "github.com/longhorn/longhorn-manager/webhook/admission" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + werror "github.com/longhorn/longhorn-manager/webhook/error" +) + +type dataEngineUpgradeManagerValidator struct { + admission.DefaultValidator + ds *datastore.DataStore + locker *k8slock.Locker +} + +func NewValidator(ds *datastore.DataStore, locker *k8slock.Locker) admission.Validator { + return &dataEngineUpgradeManagerValidator{ + ds: ds, + locker: locker, + } +} + +func (u *dataEngineUpgradeManagerValidator) Resource() admission.Resource { + return admission.Resource{ + Name: "dataengineupgrademanagers", + Scope: admissionregv1.NamespacedScope, + APIGroup: longhorn.SchemeGroupVersion.Group, + APIVersion: longhorn.SchemeGroupVersion.Version, + ObjectType: &longhorn.DataEngineUpgradeManager{}, + OperationTypes: []admissionregv1.OperationType{ + admissionregv1.Create, + admissionregv1.Update, + }, + } +} + +func (u *dataEngineUpgradeManagerValidator) areAllDataEngineUpgradeManagerStopped() (bool, error) { + upgradeManagers, err := u.ds.ListDataEngineUpgradeManagers() + if err != nil { + return false, err + } + for _, upgradeManager := range upgradeManagers { + if upgradeManager.Status.State != longhorn.UpgradeStateCompleted && + upgradeManager.Status.State != longhorn.UpgradeStateError { + return false, nil + } + } + return true, nil +} + +func (u *dataEngineUpgradeManagerValidator) Create(request *admission.Request, newObj runtime.Object) error { + upgradeManager, ok := newObj.(*longhorn.DataEngineUpgradeManager) + if !ok { + return werror.NewInvalidError(fmt.Sprintf("%v is not a *longhorn.DataEngineUpgradeManager", newObj), "") + } + + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + defer cancel() + + err := u.locker.LockContext(ctx) + if err != nil { + err = errors.Wrapf(err, "failed to lock for dataEngineUpgradeManager %v", upgradeManager.Name) + return werror.NewInternalError(err.Error()) + } + defer func() { + err = u.locker.UnlockContext(ctx) + if err != nil { + err = errors.Wrapf(err, "failed to unlock for dataEngineUpgradeManager %v", upgradeManager.Name) + } + }() + + allStopped, err := u.areAllDataEngineUpgradeManagerStopped() + if err != nil { + err = errors.Wrapf(err, "failed to check if all dataEngineUpgradeManager are stopped") + return werror.NewInternalError(err.Error()) + } + if !allStopped { + err = fmt.Errorf("another dataEngineUpgradeManager is in progress") + return werror.NewBadRequest(err.Error()) + } + + nodes, err := u.ds.ListNodes() + if err != nil { + return werror.NewInternalError(err.Error()) + } + if len(nodes) < 2 { + err = fmt.Errorf("single-node cluster is not supported for data engine live upgrade") + return werror.NewInvalidError(err.Error(), "") + } + + if upgradeManager.Spec.DataEngine != longhorn.DataEngineTypeV2 { + err := fmt.Errorf("data engine %v is not supported for data engine live upgrade", upgradeManager.Spec.DataEngine) + return werror.NewInvalidError(err.Error(), "spec.dataEngine") + } + + return nil +} + +func (u *dataEngineUpgradeManagerValidator) Update(request *admission.Request, oldObj runtime.Object, newObj runtime.Object) error { + oldUpgradeManager, ok := oldObj.(*longhorn.DataEngineUpgradeManager) + if !ok { + return werror.NewInvalidError(fmt.Sprintf("%v is not a *longhorn.DataEngineUpgradeManager", oldObj), "") + } + newUpgradeManager, ok := newObj.(*longhorn.DataEngineUpgradeManager) + if !ok { + return werror.NewInvalidError(fmt.Sprintf("%v is not a *longhorn.DataEngineUpgradeManager", newObj), "") + } + + if newUpgradeManager.Spec.DataEngine != longhorn.DataEngineTypeV2 { + err := fmt.Errorf("data engine %v is not supported", newUpgradeManager.Spec.DataEngine) + return werror.NewInvalidError(err.Error(), "spec.dataEngine") + } + + if oldUpgradeManager.Spec.DataEngine != newUpgradeManager.Spec.DataEngine { + return werror.NewInvalidError("spec.dataEngine field is immutable", "spec.dataEngine") + } + + if !reflect.DeepEqual(oldUpgradeManager.Spec.Nodes, newUpgradeManager.Spec.Nodes) { + return werror.NewInvalidError("nodes field is immutable", "spec.nodes") + } + + return nil +} diff --git a/webhook/resources/nodedataengineupgrade/mutator.go b/webhook/resources/nodedataengineupgrade/mutator.go new file mode 100644 index 0000000000..ab6a07f1b9 --- /dev/null +++ b/webhook/resources/nodedataengineupgrade/mutator.go @@ -0,0 +1,78 @@ +package nodedataengineupgrade + +import ( + "fmt" + + "github.com/pkg/errors" + + "k8s.io/apimachinery/pkg/runtime" + + admissionregv1 "k8s.io/api/admissionregistration/v1" + + "github.com/longhorn/longhorn-manager/datastore" + "github.com/longhorn/longhorn-manager/types" + "github.com/longhorn/longhorn-manager/webhook/admission" + "github.com/longhorn/longhorn-manager/webhook/common" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + werror "github.com/longhorn/longhorn-manager/webhook/error" +) + +type nodeDataEngineUpgradeMutator struct { + admission.DefaultMutator + ds *datastore.DataStore +} + +func NewMutator(ds *datastore.DataStore) admission.Mutator { + return &nodeDataEngineUpgradeMutator{ds: ds} +} + +func (u *nodeDataEngineUpgradeMutator) Resource() admission.Resource { + return admission.Resource{ + Name: "nodedataengineupgrades", + Scope: admissionregv1.NamespacedScope, + APIGroup: longhorn.SchemeGroupVersion.Group, + APIVersion: longhorn.SchemeGroupVersion.Version, + ObjectType: &longhorn.NodeDataEngineUpgrade{}, + OperationTypes: []admissionregv1.OperationType{ + admissionregv1.Create, + }, + } +} + +func (u *nodeDataEngineUpgradeMutator) Create(request *admission.Request, newObj runtime.Object) (admission.PatchOps, error) { + if newObj == nil { + return nil, werror.NewInvalidError("newObj is nil", "") + } + + return mutate(newObj) +} + +func mutate(newObj runtime.Object) (admission.PatchOps, error) { + nodeUpgrade, ok := newObj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + return nil, werror.NewInvalidError(fmt.Sprintf("%v is not a *longhorn.NodeDataEngineUpgrade", newObj), "") + } + var patchOps admission.PatchOps + + longhornLabels := types.GetNodeDataEngineUpgradeLabels(nodeUpgrade.Spec.DataEngineUpgradeManager, nodeUpgrade.Spec.NodeID) + patchOp, err := common.GetLonghornLabelsPatchOp(nodeUpgrade, longhornLabels, nil) + if err != nil { + err := errors.Wrapf(err, "failed to get label patch for nodeUpgrade %v", nodeUpgrade.Name) + return nil, werror.NewInvalidError(err.Error(), "") + } + if patchOp != "" { + patchOps = append(patchOps, patchOp) + } + + patchOp, err = common.GetLonghornFinalizerPatchOpIfNeeded(nodeUpgrade) + if err != nil { + err := errors.Wrapf(err, "failed to get finalizer patch for nodeDataEngineUpgrade %v", nodeUpgrade.Name) + return nil, werror.NewInvalidError(err.Error(), "") + } + if patchOp != "" { + patchOps = append(patchOps, patchOp) + } + + return patchOps, nil +} diff --git a/webhook/resources/nodedataengineupgrade/validator.go b/webhook/resources/nodedataengineupgrade/validator.go new file mode 100644 index 0000000000..c0b0a68e8f --- /dev/null +++ b/webhook/resources/nodedataengineupgrade/validator.go @@ -0,0 +1,118 @@ +package nodedataengineupgrade + +import ( + "context" + "fmt" + "time" + + "github.com/jrhouston/k8slock" + "github.com/pkg/errors" + "k8s.io/apimachinery/pkg/runtime" + + admissionregv1 "k8s.io/api/admissionregistration/v1" + + "github.com/longhorn/longhorn-manager/datastore" + "github.com/longhorn/longhorn-manager/webhook/admission" + + longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2" + werror "github.com/longhorn/longhorn-manager/webhook/error" +) + +type nodeDataEngineUpgradeValidator struct { + admission.DefaultValidator + ds *datastore.DataStore + locker *k8slock.Locker +} + +func NewValidator(ds *datastore.DataStore, locker *k8slock.Locker) admission.Validator { + return &nodeDataEngineUpgradeValidator{ + ds: ds, + locker: locker, + } +} + +func (u *nodeDataEngineUpgradeValidator) Resource() admission.Resource { + return admission.Resource{ + Name: "nodedataengineupgrades", + Scope: admissionregv1.NamespacedScope, + APIGroup: longhorn.SchemeGroupVersion.Group, + APIVersion: longhorn.SchemeGroupVersion.Version, + ObjectType: &longhorn.NodeDataEngineUpgrade{}, + OperationTypes: []admissionregv1.OperationType{ + admissionregv1.Create, + admissionregv1.Update, + }, + } +} + +func (u *nodeDataEngineUpgradeValidator) Create(request *admission.Request, newObj runtime.Object) error { + nodeUpgrade, ok := newObj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + return werror.NewInvalidError("object is not a *longhorn.NodeDataEngineUpgrade", "") + } + + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + defer cancel() + + err := u.locker.LockContext(ctx) + if err != nil { + err = errors.Wrapf(err, "failed to lock for nodeDataEngineUpgrade %v", nodeUpgrade.Name) + return werror.NewInternalError(err.Error()) + } + defer func() { + err = u.locker.UnlockContext(ctx) + if err != nil { + err = errors.Wrapf(err, "failed to unlock for nodeDataEngineUpgrade %v", nodeUpgrade.Name) + } + }() + + if nodeUpgrade.Spec.NodeID == "" { + return werror.NewInvalidError("nodeID is required", "spec.nodeID") + } + + if nodeUpgrade.Spec.DataEngine != longhorn.DataEngineTypeV2 { + err := fmt.Errorf("data engine %v is not supported", nodeUpgrade.Spec.DataEngine) + return werror.NewInvalidError(err.Error(), "spec.dataEngine") + } + + if nodeUpgrade.Spec.InstanceManagerImage == "" { + err := fmt.Errorf("instanceManagerImage is required") + return werror.NewInvalidError(err.Error(), "spec.instanceManagerImage") + } + + if nodeUpgrade.Spec.DataEngineUpgradeManager == "" { + err := fmt.Errorf("dataEngineUpgradeManager is required") + return werror.NewInvalidError(err.Error(), "spec.dataEngineUpgradeManager") + } + + return nil +} + +func (u *nodeDataEngineUpgradeValidator) Update(request *admission.Request, oldObj runtime.Object, newObj runtime.Object) error { + oldNodeUpgrade, ok := oldObj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + return werror.NewInvalidError("old object is not a *longhorn.NodeDataEngineUpgrade", "") + } + newNodeUpgrade, ok := newObj.(*longhorn.NodeDataEngineUpgrade) + if !ok { + return werror.NewInvalidError("new object is not a *longhorn.NodeDataEngineUpgrade", "") + } + + if oldNodeUpgrade.Spec.NodeID != newNodeUpgrade.Spec.NodeID { + return werror.NewInvalidError("nodeID field is immutable", "spec.nodeID") + } + + if oldNodeUpgrade.Spec.DataEngine != newNodeUpgrade.Spec.DataEngine { + return werror.NewInvalidError("dataEngine field is immutable", "spec.dataEngine") + } + + if oldNodeUpgrade.Spec.InstanceManagerImage != newNodeUpgrade.Spec.InstanceManagerImage { + return werror.NewInvalidError("instanceManagerImage field is immutable", "spec.instanceManagerImage") + } + + if oldNodeUpgrade.Spec.DataEngineUpgradeManager != newNodeUpgrade.Spec.DataEngineUpgradeManager { + return werror.NewInvalidError("dataEngineUpgradeManager field is immutable", "spec.dataEngineUpgradeManager") + } + + return nil +} diff --git a/webhook/resources/volume/validator.go b/webhook/resources/volume/validator.go index b476ba2998..228f4929fd 100644 --- a/webhook/resources/volume/validator.go +++ b/webhook/resources/volume/validator.go @@ -105,7 +105,7 @@ func (v *volumeValidator) Create(request *admission.Request, newObj runtime.Obje } if volume.Spec.Image == "" { - return werror.NewInvalidError("BUG: Invalid empty Setting.EngineImage", "") + return werror.NewInvalidError("BUG: Invalid empty Setting.EngineImage", "spec.image") } if !volume.Spec.Standby { @@ -132,8 +132,7 @@ func (v *volumeValidator) Create(request *admission.Request, newObj runtime.Obje return werror.NewInvalidError(err.Error(), "") } - err := wcommon.ValidateRequiredDataEngineEnabled(v.ds, volume.Spec.DataEngine) - if err != nil { + if err := wcommon.ValidateRequiredDataEngineEnabled(v.ds, volume.Spec.DataEngine); err != nil { return err } @@ -146,19 +145,41 @@ func (v *volumeValidator) Create(request *admission.Request, newObj runtime.Obje } if err := v.ds.CheckDataEngineImageCompatiblityByImage(volume.Spec.Image, volume.Spec.DataEngine); err != nil { - return werror.NewInvalidError(err.Error(), "volume.spec.image") + return werror.NewInvalidError(err.Error(), "spec.image") + } + + if volume.Spec.TargetNodeIDForLiveUpgrade != "" { + return werror.NewInvalidError("spec.targetNodeIDForLiveUpgrade should be empty for a new volume", "spec.targetNodeIDForLiveUpgrade") } - // TODO: remove this check when we support the following features for SPDK volumes if types.IsDataEngineV2(volume.Spec.DataEngine) { + // TODO: remove this check when we support the following features for SPDK volumes if volume.Spec.Encrypted { - return werror.NewInvalidError("encrypted volume is not supported for data engine v2", "") + return werror.NewInvalidError("encrypted volume is not supported for data engine v2", "spec.encrypted") } + // TODO: remove this check when we support the following features for SPDK volumes if volume.Spec.BackingImage != "" { - return werror.NewInvalidError("backing image is not supported for data engine v2", "") + return werror.NewInvalidError("backing image is not supported for data engine v2", "spec.backingImage") } + // TODO: remove this check when we support the following features for SPDK volumes if types.IsDataFromVolume(volume.Spec.DataSource) { - return werror.NewInvalidError("clone is not supported for data engine v2", "") + return werror.NewInvalidError("clone is not supported for data engine v2", "spec.dataSource") + } + + if volume.Spec.NodeID != "" { + node, err := v.ds.GetNodeRO(volume.Spec.NodeID) + if err != nil { + err = errors.Wrapf(err, "failed to get node %v", volume.Spec.NodeID) + return werror.NewInternalError(err.Error()) + } + + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + if dataEngineUpgradeRequestedCondition.Status == longhorn.ConditionStatusTrue { + if volume.Spec.NodeID != "" { + return werror.NewInvalidError(fmt.Sprintf("volume %v is not allowed to attach to node %v during v2 data engine upgrade", + volume.Name, volume.Spec.NodeID), "spec.nodeID") + } + } } } @@ -247,6 +268,31 @@ func (v *volumeValidator) Update(request *admission.Request, oldObj runtime.Obje } } + // prevent the changing v.Spec.MigrationNodeID to different node when the volume is doing live migration (when v.Status.CurrentMigrationNodeID != "") + if newVolume.Status.CurrentMigrationNodeID != "" && + newVolume.Spec.MigrationNodeID != oldVolume.Spec.MigrationNodeID && + newVolume.Spec.MigrationNodeID != newVolume.Status.CurrentMigrationNodeID && + newVolume.Spec.MigrationNodeID != "" { + err := fmt.Errorf("cannot change v.Spec.MigrationNodeID to node %v when the volume is doing live migration to node %v ", + newVolume.Spec.MigrationNodeID, newVolume.Status.CurrentMigrationNodeID) + return werror.NewInvalidError(err.Error(), "") + } + + if err := validateSnapshotMaxCount(newVolume.Spec.SnapshotMaxCount); err != nil { + return werror.NewInvalidError(err.Error(), "spec.snapshotMaxCount") + } + + if err := validateSnapshotMaxSize(newVolume.Spec.Size, newVolume.Spec.SnapshotMaxSize); err != nil { + return werror.NewInvalidError(err.Error(), "spec.snapshotMaxSize") + } + + if (oldVolume.Spec.SnapshotMaxCount != newVolume.Spec.SnapshotMaxCount) || + (oldVolume.Spec.SnapshotMaxSize != newVolume.Spec.SnapshotMaxSize) { + if err := v.validateUpdatingSnapshotMaxCountAndSize(oldVolume, newVolume); err != nil { + return err + } + } + if types.IsDataEngineV2(newVolume.Spec.DataEngine) { // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.Size != newVolume.Spec.Size { @@ -255,48 +301,56 @@ func (v *volumeValidator) Update(request *admission.Request, oldObj runtime.Obje return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.BackingImage != newVolume.Spec.BackingImage { err := fmt.Errorf("changing backing image for volume %v is not supported for data engine %v", newVolume.Name, newVolume.Spec.DataEngine) return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.Encrypted != newVolume.Spec.Encrypted { err := fmt.Errorf("changing encryption for volume %v is not supported for data engine %v", newVolume.Name, newVolume.Spec.DataEngine) return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.SnapshotDataIntegrity != newVolume.Spec.SnapshotDataIntegrity { err := fmt.Errorf("changing snapshot data integrity for volume %v is not supported for data engine %v", newVolume.Name, newVolume.Spec.DataEngine) return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.ReplicaAutoBalance != newVolume.Spec.ReplicaAutoBalance { err := fmt.Errorf("changing replica auto balance for volume %v is not supported for data engine %v", newVolume.Name, newVolume.Spec.DataEngine) return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.RestoreVolumeRecurringJob != newVolume.Spec.RestoreVolumeRecurringJob { err := fmt.Errorf("changing restore volume recurring job for volume %v is not supported for data engine %v", newVolume.Name, newVolume.Spec.DataEngine) return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.ReplicaSoftAntiAffinity != newVolume.Spec.ReplicaSoftAntiAffinity { err := fmt.Errorf("changing replica soft anti-affinity for volume %v is not supported for data engine %v", newVolume.Name, newVolume.Spec.DataEngine) return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.ReplicaZoneSoftAntiAffinity != newVolume.Spec.ReplicaZoneSoftAntiAffinity { err := fmt.Errorf("changing replica zone soft anti-affinity for volume %v is not supported for data engine %v", newVolume.Name, newVolume.Spec.DataEngine) return werror.NewInvalidError(err.Error(), "") } + // TODO: remove this check when we support the following features for SPDK volumes if oldVolume.Spec.ReplicaDiskSoftAntiAffinity != newVolume.Spec.ReplicaDiskSoftAntiAffinity { if oldVolume.Spec.ReplicaDiskSoftAntiAffinity != "" && newVolume.Spec.ReplicaDiskSoftAntiAffinity != longhorn.ReplicaDiskSoftAntiAffinityDefault { err := fmt.Errorf("changing replica disk soft anti-affinity for volume %v is not supported for data engine %v", @@ -304,31 +358,61 @@ func (v *volumeValidator) Update(request *admission.Request, oldObj runtime.Obje return werror.NewInvalidError(err.Error(), "") } } - } - // prevent the changing v.Spec.MigrationNodeID to different node when the volume is doing live migration (when v.Status.CurrentMigrationNodeID != "") - if newVolume.Status.CurrentMigrationNodeID != "" && - newVolume.Spec.MigrationNodeID != oldVolume.Spec.MigrationNodeID && - newVolume.Spec.MigrationNodeID != newVolume.Status.CurrentMigrationNodeID && - newVolume.Spec.MigrationNodeID != "" { - err := fmt.Errorf("cannot change v.Spec.MigrationNodeID to node %v when the volume is doing live migration to node %v ", newVolume.Spec.MigrationNodeID, newVolume.Status.CurrentMigrationNodeID) - return werror.NewInvalidError(err.Error(), "") - } + // v2 data engine upgrade + node, err := v.ds.GetNodeRO(oldVolume.Status.OwnerID) + if err != nil { + return werror.NewInternalError(fmt.Sprintf("failed to get node %v, err %v", oldVolume.Status.OwnerID, err)) + } - if err := validateSnapshotMaxCount(newVolume.Spec.SnapshotMaxCount); err != nil { - return werror.NewInvalidError(err.Error(), "spec.snapshotMaxCount") - } + dataEngineUpgradeRequestedCondition := types.GetCondition(node.Status.Conditions, longhorn.NodeConditionTypeDataEngineUpgradeRequested) + if dataEngineUpgradeRequestedCondition.Status == longhorn.ConditionStatusTrue { + if oldVolume.Spec.NodeID == "" && newVolume.Spec.NodeID != "" { + return werror.NewInvalidError(fmt.Sprintf("volume %v is not allowed to attach to node %v during v2 data engine upgrade", + newVolume.Name, newVolume.Spec.NodeID), "spec.nodeID") + } - if err := validateSnapshotMaxSize(newVolume.Spec.Size, newVolume.Spec.SnapshotMaxSize); err != nil { - return werror.NewInvalidError(err.Error(), "spec.snapshotMaxSize") - } + if oldVolume.Spec.TargetNodeIDForLiveUpgrade == "" && newVolume.Spec.TargetNodeIDForLiveUpgrade != "" { + + if newVolume.Spec.NumberOfReplicas <= 1 { + return werror.NewInvalidError(fmt.Sprintf("unable to change targetNodeIDForLiveUpgrade for volume %v when the volume has only one replica during v2 data engine upgrade", newVolume.Name), "spec.targetNodeIDForLiveUpgrade") + } + + // Setting targetNodeIDForLiveUpgrade to the same node is not meaningless and is not allowed + if newVolume.Spec.TargetNodeIDForLiveUpgrade == oldVolume.Spec.NodeID { + return werror.NewInvalidError(fmt.Sprintf("unable to change targetNodeIDForLiveUpgrade for volume %v to the same node %v during v2 data engine upgrade", newVolume.Name, newVolume.Spec.TargetNodeIDForLiveUpgrade), "spec.targetNodeIDForLiveUpgrade") + } + + instanceManagerImage, err := v.ds.GetSettingValueExisted(types.SettingNameDefaultInstanceManagerImage) + if err != nil { + return werror.NewInternalError(fmt.Sprintf("failed to get setting %v, err %v", types.SettingNameDefaultInstanceManagerImage, err)) + } + + // Only allow to upgrade default instance manager image + if oldVolume.Spec.Image == instanceManagerImage { + return werror.NewInvalidError(fmt.Sprintf("volume %v is already using instance manager image %v", newVolume.Name, instanceManagerImage), "") + } + if newVolume.Spec.Image != instanceManagerImage { + return werror.NewInvalidError(fmt.Sprintf("volume %v should use instance manager image %v", newVolume.Name, instanceManagerImage), "") + } + } + } else { + if oldVolume.Spec.TargetNodeIDForLiveUpgrade != newVolume.Spec.TargetNodeIDForLiveUpgrade { + return werror.NewInvalidError(fmt.Errorf("unable to change targetNodeIDForLiveUpgrade for volume %v when the node has not requested v2 data engine upgrade", newVolume.Name).Error(), "spec.targetNodeIDForLiveUpgrade") + } - if (oldVolume.Spec.SnapshotMaxCount != newVolume.Spec.SnapshotMaxCount) || - (oldVolume.Spec.SnapshotMaxSize != newVolume.Spec.SnapshotMaxSize) { - if err := v.validateUpdatingSnapshotMaxCountAndSize(oldVolume, newVolume); err != nil { - return err + if oldVolume.Spec.NodeID != "" { + if oldVolume.Spec.Image != newVolume.Spec.Image { + return werror.NewInvalidError(fmt.Sprintf("unable to change image for attached volume %v when the node has not requested v2 data engine upgrade", newVolume.Name), "spec.image") + } + } + } + } else { + if newVolume.Spec.TargetNodeIDForLiveUpgrade != "" { + return werror.NewInvalidError("unable to set targetNodeIDForLiveUpgrade for volume when the volume is not using data engine v2", "spec.targetNodeIDForLiveUpgrade") } } + return nil } diff --git a/webhook/server/mutation.go b/webhook/server/mutation.go index d242ffdea2..a463e6a85b 100644 --- a/webhook/server/mutation.go +++ b/webhook/server/mutation.go @@ -13,10 +13,12 @@ import ( "github.com/longhorn/longhorn-manager/webhook/resources/backup" "github.com/longhorn/longhorn-manager/webhook/resources/backupbackingimage" "github.com/longhorn/longhorn-manager/webhook/resources/backupvolume" + "github.com/longhorn/longhorn-manager/webhook/resources/dataengineupgrademanager" "github.com/longhorn/longhorn-manager/webhook/resources/engine" "github.com/longhorn/longhorn-manager/webhook/resources/engineimage" "github.com/longhorn/longhorn-manager/webhook/resources/instancemanager" "github.com/longhorn/longhorn-manager/webhook/resources/node" + "github.com/longhorn/longhorn-manager/webhook/resources/nodedataengineupgrade" "github.com/longhorn/longhorn-manager/webhook/resources/orphan" "github.com/longhorn/longhorn-manager/webhook/resources/recurringjob" "github.com/longhorn/longhorn-manager/webhook/resources/replica" @@ -50,6 +52,8 @@ func Mutation(ds *datastore.DataStore) (http.Handler, []admission.Resource, erro volumeattachment.NewMutator(ds), instancemanager.NewMutator(ds), backupbackingimage.NewMutator(ds), + dataengineupgrademanager.NewMutator(ds), + nodedataengineupgrade.NewMutator(ds), } router := webhook.NewRouter() diff --git a/webhook/server/server.go b/webhook/server/server.go index 45525c3fdb..3113124833 100644 --- a/webhook/server/server.go +++ b/webhook/server/server.go @@ -5,8 +5,11 @@ import ( "fmt" "net/http" "reflect" + "time" + "github.com/google/uuid" "github.com/gorilla/mux" + "github.com/jrhouston/k8slock" "github.com/rancher/dynamiclistener" "github.com/rancher/dynamiclistener/server" "github.com/sirupsen/logrus" @@ -19,6 +22,8 @@ import ( "github.com/longhorn/longhorn-manager/types" "github.com/longhorn/longhorn-manager/util/client" "github.com/longhorn/longhorn-manager/webhook/admission" + + webhooktypes "github.com/longhorn/longhorn-manager/webhook/types" ) var ( @@ -38,19 +43,45 @@ type WebhookServer struct { namespace string webhookType string clients *client.Clients + lockers map[string]*k8slock.Locker } -func New(ctx context.Context, namespace, webhookType string, clients *client.Clients) *WebhookServer { +func New(ctx context.Context, namespace, nodeName, webhookType string, clients *client.Clients) (*WebhookServer, error) { + lockerNames := []string{ + webhooktypes.PascalToKebab(types.LonghornKindDataEngineUpgradeManager), + webhooktypes.PascalToKebab(types.LonghornKindNodeDataEngineUpgrade), + } + lockers := map[string]*k8slock.Locker{} + + for _, name := range lockerNames { + clientID := nodeName + "_" + uuid.New().String() + + logrus.Infof("Creating locker for resource %v with clientID %v", name, clientID) + locker, err := k8slock.NewLocker( + name, + k8slock.Namespace(namespace), + k8slock.ClientID(clientID), + k8slock.InClusterConfig(), + k8slock.TTL(180*time.Second), + ) + + if err != nil { + return nil, err + } + lockers[name] = locker + } + return &WebhookServer{ context: ctx, namespace: namespace, webhookType: webhookType, clients: clients, - } + lockers: lockers, + }, nil } func (s *WebhookServer) admissionWebhookListenAndServe() error { - validationHandler, validationResources, err := Validation(s.clients.Datastore) + validationHandler, validationResources, err := Validation(s.clients.Datastore, s.lockers) if err != nil { return err } diff --git a/webhook/server/validation.go b/webhook/server/validation.go index 5c8275195e..3e3fea3406 100644 --- a/webhook/server/validation.go +++ b/webhook/server/validation.go @@ -3,6 +3,7 @@ package server import ( "net/http" + "github.com/jrhouston/k8slock" "github.com/rancher/wrangler/v3/pkg/webhook" "github.com/longhorn/longhorn-manager/datastore" @@ -10,9 +11,11 @@ import ( "github.com/longhorn/longhorn-manager/util" "github.com/longhorn/longhorn-manager/webhook/admission" "github.com/longhorn/longhorn-manager/webhook/resources/backingimage" + "github.com/longhorn/longhorn-manager/webhook/resources/dataengineupgrademanager" "github.com/longhorn/longhorn-manager/webhook/resources/engine" "github.com/longhorn/longhorn-manager/webhook/resources/instancemanager" "github.com/longhorn/longhorn-manager/webhook/resources/node" + "github.com/longhorn/longhorn-manager/webhook/resources/nodedataengineupgrade" "github.com/longhorn/longhorn-manager/webhook/resources/orphan" "github.com/longhorn/longhorn-manager/webhook/resources/persistentvolumeclaim" "github.com/longhorn/longhorn-manager/webhook/resources/recurringjob" @@ -24,9 +27,11 @@ import ( "github.com/longhorn/longhorn-manager/webhook/resources/systemrestore" "github.com/longhorn/longhorn-manager/webhook/resources/volume" "github.com/longhorn/longhorn-manager/webhook/resources/volumeattachment" + + webhooktypes "github.com/longhorn/longhorn-manager/webhook/types" ) -func Validation(ds *datastore.DataStore) (http.Handler, []admission.Resource, error) { +func Validation(ds *datastore.DataStore, lockers map[string]*k8slock.Locker) (http.Handler, []admission.Resource, error) { currentNodeID, err := util.GetRequiredEnv(types.EnvNodeName) if err != nil { return nil, nil, err @@ -49,6 +54,8 @@ func Validation(ds *datastore.DataStore) (http.Handler, []admission.Resource, er replica.NewValidator(ds), instancemanager.NewValidator(ds), persistentvolumeclaim.NewValidator(ds), + dataengineupgrademanager.NewValidator(ds, lockers[webhooktypes.PascalToKebab(types.LonghornKindDataEngineUpgradeManager)]), + nodedataengineupgrade.NewValidator(ds, lockers[webhooktypes.PascalToKebab(types.LonghornKindNodeDataEngineUpgrade)]), } router := webhook.NewRouter() diff --git a/webhook/types/types.go b/webhook/types/types.go new file mode 100644 index 0000000000..60eb053709 --- /dev/null +++ b/webhook/types/types.go @@ -0,0 +1,15 @@ +package types + +import ( + "regexp" + "strings" +) + +func PascalToKebab(input string) string { + // Use a regex to insert a hyphen before each uppercase letter, except the first one. + re := regexp.MustCompile("([a-z])([A-Z])") + hyphenated := re.ReplaceAllString(input, "$1-$2") + + // Convert the result to lowercase. + return strings.ToLower(hyphenated) +} diff --git a/webhook/webhook.go b/webhook/webhook.go index 138b1a3543..ba71bcc06f 100644 --- a/webhook/webhook.go +++ b/webhook/webhook.go @@ -8,6 +8,7 @@ import ( "net/http" "time" + "github.com/pkg/errors" "github.com/sirupsen/logrus" "github.com/longhorn/longhorn-manager/types" @@ -20,7 +21,7 @@ var ( defaultStartTimeout = 60 * time.Second ) -func StartWebhook(ctx context.Context, webhookType string, clients *client.Clients) error { +func StartWebhook(ctx context.Context, nodeName, webhookType string, clients *client.Clients) error { logrus.Infof("Starting longhorn %s webhook server", webhookType) var webhookLocalEndpoint string @@ -33,7 +34,11 @@ func StartWebhook(ctx context.Context, webhookType string, clients *client.Clien return fmt.Errorf("unexpected webhook server type %v", webhookType) } - s := server.New(ctx, clients.Namespace, webhookType, clients) + s, err := server.New(ctx, clients.Namespace, nodeName, webhookType, clients) + if err != nil { + return errors.Wrapf(err, "failed to create %v webhook server", webhookType) + } + go func() { if err := s.ListenAndServe(); err != nil { logrus.Fatalf("Error %v webhook server failed: %v", webhookType, err)