Automated Boot/Shutdown/Reboot Testing

Registered by Clint Byrum

As we make changes to the boot/shutdown sequence of the server, and migrate init.d scripts to upstart jobs, we need some continuous integration testing to make sure it continues to work. We should take advantage of the automated testing framework to install, reboot, shutdown, start, remove, and repeat with all packages that are changed. We should also automate this testing with all of the available tasks on the install CDs. In addition, we should collect metrics on boot time and how each package affects it.

Blueprint information

Status:
Complete
Approver:
Dave Walker
Priority:
Essential
Drafter:
Ubuntu Server
Direction:
Approved
Assignee:
Clint Byrum
Definition:
Approved
Series goal:
Accepted for precise
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-12.04-beta-2
Started by
Dave Walker
Completed by
Clint Byrum

Related branches

Sprints

Whiteboard

Status: reboot test methods developed, now need to add post-reboot tests to any of the existing tests that will benefit from it. Also need to integrate into the main iso testing so they are run.

Work Items:
Evaluate jenkins framework for capability of boot/deploy testing: DONE
Develop common test procedure lp:~clint-fewbar/+junk/reboot-test: DONE
Develop test for minimal install lp:~clint-fewbar/+junk/server-tests-reboot: DONE
Scope creep from extremely long setup/tear down for ubuntu server iso testing framework: DONE
Develop test for Full install (all non-conflicting packages): POSTPONED
Develop test for supported upgrade path (oneiric -> precise): POSTPONED
Develop test for LAMP app: DONE
Develop test for complex networking (bridging, bonding): POSTPONED
Develop test for OpenStack deploy: POSTPONED
Develop test for Samba + LDAP + Kerberos backend: POSTPONED
Develop test for bare metal recovery from backups: POSTPONED
Document setup procedures for testing framework: POSTPONED
Create metrics from boot tests for boot time analysis: POSTPONED

== Actions from Session ==

 * Find a base framework to support boot and deployment testing:
  * Boot:
   * Minimal install - startup and shutdown OK
   * Full install - startup and shutdown OK
   * Complete upgrade and then re-test.
   * collect metrics on boot time
  * Image Proving
   * RAID testing.
   * Multipath and encryption
   * ISO installs of AMI
   * Package Removal Testing:
    * install services
    * start services
    * check services
    * stop services
    * uninstall services
    * re-install same services
    * start & re-check services
 * Configure for complex deployment scenarios:
  * Wiki + Database + Memcache + Load Balancer
  * Bridging and bonding of network interfaces
  * Networking File Systems
  * Openstack Deployment test
  * Launchpad
  * Samba + LDAP or Kerberos Backend
  * Backup solutions

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.