Bug 800687

Summary: Distro schema needs to be expanded for native provisioning
Product: [Retired] Beaker Reporter: Dan Callaghan <dcallagh>
Component: schedulerAssignee: Dan Callaghan <dcallagh>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 0.8CC: bpeck, dcallagh, mcsontos, rmancy, stl, yanwang
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-26 06:40:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 781917    

Description Dan Callaghan 2012-03-06 23:17:35 UTC
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.

Comment 1 Dan Callaghan 2012-03-06 23:24:35 UTC
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.)

Comment 2 Dan Callaghan 2012-03-06 23:26:52 UTC
(In reply to comment #1)

For some reason my whitespace was ruined. Hopefully the meaning is still clear.

Comment 5 Dan Callaghan 2012-06-07 01:04:54 UTC
*** Bug 732328 has been marked as a duplicate of this bug. ***

Comment 6 Dan Callaghan 2012-06-07 02:08:00 UTC
*** Bug 602917 has been marked as a duplicate of this bug. ***

Comment 7 Dan Callaghan 2012-06-26 06:40:52 UTC
Beaker 0.9.0 has been released.