Project

General

Profile

Feature #236

Installation media should be usable for more than one operating system

Added by Jochen Schalanda about 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Category:
Database
Target version:
Difficulty:
Triaged:
No
Bugzilla link:
Pull request:
Team Backlog:
Fixed in Releases:
Found in Releases:

Description

The current database schema of Foreman describes a one-to-many relation between Installation Medium and Operating Systems:

+-------+          +-----------------+
| Media |<*>----<1>| Operatingsystem |
+-------+          +-----------------+

ActiveRecord:
  Media :belongs_to Operatingsystem
  Operatingsystem :has_many Media

The implication of this design is, that the user has to create an installation medium for each operating system created in Foreman. This makes sense for installation media which contain a certain the version number or architecture of the operating system in their URI or path, like the ones of Fedora or CentOS Linux.

With Debian-based Linux distributions on the other hand, one mirror can serve several versions of the operating system from the same URI/path. This results in several identical installation media.

For example, having the operating systems "Ubuntu 8.04 LTS", "Ubuntu 9.10", "Ubuntu 10.04 LTS" each in "x86" and "x86_64" variants need 6 identical installation media in Foreman while one mirror would be sufficient.

By creating a many-to-many relation between Installation Media and Operating Systems, the user could "reuse" an installation medium for several operating system.

+-------+          +-----------------+
| Media |<*>----<*>| Operatingsystem |
+-------+          +-----------------+

ActiveRecord:
  Media has_and_belongs_to_many Operatingsystem
  Operatingsystem has_and_belongs_to_many Media

PS: Assigned to Paul Kelly due to recommendation of Ohad Levy.

Associated revisions

Revision 0ba45d6d (diff)
Added by Jochen Schalanda about 9 years ago

fixes #236 - Installation media are now usable with more than one operating system.

Revision 0bba6aae (diff)
Added by Ohad Levy almost 9 years ago

migration might fail if medium does not have an opeartingsystem - refs #236

History

#1 Updated by Jochen Schalanda about 9 years ago

I've implemented the proposed changes, see the attached patch file.

Being able to assign an installation medium to more than one operating system together with the variable substitution in the URL ($arch, $version, $major and $minor) should greatly reduce the need for several nearly identical installation mediums.

For example: instead of creating an installation medium for CentOS 5.4 (http://mirror.averse.net/centos/5.4/os/$arch) and 5.5 (http://mirror.averse.net/centos/5.5/os/$arch) one could simply create an installation medium with the URL http://mirror.averse.net/centos/$version/os/$arch and assign it to the respective operating systems.

#3 Updated by Ohad Levy about 9 years ago

  • Assignee changed from Paul Kelly to Jochen Schalanda
  • Target version set to 0.1-5

#4 Updated by Jochen Schalanda about 9 years ago

  • Status changed from New to Ready For Testing
  • % Done changed from 0 to 100

#5 Updated by Ohad Levy almost 9 years ago

  • Status changed from Ready For Testing to Closed

Also available in: Atom PDF