Diff for "QAShepherd"

Not logged in - Log In / Register

Differences between revisions 3 and 4
Revision 3 as of 2010-07-23 13:50:33
Size: 2376
Editor: mars
Comment:
Revision 4 as of 2010-07-23 13:55:01
Size: 2710
Editor: mars
Comment:
Deletions are marked like this. Additions are marked like this.
Line 37: Line 37:

 * As an operator, I want a single push-button command to set maintenance mode, update the code, then remove maintenance mode again, so that I am less likely to make mistakes when deploying a new version. (mars)
  * ''Need both maintenance.txt and some way to wait for executing scripts to finish their work before proceeding.''

QA Shepherd project developer notes

Design notes for the Shepherd project.

Algorithm details may be found on the QAContinuousRollouts page.

User stories

  • As an operator and developer, I want to read in the log files the detailed reasons that the shepherd took a particular action, so that debugging the tool is easier. (mars)
    • the log should record both the current state of the change sources and the state transitions that the shepherd executes based on said current state.

  • As a user, I want to read an HTML report that tells me whether my branch has been promoted from QA to production, so I do not have to rely on yet more email to tell me what is going on. (Ursinha, gary)
  • As an operator, I want to run the parts of the rollout process individually and on-demand, so that resolving problems is easier. (mars)
    • This implies a small sharp script for each part - finding branches, doing promotion, reporting the system state.

  • As an operator, I want to run any script without worrying if another copy of the script is already running and stomping on the data, so that on-demand runs and maintenance are safer and easier.
    • This implies a single-instance log, like a PID file.

    • As an operator, I want a loud warning if a PID file is more than X minutes old, so I have some foreknowledge that a hang or crash is blocking further updates from happening. (mars)
  • As an operator, I want to toggle a switch that keeps the scripts from running, so that I can do maintenance and updates without hunting down and disabling a bunch of cron scripts. (mars)
    • Probably dropping a maintenance.txt file on disk would do this.

    • As a user, I want the log file and HTML reports to tell me when updates were aborted because a maintenance.txt is in place, so that I know why updates aren't happening. (mars)
    • As an operator, I want the log file and HTML reports to tell me how long ago the maintenance.txt file was created, so I know if someone forgot to remove the file by accident. (mars)
  • As an operator, I would like the script to be deployed as the lpqateam user, so that I can find all of the parts of the QA process in the same place. (Ursinha, matsubara, gary)
  • As an operator, I want a single push-button command to set maintenance mode, update the code, then remove maintenance mode again, so that I am less likely to make mistakes when deploying a new version. (mars)
    • Need both maintenance.txt and some way to wait for executing scripts to finish their work before proceeding.

QAShepherd (last edited 2010-08-06 15:05:06 by mars)