in scripts/HAConfig/HAConfig.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']
HANAPrimaryHostname = input['ResourceProperties']['PrimaryHostName']
HANASecondaryHostname = input['ResourceProperties']['SecondaryHostName']
PaceMakerTag = input['ResourceProperties']['PaceMakerTag']
AWSRegion = input['ResourceProperties']['AWSRegion']
HANAVirtualIP = input['ResourceProperties']['VirtualIP']
PrimarySubnetId = input['ResourceProperties']['PrimarySubnetId']
SecondarySubnetId = input['ResourceProperties']['SecondarySubnetId']
hanaSID = input['ResourceProperties']['SID']
hanaInstanceNo = input['ResourceProperties']['InstanceNo']
HANAMasterPass = input['ResourceProperties']['HANAMasterPass']
TempS3Bucket = input['ResourceProperties']['TempS3Bucket']
HANAPrimaryIPAddress = input['ResourceProperties']['HANAPrimaryIPAddress']
HANASecondaryIPAddress = input['ResourceProperties']['HANASecondaryIPAddress']
domainName = input['ResourceProperties']['domainName']
HANAPrimarySite = input['ResourceProperties']['PrimaryHANASite']
HANASecondarySite = input['ResourceProperties']['SecondaryHANASite']
VPCID=input['ResourceProperties']['VPCID']
MyOS = input['ResourceProperties']['MyOS']
MyOS = MyOS.upper()
HANAPrimaryCorosync2ndIP = input['ResourceProperties']['HANAPrimaryCorosync2ndIP']
HANASecondaryCorosync2ndIP = input['ResourceProperties']['HANASecondaryCorosync2ndIP']
sidadm = hanaSID.lower()+"adm"
retValue = setupAWSConfigProfile(HANAPrimaryInstanceID,HANASecondaryInstanceID,AWSRegion)
manageRetValue(retValue,"setupAWSConfigProfile",input, context)
retValue = createPacemakerTag(HANAPrimaryInstanceID,HANASecondaryInstanceID,PaceMakerTag,HANAPrimaryHostname,HANASecondaryHostname,hanaSID,AWSRegion)
manageRetValue(retValue,"createPacemakerTag",input, context)
retValue = disableSourceDestinationCheck(HANAPrimaryInstanceID,HANASecondaryInstanceID,AWSRegion)
manageRetValue(retValue,"disableSourceDestinationCheck",input, context)
RTabId = getRouteTableID(PrimarySubnetId,SecondarySubnetId,VPCID,AWSRegion)
updateRouteTable(HANAPrimaryInstanceID,HANAVirtualIP,RTabId,AWSRegion)
manageRetValue(retValue,"getRouteTableID",input, context)
if 'SUSE' in MyOS :
retValue = installRsyslog(HANAPrimaryInstanceID,HANASecondaryInstanceID,AWSRegion)
responseStr["Status"]["installRsyslog"] = "Success"
retValue = copySSFSFilesFromPrimaryToS3(HANAPrimaryInstanceID,TempS3Bucket,hanaSID,AWSRegion)
manageRetValue(retValue,"copySSFSFilesFromPrimaryToS3",input, context)
retValue = copySSFSFilesFromS3ToSecondary(HANASecondaryInstanceID,TempS3Bucket,hanaSID,AWSRegion)
manageRetValue(retValue,"copySSFSFilesFromS3ToSecondary",input, context)
retValue = disableHANAAutoStartSecondary(HANASecondaryInstanceID,HANASecondaryHostname,hanaSID,hanaInstanceNo,AWSRegion)
manageRetValue(retValue,"disableHANAAutoStartSecondary",input, context)
retValue = disableHANAAutoStartPrimary(HANAPrimaryInstanceID,HANAPrimaryHostname,hanaSID,hanaInstanceNo,AWSRegion)
manageRetValue(retValue,"disableHANAAutoStartPrimary",input, context)
retValue = updateHostFileSecondary(HANASecondaryInstanceID,HANAPrimaryHostname,HANAPrimaryIPAddress,domainName,AWSRegion)
manageRetValue(retValue,"updateHostFileSecondary",input, context)
retValue = updateHostFilePrimary(HANAPrimaryInstanceID,HANASecondaryHostname,HANASecondaryIPAddress,domainName,AWSRegion)
manageRetValue(retValue,"updateHostFilePrimary",input, context)
retValue = updatePreserveHostName(HANAPrimaryInstanceID,HANASecondaryInstanceID,AWSRegion)
manageRetValue(retValue,"updatePreserveHostName",input, context)
if 'SUSE' in MyOS :
retValue = updateDefaultTasksMax(HANAPrimaryInstanceID,HANASecondaryInstanceID,AWSRegion)
manageRetValue(retValue,"updateDefaultTasksMax",input, context)
retValue = setupHSRPrimary(HANAPrimaryInstanceID,HANASecondaryInstanceID,HANAPrimarySite,HANASecondarySite,HANAPrimaryHostname,hanaSID,hanaInstanceNo,AWSRegion)
manageRetValue(retValue,"setupHSRPrimary",input, context)
retValue = setupHSRSecondary(HANAPrimaryInstanceID,HANASecondaryInstanceID,HANAPrimarySite,HANASecondarySite,HANAPrimaryHostname,hanaSID,hanaInstanceNo,AWSRegion)
manageRetValue(retValue,"setupHSRSecondary",input, context)
if 'SUSE' in MyOS :
retValue = setupCoroSyncKeyPrimary(HANAPrimaryInstanceID,HANASecondaryInstanceID,TempS3Bucket,AWSRegion)
manageRetValue(retValue,"setupCoroSyncKeyPrimary",input, context)
retValue = copyCoroSyncKeyToSecondary(HANAPrimaryInstanceID,HANASecondaryInstanceID,TempS3Bucket,AWSRegion)
manageRetValue(retValue,"copyCoroSyncKeyToSecondary",input, context)
retValue = createCoroSyncConfig(HANAPrimaryInstanceID,HANASecondaryInstanceID,HANASecondaryIPAddress,HANAPrimaryIPAddress,HANAPrimaryCorosync2ndIP,HANASecondaryCorosync2ndIP,AWSRegion)
manageRetValue(retValue,"createCoroSyncConfig",input, context)
retValue = setupSUSESAPHanaHook(HANAPrimaryInstanceID,HANASecondaryInstanceID,hanaSID,sidadm,AWSRegion)
manageRetValue(retValue,"setupSUSESAPHanaHook",input, context)
retValue = StartPaceMaker(HANAPrimaryInstanceID,HANASecondaryInstanceID,HANAMasterPass,AWSRegion)
manageRetValue(retValue,"StartPaceMaker",input, context)
retValue = CompleteCoroSyncSetup(HANAPrimaryInstanceID,RTabId,HANAVirtualIP,hanaSID,hanaInstanceNo,PaceMakerTag,AWSRegion)
manageRetValue(retValue,"CompleteCoroSyncSetup",input, context)
else:
retValue = RHELStartPCSService(HANAPrimaryInstanceID,HANASecondaryInstanceID,HANAMasterPass,AWSRegion)
manageRetValue(retValue,"CompletePCSDServiceRHEL",input, context)
retValue = RHELSetupHANACluster(HANAPrimaryInstanceID,HANASecondaryInstanceID,HANAPrimaryHostname,HANASecondaryHostname,HANAMasterPass,AWSRegion,hanaSID,hanaInstanceNo,HANAVirtualIP,RTabId)
manageRetValue(retValue,"HANAClusterConfigRHEL",input, context)
cfnresponse.send(input, context, cfnresponse.SUCCESS, {'Status':json.dumps(responseStr)})
elif (input['RequestType'] == "Delete"):
AWSRegion = input['ResourceProperties']['AWSRegion']
HANAVirtualIP = input['ResourceProperties']['VirtualIP']
PrimarySubnetId = input['ResourceProperties']['PrimarySubnetId']
SecondarySubnetId = input['ResourceProperties']['SecondarySubnetId']
VPCID=input['ResourceProperties']['VPCID']
RTabId = getRouteTableID(PrimarySubnetId,SecondarySubnetId,VPCID,AWSRegion)
deleteVirtualIPRoute(HANAVirtualIP,RTabId,AWSRegion)
responseStr['Status'] = 'Virtual IP ' + HANAVirtualIP +'Removed From Route Table :' + RTabId
cfnresponse.send(input, context, cfnresponse.SUCCESS, {'Status':json.dumps(responseStr)})
else:
responseStr['Status'] = 'Nothing to do as Request Type is : ' + input['RequestType']
cfnresponse.send(input, context, cfnresponse.SUCCESS, {'Status':json.dumps(responseStr)})
except Exception as e:
responseStr['Status'] = str(e)
cfnresponse.send(input, context, cfnresponse.FAILED, {'Status':json.dumps(responseStr)})