Mitch Garnaat

Resolving merge conflict.

...@@ -40,6 +40,9 @@ Where ``command`` is one of: ...@@ -40,6 +40,9 @@ Where ``command`` is one of:
40 The ``config file`` is a YAML format file containing all of the information 40 The ``config file`` is a YAML format file containing all of the information
41 about your Lambda function. 41 about your Lambda function.
42 42
43 +If you use environment variables for your AWS credentials (as normally supported by boto),
44 +simply exclude the ``profile`` element from the YAML file.
45 +
43 An example project based on a Kinesis stream can be found in 46 An example project based on a Kinesis stream can be found in
44 [samples/kinesis](https://github.com/garnaat/kappa/tree/develop/samples/kinesis). 47 [samples/kinesis](https://github.com/garnaat/kappa/tree/develop/samples/kinesis).
45 48
......
...@@ -22,6 +22,7 @@ LOG = logging.getLogger(__name__) ...@@ -22,6 +22,7 @@ LOG = logging.getLogger(__name__)
22 class Stack(object): 22 class Stack(object):
23 23
24 completed_states = ('CREATE_COMPLETE', 'UPDATE_COMPLETE') 24 completed_states = ('CREATE_COMPLETE', 'UPDATE_COMPLETE')
25 + failed_states = ('ROLLBACK_COMPLETE')
25 26
26 def __init__(self, context, config): 27 def __init__(self, context, config):
27 self._context = context 28 self._context = context
...@@ -91,6 +92,9 @@ class Stack(object): ...@@ -91,6 +92,9 @@ class Stack(object):
91 LOG.debug('Stack status is: %s', status) 92 LOG.debug('Stack status is: %s', status)
92 if status in self.completed_states: 93 if status in self.completed_states:
93 done = True 94 done = True
95 + if status in self.failed_states:
96 + msg = 'Could not create stack %s: %s' % (self.name, status)
97 + raise ValueError(msg)
94 98
95 def create(self): 99 def create(self):
96 LOG.debug('create_stack: stack_name=%s', self.name) 100 LOG.debug('create_stack: stack_name=%s', self.name)
......