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

James Bowes jbowes at redhat.com
Thu Aug 9 12:20:55 UTC 2012


On Thu, Aug 09, 2012 at 12:34:57PM +0100, Dmitri Dolguikh wrote:
> 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)
>

-1 to UUIDs, for the same reason as has been discussed wrt pulp
repo labels. a url like:

https://my-cdn.local/content/dev/rhel-server/i386/

is way more useful than:

https://my-cdn.local/content/abc123213-23423423-aaa123/rhel-server/i386/

not to mention, far more handsome!

I'd rather see either immutable labels, or supporting renaming labels,
too. 

To clarify, UUIDs are fine imo as an internal canonical id for envs
within katello as a whole, but once the env is exposed on the cli or in
a url, label should be used.

> 
> 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
> 
> 
> 
> 

> _______________________________________________
> katello-devel mailing list
> katello-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/katello-devel


-James
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/katello-devel/attachments/20120809/ad6364a9/attachment.sig>


More information about the katello-devel mailing list