diff --git a/changelogs/unreleased/6986-blackpiglet b/changelogs/unreleased/6986-blackpiglet new file mode 100644 index 0000000000..4eae63eaee --- /dev/null +++ b/changelogs/unreleased/6986-blackpiglet @@ -0,0 +1 @@ +Add both non-Windows version and Windows version code for PVC block mode logic. \ No newline at end of file diff --git a/pkg/uploader/kopia/block_backup.go b/pkg/uploader/kopia/block_backup.go index a637925a49..ad90b723fc 100644 --- a/pkg/uploader/kopia/block_backup.go +++ b/pkg/uploader/kopia/block_backup.go @@ -1,3 +1,6 @@ +//go:build !windows +// +build !windows + /* Copyright The Velero Contributors. diff --git a/pkg/uploader/kopia/block_backup_windows.go b/pkg/uploader/kopia/block_backup_windows.go new file mode 100644 index 0000000000..e6b928456b --- /dev/null +++ b/pkg/uploader/kopia/block_backup_windows.go @@ -0,0 +1,30 @@ +//go:build windows +// +build windows + +/* +Copyright The Velero Contributors. + +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. +*/ + +package kopia + +import ( + "fmt" + + "github.com/kopia/kopia/fs" +) + +func getLocalBlockEntry(sourcePath string) (fs.Entry, error) { + return nil, fmt.Errorf("block mode is not supported for Windows") +} diff --git a/pkg/uploader/kopia/block_restore.go b/pkg/uploader/kopia/block_restore.go index 25d11ee24e..22c8ec1fcb 100644 --- a/pkg/uploader/kopia/block_restore.go +++ b/pkg/uploader/kopia/block_restore.go @@ -1,3 +1,6 @@ +//go:build !windows +// +build !windows + /* Copyright The Velero Contributors. diff --git a/pkg/uploader/kopia/block_restore_windows.go b/pkg/uploader/kopia/block_restore_windows.go new file mode 100644 index 0000000000..ff6e726c87 --- /dev/null +++ b/pkg/uploader/kopia/block_restore_windows.go @@ -0,0 +1,42 @@ +//go:build windows +// +build windows + +/* +Copyright The Velero Contributors. + +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. +*/ + +package kopia + +import ( + "context" + "fmt" + + "github.com/kopia/kopia/fs" + "github.com/kopia/kopia/snapshot/restore" +) + +type BlockOutput struct { + *restore.FilesystemOutput + + targetFileName string +} + +func (o *BlockOutput) WriteFile(ctx context.Context, relativePath string, remoteFile fs.File) error { + return fmt.Errorf("block mode is not supported for Windows") +} + +func (o *BlockOutput) BeginDirectory(ctx context.Context, relativePath string, e fs.Directory) error { + return fmt.Errorf("block mode is not supported for Windows") +}