Skip to content

Commit

Permalink
datastore: introduce IsBackendStoreDriverV1 and IsBackendStoreDriverV2
Browse files Browse the repository at this point in the history
Longhorn 7357

Signed-off-by: Derek Su <derek.su@suse.com>
  • Loading branch information
derekbit authored and David Ko committed Dec 24, 2023
1 parent bfb9ef4 commit 2f11d1b
Show file tree
Hide file tree
Showing 18 changed files with 65 additions and 68 deletions.
12 changes: 6 additions & 6 deletions controller/engine_controller.go
Expand Up @@ -311,7 +311,7 @@ func (ec *EngineController) syncEngine(key string) (err error) {
}()

isCLIAPIVersionOne := false
if engine.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(engine.Spec.BackendStoreDriver) {
if engine.Status.CurrentImage != "" {
isCLIAPIVersionOne, err = ec.ds.IsEngineImageCLIAPIVersionOne(engine.Status.CurrentImage)
if err != nil {
Expand Down Expand Up @@ -488,7 +488,7 @@ func (ec *EngineController) DeleteInstance(obj interface{}) (err error) {
}
log := getLoggerForEngine(ec.logger, e)

if e.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(e.Spec.BackendStoreDriver) {
err = ec.deleteInstanceWithCLIAPIVersionOne(e)
if err != nil {
return err
Expand Down Expand Up @@ -924,8 +924,8 @@ func (m *EngineMonitor) refresh(engine *longhorn.Engine) error {
return err
}

if (engine.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 && cliAPIVersion >= engineapi.MinCLIVersion) ||
(engine.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2) {
if (datastore.IsBackendStoreDriverV1(engine.Spec.BackendStoreDriver) && cliAPIVersion >= engineapi.MinCLIVersion) ||
datastore.IsBackendStoreDriverV2(engine.Spec.BackendStoreDriver) {
volumeInfo, err := engineClientProxy.VolumeGet(engine)
if err != nil {
return err
Expand Down Expand Up @@ -1614,7 +1614,7 @@ func GetBinaryClientForEngine(e *longhorn.Engine, engines engineapi.EngineClient
err = errors.Wrapf(err, "cannot get client for engine %v", e.Name)
}()

if e.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(e.Spec.BackendStoreDriver) {
return nil, nil
}

Expand Down Expand Up @@ -2074,7 +2074,7 @@ func (ec *EngineController) isResponsibleFor(e *longhorn.Engine, defaultEngineIm
return isResponsible, nil
}

if e.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(e.Spec.BackendStoreDriver) {
readyNodesWithEI, err := ec.ds.ListReadyNodesContainingEngineImageRO(e.Status.CurrentImage)
if err != nil {
return false, errors.Wrapf(err, "failed to list ready nodes containing engine image %v", e.Status.CurrentImage)
Expand Down
2 changes: 1 addition & 1 deletion controller/engine_image_controller.go
Expand Up @@ -436,7 +436,7 @@ func (ic *EngineImageController) handleAutoUpgradeEngineImageToDefaultEngineImag
for _, v := range vs {
ic.logger.WithFields(logrus.Fields{"volume": v.Name, "image": v.Spec.Image}).Infof("Upgrading volume engine image to the default engine image %v automatically", defaultEngineImage)

if v.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(v.Spec.BackendStoreDriver) {
ic.logger.WithFields(logrus.Fields{"volume": v.Name, "image": v.Spec.Image}).Infof("Skip upgrading volume engine image to the default engine image %v automatically since it is using v2 backend store", defaultEngineImage)
continue
}
Expand Down
10 changes: 5 additions & 5 deletions controller/instance_handler.go
Expand Up @@ -224,7 +224,7 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn
}

isCLIAPIVersionOne := false
if spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(spec.BackendStoreDriver) {
if status.CurrentImage != "" {
isCLIAPIVersionOne, err = h.ds.IsEngineImageCLIAPIVersionOne(status.CurrentImage)
if err != nil {
Expand Down Expand Up @@ -262,7 +262,7 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn
if spec.LogRequested {
if !status.LogFetched {
// No need to get the log for instance manager if the backend store driver is not "longhorn"
if spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 {
if datastore.IsBackendStoreDriverV1(spec.BackendStoreDriver) {
logrus.Warnf("Getting requested log for %v in instance manager %v", instanceName, status.InstanceManagerName)
if im == nil {
logrus.Warnf("Failed to get the log for %v due to Instance Manager is already gone", status.InstanceManagerName)
Expand Down Expand Up @@ -381,7 +381,7 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn
longhorn.InstanceConditionReasonInstanceCreationFailure, instance.Status.ErrorMsg)
}

if instance.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 {
if datastore.IsBackendStoreDriverV1(instance.Spec.BackendStoreDriver) {
logrus.Warnf("Instance %v crashed on Instance Manager %v at %v, getting log",
instanceName, im.Name, im.Spec.NodeID)
if err := h.printInstanceLogs(instanceName, runtimeObj); err != nil {
Expand All @@ -397,7 +397,7 @@ func (h *InstanceHandler) ReconcileInstanceState(obj interface{}, spec *longhorn
func shouldDeleteInstance(instance *longhorn.InstanceProcess) bool {
// For a replica of a SPDK volume, a stopped replica means the lvol is not exposed,
// but the lvol is still there. We don't need to delete it.
if instance.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(instance.Spec.BackendStoreDriver) {
if instance.Status.State == longhorn.InstanceStateStopped {
return false
}
Expand Down Expand Up @@ -441,7 +441,7 @@ func (h *InstanceHandler) createInstance(instanceName string, backendStoreDriver
if err == nil {
return nil
}
if !types.ErrorIsNotFound(err) && !(backendStoreDriver == longhorn.BackendStoreDriverTypeV2 && types.ErrorIsStopped(err)) {
if !types.ErrorIsNotFound(err) && !(datastore.IsBackendStoreDriverV2(backendStoreDriver) && types.ErrorIsStopped(err)) {
return errors.Wrapf(err, "Failed to get instance process %v", instanceName)
}

Expand Down
4 changes: 2 additions & 2 deletions controller/instance_manager_controller.go
Expand Up @@ -1081,7 +1081,7 @@ func (imc *InstanceManagerController) createInstanceManagerPodSpec(im *longhorn.
podSpec.ObjectMeta.Labels = types.GetInstanceManagerLabels(imc.controllerID, im.Spec.Image, longhorn.InstanceManagerTypeAllInOne, backendStoreDriver)
podSpec.Spec.Containers[0].Name = "instance-manager"

if backendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(backendStoreDriver) {
podSpec.Spec.Containers[0].Args = []string{
"instance-manager", "--enable-spdk", "--debug", "daemon", "--spdk-enabled", "--listen", fmt.Sprintf("0.0.0.0:%d", engineapi.InstanceManagerProcessManagerServiceDefaultPort),
}
Expand Down Expand Up @@ -1176,7 +1176,7 @@ func (imc *InstanceManagerController) createInstanceManagerPodSpec(im *longhorn.
},
}

if backendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(backendStoreDriver) {
podSpec.Spec.Containers[0].VolumeMounts = append(podSpec.Spec.Containers[0].VolumeMounts, corev1.VolumeMount{
MountPath: "/hugepages",
Name: "hugepage",
Expand Down
2 changes: 1 addition & 1 deletion controller/monitor/disk_monitor.go
Expand Up @@ -227,7 +227,7 @@ func (m *NodeMonitor) collectDiskData(node *longhorn.Node) map[string]*Collected

if diskServiceClient == nil {
// TODO: disk service is not used by filesystem-type disk, so we can skip it for now.
if backendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(backendStoreDriver) {
diskInfoMap[diskName] = NewDiskInfo(disk.Path, "", nodeOrDiskEvicted, nil,
orphanedReplicaInstanceNames, string(longhorn.DiskConditionReasonDiskServiceUnreachable),
fmt.Sprintf("Disk %v(%v) on node %v is not ready: disk service is unreachable",
Expand Down
10 changes: 5 additions & 5 deletions controller/replica_controller.go
Expand Up @@ -249,7 +249,7 @@ func (rc *ReplicaController) syncReplica(key string) (err error) {
if replica.Spec.NodeID != "" && replica.Spec.NodeID != rc.controllerID {
log.Warn("Failed to cleanup replica's data because the replica's data is not on this node")
} else if replica.Spec.NodeID != "" {
if replica.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 {
if datastore.IsBackendStoreDriverV1(replica.Spec.BackendStoreDriver) {
// Clean up the data directory if this is the active replica or if this inactive replica is the only one
// using it.
if (replica.Spec.Active || !hasMatchingReplica(replica, rs)) && dataPath != "" {
Expand Down Expand Up @@ -503,7 +503,7 @@ func (rc *ReplicaController) DeleteInstance(obj interface{}) error {
}
log := getLoggerForReplica(rc.logger, r)

if r.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(r.Spec.BackendStoreDriver) {
if err := rc.deleteInstanceWithCLIAPIVersionOne(r); err != nil {
return err
}
Expand Down Expand Up @@ -572,8 +572,8 @@ func (rc *ReplicaController) DeleteInstance(obj interface{}) error {
}

func canDeleteInstance(r *longhorn.Replica) bool {
return r.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 ||
(r.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 && r.DeletionTimestamp != nil)
return datastore.IsBackendStoreDriverV1(r.Spec.BackendStoreDriver) ||
(datastore.IsBackendStoreDriverV2(r.Spec.BackendStoreDriver) && r.DeletionTimestamp != nil)
}

func deleteUnixSocketFile(volumeName string) error {
Expand Down Expand Up @@ -669,7 +669,7 @@ func (rc *ReplicaController) GetInstance(obj interface{}) (*longhorn.InstancePro
return nil, err
}

if instance.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(instance.Spec.BackendStoreDriver) {
if instance.Status.State == longhorn.InstanceStateStopped {
return nil, fmt.Errorf("instance %v is stopped", instance.Spec.Name)
}
Expand Down
2 changes: 1 addition & 1 deletion controller/setting_controller.go
Expand Up @@ -1582,7 +1582,7 @@ func (info *ClusterInfo) collectVolumesInfo() error {

// TODO: Remove this condition when v2 volume actual size is implemented.
// https://github.com/longhorn/longhorn/issues/5947
isVolumeUsingV2DataEngine := volume.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2
isVolumeUsingV2DataEngine := datastore.IsBackendStoreDriverV2(volume.Spec.BackendStoreDriver)
if !isVolumeUsingV2DataEngine {
totalVolumeSize += int(volume.Spec.Size)
totalVolumeActualSize += int(volume.Status.ActualSize)
Expand Down
42 changes: 14 additions & 28 deletions controller/volume_controller.go
Expand Up @@ -776,7 +776,7 @@ func (c *VolumeController) ReconcileEngineReplicaState(v *longhorn.Volume, es ma
// 2. the volume is old restore/DR volumes.
// 3. the volume is expanding size.
isOldRestoreVolume := (v.Status.IsStandby || v.Status.RestoreRequired) &&
(e.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 && cliAPIVersion < engineapi.CLIVersionFour)
(datastore.IsBackendStoreDriverV1(e.Spec.BackendStoreDriver) && cliAPIVersion < engineapi.CLIVersionFour)
isInExpansion := v.Spec.Size != e.Status.CurrentSize
if isMigratingDone && !isOldRestoreVolume && !isInExpansion {
if err := c.replenishReplicas(v, e, rs, ""); err != nil {
Expand Down Expand Up @@ -824,7 +824,7 @@ func areAllReplicasFailed(rs map[string]*longhorn.Replica) bool {
}

func (c *VolumeController) shouldStopOfflineReplicaRebuilding(v *longhorn.Volume, healthyCount int) (bool, error) {
if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
return true, nil
}

Expand Down Expand Up @@ -944,7 +944,7 @@ func (c *VolumeController) cleanupCorruptedOrStaleReplicas(v *longhorn.Volume, r
continue
}

if v.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
staled := false
if v.Spec.StaleReplicaTimeout > 0 && util.TimestampAfterTimeout(r.Spec.FailedAt,
time.Duration(int64(v.Spec.StaleReplicaTimeout*60))*time.Second) {
Expand Down Expand Up @@ -1156,20 +1156,6 @@ func (c *VolumeController) getAutoBalancedReplicasSetting(v *longhorn.Volume) (l
return setting, errors.Wrapf(err, "replica auto-balance is disabled")
}

func (c *VolumeController) updateReplicaLogRequested(e *longhorn.Engine, rs map[string]*longhorn.Replica) {
needReplicaLogs := false
for _, r := range rs {
if r.Spec.LogRequested && r.Status.LogFetched {
r.Spec.LogRequested = false
}
needReplicaLogs = needReplicaLogs || r.Spec.LogRequested
rs[r.Name] = r
}
if e.Spec.LogRequested && e.Status.LogFetched && !needReplicaLogs {
e.Spec.LogRequested = false
}
}

func (c *VolumeController) isUnmapMarkSnapChainRemovedEnabled(v *longhorn.Volume) (bool, error) {
if v.Spec.UnmapMarkSnapChainRemoved != longhorn.UnmapMarkSnapChainRemovedIgnored {
return v.Spec.UnmapMarkSnapChainRemoved == longhorn.UnmapMarkSnapChainRemovedEnabled, nil
Expand Down Expand Up @@ -2083,7 +2069,7 @@ func (c *VolumeController) replenishReplicas(v *longhorn.Volume, e *longhorn.Eng
for i := 0; i < replenishCount; i++ {
var reusableFailedReplica *longhorn.Replica
// TODO: reuse failed replica for replica rebuilding of SPDK volumes
if v.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
reusableFailedReplica, err = c.scheduler.CheckAndReuseFailedReplica(rs, v, hardNodeAffinity)
if err != nil {
return errors.Wrapf(err, "failed to reuse a failed replica during replica replenishment")
Expand Down Expand Up @@ -2296,7 +2282,7 @@ func (c *VolumeController) getReplicaCountForAutoBalanceZone(v *longhorn.Volume,
}

ei := &longhorn.EngineImage{}
if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
ei, err = c.getEngineImageRO(v.Status.CurrentImage)
if err != nil {
return 0, nil, err
Expand All @@ -2320,7 +2306,7 @@ func (c *VolumeController) getReplicaCountForAutoBalanceZone(v *longhorn.Volume,
continue
}

if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
if isReady, _ := c.ds.CheckEngineImageReadiness(ei.Spec.Image, nodeName); !isReady {
log.Warnf("Failed to use node %v, engine image is not ready", nodeName)
continue
Expand Down Expand Up @@ -2445,7 +2431,7 @@ func (c *VolumeController) getReplicaCountForAutoBalanceNode(v *longhorn.Volume,
}

ei := &longhorn.EngineImage{}
if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
ei, err = c.getEngineImageRO(v.Status.CurrentImage)
if err != nil {
return 0, nodeExtraRs, err
Expand All @@ -2463,7 +2449,7 @@ func (c *VolumeController) getReplicaCountForAutoBalanceNode(v *longhorn.Volume,
continue
}

if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
if isReady, _ := c.ds.CheckEngineImageReadiness(ei.Spec.Image, node.Name); !isReady {
log.Warnf("Failed to use node %v, engine image is not ready", nodeName)
delete(readyNodes, nodeName)
Expand Down Expand Up @@ -2574,7 +2560,7 @@ func (c *VolumeController) getNodeCandidatesForAutoBalanceZone(v *longhorn.Volum
}

ei := &longhorn.EngineImage{}
if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
ei, err = c.getEngineImageRO(v.Status.CurrentImage)
if err != nil {
return candidateNames
Expand All @@ -2594,7 +2580,7 @@ func (c *VolumeController) getNodeCandidatesForAutoBalanceZone(v *longhorn.Volum
continue
}

if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
if isReady, _ := c.ds.CheckEngineImageReadiness(ei.Spec.Image, nName); !isReady {
// cannot use node, engine image is not ready
delete(readyNodes, nName)
Expand Down Expand Up @@ -2752,7 +2738,7 @@ func (c *VolumeController) upgradeEngineForVolume(v *longhorn.Volume, es map[str
volumeAndReplicaNodes = append(volumeAndReplicaNodes, r.Spec.NodeID)
}

if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
oldImage, err := c.getEngineImageRO(v.Status.CurrentImage)
if err != nil {
log.WithError(err).Warnf("Failed to get engine image %v for live upgrade", v.Status.CurrentImage)
Expand Down Expand Up @@ -2904,7 +2890,7 @@ func (c *VolumeController) updateRequestedBackupForVolumeRestore(v *longhorn.Vol
func (c *VolumeController) checkAndInitVolumeOfflineReplicaRebuilding(v *longhorn.Volume, rs map[string]*longhorn.Replica) error {
log := getLoggerForVolume(c.logger, v)

if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
return nil
}

Expand Down Expand Up @@ -3238,7 +3224,7 @@ func (c *VolumeController) createReplica(v *longhorn.Volume, e *longhorn.Engine,
}
if isRebuildingReplica {
// TODO: reuse failed replica for replica rebuilding of SPDK volumes
if v.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(v.Spec.BackendStoreDriver) {
if !v.Spec.DisableFrontend || !v.Status.OfflineReplicaRebuildingRequired {
log.Tracef("Online replica rebuilding for replica %v is not supported for SPDK volumes", replica.Name)
return nil
Expand Down Expand Up @@ -3953,7 +3939,7 @@ func (c *VolumeController) isResponsibleFor(v *longhorn.Volume, defaultEngineIma

isResponsible := isControllerResponsibleFor(c.controllerID, c.ds, v.Name, v.Spec.NodeID, v.Status.OwnerID)

if v.Spec.BackendStoreDriver != longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV1(v.Spec.BackendStoreDriver) {
readyNodesWithDefaultEI, err := c.ds.ListReadyNodesContainingEngineImageRO(defaultEngineImage)
if err != nil {
return false, err
Expand Down
14 changes: 12 additions & 2 deletions datastore/longhorn.go
Expand Up @@ -1766,7 +1766,7 @@ func (s *DataStore) CheckEngineImageReadiness(image string, nodes ...string) (is
}

func (s *DataStore) CheckImageReadiness(image string, backendStoreDriver longhorn.BackendStoreDriverType, nodes ...string) (isReady bool, err error) {
if backendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if IsBackendStoreDriverV2(backendStoreDriver) {
return true, nil
}
return s.CheckEngineImageReadiness(image, nodes...)
Expand Down Expand Up @@ -3433,7 +3433,7 @@ func (s *DataStore) GetDataEngineImageCLIAPIVersion(imageName string, backendSto
return -1, fmt.Errorf("cannot check the CLI API Version based on empty image name")
}

if backendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if IsBackendStoreDriverV2(backendStoreDriver) {
return 0, nil
}

Expand Down Expand Up @@ -4851,3 +4851,13 @@ func (s *DataStore) RemoveFinalizerForLHVolumeAttachment(va *longhorn.VolumeAtta
func (s *DataStore) DeleteLHVolumeAttachment(vaName string) error {
return s.lhClient.LonghornV1beta2().VolumeAttachments(s.namespace).Delete(context.TODO(), vaName, metav1.DeleteOptions{})
}

// IsBackendStoreDriverV1 returns true if the given backendstoreDriver is v1
func IsBackendStoreDriverV1(backendstoreDriver longhorn.BackendStoreDriverType) bool {
return backendstoreDriver != longhorn.BackendStoreDriverTypeV2
}

// IsBackendStoreDriverV2 returns true if the given backendstoreDriver is v2
func IsBackendStoreDriverV2(backendstoreDriver longhorn.BackendStoreDriverType) bool {
return backendstoreDriver == longhorn.BackendStoreDriverTypeV2
}
2 changes: 1 addition & 1 deletion engineapi/engine_binary.go
Expand Up @@ -29,7 +29,7 @@ func GetEngineBinaryClient(ds *datastore.DataStore, volumeName, nodeID string) (
for _, e = range es {
break
}
if e.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(e.Spec.BackendStoreDriver) {
return nil, nil
}
if e.Status.CurrentState != longhorn.InstanceStateRunning {
Expand Down
5 changes: 3 additions & 2 deletions engineapi/instance_manager.go
Expand Up @@ -15,6 +15,7 @@ import (
immeta "github.com/longhorn/longhorn-instance-manager/pkg/meta"
imutil "github.com/longhorn/longhorn-instance-manager/pkg/util"

"github.com/longhorn/longhorn-manager/datastore"
longhorn "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2"
"github.com/longhorn/longhorn-manager/types"
)
Expand Down Expand Up @@ -479,7 +480,7 @@ func (c *InstanceManagerClient) ReplicaInstanceCreate(req *ReplicaInstanceCreate

binary := ""
args := []string{}
if req.Replica.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV1 {
if datastore.IsBackendStoreDriverV1(req.Replica.Spec.BackendStoreDriver) {
binary, args = getBinaryAndArgsForReplicaProcessCreation(req.Replica, req.DataPath, req.BackingImagePath, req.DataLocality, DefaultReplicaPortCountV1, req.EngineCLIAPIVersion)
}

Expand All @@ -493,7 +494,7 @@ func (c *InstanceManagerClient) ReplicaInstanceCreate(req *ReplicaInstanceCreate
}

portCount := DefaultReplicaPortCountV1
if req.Replica.Spec.BackendStoreDriver == longhorn.BackendStoreDriverTypeV2 {
if datastore.IsBackendStoreDriverV2(req.Replica.Spec.BackendStoreDriver) {
portCount = DefaultReplicaPortCountV2
}

Expand Down

0 comments on commit 2f11d1b

Please sign in to comment.