diff --git a/nodepool/driver/aws/adapter.py b/nodepool/driver/aws/adapter.py index fdda2451d..4877304f3 100644 --- a/nodepool/driver/aws/adapter.py +++ b/nodepool/driver/aws/adapter.py @@ -1120,6 +1120,12 @@ class AwsAdapter(statemachine.Adapter): # Re-raise as a quota exception so that the # statemachine driver resets quota. raise exceptions.QuotaException(str(error)) + if (error.response['Error']['Code'] == + 'InsufficientInstanceCapacity'): + # Re-raise as CapacityException so it would have + # "error.capacity" statsd_key, which can be handled + # differently than "error.unknown" + raise exceptions.CapacityException(str(error)) raise def _createInstance(self, label, image_external_id, diff --git a/nodepool/exceptions.py b/nodepool/exceptions.py index 7a1b92ce5..1fe822663 100644 --- a/nodepool/exceptions.py +++ b/nodepool/exceptions.py @@ -31,6 +31,10 @@ class LaunchKeyscanException(Exception): statsd_key = 'error.keyscan' +class CapacityException(Exception): + statsd_key = 'error.capacity' + + class BuilderError(RuntimeError): pass