Jump to: navigation, search

Difference between revisions of "User:Anant"

(Created page with "'''API to continue stack operations after failure''' There needs a convenient mechanism to issue a retry request for provisioning a stack in Heat. '''Problem description'''...")
 
(Replaced content with "'")
Line 1: Line 1:
'''API to continue stack operations after failure'''
+
'
 
 
There needs a convenient mechanism to issue a retry request for
 
provisioning a stack in Heat.
 
 
 
'''Problem description'''
 
 
 
A stack provisioning can fail due to internal or external circumstances.
 
Internal circumstances would be Heat engine going down while
 
provisioning a stack or other error conditions happening inside Heat
 
engine that aborts the stack provisioning. External circumstances would
 
be nova services not reachable/available, user quota exceeding, other
 
infrastructure related issues etc..
 
 
 
When Heat encounters these issues which could be rectified manually it
 
aborts the stack operation, but doesn't provide a way to retry the same
 
operation without issuing another update to stack.
 
 
 
As of now a user has to issue another update request or use the
 
abandon/adopt APIs. Abandon and adopt are cumbersome and time consuming
 
and not stable in Heat. Another way is to update the current stack, but
 
it could lead to accidental updates to the stack due to inadvertently
 
picking wrong template or parameters/environment. The user needs to find
 
the parameters/environment and template issued in the previous request
 
which failed. It is far more convenient to ask Heat to continue the
 
stack provisioning/deletion from where it left, given that Heat already
 
has the template and parameters and/or environment.
 
 
 
 
 
'''Proposed change'''
 
 
 
There should be a mechanism to retry/continue the stack operation
 
when it has failed. If user can rectify the problem manually or
 
automatically, he/she should be able to issue the retry/continue
 
operation. Since the template + environment is already available in Heat
 
database, there are no chances of any accidental updates to stack and
 
the provisioning can restart from where it failed.
 
 
 
The CLI would look like:
 
$ heat stack-create --retry my-stack
 
$ heat stack-update --retry my-other-stack
 
 
 
'''Implementation'''
 
 
 
There will be new options in the CLIs and new parameters in the APIs to
 
create, delete, update, suspend resume and snapshot APIs to continue the
 
stack operation from where it failed.
 
 
 
'''Assignee(s)'''
 
 
 
Primary assignee:
 
    anant.patil@hp.com
 
 
 
'''Milestones'''
 
 
 
Target Milestone for completion:
 
Kilo-3
 
 
 
 
 
'''Work Items'''
 
 
 
1. Change the APIs to have a new parameter.
 
 
 
2. Change the CLIs to have a new option.
 
 
 
3. Make changes to Heat engine to retry the request by internally
 
issuing an update to the stack or restart the operation by looking in DB
 
for failed resources and restarting from there.
 
 
 
'''Dependencies'''
 
 
 
None.
 

Revision as of 12:48, 14 January 2015

'