Skip to content

Commit e7bf707

Browse files
committed
api: Add optional spec param to DatastoreFileManager.Copy
Signed-off-by: Doug MacEachern <[email protected]>
1 parent db0ba40 commit e7bf707

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

object/datastore_file_manager.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616

1717
"github.com/vmware/govmomi/vim25/progress"
1818
"github.com/vmware/govmomi/vim25/soap"
19+
"github.com/vmware/govmomi/vim25/types"
1920
)
2021

2122
// 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
115116
}
116117

117118
// 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 {
119120
srcp := m.Path(src)
120121
dstp := m.Path(dst)
121122

122123
f := m.FileManager.CopyDatastoreFile
123124

124125
if srcp.IsVMDK() {
126+
var destSpec types.BaseVirtualDiskSpec
127+
if len(spec) != 0 {
128+
destSpec = spec[0]
129+
}
130+
125131
// types.VirtualDiskSpec=nil as it is not implemented by vCenter
126132
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, destSpec, force)
128134
}
129135
}
130136

0 commit comments

Comments
 (0)