-
Notifications
You must be signed in to change notification settings - Fork 2
/
pool_interface.go
88 lines (73 loc) · 4.97 KB
/
pool_interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package storage
import (
"io"
"github.com/lxc/lxd/lxd/backup"
"github.com/lxc/lxd/lxd/instance"
"github.com/lxc/lxd/lxd/migration"
"github.com/lxc/lxd/lxd/operations"
"github.com/lxc/lxd/lxd/storage/drivers"
"github.com/lxc/lxd/shared/api"
)
// Pool represents a LXD storage pool.
type Pool interface {
// Pool.
ID() int64
Name() string
Driver() drivers.Driver
GetResources() (*api.ResourcesStoragePool, error)
Delete(localOnly bool, op *operations.Operation) error
Update(driverOnly bool, newDesc string, newConfig map[string]string, op *operations.Operation) error
Mount() (bool, error)
Unmount() (bool, error)
ApplyPatch(name string) error
// Instances.
CreateInstance(inst instance.Instance, op *operations.Operation) error
CreateInstanceFromBackup(srcBackup backup.Info, srcData io.ReadSeeker, op *operations.Operation) (func(instance.Instance) error, func(), error)
CreateInstanceFromCopy(inst instance.Instance, src instance.Instance, snapshots bool, op *operations.Operation) error
CreateInstanceFromImage(inst instance.Instance, fingerprint string, op *operations.Operation) error
CreateInstanceFromMigration(inst instance.Instance, conn io.ReadWriteCloser, args migration.VolumeTargetArgs, op *operations.Operation) error
RenameInstance(inst instance.Instance, newName string, op *operations.Operation) error
DeleteInstance(inst instance.Instance, op *operations.Operation) error
UpdateInstance(inst instance.Instance, newDesc string, newConfig map[string]string, op *operations.Operation) error
UpdateInstanceBackupFile(inst instance.Instance, op *operations.Operation) error
CheckInstanceBackupFileSnapshots(backupConf *backup.InstanceConfig, projectName string, deleteMissing bool, op *operations.Operation) ([]*api.InstanceSnapshot, error)
MigrateInstance(inst instance.Instance, conn io.ReadWriteCloser, args *migration.VolumeSourceArgs, op *operations.Operation) error
RefreshInstance(inst instance.Instance, src instance.Instance, srcSnapshots []instance.Instance, op *operations.Operation) error
BackupInstance(inst instance.Instance, targetPath string, optimized bool, snapshots bool, op *operations.Operation) error
GetInstanceUsage(inst instance.Instance) (int64, error)
SetInstanceQuota(inst instance.Instance, size string, op *operations.Operation) error
MountInstance(inst instance.Instance, op *operations.Operation) (bool, error)
UnmountInstance(inst instance.Instance, op *operations.Operation) (bool, error)
GetInstanceDisk(inst instance.Instance) (string, error)
// Instance snapshots.
CreateInstanceSnapshot(inst instance.Instance, src instance.Instance, op *operations.Operation) error
RenameInstanceSnapshot(inst instance.Instance, newName string, op *operations.Operation) error
DeleteInstanceSnapshot(inst instance.Instance, op *operations.Operation) error
RestoreInstanceSnapshot(inst instance.Instance, src instance.Instance, op *operations.Operation) error
MountInstanceSnapshot(inst instance.Instance, op *operations.Operation) (bool, error)
UnmountInstanceSnapshot(inst instance.Instance, op *operations.Operation) (bool, error)
UpdateInstanceSnapshot(inst instance.Instance, newDesc string, newConfig map[string]string, op *operations.Operation) error
// Images.
EnsureImage(fingerprint string, op *operations.Operation) error
DeleteImage(fingerprint string, op *operations.Operation) error
UpdateImage(fingerprint, newDesc string, newConfig map[string]string, op *operations.Operation) error
// Custom volumes.
CreateCustomVolume(volName, desc string, config map[string]string, op *operations.Operation) error
CreateCustomVolumeFromCopy(volName, desc string, config map[string]string, srcPoolName, srcVolName string, srcVolOnly bool, op *operations.Operation) error
UpdateCustomVolume(volName, newDesc string, newConfig map[string]string, op *operations.Operation) error
RenameCustomVolume(volName string, newVolName string, op *operations.Operation) error
DeleteCustomVolume(volName string, op *operations.Operation) error
GetCustomVolumeUsage(volName string) (int64, error)
MountCustomVolume(volName string, op *operations.Operation) (bool, error)
UnmountCustomVolume(volName string, op *operations.Operation) (bool, error)
// Custom volume snapshots.
CreateCustomVolumeSnapshot(volName string, newSnapshotName string, op *operations.Operation) error
RenameCustomVolumeSnapshot(volName string, newSnapshotName string, op *operations.Operation) error
DeleteCustomVolumeSnapshot(volName string, op *operations.Operation) error
UpdateCustomVolumeSnapshot(volName, newDesc string, newConfig map[string]string, op *operations.Operation) error
RestoreCustomVolume(volName string, snapshotName string, op *operations.Operation) error
// Custom volume migration.
MigrationTypes(contentType drivers.ContentType, refresh bool) []migration.Type
CreateCustomVolumeFromMigration(conn io.ReadWriteCloser, args migration.VolumeTargetArgs, op *operations.Operation) error
MigrateCustomVolume(conn io.ReadWriteCloser, args *migration.VolumeSourceArgs, op *operations.Operation) error
}