import base64
from datetime import datetime
+from eventlet.support import greenlets as greenlet
from heat.engine import event
from heat.common import exception
if callable(getattr(self, 'handle_create', None)):
self.handle_create()
except Exception as ex:
- logger.exception('create %s', str(self))
- self.state_set(self.CREATE_FAILED, str(ex))
- return str(ex)
+ # If we get a GreenletExit exception, the create thread has
+ # been killed so we should raise allowing this thread to exit
+ if type(ex) is greenlet.GreenletExit:
+ logger.warning('GreenletExit during create, exiting')
+ raise
+ else:
+ logger.exception('create %s', str(self))
+ self.state_set(self.CREATE_FAILED, str(ex))
+ return str(ex)
else:
self.state_set(self.CREATE_COMPLETE)