in source/networkFirewallAutomation/lib/network-firewall-manager.ts [122:148]
async firewallOperations(): Promise<NetworkFirewall.SyncStates | void> {
let response;
try {
// update firewall name to unique firewall name
this.firewallObject.FirewallName = this.stringUtils.getUniqueResourceName(this.firewallObject.FirewallName)
const firewallName = this.firewallObject.FirewallName;
const firewallResponse = await this.service.describeFirewall(firewallName)
if (firewallResponse && firewallResponse.Firewall) {
Logger.log(LOG_LEVEL.INFO, `Updating existing firewall: ${firewallName}`)
const firewallPolicyArn = await this.firewallPolicyOperations(this.firewallObject.FirewallPolicyArn)
Logger.log(LOG_LEVEL.INFO, `Checking Firewall Status: ${firewallPolicyArn}`)
response = await this.checkFirewallStatus()
await this.updateFirewall(firewallResponse, firewallPolicyArn)
} else {
Logger.log(LOG_LEVEL.INFO, `Firewall does not exist: ${firewallName}`)
Logger.log(LOG_LEVEL.INFO, `Checking if firewall policy exist`)
const firewallPolicyArn = await this.firewallPolicyOperations(this.firewallObject.FirewallPolicyArn)
Logger.log(LOG_LEVEL.INFO, `Creating Firewall: ${firewallName}`)
response = await this.createNetworkFirewall(firewallPolicyArn)
}
await this.setupLoggingConfigurations(firewallName)
return response;
} catch (error) {
Logger.log(LOG_LEVEL.ERROR, error)
throw new Error(error)
}
}