diff --git a/VMBackup/main/Utils/HostSnapshotObjects.py b/VMBackup/main/Utils/HostSnapshotObjects.py index 2d2473457..fa836fc67 100644 --- a/VMBackup/main/Utils/HostSnapshotObjects.py +++ b/VMBackup/main/Utils/HostSnapshotObjects.py @@ -1,23 +1,25 @@ import json class HostDoSnapshotRequestBody: - def __init__(self, taskId, diskIds, settings, snapshotTaskToken, snapshotMetadata): + def __init__(self, taskId, diskIds, settings, snapshotTaskToken, snapshotMetadata, instantAccessDurationMinutes = None): self.taskId = taskId self.diskIds = diskIds self.snapshotMetadata = snapshotMetadata self.snapshotTaskToken = snapshotTaskToken self.settings = settings + self.instantAccessDurationMinutes = instantAccessDurationMinutes def convertToDictionary(self): - return dict(taskId = self.taskId, diskIds = self.diskIds, settings = self.settings, snapshotTaskToken = self.snapshotTaskToken, snapshotMetadata = self.snapshotMetadata) + return dict(taskId = self.taskId, diskIds = self.diskIds, settings = self.settings, snapshotTaskToken = self.snapshotTaskToken, snapshotMetadata = self.snapshotMetadata, instantAccessDurationMinutes = self.instantAccessDurationMinutes) class HostPreSnapshotRequestBody: - def __init__(self, taskId, snapshotTaskToken): + def __init__(self, taskId, snapshotTaskToken, instantAccessDurationMinutes = None): self.taskId = taskId self.snapshotTaskToken = snapshotTaskToken + self.instantAccessDurationMinutes = instantAccessDurationMinutes def convertToDictionary(self): - return dict(taskId = self.taskId, snapshotTaskToken = self.snapshotTaskToken) + return dict(taskId = self.taskId, snapshotTaskToken = self.snapshotTaskToken, instantAccessDurationMinutes = self.instantAccessDurationMinutes) class BlobSnapshotInfo: def __init__(self, isSuccessful, snapshotUri, errorMessage, statusCode, ddSnapshotIdentifier = None): @@ -31,11 +33,12 @@ def convertToDictionary(self): return dict(isSuccessful = self.isSuccessful, snapshotUri = self.snapshotUri, errorMessage = self.errorMessage, statusCode = self.statusCode, ddSnapshotIdentifier = self.ddSnapshotIdentifier) class DDSnapshotIdentifier: - def __init__(self, creationTime, id, token): + def __init__(self, creationTime, id, token, instantAccessDurationMinutes = None): self.creationTime = creationTime self.id = id self.token = token + self.instantAccessDurationMinutes = instantAccessDurationMinutes def convertToDictionary(self): - return dict(creationTime = self.creationTime, id = self.id, token = self.token) + return dict(creationTime = self.creationTime, id = self.id, token = self.token, instantAccessDurationMinutes = self.instantAccessDurationMinutes) diff --git a/VMBackup/main/Utils/Status.py b/VMBackup/main/Utils/Status.py index 9a9d421fa..9dc79e5f4 100755 --- a/VMBackup/main/Utils/Status.py +++ b/VMBackup/main/Utils/Status.py @@ -69,13 +69,14 @@ def convertToDictionary(self): return dict(isSuccessful = self.isSuccessful, snapshotUri = self.snapshotUri, errorMessage = self.errorMessage, blobUri = self.blobUri, directDriveSnapshotIdentifier = self.directDriveSnapshotIdentifier) class DirectDriveSnapshotIdentifier: - def __init__(self, creationTime, id, token): + def __init__(self, creationTime, id, token, instantAccessDurationMinutes = None): self.creationTime = creationTime self.id = id self.token = token + self.instantAccessDurationMinutes = instantAccessDurationMinutes # This is populated for DD disk with Instant Access snapshot def convertToDictionary(self): - return dict(creationTime = self.creationTime, id = self.id, token = self.token) + return dict(creationTime = self.creationTime, id = self.id, token = self.token, instantAccessDurationMinutes = self.instantAccessDurationMinutes) class CreationTime: def __init__(self, DateTime, OffsetMinutes): diff --git a/VMBackup/main/common.py b/VMBackup/main/common.py index 8846eaee9..d912de56f 100644 --- a/VMBackup/main/common.py +++ b/VMBackup/main/common.py @@ -67,6 +67,7 @@ class CommonVariables: isVmgsBlobIncluded = 'isVmgsBlobIncluded' isAnyWADiskIncluded = 'isAnyWADiskIncluded' isAnyDirectDriveDiskIncluded = 'isAnyDirectDriveDiskIncluded' + instantAccessDurationMinutes = 'instantAccessDurationMinutes' onlyGuest = 'onlyGuest' firstGuestThenHost = 'firstGuestThenHost' diff --git a/VMBackup/main/parameterparser.py b/VMBackup/main/parameterparser.py index 210fe92a0..425ec5a65 100644 --- a/VMBackup/main/parameterparser.py +++ b/VMBackup/main/parameterparser.py @@ -43,6 +43,7 @@ def __init__(self, protected_settings, public_settings, backup_logger): settingKeysMapping[CommonVariables.useMccfForLad.lower()] = CommonVariables.useMccfForLad settingKeysMapping[CommonVariables.enableSnapshotExtensionPolling.lower()] = CommonVariables.enableSnapshotExtensionPolling self.includeLunList = [] #To be shared with HP + self.instantAccessDurationMinutes = None """ get the public configuration @@ -131,4 +132,13 @@ def __init__(self, protected_settings, public_settings, backup_logger): errorMsg = "Exception occurred while populating settings, Exception: %s" % (str(e)) backup_logger.log(errorMsg, True) - backup_logger.log("settings to be sent " + str(self.wellKnownSettingFlags), True) \ No newline at end of file + backup_logger.log("settings to be sent " + str(self.wellKnownSettingFlags), True) + + try: + if(self.includedDisks != None): + if(CommonVariables.instantAccessDurationMinutes in self.includedDisks.keys() and self.includedDisks[CommonVariables.instantAccessDurationMinutes] != None): + self.instantAccessDurationMinutes = self.includedDisks[CommonVariables.instantAccessDurationMinutes] + backup_logger.log("InstantAccessDurationMinutes = " + str(self.instantAccessDurationMinutes), True) + except Exception as e: + errorMsg = "Exception occurred while extracting instantAccessDurationMinutes, Exception: %s" % (str(e)) + backup_logger.log(errorMsg, True) \ No newline at end of file