Beaker's database schema for representing distros needs to be expanded to store some details which currently live in Cobbler. In particular, Beaker will need to know the location of distro repos and images (kernel/initrd). We will also need to support setting install options at the distro level (this is currently done directly in Cobbler). It makes sense to introduce at the same time a new "layer" in the schema, which groups together all the arch-variant combinations for a particular distro. What Beaker currently refers to as a "distro" would become a "distro tree" (e.g. RHEL6.2 Server x86_64). All the "distro trees" for RHEL6.2 would be grouped together as the "distro" RHEL6.2.
After some discussion the proposed schema is as follows: distro id PK name UNIQUE osversion_id date_created distro_tree id PK distro_id arch_id variant date_created UNIQUE(distro_id, arch_id, variant) distro_tree_repo distro_tree_id repo_id repo_type path PK(distro_tree_id, repo_id) distro_tree_image distro_tree_id image_type path PK(distro_tree_id, image_type)?? distro_tree_lab_controller_map # this replaces distro_lab_controller_map id PK distro_tree_id lab_controller_id url UNIQUE(distro_tree_id, lab_controller_id, url) The new "distro tree" would be equivalent to "distros" in Beaker at present. Recipes would pick a distro tree, which is then provisioned. However in the web UI we would present "distros" to the user, with some new UI to display all the trees for each distro. Tags and install options would be set at the distro level. (We will probably need to support overriding install options at the distro_tree level as well.)
(In reply to comment #1) For some reason my whitespace was ruined. Hopefully the meaning is still clear.
*** Bug 732328 has been marked as a duplicate of this bug. ***
*** Bug 602917 has been marked as a duplicate of this bug. ***
Beaker 0.9.0 has been released.