X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9eff4af096f60b302abc9ad591f8b5fed45945a4..3bdff577515638d273c1df5ba9d702cdf3d5abbd:/services/keepstore/volume.go diff --git a/services/keepstore/volume.go b/services/keepstore/volume.go index 07b497cc2a..69802abdd1 100644 --- a/services/keepstore/volume.go +++ b/services/keepstore/volume.go @@ -1,3 +1,7 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( @@ -232,6 +236,10 @@ type Volume interface { // EmptyTrash looks for trashed blocks that exceeded TrashLifetime // and deletes them from the volume. EmptyTrash() + + // Return a globally unique ID of the underlying storage + // device if possible, otherwise "". + DeviceID() string } // A VolumeWithExamples provides example configs to display in the @@ -320,17 +328,12 @@ func MakeRRVolumeManager(volumes []Volume) *RRVolumeManager { for _, v := range volumes { mnt := &VolumeMount{ UUID: (*VolumeMount)(nil).generateUUID(), - DeviceID: "", + DeviceID: v.DeviceID(), ReadOnly: !v.Writable(), Replication: v.Replication(), Tier: 1, volume: v, } - if v, ok := v.(interface { - DeviceID() string - }); ok { - mnt.DeviceID = v.DeviceID() - } vm.iostats[v] = &ioStats{} vm.mounts = append(vm.mounts, mnt) vm.mountMap[mnt.UUID] = mnt