[katello-devel] Modelling of environments, products, etc in Katello (related to renaming of environments)

Dmitri Dolguikh dmitri at redhat.com
Thu Aug 9 11:34:57 UTC 2012


Please see https://bugzilla.redhat.com/show_bug.cgi?id=795928 for 
description of an issue with environment renaming.

The immediate problems around environments: using of environment names 
and environment ids for identification of environments interchangeably. 
Using db ids for environment identification when not using environment 
names.

To resolve these:
  - introduce environment uuids
  - update katello/katello cli to use uuids for environment identification
  - update repository naming to use environment uuids
  - update candlepin (this will include updates to schema, and resource 
controller)


The larger problem: Katello and Candlepin modelling of products/product 
content/environments lost coherency.

Candlepin's view of the above trifecta (use of a monospaced font is 
encouraged for the content below):
+-------------+          +--------------------+
| Environment | 1 <--- * | EnvironmentContent |
+-------------+          +--------------------+
                                 ^
                                 | *
                                 | 1
+---------+          +----------------+
     | Product | 1 ---> * | ProductContent |
     +---------+          +----------------+


same thing in Katello (with added pulp repositories):

    +-------------+
    | Pulp::Repos |<-----------------------+
    +-------------+                        |
        ^                                  |
        | uses                             |
     +----------------------------------+  |  +-------------+
     | Candlepin::Product               |  |  | Environment |
     | (uses Candlepin::ProductContent) |  |  +-------------+
     +----------------------------------+  |          ^
        |       ^                          |          | 1
        |uses   | uses                     |          |
        |       |                          |          | *
+---------+                      +--------------------+
       | Product | 1 ---------------> * | EnvironmentProduct |
       +---------+                      +--------------------+
                                           |          |1
                                           |          |*
                                           |          V
                                           | uses +------------+
                                           +------| Repository |
                                                  +------------+


I propose:
  - Rename EnvironmentProduct to ProductContent
    - make it use Candlepin::ProductContent
    - remove use of Pulp::Repos from Product
    - delegate responsibility of generation of environment uuids to 
Candlepin (should cp folks agree on this)

resulting in:

                         +-------------+
                         | Environment |
                         +-------------+
                                ^
                                | 1
                                | *
   +---------+          +----------------+
   | Product | 1 ---> * | ProductContent |
   +---------+          +----------------+
                            |1  | uses
                            |   |    +---------------------------+
                            |1  +->  | Candlepin::ProductContent |
                            V        +---------------------------+
     +-------------+ uses +------------+
     | Pulp::Repos |<-----| Repository |
     +-------------+      +------------+

I don't think many-1 relation is required on Repository-ProductContent, 
it's 1-1?


Thoughts, concerns, opinions?
-d




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/katello-devel/attachments/20120809/16d6c5bc/attachment.htm>


More information about the katello-devel mailing list