Admin Command Progress Status Requirements The following is a list of requirements to be considered for the command progress status feature. Assumptions
- A long running command may run for hours before completing.
- Several long running commands may be active simultaneously.
Requirements
# |
Priority |
Description |
1.0 |
P1 |
Must be compatible with existing CLI framework so that existing (short running) commands do not require any changes. |
1.1 |
P1 |
Allow a long running asadmin command to return progress status at-will. Progress status will be displayed as it is received by the client. |
1.1.1 |
P1 |
The progress status implementation will be limited to remote commands only. |
1.2 |
P1 |
Progress status may be text based. |
1.3.1 |
P1 |
Progress status may represent percent completion of the task. (e.g. a value 0-100) |
1.3.2 |
P1 |
Progress status may represent a ratio (5 of 8 tasks completed) (e.g. 5/8) |
1.4 |
P3 |
Progress status may represent a countdown time value representing remaining time to completion. |
1.5 |
P1 |
Progress status may be a combination of 1.2, 1.3 and 1.4. |
1.6 |
P1 |
Progress status must be available via the REST interface. |
1.6.1 |
P1 |
The Console must be able to display progress status (e.g. progress bar) for long running commands. |
1.7 |
P2 |
A long running command can be executed in a disconnected mode from the client. The user can re-invoke the client at a future time to request status. |
1.7.1 |
P2 |
Related to 1.7, provide server configuration that controls how much and how long in-flight progress status will be maintained by the server. |
1.8 |
P1 |
A long running command must not block other commands from executing other than those commands which would normally lock the server during execution. |
1.9 |
P2 |
Provide an interface to list long running commands which have pending progress to report (complements 1.7) |
1.10 |
P1 |
asadmin in single mode: if not --terse and a TTY is available provide output that provides some form of progress (ala wget) if progress reports are available from the command. If no TTY is available or in --terse mode do not provide progress feedback. |
1.11 |
P1 |
asadmin in multimode: Provide output that provides some form of progress (ala wget) if progress reports are available from the command. |
1.12 |
P3 |
asadmin: provide a progress mode where asadmin provides a timer which shows how long the command has been running. |
The following commands will initially be targeted for "progressization":
Use Case Consider the following use case: A long running deploy operation is started. During the deploy operation the GF instance that is performing the deploy operation fails. A new GF instance takes over and completes the deploy operation. What should the user experience? References
|