[Pulp-dev] AccessPolicy Model Advice ... input needed

Brian Bouterse bmbouter at redhat.com
Mon Jul 13 21:44:24 UTC 2020


I need some design input. To store AccessPolicy data in the DB I think we
want one Model where each instance is the access policy for a given
viewset. I think this would be better than one Model per Viewset which
would generate N tables for N viewsets with 1 instance of each which would
be very strange and inefficient.

So let's assume we have a simple definition like the one below. Each
instance stores the policy for one viewset.

class AccessPolicy(BaseModel):
    data = JSONField()

So what second field can I add to this that would allow me to relate an
instance of this model to a viewset. For example the FileRemoteViewset
here:
https://github.com/pulp/pulp_file/blob/de638519fc02d588f403db4c5cfcca7552543c50/pulp_file/app/viewsets.py#L116

Idea 1: Add a viewset = CharField(). Have it store values as URLs, e.g.
/pulp/api/v3/remotes/file/file/.
Idea 2: Add a viewset = CharField(), and have it store values as
classpaths, e.g. 'pulp_file.app.viewsets.RemoteFileViewset'.

I think Idea 1 makes the most sense because that's how our users think of
it. I can't think of a good alternative. What do you think makes the most
sense? What alternative ideas should we consider?

If you have feedback please share it. I need to start into something to get
it going tomorrow even if it's just Idea 1 for lack of an alternate
proposal.

Thanks,
Brian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20200713/b0cf27fd/attachment.htm>


More information about the Pulp-dev mailing list