[
https://issues.apache.org/jira/browse/MESOS-5155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15279545#comment-15279545
]
Zhitao Li commented on MESOS-5155:
----------------------------------
[~alexr], so this is my understanding of your answer:
1) We will not try to implement quota update in the same release of
consolidation of quota authorization. (This is fine for me, just confirming the
plan);
2) Because the upgrade path is new binary and old ACL flag, new code needs to
construct both {{UPDATE_QUOTA_WITH_ROLE}} and {{DESTROY_QUOTA_WITH_PRINCIPAL}}
actions, send *each action* to (local) authorizer separately, and merge the
results with a boolean operator (*AND* or *OR*). Because one and only one ACL
list is an empty list, one of the result is always {{acls.permissive()}}, so we
need to use *AND* if {{acls.permissive()}} == true, and *OR* if
{{acls.permissive()}}==false. *Implementing this perfectly probably requires
adding more code to {{Authorizer}} interface.*
I tried to put up a test diff for a variance of Option 2, which completely
ignores {{remove_quotas}} and takes {{set_quotas}} as fallback if
{{update_quotas}} is empty. It is pretty easy to implement.
> Consolidate authorization actions for quota.
> --------------------------------------------
>
> Key: MESOS-5155
> URL: https://issues.apache.org/jira/browse/MESOS-5155
> Project: Mesos
> Issue Type: Improvement
> Reporter: Alexander Rukletsov
> Assignee: Zhitao Li
> Labels: mesosphere
>
> We should have just a single authz action: {{UPDATE_QUOTA_WITH_ROLE}}. It was
> a mistake in retrospect to introduce multiple actions.
> Actions that are not symmetrical are register/teardown and dynamic
> reservations. The way they are implemented in this way is because entities
> that do one action differ from entities that do the other. For example,
> register framework is issued by a framework, teardown by an operator. What is
> a good way to identify a framework? A role it runs in, which may be different
> each launch and makes no sense in multi-role frameworks setup or better a
> sort of a group id, which is its principal. For dynamic reservations and
> persistent volumes, they can be both issued by frameworks and operators,
> hence similar reasoning applies.
> Now, quota is associated with a role and set only by operators. Do we need to
> care about principals that set it? Not that much.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)