def lambda_handler()

in scripts/PreHAConfig/PreHAConfig.py [0:0]


def lambda_handler(input, context):
    global responseStr
    try:
        if (input['RequestType'] == "Update") or (input['RequestType'] == "Create"):
            HANAPrimaryInstanceID = input['ResourceProperties']['PrimaryInstanceId']
            HANASecondaryInstanceID = input['ResourceProperties']['SecondaryInstanceId']
            AWSRegion = input['ResourceProperties']['AWSRegion']
            HANAPrimaryIPAddress = input['ResourceProperties']['HANAPrimaryIPAddress']
            HANASecondaryIPAddress = input['ResourceProperties']['HANASecondaryIPAddress']
            hanaSID = input['ResourceProperties']['SID']
            hanaInstanceNo = input['ResourceProperties']['InstanceNo']
            HANAMasterPass = input['ResourceProperties']['HANAMasterPass']
            MyOS = input['ResourceProperties']['MyOS']

            if 'SUSE' in MyOS.upper():
                # Update cluster packages
                retValue = updateClusterPackages(HANAPrimaryInstanceID,HANASecondaryInstanceID,AWSRegion)
                manageRetValue(retValue,"updateClusterPackages",input, context)
                
                # Retrieve ENI IDs from both HANA instances
                HANAPrimaryENIID = getNetworkInterfaceId(HANAPrimaryInstanceID)
                HANASecondaryENIID = getNetworkInterfaceId(HANASecondaryInstanceID)
            
                # Assign a Second IP to both HANA instances
                HANAPrimarySecondIP = setSecondaryInterfaceIP(HANAPrimaryENIID)
                responseStr['HANAPrimarySecondIP'] = HANAPrimarySecondIP
                HANASecondarySecondIP = setSecondaryInterfaceIP(HANASecondaryENIID)
                responseStr['HANASecondarySecondIP'] = HANASecondarySecondIP
                    
                retValue = updateNetworkConfig(HANAPrimaryInstanceID,HANAPrimaryIPAddress,HANAPrimarySecondIP,AWSRegion)
                manageRetValue(retValue,"updateNetworkConfigPrimary",input, context)

                retValue = updateNetworkConfig(HANASecondaryInstanceID,HANASecondaryIPAddress,HANASecondarySecondIP,AWSRegion)
                manageRetValue(retValue,"updateNetworkConfigSecondary",input, context)
            else:
                responseStr['HANAPrimarySecondIP'] = 'NotSet'
                responseStr['HANASecondarySecondIP'] = 'NotSet'
                responseStr['updateNetworkConfigPrimary'] = 'NotSet'
                responseStr['updateNetworkConfigSecondary'] = 'NotSet'
                
            retValue = backupHANAonPrimary(HANAPrimaryInstanceID,hanaSID,hanaInstanceNo,HANAMasterPass,AWSRegion)
            manageRetValue(retValue,"backupHANAonPrimary",input, context)
            
            cfnresponse.send(input, context, cfnresponse.SUCCESS, responseStr)
        else:
            responseStr['Status'] = 'Nothing to do as Request Type is : ' + input['RequestType']
            cfnresponse.send(input, context, cfnresponse.SUCCESS, responseStr)
    except Exception as e:
        responseStr['Status'] = str(e)
        cfnresponse.send(input, context, cfnresponse.FAILED, responseStr)