# based on the parsed template snippet for the resource.
# If this test fails, we call the underlying resource.update
#
- # FIXME : Implement proper update logic for the resources
- # AWS define three update strategies, applied depending
- # on the resource and what is being updated within a
- # resource :
- # - Update with no interruption
- # - Update with some interruption
- # - Update requires replacement
- #
- # Currently all resource have a default handle_update method
+ # Currently many resources have a default handle_update method
# which returns "requires replacement" (res.UPDATE_REPLACE)
+ # optionally they may implement non-interruptive logic and
+ # return UPDATE_COMPLETE. If resources do not implement the
+ # handle_update method at all, update will fail.
for res in newstack:
# Compare resolved pre/post update resource snippets,
# note the new resource snippet is resolved in the context
UPDATE_FAILED = 'UPDATE_FAILED'
UPDATE_COMPLETE = 'UPDATE_COMPLETE'
- # Status values, returned from subclasses to indicate update method
+ # Status value, returned from subclasses to indicate replacement required
UPDATE_REPLACE = 'UPDATE_REPLACE'
- UPDATE_INTERRUPTION = 'UPDATE_INTERRUPTION'
- UPDATE_NO_INTERRUPTION = 'UPDATE_NO_INTERRUPTION'
- UPDATE_NOT_IMPLEMENTED = 'UPDATE_NOT_IMPLEMENTED'
# If True, this resource must be created before it can be referenced.
strict_dependency = True
logger.info('updating %s' % str(self))
- result = self.UPDATE_NOT_IMPLEMENTED
try:
self.state_set(self.UPDATE_IN_PROGRESS)
properties = Properties(self.properties_schema,