Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion pkg/disklib/gvddk_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,11 @@ func ConnectEx(appGlobal ConnectParams) (VixDiskLibConnection, VddkError) {
var connection VixDiskLibConnection
cnxParams, toFree := prepareConnectParams(appGlobal)
defer freeParams(toFree)
snapshotRef := C.CString(appGlobal.snapshotRef)
defer C.free(unsafe.Pointer(snapshotRef))
modes := C.CString(appGlobal.mode)
defer C.free(unsafe.Pointer(modes))
err := C.ConnectEx(cnxParams, C._Bool(appGlobal.readOnly), modes, &connection.conn)
err := C.ConnectEx(cnxParams, C._Bool(appGlobal.readOnly), snapshotRef, modes, &connection.conn)
if err != 0 {
return VixDiskLibConnection{}, NewVddkError(uint64(err), fmt.Sprintf("ConnectEx failed. The error code is %d.", err))
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/disklib/gvddk_c.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ VixError Connect(VixDiskLibConnectParams *cnxParams, VixDiskLibConnection *conne
return vixError;
}

VixError ConnectEx(VixDiskLibConnectParams *cnxParams, bool readOnly, char* transportModes, VixDiskLibConnection *connection) {
VixError ConnectEx(VixDiskLibConnectParams *cnxParams, bool readOnly, char* snapshotRef, char* transportModes, VixDiskLibConnection *connection) {
VixError vixError;
vixError = VixDiskLib_ConnectEx(cnxParams, readOnly, "", transportModes, connection);
vixError = VixDiskLib_ConnectEx(cnxParams, readOnly, snapshotRef, transportModes, connection);
return vixError;
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/disklib/gvddk_c.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ void GoLogWarn(char * msg);
VixError Init(uint32 major, uint32 minor, char* libDir);
VixError InitEx(uint32 major, uint32 minor, char* libDir, char* configFile);
VixError Connect(VixDiskLibConnectParams *cnxParams, VixDiskLibConnection *connection);
VixError ConnectEx(VixDiskLibConnectParams *cnxParams, bool readOnly, char* transportModes, VixDiskLibConnection *connection);
VixError ConnectEx(VixDiskLibConnectParams *cnxParams, bool readOnly, char* snapshotRef, char* transportModes, VixDiskLibConnection *connection);
DiskHandle Open(VixDiskLibConnection conn, char* path, uint32 flags);
VixError PrepareForAccess(VixDiskLibConnectParams *cnxParams, char* identity);
void Params_helper(VixDiskLibConnectParams *cnxParams, char* arg1, char* arg2, char* arg3, bool isFcd, bool isSession);
Expand Down
60 changes: 31 additions & 29 deletions pkg/disklib/gvddk_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,20 +82,21 @@ const (
type VixDiskLibSectorType uint64

type ConnectParams struct {
vmxSpec string
serverName string
thumbPrint string
userName string
password string
fcdId string
ds string
fcdssId string
cookie string
identity string
path string
flag uint32
readOnly bool
mode string
vmxSpec string
serverName string
thumbPrint string
userName string
password string
fcdId string
ds string
fcdssId string
cookie string
identity string
path string
flag uint32
readOnly bool
mode string
snapshotRef string
}

type VixDiskLibHandle struct {
Expand Down Expand Up @@ -172,22 +173,23 @@ func (this vddkErrorImpl) VixErrorCode() uint64 {
}

func NewConnectParams(vmxSpec string, serverName string, thumbPrint string, userName string, password string,
fcdId string, ds string, fcdssId string, cookie string, identity string, path string, flag uint32, readOnly bool, mode string) ConnectParams {
fcdId string, ds string, fcdssId string, cookie string, identity string, path string, flag uint32, readOnly bool, mode string, snapshotRef string) ConnectParams {
params := ConnectParams{
vmxSpec: vmxSpec,
serverName: serverName,
thumbPrint: thumbPrint,
userName: userName,
password: password,
fcdId: fcdId,
ds: ds,
fcdssId: fcdssId,
cookie: cookie,
identity: identity,
path: path,
flag: flag,
readOnly: readOnly,
mode: mode,
vmxSpec: vmxSpec,
serverName: serverName,
thumbPrint: thumbPrint,
userName: userName,
password: password,
fcdId: fcdId,
ds: ds,
fcdssId: fcdssId,
cookie: cookie,
identity: identity,
path: path,
flag: flag,
readOnly: readOnly,
mode: mode,
snapshotRef: snapshotRef,
}
return params
}
Expand Down
3 changes: 2 additions & 1 deletion pkg/virtual_disks/gvddk.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ func OpenFCD(serverName string, thumbPrint string, userName string, password str
"",
flags,
readOnly,
transportMode)
transportMode,
"")
return Open(globalParams, logger)
}

Expand Down
2 changes: 1 addition & 1 deletion test/low_level_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func TestCreate(t *testing.T) {
identity := os.Getenv("IDENTITY")
params := disklib.NewConnectParams("", serverName,thumPrint, userName,
password, fcdId, ds, "", "", identity, "", disklib.VIXDISKLIB_FLAG_OPEN_COMPRESSION_SKIPZ,
false, disklib.NBD)
false, disklib.NBD, "")
err1 := disklib.PrepareForAccess(params)
if err1 != nil {
t.Errorf("Prepare for access failed. Error code: %d. Error message: %s.", err1.VixErrorCode(), err1.Error())
Expand Down