fix(ui): revert omitzero changes (#5035)

- Revert "chore(ci): enable modernize:omitzero linter setting (#4981)"
   reverts 06845c750b
- Revert "refactor(general): omitzero JSON tag in policy structs (#4910)"
  reverts 033b4b1d5e
- Revert "refactor(general): `omitzero` JSON tag (#4907)"
   reverts 5bc467e2ca
- Ref: #5006
This commit is contained in:
Julio López
2025-11-24 19:18:33 -08:00
committed by GitHub
parent 4937b661f6
commit 4526f031bf
17 changed files with 125 additions and 122 deletions

View File

@@ -80,6 +80,9 @@ linters:
- (*go.uber.org/zap.SugaredLogger).With
misspell:
locale: US
modernize:
disable:
- omitzero
wsl_v5:
allow-whole-block: true

View File

@@ -12,7 +12,7 @@ type Options struct {
RCloneExe string `json:"rcloneExe,omitempty"` // path to rclone executable
RCloneArgs []string `json:"rcloneArgs,omitempty"` // additional rclone arguments
RCloneEnv []string `json:"rcloneEnv,omitempty"` // additional rclone environment variables
StartupTimeout jsonencoding.Duration `json:"startupTimeout,omitzero"` // time to wait for rclone to start
StartupTimeout jsonencoding.Duration `json:"startupTimeout,omitempty"` // time to wait for rclone to start
Debug bool `json:"debug,omitempty"` // log rclone output
NoWaitForTransfers bool `json:"noWaitForTransfers,omitempty"` // when set to true, don't wait for transfers to finish when closing
EmbeddedConfig string `json:"embeddedConfig,omitempty"`

View File

@@ -63,10 +63,10 @@ func (f *ContentFormat) SupportsPasswordChange() bool {
// MutableParameters represents parameters of the content manager that can be mutated after the repository
// is created.
type MutableParameters struct {
Version Version `json:"version,omitempty"` // version number, must be "1", "2" or "3"
MaxPackSize int `json:"maxPackSize,omitempty"` // maximum size of a pack object
IndexVersion int `json:"indexVersion,omitempty"` // force particular index format version (1,2,..)
EpochParameters epoch.Parameters `json:"epochParameters,omitzero"` // epoch manager parameters
Version Version `json:"version,omitempty"` // version number, must be "1", "2" or "3"
MaxPackSize int `json:"maxPackSize,omitempty"` // maximum size of a pack object
IndexVersion int `json:"indexVersion,omitempty"` // force particular index format version (1,2,..)
EpochParameters epoch.Parameters `json:"epochParameters,omitempty"` // epoch manager parameters
}
// Validate validates the parameters.

View File

@@ -13,10 +13,10 @@
// repository.
type UpgradeLockIntent struct {
OwnerID string `json:"ownerID,omitempty"`
CreationTime time.Time `json:"creationTime"`
AdvanceNoticeDuration time.Duration `json:"advanceNoticeDuration"`
IODrainTimeout time.Duration `json:"ioDrainTimeout"`
StatusPollInterval time.Duration `json:"statusPollInterval"`
CreationTime time.Time `json:"creationTime,omitempty"`
AdvanceNoticeDuration time.Duration `json:"advanceNoticeDuration,omitempty"`
IODrainTimeout time.Duration `json:"ioDrainTimeout,omitempty"`
StatusPollInterval time.Duration `json:"statusPollInterval,omitempty"`
Message string `json:"message,omitempty"`
MaxPermittedClockDrift time.Duration `json:"maxPermittedClockDrift,omitempty"`
}

View File

@@ -4,7 +4,7 @@
type IndirectObjectEntry struct {
Start int64 `json:"s,omitempty"`
Length int64 `json:"l,omitempty"`
Object ID `json:"o"`
Object ID `json:"o,omitempty"`
}
func (i *IndirectObjectEntry) endOffset() int64 {

View File

@@ -126,7 +126,7 @@ type DirEntry struct {
ModTime fs.UTCTimestamp `json:"mtime,omitempty"`
UserID uint32 `json:"uid,omitempty"`
GroupID uint32 `json:"gid,omitempty"`
ObjectID object.ID `json:"obj"`
ObjectID object.ID `json:"obj,omitempty"`
DirSummary *fs.DirectorySummary `json:"summ,omitempty"`
}
@@ -187,8 +187,8 @@ func (m *Manifest) Clone() *Manifest {
type StorageStats struct {
// amount of new unique data in this snapshot that wasn't there before.
// note that this depends on ordering of snapshots.
NewData StorageUsageDetails `json:"newData"`
RunningTotal StorageUsageDetails `json:"runningTotal"`
NewData StorageUsageDetails `json:"newData,omitempty"`
RunningTotal StorageUsageDetails `json:"runningTotal,omitempty"`
}
// StorageUsageDetails provides details about snapshot storage usage.

View File

@@ -5,18 +5,18 @@
// ActionsPolicy describes actions to be invoked when taking snapshots.
type ActionsPolicy struct {
// command runs once before and after the folder it's attached to (not inherited).
BeforeFolder *ActionCommand `json:"beforeFolder,omitzero"`
AfterFolder *ActionCommand `json:"afterFolder,omitzero"`
BeforeFolder *ActionCommand `json:"beforeFolder,omitempty"`
AfterFolder *ActionCommand `json:"afterFolder,omitempty"`
// commands run once before and after each snapshot root (can be inherited).
BeforeSnapshotRoot *ActionCommand `json:"beforeSnapshotRoot,omitzero"`
AfterSnapshotRoot *ActionCommand `json:"afterSnapshotRoot,omitzero"`
BeforeSnapshotRoot *ActionCommand `json:"beforeSnapshotRoot,omitempty"`
AfterSnapshotRoot *ActionCommand `json:"afterSnapshotRoot,omitempty"`
}
// ActionsPolicyDefinition specifies which policy definition provided the value of a particular field.
type ActionsPolicyDefinition struct {
BeforeSnapshotRoot snapshot.SourceInfo `json:"beforeSnapshotRoot,omitzero"`
AfterSnapshotRoot snapshot.SourceInfo `json:"afterSnapshotRoot,omitzero"`
BeforeSnapshotRoot snapshot.SourceInfo `json:"beforeSnapshotRoot,omitempty"`
AfterSnapshotRoot snapshot.SourceInfo `json:"afterSnapshotRoot,omitempty"`
}
// ActionCommand configures a action command.

View File

@@ -11,32 +11,32 @@
// CompressionPolicy specifies compression policy.
type CompressionPolicy struct {
CompressorName compression.Name `json:"compressorName,omitzero"`
CompressorName compression.Name `json:"compressorName,omitempty"`
OnlyCompress []string `json:"onlyCompress,omitempty"`
NoParentOnlyCompress bool `json:"noParentOnlyCompress,omitzero"`
NoParentOnlyCompress bool `json:"noParentOnlyCompress,omitempty"`
NeverCompress []string `json:"neverCompress,omitempty"`
NoParentNeverCompress bool `json:"noParentNeverCompress,omitzero"`
MinSize int64 `json:"minSize,omitzero"`
MaxSize int64 `json:"maxSize,omitzero"`
NoParentNeverCompress bool `json:"noParentNeverCompress,omitempty"`
MinSize int64 `json:"minSize,omitempty"`
MaxSize int64 `json:"maxSize,omitempty"`
}
// MetadataCompressionPolicy specifies compression policy for metadata.
type MetadataCompressionPolicy struct {
CompressorName compression.Name `json:"compressorName,omitzero"`
CompressorName compression.Name `json:"compressorName,omitempty"`
}
// CompressionPolicyDefinition specifies which policy definition provided the value of a particular field.
type CompressionPolicyDefinition struct {
CompressorName snapshot.SourceInfo `json:"compressorName,omitzero"`
OnlyCompress snapshot.SourceInfo `json:"onlyCompress,omitempty"` //nolint:modernize
NeverCompress snapshot.SourceInfo `json:"neverCompress,omitempty"` //nolint:modernize
MinSize snapshot.SourceInfo `json:"minSize,omitzero"`
MaxSize snapshot.SourceInfo `json:"maxSize,omitzero"`
CompressorName snapshot.SourceInfo `json:"compressorName,omitempty"`
OnlyCompress snapshot.SourceInfo `json:"onlyCompress,omitempty"`
NeverCompress snapshot.SourceInfo `json:"neverCompress,omitempty"`
MinSize snapshot.SourceInfo `json:"minSize,omitempty"`
MaxSize snapshot.SourceInfo `json:"maxSize,omitempty"`
}
// MetadataCompressionPolicyDefinition specifies which policy definition provided the value of a particular field.
type MetadataCompressionPolicyDefinition struct {
CompressorName snapshot.SourceInfo `json:"compressorName,omitzero"`
CompressorName snapshot.SourceInfo `json:"compressorName,omitempty"`
}
// CompressorForFile returns compression name to be used for compressing a given file according to policy, using attributes such as name or size.

View File

@@ -5,20 +5,20 @@
// ErrorHandlingPolicy controls error handling behavior when taking snapshots.
type ErrorHandlingPolicy struct {
// IgnoreFileErrors controls whether or not snapshot operation should fail when a file throws an error on being read
IgnoreFileErrors *OptionalBool `json:"ignoreFileErrors,omitzero"`
IgnoreFileErrors *OptionalBool `json:"ignoreFileErrors,omitempty"`
// IgnoreDirectoryErrors controls whether or not snapshot operation should fail when a directory throws an error on being read or opened
IgnoreDirectoryErrors *OptionalBool `json:"ignoreDirectoryErrors,omitzero"`
IgnoreDirectoryErrors *OptionalBool `json:"ignoreDirectoryErrors,omitempty"`
// IgnoreUnknownTypes controls whether or not snapshot operation should fail when it encounters a directory entry of an unknown type.
IgnoreUnknownTypes *OptionalBool `json:"ignoreUnknownTypes,omitzero"`
IgnoreUnknownTypes *OptionalBool `json:"ignoreUnknownTypes,omitempty"`
}
// ErrorHandlingPolicyDefinition specifies which policy definition provided the value of a particular field.
type ErrorHandlingPolicyDefinition struct {
IgnoreFileErrors snapshot.SourceInfo `json:"ignoreFileErrors,omitzero"`
IgnoreDirectoryErrors snapshot.SourceInfo `json:"ignoreDirectoryErrors,omitzero"`
IgnoreUnknownTypes snapshot.SourceInfo `json:"ignoreUnknownTypes,omitzero"`
IgnoreFileErrors snapshot.SourceInfo `json:"ignoreFileErrors,omitempty"`
IgnoreDirectoryErrors snapshot.SourceInfo `json:"ignoreDirectoryErrors,omitempty"`
IgnoreUnknownTypes snapshot.SourceInfo `json:"ignoreUnknownTypes,omitempty"`
}
// Merge applies default values from the provided policy.

View File

@@ -5,23 +5,23 @@
// FilesPolicy describes files to be ignored when taking snapshots.
type FilesPolicy struct {
IgnoreRules []string `json:"ignore,omitempty"`
NoParentIgnoreRules bool `json:"noParentIgnore,omitzero"`
NoParentIgnoreRules bool `json:"noParentIgnore,omitempty"`
DotIgnoreFiles []string `json:"ignoreDotFiles,omitempty"`
NoParentDotIgnoreFiles bool `json:"noParentDotFiles,omitzero"`
IgnoreCacheDirectories *OptionalBool `json:"ignoreCacheDirs,omitzero"`
MaxFileSize int64 `json:"maxFileSize,omitzero"`
OneFileSystem *OptionalBool `json:"oneFileSystem,omitzero"`
NoParentDotIgnoreFiles bool `json:"noParentDotFiles,omitempty"`
IgnoreCacheDirectories *OptionalBool `json:"ignoreCacheDirs,omitempty"`
MaxFileSize int64 `json:"maxFileSize,omitempty"`
OneFileSystem *OptionalBool `json:"oneFileSystem,omitempty"`
}
// FilesPolicyDefinition specifies which policy definition provided the value of a particular field.
type FilesPolicyDefinition struct {
IgnoreRules snapshot.SourceInfo `json:"ignore,omitempty"` //nolint:modernize
NoParentIgnoreRules snapshot.SourceInfo `json:"noParentIgnore,omitzero"`
DotIgnoreFiles snapshot.SourceInfo `json:"ignoreDotFiles,omitempty"` //nolint:modernize
NoParentDotIgnoreFiles snapshot.SourceInfo `json:"noParentDotFiles,omitzero"`
IgnoreCacheDirectories snapshot.SourceInfo `json:"ignoreCacheDirs,omitzero"`
MaxFileSize snapshot.SourceInfo `json:"maxFileSize,omitzero"`
OneFileSystem snapshot.SourceInfo `json:"oneFileSystem,omitzero"`
IgnoreRules snapshot.SourceInfo `json:"ignore,omitempty"`
NoParentIgnoreRules snapshot.SourceInfo `json:"noParentIgnore,omitempty"`
DotIgnoreFiles snapshot.SourceInfo `json:"ignoreDotFiles,omitempty"`
NoParentDotIgnoreFiles snapshot.SourceInfo `json:"noParentDotFiles,omitempty"`
IgnoreCacheDirectories snapshot.SourceInfo `json:"ignoreCacheDirs,omitempty"`
MaxFileSize snapshot.SourceInfo `json:"maxFileSize,omitempty"`
OneFileSystem snapshot.SourceInfo `json:"oneFileSystem,omitempty"`
}
// Merge applies default values from the provided policy.

View File

@@ -4,14 +4,14 @@
// DirLoggingPolicy represents the policy for logging directory information when snapshotting.
type DirLoggingPolicy struct {
Snapshotted *LogDetail `json:"snapshotted,omitzero"`
Ignored *LogDetail `json:"ignored,omitzero"`
Snapshotted *LogDetail `json:"snapshotted,omitempty"`
Ignored *LogDetail `json:"ignored,omitempty"`
}
// DirLoggingPolicyDefinition specifies which policy definition provided the value of a particular field.
type DirLoggingPolicyDefinition struct {
Snapshotted snapshot.SourceInfo `json:"snapshotted,omitzero"`
Ignored snapshot.SourceInfo `json:"ignored,omitzero"`
Snapshotted snapshot.SourceInfo `json:"snapshotted,omitempty"`
Ignored snapshot.SourceInfo `json:"ignored,omitempty"`
}
// Merge merges the provided directory logging policy.
@@ -22,18 +22,18 @@ func (p *DirLoggingPolicy) Merge(src DirLoggingPolicy, def *DirLoggingPolicyDefi
// EntryLoggingPolicy represents the policy for logging entry information when snapshotting.
type EntryLoggingPolicy struct {
Snapshotted *LogDetail `json:"snapshotted,omitzero"`
Ignored *LogDetail `json:"ignored,omitzero"`
CacheHit *LogDetail `json:"cacheHit,omitzero"`
CacheMiss *LogDetail `json:"cacheMiss,omitzero"`
Snapshotted *LogDetail `json:"snapshotted,omitempty"`
Ignored *LogDetail `json:"ignored,omitempty"`
CacheHit *LogDetail `json:"cacheHit,omitempty"`
CacheMiss *LogDetail `json:"cacheMiss,omitempty"`
}
// EntryLoggingPolicyDefinition specifies which policy definition provided the value of a particular field.
type EntryLoggingPolicyDefinition struct {
Snapshotted snapshot.SourceInfo `json:"snapshotted,omitzero"`
Ignored snapshot.SourceInfo `json:"ignored,omitzero"`
CacheHit snapshot.SourceInfo `json:"cacheHit,omitzero"`
CacheMiss snapshot.SourceInfo `json:"cacheMiss,omitzero"`
Snapshotted snapshot.SourceInfo `json:"snapshotted,omitempty"`
Ignored snapshot.SourceInfo `json:"ignored,omitempty"`
CacheHit snapshot.SourceInfo `json:"cacheHit,omitempty"`
CacheMiss snapshot.SourceInfo `json:"cacheMiss,omitempty"`
}
// Merge merges the provided entry logging policy.
@@ -46,14 +46,14 @@ func (p *EntryLoggingPolicy) Merge(src EntryLoggingPolicy, def *EntryLoggingPoli
// LoggingPolicy describes policy for emitting logs during snapshots.
type LoggingPolicy struct {
Directories DirLoggingPolicy `json:"directories,omitzero"`
Entries EntryLoggingPolicy `json:"entries,omitzero"`
Directories DirLoggingPolicy `json:"directories,omitempty"`
Entries EntryLoggingPolicy `json:"entries,omitempty"`
}
// LoggingPolicyDefinition specifies which policy definition provided the value of a particular field.
type LoggingPolicyDefinition struct {
Directories DirLoggingPolicyDefinition `json:"directories,omitzero"`
Entries EntryLoggingPolicyDefinition `json:"entries,omitzero"`
Directories DirLoggingPolicyDefinition `json:"directories,omitempty"`
Entries EntryLoggingPolicyDefinition `json:"entries,omitempty"`
}
// Merge applies default values from the provided policy.

View File

@@ -4,12 +4,12 @@
// OSSnapshotPolicy describes settings for OS-level snapshots.
type OSSnapshotPolicy struct {
VolumeShadowCopy VolumeShadowCopyPolicy `json:"volumeShadowCopy,omitzero"`
VolumeShadowCopy VolumeShadowCopyPolicy `json:"volumeShadowCopy,omitempty"`
}
// OSSnapshotPolicyDefinition specifies which policy definition provided the value of a particular field.
type OSSnapshotPolicyDefinition struct {
VolumeShadowCopy VolumeShadowCopyPolicyDefinition `json:"volumeShadowCopy,omitzero"`
VolumeShadowCopy VolumeShadowCopyPolicyDefinition `json:"volumeShadowCopy,omitempty"`
}
// Merge applies default values from the provided policy.
@@ -20,13 +20,13 @@ func (p *OSSnapshotPolicy) Merge(src OSSnapshotPolicy, def *OSSnapshotPolicyDefi
// VolumeShadowCopyPolicy describes settings for Windows Volume Shadow Copy
// snapshots.
type VolumeShadowCopyPolicy struct {
Enable *OSSnapshotMode `json:"enable,omitzero"`
Enable *OSSnapshotMode `json:"enable,omitempty"`
}
// VolumeShadowCopyPolicyDefinition specifies which policy definition provided
// the value of a particular field.
type VolumeShadowCopyPolicyDefinition struct {
Enable snapshot.SourceInfo `json:"enable,omitzero"`
Enable snapshot.SourceInfo `json:"enable,omitempty"`
}
// Merge applies default values from the provided policy.

View File

@@ -22,34 +22,34 @@ type TargetWithPolicy struct {
// Policy describes snapshot policy for a single source.
type Policy struct {
Labels map[string]string `json:"-"`
RetentionPolicy RetentionPolicy `json:"retention,omitzero"`
FilesPolicy FilesPolicy `json:"files,omitzero"`
ErrorHandlingPolicy ErrorHandlingPolicy `json:"errorHandling,omitzero"`
SchedulingPolicy SchedulingPolicy `json:"scheduling,omitzero"`
CompressionPolicy CompressionPolicy `json:"compression,omitzero"`
MetadataCompressionPolicy MetadataCompressionPolicy `json:"metadataCompression,omitzero"`
SplitterPolicy SplitterPolicy `json:"splitter,omitzero"`
Actions ActionsPolicy `json:"actions,omitzero"`
OSSnapshotPolicy OSSnapshotPolicy `json:"osSnapshots,omitzero"`
LoggingPolicy LoggingPolicy `json:"logging,omitzero"`
UploadPolicy UploadPolicy `json:"upload,omitzero"`
RetentionPolicy RetentionPolicy `json:"retention,omitempty"`
FilesPolicy FilesPolicy `json:"files,omitempty"`
ErrorHandlingPolicy ErrorHandlingPolicy `json:"errorHandling,omitempty"`
SchedulingPolicy SchedulingPolicy `json:"scheduling,omitempty"`
CompressionPolicy CompressionPolicy `json:"compression,omitempty"`
MetadataCompressionPolicy MetadataCompressionPolicy `json:"metadataCompression,omitempty"`
SplitterPolicy SplitterPolicy `json:"splitter,omitempty"`
Actions ActionsPolicy `json:"actions,omitempty"`
OSSnapshotPolicy OSSnapshotPolicy `json:"osSnapshots,omitempty"`
LoggingPolicy LoggingPolicy `json:"logging,omitempty"`
UploadPolicy UploadPolicy `json:"upload,omitempty"`
NoParent bool `json:"noParent,omitempty"`
}
// Definition corresponds 1:1 to Policy and each field specifies the snapshot.SourceInfo
// where a particular policy field was specified.
type Definition struct {
RetentionPolicy RetentionPolicyDefinition `json:"retention,omitzero"`
FilesPolicy FilesPolicyDefinition `json:"files,omitzero"`
ErrorHandlingPolicy ErrorHandlingPolicyDefinition `json:"errorHandling,omitzero"`
SchedulingPolicy SchedulingPolicyDefinition `json:"scheduling,omitzero"`
CompressionPolicy CompressionPolicyDefinition `json:"compression,omitzero"`
MetadataCompressionPolicy MetadataCompressionPolicyDefinition `json:"metadataCompression,omitzero"`
SplitterPolicy SplitterPolicyDefinition `json:"splitter,omitzero"`
Actions ActionsPolicyDefinition `json:"actions,omitzero"`
OSSnapshotPolicy OSSnapshotPolicyDefinition `json:"osSnapshots,omitzero"`
LoggingPolicy LoggingPolicyDefinition `json:"logging,omitzero"`
UploadPolicy UploadPolicyDefinition `json:"upload,omitzero"`
RetentionPolicy RetentionPolicyDefinition `json:"retention,omitempty"`
FilesPolicy FilesPolicyDefinition `json:"files,omitempty"`
ErrorHandlingPolicy ErrorHandlingPolicyDefinition `json:"errorHandling,omitempty"`
SchedulingPolicy SchedulingPolicyDefinition `json:"scheduling,omitempty"`
CompressionPolicy CompressionPolicyDefinition `json:"compression,omitempty"`
MetadataCompressionPolicy MetadataCompressionPolicyDefinition `json:"metadataCompression,omitempty"`
SplitterPolicy SplitterPolicyDefinition `json:"splitter,omitempty"`
Actions ActionsPolicyDefinition `json:"actions,omitempty"`
OSSnapshotPolicy OSSnapshotPolicyDefinition `json:"osSnapshots,omitempty"`
LoggingPolicy LoggingPolicyDefinition `json:"logging,omitempty"`
UploadPolicy UploadPolicyDefinition `json:"upload,omitempty"`
}
func (p *Policy) String() string {

View File

@@ -21,24 +21,24 @@
// RetentionPolicy describes snapshot retention policy.
type RetentionPolicy struct {
KeepLatest *OptionalInt `json:"keepLatest,omitzero"`
KeepHourly *OptionalInt `json:"keepHourly,omitzero"`
KeepDaily *OptionalInt `json:"keepDaily,omitzero"`
KeepWeekly *OptionalInt `json:"keepWeekly,omitzero"`
KeepMonthly *OptionalInt `json:"keepMonthly,omitzero"`
KeepAnnual *OptionalInt `json:"keepAnnual,omitzero"`
IgnoreIdenticalSnapshots *OptionalBool `json:"ignoreIdenticalSnapshots,omitzero"`
KeepLatest *OptionalInt `json:"keepLatest,omitempty"`
KeepHourly *OptionalInt `json:"keepHourly,omitempty"`
KeepDaily *OptionalInt `json:"keepDaily,omitempty"`
KeepWeekly *OptionalInt `json:"keepWeekly,omitempty"`
KeepMonthly *OptionalInt `json:"keepMonthly,omitempty"`
KeepAnnual *OptionalInt `json:"keepAnnual,omitempty"`
IgnoreIdenticalSnapshots *OptionalBool `json:"ignoreIdenticalSnapshots,omitempty"`
}
// RetentionPolicyDefinition specifies which policy definition provided the value of a particular field.
type RetentionPolicyDefinition struct {
KeepLatest snapshot.SourceInfo `json:"keepLatest,omitzero"`
KeepHourly snapshot.SourceInfo `json:"keepHourly,omitzero"`
KeepDaily snapshot.SourceInfo `json:"keepDaily,omitzero"`
KeepWeekly snapshot.SourceInfo `json:"keepWeekly,omitzero"`
KeepMonthly snapshot.SourceInfo `json:"keepMonthly,omitzero"`
KeepAnnual snapshot.SourceInfo `json:"keepAnnual,omitzero"`
IgnoreIdenticalSnapshots snapshot.SourceInfo `json:"ignoreIdenticalSnapshots,omitzero"`
KeepLatest snapshot.SourceInfo `json:"keepLatest,omitempty"`
KeepHourly snapshot.SourceInfo `json:"keepHourly,omitempty"`
KeepDaily snapshot.SourceInfo `json:"keepDaily,omitempty"`
KeepWeekly snapshot.SourceInfo `json:"keepWeekly,omitempty"`
KeepMonthly snapshot.SourceInfo `json:"keepMonthly,omitempty"`
KeepAnnual snapshot.SourceInfo `json:"keepAnnual,omitempty"`
IgnoreIdenticalSnapshots snapshot.SourceInfo `json:"ignoreIdenticalSnapshots,omitempty"`
}
// ComputeRetentionReasons computes the reasons why each snapshot is retained, based on

View File

@@ -63,21 +63,21 @@ func SortAndDedupeTimesOfDay(tod []TimeOfDay) []TimeOfDay {
// SchedulingPolicy describes policy for scheduling snapshots.
type SchedulingPolicy struct {
IntervalSeconds int64 `json:"intervalSeconds,omitzero"`
IntervalSeconds int64 `json:"intervalSeconds,omitempty"`
TimesOfDay []TimeOfDay `json:"timeOfDay,omitempty"`
NoParentTimesOfDay bool `json:"noParentTimeOfDay,omitzero"`
NoParentTimesOfDay bool `json:"noParentTimeOfDay,omitempty"`
Manual bool `json:"manual,omitempty"`
Cron []string `json:"cron,omitempty"`
Manual bool `json:"manual,omitzero"`
RunMissed *OptionalBool `json:"runMissed,omitzero"`
RunMissed *OptionalBool `json:"runMissed,omitempty"`
}
// SchedulingPolicyDefinition specifies which policy definition provided the value of a particular field.
type SchedulingPolicyDefinition struct {
IntervalSeconds snapshot.SourceInfo `json:"intervalSeconds,omitzero"`
TimesOfDay snapshot.SourceInfo `json:"timeOfDay,omitempty"` //nolint:modernize
Cron snapshot.SourceInfo `json:"cron,omitempty"` //nolint:modernize
Manual snapshot.SourceInfo `json:"manual,omitzero"`
RunMissed snapshot.SourceInfo `json:"runMissed,omitzero"`
IntervalSeconds snapshot.SourceInfo `json:"intervalSeconds,omitempty"`
TimesOfDay snapshot.SourceInfo `json:"timeOfDay,omitempty"`
Cron snapshot.SourceInfo `json:"cron,omitempty"`
Manual snapshot.SourceInfo `json:"manual,omitempty"`
RunMissed snapshot.SourceInfo `json:"runMissed,omitempty"`
}
// defaultRunMissed is the value for RunMissed.

View File

@@ -7,12 +7,12 @@
// SplitterPolicy specifies compression policy.
type SplitterPolicy struct {
Algorithm string `json:"algorithm,omitzero"`
Algorithm string `json:"algorithm,omitempty"`
}
// SplitterPolicyDefinition specifies which policy definition provided the value of a particular field.
type SplitterPolicyDefinition struct {
Algorithm snapshot.SourceInfo `json:"algorithm,omitzero"`
Algorithm snapshot.SourceInfo `json:"algorithm,omitempty"`
}
// SplitterForFile returns splitter algorithm.

View File

@@ -8,16 +8,16 @@
// UploadPolicy describes policy to apply when uploading snapshots.
type UploadPolicy struct {
MaxParallelSnapshots *OptionalInt `json:"maxParallelSnapshots,omitzero"`
MaxParallelFileReads *OptionalInt `json:"maxParallelFileReads,omitzero"`
ParallelUploadAboveSize *OptionalInt64 `json:"parallelUploadAboveSize,omitzero"`
MaxParallelSnapshots *OptionalInt `json:"maxParallelSnapshots,omitempty"`
MaxParallelFileReads *OptionalInt `json:"maxParallelFileReads,omitempty"`
ParallelUploadAboveSize *OptionalInt64 `json:"parallelUploadAboveSize,omitempty"`
}
// UploadPolicyDefinition specifies which policy definition provided the value of a particular field.
type UploadPolicyDefinition struct {
MaxParallelSnapshots snapshot.SourceInfo `json:"maxParallelSnapshots,omitzero"`
MaxParallelFileReads snapshot.SourceInfo `json:"maxParallelFileReads,omitzero"`
ParallelUploadAboveSize snapshot.SourceInfo `json:"parallelUploadAboveSize,omitzero"`
MaxParallelSnapshots snapshot.SourceInfo `json:"maxParallelSnapshots,omitempty"`
MaxParallelFileReads snapshot.SourceInfo `json:"maxParallelFileReads,omitempty"`
ParallelUploadAboveSize snapshot.SourceInfo `json:"parallelUploadAboveSize,omitempty"`
}
// Merge applies default values from the provided policy.