🐛 Fix issue with NAT gateway failing due to EIP already been assigned #1803
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
What this PR does / why we need it:
Until the code is refactored in #1792 , this PR fixes the NAT gateway issue where creation fails because it assigned an EIP that is already bound to a different NAT gateway. The PR tries to keep the exact same workflow and steps but just batch creates the EIPs before creating the NAT gateways.
Changes/Additions:
Created a
createNatGatewaysfunction that batch creates all the NAT gateways while keeping the createNatGateway function intact as much as possibleChanged
getOrAllocateAddresstogetOrAllocateAddressesto batch find/create all the EIPs before the NAT gateways are createdWhich issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)format, will close the issue(s) when PR gets merged):Fixes #1752
Note I need to test this tomorrow because I had to resolve a merge conflict with the recent NAT gateway status condition code change.