def __init__()

in VMBackup/main/parameterparser.py [0:0]


    def __init__(self, protected_settings, public_settings, backup_logger):
        """
        TODO: we should validate the parameter first
        """
        self.blobs = []
        self.backup_metadata = None
        self.public_config_obj = None
        self.private_config_obj = None
        self.blobs = None
        self.customSettings = None
        self.snapshotTaskToken = ''
        self.includedDisks = None
        self.dynamicConfigsFromCRP = None
        self.wellKnownSettingFlags = {CommonVariables.isSnapshotTtlEnabled: False, CommonVariables.useMccfToFetchDsasForAllDisks: False,
                                      CommonVariables.useMccfForLad: False, CommonVariables.enableSnapshotExtensionPolling: False, CommonVariables.isVmmdBlobIncluded : False}
        settingKeysMapping= {}
        settingKeysMapping[CommonVariables.isSnapshotTtlEnabled.lower()] = CommonVariables.isSnapshotTtlEnabled
        settingKeysMapping[CommonVariables.useMccfToFetchDsasForAllDisks.lower()] = CommonVariables.useMccfToFetchDsasForAllDisks
        settingKeysMapping[CommonVariables.useMccfForLad.lower()] = CommonVariables.useMccfForLad
        settingKeysMapping[CommonVariables.enableSnapshotExtensionPolling.lower()] = CommonVariables.enableSnapshotExtensionPolling
        self.includeLunList = []    #To be shared with HP

        """
        get the public configuration
        """
        self.commandToExecute = public_settings.get(CommonVariables.command_to_execute)
        self.taskId = public_settings.get(CommonVariables.task_id)
        self.locale = public_settings.get(CommonVariables.locale)
        self.logsBlobUri = public_settings.get(CommonVariables.logs_blob_uri)
        self.statusBlobUri = public_settings.get(CommonVariables.status_blob_uri)
        self.commandStartTimeUTCTicks = public_settings.get(CommonVariables.commandStartTimeUTCTicks)
        self.vmType = public_settings.get(CommonVariables.vmType)
        if(CommonVariables.customSettings in public_settings.keys() and public_settings.get(CommonVariables.customSettings) is not None and public_settings.get(CommonVariables.customSettings) != ""):
            backup_logger.log("Reading customSettings from public_settings", True)
            self.customSettings = public_settings.get(CommonVariables.customSettings)
        elif(CommonVariables.customSettings in protected_settings.keys()):
            backup_logger.log("Reading customSettings from protected_settings", True)
            self.customSettings = protected_settings.get(CommonVariables.customSettings)

        self.publicObjectStr = public_settings.get(CommonVariables.object_str)
        if(self.publicObjectStr is not None and self.publicObjectStr != ""):
            if sys.version_info > (3,):
                decoded_public_obj_string = base64.b64decode(self.publicObjectStr)
                decoded_public_obj_string = decoded_public_obj_string.decode('ascii')
            else:
                decoded_public_obj_string = base64.standard_b64decode(self.publicObjectStr)
            decoded_public_obj_string = decoded_public_obj_string.strip()
            decoded_public_obj_string = decoded_public_obj_string.strip('\'')
            self.public_config_obj = json.loads(decoded_public_obj_string)
            self.backup_metadata = self.public_config_obj['backupMetadata']
        if(self.logsBlobUri is None or self.logsBlobUri == ""):
            self.logsBlobUri = protected_settings.get(CommonVariables.logs_blob_uri)
        if(self.statusBlobUri is None or self.statusBlobUri == ""):
            self.statusBlobUri = protected_settings.get(CommonVariables.status_blob_uri)
        if(CommonVariables.snapshotTaskToken in self.public_config_obj.keys()):
            self.snapshotTaskToken = self.public_config_obj[CommonVariables.snapshotTaskToken]
        elif(CommonVariables.snapshotTaskToken in protected_settings.keys()):
            self.snapshotTaskToken = protected_settings.get(CommonVariables.snapshotTaskToken)
        if(CommonVariables.includedDisks in self.public_config_obj.keys()):
            self.includedDisks = self.public_config_obj[CommonVariables.includedDisks]
        if("dynamicConfigsFromCRP" in self.public_config_obj):
            self.dynamicConfigsFromCRP = self.public_config_obj['dynamicConfigsFromCRP']

        """
        first get the protected configuration
        """
        self.privateObjectStr = protected_settings.get(CommonVariables.object_str)
        if(self.privateObjectStr is not None and self.privateObjectStr != ""):
            if sys.version_info > (3,):
                decoded_private_obj_string = base64.b64decode(self.privateObjectStr)
                decoded_private_obj_string = decoded_private_obj_string.decode('ascii')
            else:
                decoded_private_obj_string = base64.standard_b64decode(self.privateObjectStr)
            decoded_private_obj_string = decoded_private_obj_string.strip()
            decoded_private_obj_string = decoded_private_obj_string.strip('\'')
            self.private_config_obj = json.loads(decoded_private_obj_string)
            self.blobs = self.private_config_obj['blobSASUri']
        
        try:
            if(self.includedDisks != None):
                if(CommonVariables.dataDiskLunList in self.includedDisks.keys() and self.includedDisks[CommonVariables.dataDiskLunList] != None):
                    self.includeLunList = self.includedDisks[CommonVariables.dataDiskLunList]
                if(CommonVariables.isOSDiskIncluded in self.includedDisks.keys() and self.includedDisks[CommonVariables.isOSDiskIncluded] == True):
                    self.includeLunList.append(-1)
                    
                    backup_logger.log("LUN list - " + str(self.includeLunList), True)
                if(CommonVariables.isVmmdBlobIncluded in self.includedDisks.keys() and self.includedDisks[CommonVariables.isVmmdBlobIncluded] == True):
                    self.wellKnownSettingFlags[CommonVariables.isVmmdBlobIncluded] = True              
                    
        except Exception as e:
            errorMsg = "Exception occurred while populating includeLunList, Exception: %s" % (str(e))
            backup_logger.log(errorMsg, True)
        
        if(self.dynamicConfigsFromCRP != None):
            try:
                backup_logger.log("settings received " + str(self.dynamicConfigsFromCRP), True)
                for config in self.dynamicConfigsFromCRP:
                    if CommonVariables.key in config and CommonVariables.value in config:
                        config_key = config[CommonVariables.key].lower()
                        if(config_key in settingKeysMapping):
                            self.wellKnownSettingFlags[settingKeysMapping[config_key]] = config[CommonVariables.value]
                        else:
                            backup_logger.log("The received " + str(config[CommonVariables.key]) + " is not an expected setting name.", True)
                    else:
                        backup_logger.log("The received dynamicConfigsFromCRP is not in expected format.", True)
            except Exception as e:
                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)