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

Justin Sherrill jsherril at redhat.com
Thu Aug 9 12:41:14 UTC 2012


On 08/09/2012 08:20 AM, James Bowes wrote:
> 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:
-1 for me too.  Much prefer labels.

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

Repository-ProductContent is not 1-1.  For example there is a singe 
content object for  RHEL  6.1 i386 RPMs as for RHEL 6.2 x86_64 RPMS.  
WIthin the RHEL product its many-to-one for sure.  For custom 
repositories currently its 1-1.

-Justin

>>
>> Thoughts, concerns, opinions?
>> -d
>>
>>
>>
>>
>> _______________________________________________
>> katello-devel mailing list
>> katello-devel at redhat.com
>> https://www.redhat.com/mailman/listinfo/katello-devel
>
> -James
>
>
> _______________________________________________
> katello-devel mailing list
> katello-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/katello-devel

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


More information about the katello-devel mailing list