[Pulp-dev] Namespacing plugins, looking for feedback

Jeff Ortel jortel at redhat.com
Tue Jan 8 16:17:57 UTC 2019



On 1/4/19 1:32 PM, Brian Bouterse wrote:
> +1 to dropping the "pulp_" I don't think it's a helpful convention.

Couldn't agree more.

>
> I also want to avoid adding another plugin configuration attribute. +1 
> to automatic namespacing and using the django app label.
>
> On Fri, Jan 4, 2019 at 2:18 PM David Davis <daviddavis at redhat.com 
> <mailto:daviddavis at redhat.com>> wrote:
>
>     While I am not opposed to dropping the "pulp_" prefix in URLs, I
>     don't like the idea of adding another attribute to the plugin
>     configuration.
>
>     I am +1 to automatic namespacing and using the django app label.
>
>     David
>
>
>     On Fri, Jan 4, 2019 at 1:50 PM Tatiana Tereshchenko
>     <ttereshc at redhat.com <mailto:ttereshc at redhat.com>> wrote:
>
>         It's seems that there is a consensus that all master/detail
>         related endpoints should be prepended.
>         There is no consensus if the current Django app label is good
>         enough to use in the construction of the endpoints.
>
>         My personal opinion:
>         It's probably better if "pulp_" part goes away, at the same
>         time I'm hesitant to add new attributes to configuration,
>         since Django provides enough of them and gives us uniqueness
>         check for free.
>         See Django docs
>         https://docs.djangoproject.com/en/2.1/ref/applications/#configurable-attributes
>         Label is supposed to be a short name for the app.
>
>         Please vote and/or raise your concerns if you have any by next
>         Friday, voting will be closed on Jan 11, 2019 at 8:00PM EST.
>         The proposal is described in https://pulp.plan.io/issues/4279
>
>         My vote:
>         +1 for automatic namespacing for all master/detail endpoints
>         +1 to use existing Django app label
>
>         Thank you,
>         Tanya
>
>         On Thu, Jan 3, 2019 at 1:15 PM Ina Panova <ipanova at redhat.com
>         <mailto:ipanova at redhat.com>> wrote:
>
>             +1 namespacing all master/detail
>
>             For consistency, i would prefer to see same format i see
>             in `content_summary` as in content endpoints, even if it
>             does not make sense from user's perspective, because what
>             we now have in content_summary, i would not say that it
>             makes much sense from user's perspective ;)
>
>             --------
>             Regards,
>
>             Ina Panova
>             Software Engineer| Pulp| Red Hat Inc.
>
>             "Do not go where the path may lead,
>              go instead where there is no path and leave a trail."
>
>
>             On Wed, Jan 2, 2019 at 8:55 PM Austin Macdonald
>             <amacdona at redhat.com <mailto:amacdona at redhat.com>> wrote:
>
>                 +1 automatic namespacing for master/detail. I realize
>                 the easiest way to do this would be to use the
>                 app_label, giving us:
>
>                 /api/v3/content/pulp_rpm/packages/
>
>
>                 However, I feel like this url is pretty clunky. The
>                 "pulp_" is totally unnecessary, from the user's
>                 perspective. Instead, I think I'd prefer to add an
>                 attribute to the App config.
>                 https://github.com/pulp/plugin_template/blob/master/pulp_plugin_template/app/__init__.py#L8
>
>                 `endpoint_namespace = rpm` or `short_label = rpm`
>
>                 Result:/api/v3/content/rpm/packages/
>
>                 The downside is that every plugin would need 1 more
>                 line of code. The upside is that we could implement it
>                 exactly same way as app_label but without url redundancy.
>
>                 On Wed, Jan 2, 2019 at 2:39 PM Tatiana Tereshchenko
>                 <ttereshc at redhat.com <mailto:ttereshc at redhat.com>> wrote:
>
>                     It would be automatic, and plugins need a change
>                     only to avoid redundant prepending.
>                     E.g. If RPM plugin makes no changes, the endpoint
>                     for RPM content will be:
>
>                     /api/v3/content/pulp_rpm/rpm/packages/
>
>                     because endpoint_name = 'rpm/packages'.
>
>                     So plugin should leave only endpoint_name =
>                     'packages'.
>
>                     The endpoint with redundant plugin name will work
>                     fine, just doesn't look good :)
>
>                     Tanya
>
>
>                     On Wed, Jan 2, 2019 at 7:20 PM David Davis
>                     <daviddavis at redhat.com
>                     <mailto:daviddavis at redhat.com>> wrote:
>
>                         I am +1 to namespacing all master detail
>                         models with the plugin name. Would this be
>                         automatic or something that the plugin writers
>                         would be encouraged to do?
>
>                         David
>
>
>                         On Wed, Jan 2, 2019 at 12:58 PM Tatiana
>                         Tereshchenko <ttereshc at redhat.com
>                         <mailto:ttereshc at redhat.com>> wrote:
>
>                             Thank you all for the discussion so far.
>                             The question - the type field and
>                             namespacing in content summary - is solved
>                             with https://pulp.plan.io/issues/4185.
>
>                             The last remaining question is whether we
>                             want to prepend endpoints for
>                             master/detail models with plugin label. If
>                             yes, then everything or for Content only.
>                             See details on the issue
>                             https://pulp.plan.io/issues/4279.
>
>                             Examples of the suggested change:
>
>                             /api/v3/content/rpm/packages/ --> /api/v3/content/pulp_rpm/packages/
>                             /api/v3/remotes/rpm/ --> /api/v3/content/remotes/pulp_rpm/rpm/
>                             /api/v3/publishers/rpm/ --> /api/v3/content/publishers/pulp_rpm/rpm/
>
>                             Changes which will be needed in plugins:  
>                             - adjust the value of the `endpoint_name`
>                             attribute in the viewsets we introduce
>                             changes to
>
>                             Please provide feedback, here or on the
>                             issue https://pulp.plan.io/issues/4279.
>                             This is an RC blocker, so it would be
>                             great to groom it over the next couple of
>                             days.
>
>                             Thank you,
>                             Tanya
>
>                             On Thu, Dec 20, 2018 at 9:41 AM Tatiana
>                             Tereshchenko <ttereshc at redhat.com
>                             <mailto:ttereshc at redhat.com>> wrote:
>
>                                 Since we are leaning towards
>                                 prepending types for _all_
>                                 master/detail models and not only for
>                                 the content model, that Django fix is
>                                 no longer important for us.
>
>                                 Tanya
>
>                                 On Wed, Dec 19, 2018 at 6:18 PM Daniel
>                                 Alley <dalley at redhat.com
>                                 <mailto:dalley at redhat.com>> wrote:
>
>                                     David, was that a vote to make it
>                                     explicit?
>
>                                     I would regard this as fairly
>                                     intuitive as far as "magic-ness"
>                                     goes, acceptable from the user POV
>                                     in my opinion.  And if Django is
>                                     explicitly trying to support this
>                                     functionality and relies on it
>                                     working properly, and has a
>                                     unittest for it going forwards,
>                                     then I'm fairly confident it won't
>                                     be too fragile.  My vote is +1.
>
>                                     My only concern (and it's not a
>                                     major one) is that a plugin that
>                                     needed to be renamed might have
>                                     problems with this.  But I think
>                                     that would be resolvable with a
>                                     migration.
>
>                                     Tanya, will we need to remove the
>                                     workaround once Django 2.2 comes
>                                     out?  If so, we should file a
>                                     Refactor task for it.
>
>                                     On Tue, Dec 18, 2018 at 9:39 AM
>                                     David Davis <daviddavis at redhat.com
>                                     <mailto:daviddavis at redhat.com>> wrote:
>
>                                         +1
>
>                                         David
>
>
>                                         On Tue, Dec 18, 2018 at 9:31
>                                         AM Brian Bouterse
>                                         <bbouters at redhat.com
>                                         <mailto:bbouters at redhat.com>>
>                                         wrote:
>
>                                             There is also an issue w/
>                                             my suggestion in that it's
>                                             highly magical. The class
>                                             name is likely going to go
>                                             through a case mutation
>                                             and if not it's going to
>                                             be finicky in terms of its
>                                             case. So now I'm thinking
>                                             the plugin writer should
>                                             have to define it to keep
>                                             it simple and explicit
>                                             (not implicit and magical).
>
>                                             On Tue, Dec 18, 2018 at
>                                             9:27 AM David Davis
>                                             <daviddavis at redhat.com
>                                             <mailto:daviddavis at redhat.com>>
>                                             wrote:
>
>                                                 Would it be possible
>                                                 to default to class
>                                                 name but let plugin
>                                                 writers override this?
>                                                 I would imagine in
>                                                 some cases plugin
>                                                 writers might want to
>                                                 change the name (eg
>                                                 cases where you can't
>                                                 use type as the class
>                                                 name like File).
>
>                                                 David
>
>
>                                                 On Tue, Dec 18, 2018
>                                                 at 9:23 AM Brian
>                                                 Bouterse
>                                                 <bbouters at redhat.com
>                                                 <mailto:bbouters at redhat.com>>
>                                                 wrote:
>
>
>
>                                                     On Tue, Dec 18,
>                                                     2018 at 9:07 AM
>                                                     Tatiana
>                                                     Tereshchenko
>                                                     <ttereshc at redhat.com
>                                                     <mailto:ttereshc at redhat.com>>
>                                                     wrote:
>
>                                                         Brian,
>                                                         the current PR
>                                                         [0] does
>                                                         exactly what
>                                                         you describe,
>                                                         it uses label
>                                                         which is taken
>                                                         from the
>                                                         plugin
>                                                         subclass of
>                                                         PulpPluginAppconfig
>                                                         + TYPE defined
>                                                         on the detail
>                                                         model.
>                                                         FWIW, there is
>                                                         an option to
>                                                         use plugin
>                                                         class name and
>                                                         not a plugin
>                                                         writer defined
>                                                         TYPE, e.g.
>                                                         pulp_file.filecontent,
>                                                         pulp_rpm.package,
>                                                         pulp_rpm.updaterecord,
>                                                         etc.
>
>                                                     +1 to using the
>                                                     classname. Having
>                                                     the plugin class
>                                                     name used would
>                                                     allow the user to
>                                                     not repeat
>                                                     themselves as
>                                                     much. I think it's
>                                                     likely the class
>                                                     name == TYPE in
>                                                     almost all cases.
>                                                     The plugin writer
>                                                     would have 1 less
>                                                     requirement on
>                                                     them at Content
>                                                     model definition
>                                                     time and that
>                                                     helps achieve the
>                                                     "less burden on
>                                                     plugin writers"
>                                                     goal for pulp.
>
>
>                                                         Jeff, to
>                                                         answer your
>                                                         questions:
>
>                                                             1. why do
>                                                             all the
>                                                             plugins
>                                                             begin with
>                                                             "pulp_"?
>
>                                                         This is how
>                                                         django app
>                                                         label is
>                                                         defined in
>                                                         every plugin
>                                                         so far, see
>                                                         pulp_file case
>                                                         [1].
>                                                         Whatever is
>                                                         defined there
>                                                         is used as a
>                                                         plugin name.
>
>                                                             2. can the
>                                                             plugin
>                                                             name get
>                                                             pre-pended
>                                                             when it's
>                                                             loaded by
>                                                             core?
>
>                                                             I lean
>                                                             toward
>                                                             TYPE=<plugin>.<type>
>
>                                                         Just to
>                                                         clarify, there
>                                                         is a class
>                                                         arttriburte
>                                                         `TYPE` and
>                                                         there is a
>                                                         `type` field
>                                                         on a model. I
>                                                         guess you
>                                                         suggest type =
>                                                         <plugin>.<TYPE>.
>
>                                                         We can
>                                                         probably do it
>                                                         on a master
>                                                         model in the
>                                                         save method
>                                                         [2], just
>                                                         initially the
>                                                         change was
>                                                         proposed for
>                                                         Content models
>                                                         only.
>                                                         If we decide
>                                                         to namespace
>                                                         all
>                                                         master/detail
>                                                         objects, I
>                                                         agree we can
>                                                         do it n a more
>                                                         generic way,
>                                                         than just
>                                                         redefine
>                                                         __init__ on a
>                                                         specific class.
>
>
>                                                         Tanya
>
>                                                         [0]
>                                                         https://github.com/pulp/pulp/pull/3801
>                                                         [1]
>                                                         https://github.com/pulp/pulp_file/blob/24881314372b9c1c505ff687c15238126b261afa/pulp_file/app/__init__.py#L10
>                                                         [2]
>                                                         https://github.com/pulp/pulp/blob/master/pulpcore/app/models/base.py#L76-L83
>
>                                                         On Tue, Dec
>                                                         18, 2018 at
>                                                         12:58 PM Ina
>                                                         Panova
>                                                         <ipanova at redhat.com
>                                                         <mailto:ipanova at redhat.com>>
>                                                         wrote:
>
>                                                             +1 to
>                                                             namespace
>                                                             master/detail
>                                                             as well.
>                                                             +1 to
>                                                             Brian's
>                                                             suggestion
>                                                             to try.
>
>                                                             --------
>                                                             Regards,
>
>                                                             Ina Panova
>                                                             Software
>                                                             Engineer|
>                                                             Pulp| Red
>                                                             Hat Inc.
>
>                                                             "Do not go
>                                                             where the
>                                                             path may lead,
>                                                              go
>                                                             instead
>                                                             where
>                                                             there is
>                                                             no path
>                                                             and leave
>                                                             a trail."
>
>
>                                                             On Tue,
>                                                             Dec 18,
>                                                             2018 at
>                                                             12:15 AM
>                                                             Brian
>                                                             Bouterse
>                                                             <bbouters at redhat.com
>                                                             <mailto:bbouters at redhat.com>>
>                                                             wrote:
>
>                                                                 +1 to
>                                                                 namespacing
>                                                                 all
>                                                                 Master/Detail
>                                                                 objects
>                                                                 (Remotes,
>                                                                 Publishers,
>                                                                 etc).
>                                                                 Namespacing
>                                                                 will
>                                                                 increase
>                                                                 consistency
>                                                                 w/ the
>                                                                 user
>                                                                 experience
>                                                                 and
>                                                                 will
>                                                                 avoid
>                                                                 plugin-to-plugin
>                                                                 naming
>                                                                 collisions.
>                                                                 @ttereshc
>                                                                 +1 to
>                                                                 the
>                                                                 url
>                                                                 changes
>                                                                 and
>                                                                 content
>                                                                 summary
>                                                                 changes
>                                                                 you've
>                                                                 described.
>
>                                                                 I
>                                                                 think
>                                                                 it
>                                                                 would
>                                                                 be
>                                                                 ideal
>                                                                 if the
>                                                                 app
>                                                                 specified
>                                                                 its
>                                                                 'label'
>                                                                 attribute
>                                                                 on the
>                                                                 PulpPluginAppconfig
>                                                                 subclass,
>                                                                 e.g
>                                                                 here
>                                                                 in
>                                                                 pulp_file
>                                                                 https://github.com/pulp/pulp_file/blob/24881314372b9c1c505ff687c15238126b261afa/pulp_file/app/__init__.py#L10
>                                                                 Then
>                                                                 the
>                                                                 Model
>                                                                 for,
>                                                                 e.g.
>                                                                 the
>                                                                 FileContent
>                                                                 would
>                                                                 have
>                                                                 the
>                                                                 second
>                                                                 portion
>                                                                 of the
>                                                                 string
>                                                                 'file'
>                                                                 as an
>                                                                 example
>                                                                 and
>                                                                 Master/Detail
>                                                                 would
>                                                                 assemble
>                                                                 them.
>
>                                                                 Is
>                                                                 this
>                                                                 implementation
>                                                                 how
>                                                                 you
>                                                                 imagined
>                                                                 it?
>
>
>
>
>                                                                 On
>                                                                 Mon,
>                                                                 Dec
>                                                                 17,
>                                                                 2018
>                                                                 at
>                                                                 9:29
>                                                                 AM
>                                                                 Tatiana
>                                                                 Tereshchenko
>                                                                 <ttereshc at redhat.com
>                                                                 <mailto:ttereshc at redhat.com>>
>                                                                 wrote:
>
>                                                                     Just
>                                                                     to
>                                                                     clarify,
>                                                                     the
>                                                                     type
>                                                                     field
>                                                                     is
>                                                                     not
>                                                                     used
>                                                                     in
>                                                                     the
>                                                                     endpoint
>                                                                     construction,
>                                                                     so
>                                                                     two
>                                                                     changes
>                                                                     described
>                                                                     in
>                                                                     the
>                                                                     original
>                                                                     e-mail
>                                                                     are
>                                                                     independent.
>
>                                                                     In
>                                                                     my
>                                                                     opinion:
>                                                                      -
>                                                                     it
>                                                                     is
>                                                                     possible
>                                                                     to
>                                                                     have
>                                                                     type
>                                                                     collisions.
>                                                                      -
>                                                                     it
>                                                                     is
>                                                                     possible
>                                                                     to
>                                                                     have
>                                                                     the
>                                                                     same
>                                                                     endpoints
>                                                                     (endpoint_name
>                                                                     in
>                                                                     a
>                                                                     viewset).
>
>                                                                     FWIW,
>                                                                     the
>                                                                     endpoint
>                                                                     collision
>                                                                     is
>                                                                     not
>                                                                     unique
>                                                                     to
>                                                                     the
>                                                                     master/detail
>                                                                     models'
>                                                                     endpoints.
>                                                                     A
>                                                                     plugin,
>                                                                     in
>                                                                     theory,
>                                                                     can
>                                                                     define
>                                                                     any
>                                                                     endpoint
>                                                                     they
>                                                                     want.
>                                                                     Though
>                                                                     not
>                                                                     preventing
>                                                                     collisions
>                                                                     it
>                                                                     for
>                                                                     endpoints
>                                                                     related
>                                                                     to
>                                                                     master/detail
>                                                                     models
>                                                                     makes
>                                                                     it
>                                                                     easier
>                                                                     to
>                                                                     create
>                                                                     such
>                                                                     collision
>                                                                     accidentally.
>
>                                                                     Tanya
>
>                                                                     On
>                                                                     Mon,
>                                                                     Dec
>                                                                     17,
>                                                                     2018
>                                                                     at
>                                                                     2:27
>                                                                     PM
>                                                                     David
>                                                                     Davis
>                                                                     <daviddavis at redhat.com
>                                                                     <mailto:daviddavis at redhat.com>>
>                                                                     wrote:
>
>                                                                         Is
>                                                                         it
>                                                                         possible
>                                                                         (under
>                                                                         the
>                                                                         current
>                                                                         model,
>                                                                         without
>                                                                         namespacing)
>                                                                         to
>                                                                         have
>                                                                         type
>                                                                         collisions
>                                                                         in
>                                                                         the
>                                                                         database
>                                                                         for
>                                                                         master/detail
>                                                                         models?
>                                                                         Like
>                                                                         what
>                                                                         if
>                                                                         two
>                                                                         plugins
>                                                                         define
>                                                                         two
>                                                                         Contents
>                                                                         with
>                                                                         the
>                                                                         same
>                                                                         type
>                                                                         or
>                                                                         two
>                                                                         Remotes
>                                                                         with
>                                                                         the
>                                                                         same
>                                                                         type?
>                                                                         This
>                                                                         kind
>                                                                         of
>                                                                         leads
>                                                                         me
>                                                                         to
>                                                                         believe
>                                                                         we
>                                                                         should
>                                                                         namespace
>                                                                         everything.
>                                                                         On
>                                                                         the
>                                                                         Ansible
>                                                                         plugin
>                                                                         for
>                                                                         example,
>                                                                         I
>                                                                         started
>                                                                         working
>                                                                         on
>                                                                         a
>                                                                         git
>                                                                         Remote[0].
>                                                                         Luckily
>                                                                         I
>                                                                         chose
>                                                                         "ansible_git"
>                                                                         as
>                                                                         the
>                                                                         type
>                                                                         but
>                                                                         I
>                                                                         could
>                                                                         see
>                                                                         plugin
>                                                                         writers
>                                                                         running
>                                                                         into
>                                                                         problems
>                                                                         if
>                                                                         they
>                                                                         are
>                                                                         not
>                                                                         so
>                                                                         careful.
>
>                                                                         [0]
>                                                                         https://github.com/pulp/pulp_ansible/pull/38/files#diff-debb42c875c19140793de39be3696ee3
>
>                                                                         David
>
>
>                                                                         On
>                                                                         Sun,
>                                                                         Dec
>                                                                         16,
>                                                                         2018
>                                                                         at
>                                                                         4:41
>                                                                         PM
>                                                                         Tatiana
>                                                                         Tereshchenko
>                                                                         <ttereshc at redhat.com
>                                                                         <mailto:ttereshc at redhat.com>>
>                                                                         wrote:
>
>                                                                             There
>                                                                             is
>                                                                             an
>                                                                             issue
>                                                                             [0]
>                                                                             of
>                                                                             colliding
>                                                                             type
>                                                                             names
>                                                                             in
>                                                                             the
>                                                                             content
>                                                                             summary
>                                                                             which
>                                                                             evolved
>                                                                             into
>                                                                             more
>                                                                             general
>                                                                             namespacing
>                                                                             problem
>                                                                             for
>                                                                             plugins.
>
>                                                                             The
>                                                                             suggested
>                                                                             changes
>                                                                             [1]
>                                                                             are:
>                                                                              1.
>                                                                             include
>                                                                             plugin
>                                                                             name
>                                                                             into
>                                                                             the
>                                                                             content
>                                                                             summary
>
>                                                                             "content_summary":
>                                                                             {
>                                                                             "pulp_rpm.package":
>                                                                             50,
>                                                                             "pulp_rpm.errata":
>                                                                             2,
>                                                                             "pulp_file.file":
>                                                                             5
>                                                                             }
>
>
>                                                                             2.
>                                                                             include
>                                                                             plugin
>                                                                             name
>                                                                             into
>                                                                             content
>                                                                             endpoints
>                                                                             /api/v3/content/file/files/
>                                                                             -->
>                                                                             /api/v3/content/pulp_file/files/
>                                                                             /api/v3/content/rpm/packages/
>                                                                             -->
>                                                                             /api/v3/content/pulp_rpm/packages/
>                                                                             /api/v3/content/rpm/errata/
>                                                                             -->
>                                                                             /api/v3/content/pulp_rpm/errata/
>                                                                             ...
>
>                                                                             For
>                                                                             the
>                                                                             change
>                                                                             #1,
>                                                                             not
>                                                                             only
>                                                                             content
>                                                                             summary
>                                                                             output
>                                                                             is
>                                                                             changed
>                                                                             but
>                                                                             the
>                                                                             type
>                                                                             itself
>                                                                             in
>                                                                             the
>                                                                             database.
>                                                                             If
>                                                                             the
>                                                                             content
>                                                                             type
>                                                                             is
>                                                                             used
>                                                                             somewhere
>                                                                             in
>                                                                             the
>                                                                             filters,
>                                                                             it
>                                                                             should
>                                                                             be
>                                                                             specified
>                                                                             in
>                                                                             that
>                                                                             format:
>                                                                             "plugin_name.plugin_type".
>                                                                             Does
>                                                                             it
>                                                                             makes
>                                                                             sense
>                                                                             to
>                                                                             extend
>                                                                             the
>                                                                             master
>                                                                             model
>                                                                             and
>                                                                             have
>                                                                             a
>                                                                             plugin
>                                                                             name
>                                                                             field
>                                                                             and
>                                                                             a
>                                                                             type
>                                                                             field,
>                                                                             instead
>                                                                             of
>                                                                             putting
>                                                                             preformatted
>                                                                             string
>                                                                             into
>                                                                             the
>                                                                             type
>                                                                             field?
>
>                                                                             For
>                                                                             the
>                                                                             change
>                                                                             #2,
>                                                                             endpoints
>                                                                             are
>                                                                             namespaced
>                                                                             only
>                                                                             for
>                                                                             the
>                                                                             content
>                                                                             endpoint
>                                                                             and
>                                                                             not
>                                                                             for
>                                                                             other
>                                                                             endpoints
>                                                                             related
>                                                                             to
>                                                                             master/detail
>                                                                             models,
>                                                                             like
>                                                                             remotes,
>                                                                             publishers,
>                                                                             etc.
>                                                                             It's
>                                                                             inconsistent,
>                                                                             however
>                                                                             it
>                                                                             makes
>                                                                             the
>                                                                             most
>                                                                             sense
>                                                                             to
>                                                                             have
>                                                                             it
>                                                                             for
>                                                                             content
>                                                                             endpoints.
>
>                                                                             Any
>                                                                             concerns
>                                                                             or
>                                                                             thoughts?
>
>                                                                             Thank
>                                                                             you,
>                                                                             Tanya
>
>                                                                             [0]
>                                                                             https://pulp.plan.io/issues/4185#note-8
>                                                                             [1]
>                                                                             https://github.com/pulp/pulp/pull/3801
>                                                                             _______________________________________________
>                                                                             Pulp-dev
>                                                                             mailing
>                                                                             list
>                                                                             Pulp-dev at redhat.com
>                                                                             <mailto:Pulp-dev at redhat.com>
>                                                                             https://www.redhat.com/mailman/listinfo/pulp-dev
>
>                                                                     _______________________________________________
>                                                                     Pulp-dev
>                                                                     mailing
>                                                                     list
>                                                                     Pulp-dev at redhat.com
>                                                                     <mailto:Pulp-dev at redhat.com>
>                                                                     https://www.redhat.com/mailman/listinfo/pulp-dev
>
>                                                                 _______________________________________________
>                                                                 Pulp-dev
>                                                                 mailing
>                                                                 list
>                                                                 Pulp-dev at redhat.com
>                                                                 <mailto:Pulp-dev at redhat.com>
>                                                                 https://www.redhat.com/mailman/listinfo/pulp-dev
>
>                                                     _______________________________________________
>                                                     Pulp-dev mailing list
>                                                     Pulp-dev at redhat.com
>                                                     <mailto:Pulp-dev at redhat.com>
>                                                     https://www.redhat.com/mailman/listinfo/pulp-dev
>
>                                         _______________________________________________
>                                         Pulp-dev mailing list
>                                         Pulp-dev at redhat.com
>                                         <mailto:Pulp-dev at redhat.com>
>                                         https://www.redhat.com/mailman/listinfo/pulp-dev
>
>                                     _______________________________________________
>                                     Pulp-dev mailing list
>                                     Pulp-dev at redhat.com
>                                     <mailto:Pulp-dev at redhat.com>
>                                     https://www.redhat.com/mailman/listinfo/pulp-dev
>
>                     _______________________________________________
>                     Pulp-dev mailing list
>                     Pulp-dev at redhat.com <mailto:Pulp-dev at redhat.com>
>                     https://www.redhat.com/mailman/listinfo/pulp-dev
>
>                 _______________________________________________
>                 Pulp-dev mailing list
>                 Pulp-dev at redhat.com <mailto:Pulp-dev at redhat.com>
>                 https://www.redhat.com/mailman/listinfo/pulp-dev
>
>         _______________________________________________
>         Pulp-dev mailing list
>         Pulp-dev at redhat.com <mailto:Pulp-dev at redhat.com>
>         https://www.redhat.com/mailman/listinfo/pulp-dev
>
>     _______________________________________________
>     Pulp-dev mailing list
>     Pulp-dev at redhat.com <mailto:Pulp-dev at redhat.com>
>     https://www.redhat.com/mailman/listinfo/pulp-dev
>
>
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com
> https://www.redhat.com/mailman/listinfo/pulp-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20190108/2db7f609/attachment.htm>


More information about the Pulp-dev mailing list