endpoint: rename abstraction super-"classes"

This commit is contained in:
Christian Schwarz 2020-04-06 01:06:52 +02:00
parent 4fd369b67f
commit 7061282e08
3 changed files with 24 additions and 24 deletions

View File

@ -314,7 +314,7 @@ func ReplicationCursorV2Extractor(fs *zfs.DatasetPath, v zfs.FilesystemVersion)
// TODO log this possibly tinkered-with bookmark // TODO log this possibly tinkered-with bookmark
return nil return nil
} }
return &ListHoldsAndBookmarksOutputBookmark{ return &bookmarkBasedAbstraction{
Type: AbstractionReplicationCursorBookmarkV2, Type: AbstractionReplicationCursorBookmarkV2,
FS: fs.ToString(), FS: fs.ToString(),
FilesystemVersion: v, FilesystemVersion: v,
@ -351,7 +351,7 @@ func LastReceivedHoldExtractor(fs *zfs.DatasetPath, v zfs.FilesystemVersion, hol
jobID, err := ParseLastReceivedHoldTag(holdTag) jobID, err := ParseLastReceivedHoldTag(holdTag)
if err == nil { if err == nil {
return &ListHoldsAndBookmarksOutputHold{ return &holdBasedAbstraction{
Type: AbstractionLastReceivedHold, Type: AbstractionLastReceivedHold,
FS: fs.ToString(), FS: fs.ToString(),
FilesystemVersion: v, FilesystemVersion: v,

View File

@ -75,7 +75,7 @@ func HoldStep(ctx context.Context, fs string, v zfs.FilesystemVersion, jobID Job
return nil, errors.Wrap(err, "step hold: zfs") return nil, errors.Wrap(err, "step hold: zfs")
} }
return &ListHoldsAndBookmarksOutputHold{ return &holdBasedAbstraction{
Type: AbstractionStepHold, Type: AbstractionStepHold,
FS: fs, FS: fs,
Tag: tag, Tag: tag,
@ -105,7 +105,7 @@ func HoldStep(ctx context.Context, fs string, v zfs.FilesystemVersion, jobID Job
} }
return nil, errors.Wrap(err, "create step bookmark: zfs") return nil, errors.Wrap(err, "create step bookmark: zfs")
} }
return &ListHoldsAndBookmarksOutputBookmark{ return &bookmarkBasedAbstraction{
Type: AbstractionStepBookmark, Type: AbstractionStepBookmark,
FS: fs, FS: fs,
FilesystemVersion: v, FilesystemVersion: v,
@ -251,7 +251,7 @@ func StepBookmarkExtractor(fs *zfs.DatasetPath, v zfs.FilesystemVersion) (_ Abst
return nil return nil
} }
if err == nil { if err == nil {
bm := &ListHoldsAndBookmarksOutputBookmark{ bm := &bookmarkBasedAbstraction{
Type: AbstractionStepBookmark, Type: AbstractionStepBookmark,
FS: fs.ToString(), FS: fs.ToString(),
FilesystemVersion: v, FilesystemVersion: v,
@ -271,7 +271,7 @@ func StepHoldExtractor(fs *zfs.DatasetPath, v zfs.FilesystemVersion, holdTag str
jobID, err := ParseStepHoldTag(holdTag) jobID, err := ParseStepHoldTag(holdTag)
if err == nil { if err == nil {
return &ListHoldsAndBookmarksOutputHold{ return &holdBasedAbstraction{
Type: AbstractionStepHold, Type: AbstractionStepHold,
FS: fs.ToString(), FS: fs.ToString(),
Tag: holdTag, Tag: holdTag,

View File

@ -10,38 +10,38 @@ import (
"github.com/zrepl/zrepl/zfs" "github.com/zrepl/zrepl/zfs"
) )
type ListHoldsAndBookmarksOutputBookmark struct { type bookmarkBasedAbstraction struct {
Type AbstractionType Type AbstractionType
FS string FS string
zfs.FilesystemVersion zfs.FilesystemVersion
JobID JobID JobID JobID
} }
func (b ListHoldsAndBookmarksOutputBookmark) GetType() AbstractionType { return b.Type } func (b bookmarkBasedAbstraction) GetType() AbstractionType { return b.Type }
func (b ListHoldsAndBookmarksOutputBookmark) GetFS() string { return b.FS } func (b bookmarkBasedAbstraction) GetFS() string { return b.FS }
func (b ListHoldsAndBookmarksOutputBookmark) GetJobID() *JobID { return &b.JobID } func (b bookmarkBasedAbstraction) GetJobID() *JobID { return &b.JobID }
func (b ListHoldsAndBookmarksOutputBookmark) GetFullPath() string { func (b bookmarkBasedAbstraction) GetFullPath() string {
return fmt.Sprintf("%s#%s", b.FS, b.Name) // TODO use zfs.FilesystemVersion.ToAbsPath return fmt.Sprintf("%s#%s", b.FS, b.Name) // TODO use zfs.FilesystemVersion.ToAbsPath
} }
func (b ListHoldsAndBookmarksOutputBookmark) MarshalJSON() ([]byte, error) { func (b bookmarkBasedAbstraction) MarshalJSON() ([]byte, error) {
return json.Marshal(AbstractionJSON{b}) return json.Marshal(AbstractionJSON{b})
} }
func (b ListHoldsAndBookmarksOutputBookmark) String() string { func (b bookmarkBasedAbstraction) String() string {
return fmt.Sprintf("%s %s", b.Type, b.GetFullPath()) return fmt.Sprintf("%s %s", b.Type, b.GetFullPath())
} }
func (b ListHoldsAndBookmarksOutputBookmark) GetFilesystemVersion() zfs.FilesystemVersion { func (b bookmarkBasedAbstraction) GetFilesystemVersion() zfs.FilesystemVersion {
return b.FilesystemVersion return b.FilesystemVersion
} }
func (b ListHoldsAndBookmarksOutputBookmark) Destroy(ctx context.Context) error { func (b bookmarkBasedAbstraction) Destroy(ctx context.Context) error {
if err := zfs.ZFSDestroyIdempotent(ctx, b.GetFullPath()); err != nil { if err := zfs.ZFSDestroyIdempotent(ctx, b.GetFullPath()); err != nil {
return errors.Wrapf(err, "destroy %s: zfs", b) return errors.Wrapf(err, "destroy %s: zfs", b)
} }
return nil return nil
} }
type ListHoldsAndBookmarksOutputHold struct { type holdBasedAbstraction struct {
Type AbstractionType Type AbstractionType
FS string FS string
zfs.FilesystemVersion zfs.FilesystemVersion
@ -49,24 +49,24 @@ type ListHoldsAndBookmarksOutputHold struct {
JobID JobID JobID JobID
} }
func (h ListHoldsAndBookmarksOutputHold) GetType() AbstractionType { return h.Type } func (h holdBasedAbstraction) GetType() AbstractionType { return h.Type }
func (h ListHoldsAndBookmarksOutputHold) GetFS() string { return h.FS } func (h holdBasedAbstraction) GetFS() string { return h.FS }
func (h ListHoldsAndBookmarksOutputHold) GetJobID() *JobID { return &h.JobID } func (h holdBasedAbstraction) GetJobID() *JobID { return &h.JobID }
func (h ListHoldsAndBookmarksOutputHold) GetFullPath() string { func (h holdBasedAbstraction) GetFullPath() string {
return fmt.Sprintf("%s@%s", h.FS, h.GetName()) // TODO use zfs.FilesystemVersion.ToAbsPath return fmt.Sprintf("%s@%s", h.FS, h.GetName()) // TODO use zfs.FilesystemVersion.ToAbsPath
} }
func (h ListHoldsAndBookmarksOutputHold) MarshalJSON() ([]byte, error) { func (h holdBasedAbstraction) MarshalJSON() ([]byte, error) {
return json.Marshal(AbstractionJSON{h}) return json.Marshal(AbstractionJSON{h})
} }
func (h ListHoldsAndBookmarksOutputHold) String() string { func (h holdBasedAbstraction) String() string {
return fmt.Sprintf("%s %q on %s", h.Type, h.Tag, h.GetFullPath()) return fmt.Sprintf("%s %q on %s", h.Type, h.Tag, h.GetFullPath())
} }
func (h ListHoldsAndBookmarksOutputHold) GetFilesystemVersion() zfs.FilesystemVersion { func (h holdBasedAbstraction) GetFilesystemVersion() zfs.FilesystemVersion {
return h.FilesystemVersion return h.FilesystemVersion
} }
func (h ListHoldsAndBookmarksOutputHold) Destroy(ctx context.Context) error { func (h holdBasedAbstraction) Destroy(ctx context.Context) error {
if err := zfs.ZFSRelease(ctx, h.Tag, h.GetFullPath()); err != nil { if err := zfs.ZFSRelease(ctx, h.Tag, h.GetFullPath()); err != nil {
return errors.Wrapf(err, "release %s: zfs", h) return errors.Wrapf(err, "release %s: zfs", h)
} }