@@ -16,6 +16,7 @@ import (
16
16
17
17
"github.com/vmware/govmomi/vim25/progress"
18
18
"github.com/vmware/govmomi/vim25/soap"
19
+ "github.com/vmware/govmomi/vim25/types"
19
20
)
20
21
21
22
// DatastoreFileManager combines FileManager and VirtualDiskManager to manage files on a Datastore
@@ -115,16 +116,21 @@ func (m *DatastoreFileManager) CopyFile(ctx context.Context, src string, dst str
115
116
}
116
117
117
118
// Copy dispatches to the appropriate FileManager or VirtualDiskManager Copy method based on file name extension
118
- func (m * DatastoreFileManager ) Copy (ctx context.Context , src string , dst string ) error {
119
+ func (m * DatastoreFileManager ) Copy (ctx context.Context , src string , dst string , spec ... types. BaseVirtualDiskSpec ) error {
119
120
srcp := m .Path (src )
120
121
dstp := m .Path (dst )
121
122
122
123
f := m .FileManager .CopyDatastoreFile
123
124
124
125
if srcp .IsVMDK () {
126
+ var dstSpec types.BaseVirtualDiskSpec
127
+ if len (spec ) != 0 {
128
+ dstSpec = spec [0 ]
129
+ }
130
+
125
131
// types.VirtualDiskSpec=nil as it is not implemented by vCenter
126
132
f = func (ctx context.Context , src string , srcDC * Datacenter , dst string , dstDC * Datacenter , force bool ) (* Task , error ) {
127
- return m .VirtualDiskManager .CopyVirtualDisk (ctx , src , srcDC , dst , dstDC , nil , force )
133
+ return m .VirtualDiskManager .CopyVirtualDisk (ctx , src , srcDC , dst , dstDC , dstSpec , force )
128
134
}
129
135
}
130
136
0 commit comments