Sure good feedback. > On May 23, 2019, at 3:04 PM, Fieck, Brennan <brennan_fi...@comcast.com> wrote: > > I'd like to propose that instead of adding > `/api/1.4/cacheassignmentgroups/{{id}}` that supports PUT and DELETE, we just > let `/api/1.4/cacheassignmentgroups` handle those operations/methods with an > identifying query parameter. There are two or three endpoints that do this > already, I think `coordinates` is one of them. > ________________________________________ > From: Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus > (UK) Limited -OBO at Cisco) <efrie...@cisco.com.INVALID> > Sent: Thursday, May 23, 2019 12:33 PM > To: dev@trafficcontrol.apache.org > Subject: Re: [EXTERNAL] [PROPOSAL] Cache Assignment Group REST API > > Discussion looks to have slowed down and it was a bit of a long road, so I’ll > summarize where we ended up. > > POST,GET /api/1.4/cacheassignmentgroups/ > PUT /api/1.4/cacheassignmentgroups/{id} > {"id": 1, > "name": "name1", > "description": "description1", > "cdnId": 1, > "servers": [1,2,...n], > "lastUpdated": "", > } > > DELETE /api/1.4/cacheassignmentgroups/{id} > > — DS->CAG Assignments — > PUT/POST /deliveryservices > Add optional list of assigned CAGs to the delivery service struct > > — Retrieving Server<->DS Assignments — > > GET /api/$version/deliveryservices/:id/servers > Will return a list of explicit server assignments unioned with servers > assigned through CAGs. (Full server details) > > POST /api/$version/deliveryservices/:xmlId/servers > Will accept a list of explicit server assignments (server names) as it does > today. > > > >> On May 22, 2019, at 12:18 PM, Eric Friedrich -X (efriedri - TRITON UK BIDCO >> LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco) >> <efrie...@cisco.com.INVALID> wrote: >> >> Sorry, should have been more clear. I was thinking about a case where there >> was no explicit assignment, only a CAG assignment. >> >> -Eric >> >>> On May 22, 2019, at 9:06 AM, Fieck, Brennan <brennan_fi...@comcast.com> >>> wrote: >>> >>>> If someone POSTs to a DS to try and remove the name of a server that is >>>> assigned via a CAG, the call will return success but neither the explicit >>>> assignment nor the CAG assignments will be changes >>> >>> Why not remove the explicit assignment? IMO, a success response tells the >>> client that the operation succeeded, so doing that when in fact it didn't >>> is a confusing lie from the client's perspective. >>> ________________________________________ >>> From: Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus >>> (UK) Limited -OBO at Cisco) <efrie...@cisco.com.INVALID> >>> Sent: Tuesday, May 21, 2019 12:36 PM >>> To: dev@trafficcontrol.apache.org >>> Subject: Re: [EXTERNAL] [PROPOSAL] Cache Assignment Group REST API >>> >>> GET /api/$version/deliveryservices/:id/servers >>> Will return a list of explicit server assignments unioned with servers >>> assigned through CAGs. (Full server details) >>> >>> POST /api/$version/deliveryservices/:xmlId/servers >>> Aside: Why does this one use xmlId when all these other endpoint use only >>> ID? Its rather inconsistent… >>> >>> Will accept a list of explicit server assignments (server names) as it does >>> today. >>> If someone POSTs to a DS with the name of a server that is assigned via a >>> CAG, it will also become explicitly assigned to that DS. >>> If someone POSTs to a DS to try and remove the name of a server that is >>> assigned via a CAG, the call will return success but neither the explicit >>> assignment nor the CAG assignments will be changes >>> >>> >>> I was initially worried of someone doing a GET from :id/servers and then >>> POSTing the response to :xmlId/servers but the formats are somehow so >>> different thats not really a concern. >>> >>> —Eric >>> >>> >>>> On May 21, 2019, at 2:05 PM, Jeremy Mitchell <mitchell...@gmail.com> wrote: >>>> >>>> Rawlin beat me to it. >>>> >>>> /api/$version/deliveryservices/:id/servers <-- tenancy is already checked >>>> (i hope) on this route. >>>> >>>> imo if CAGs are introduced, the handler associated with that route ^^ needs >>>> to be modified to take CAGs into account (in addition to explicit server >>>> assignments) >>>> >>>> On Tue, May 21, 2019 at 10:52 AM Rawlin Peters <rawlin.pet...@gmail.com> >>>> wrote: >>>> >>>>> I'm hesitant to add a server list to the delivery service object just >>>>> because it's a lot of data (same with adding a delivery service list >>>>> to the server object). Two of the things that are done the most in >>>>> Traffic Ops are: >>>>> 1. adding new servers >>>>> 2. adding new delivery services >>>>> Every time we do one of those things we're already increasing the size >>>>> of the CRConfig at an M*N rate, so by adding a server list into the DS >>>>> object and a list of DSes into the server object would gives those >>>>> objects the same problem as the CRConfig. By adding an aggregation >>>>> between the two of them -- the Cache Assignment Group -- it is more >>>>> reasonable to include the list of CAGs in the server and DS objects. >>>>> >>>>> I agree with Eric's common questions (which DSes are assigned to a >>>>> server and which servers are assigned to a DS), but we do already have >>>>> specific endpoints for those two questions: >>>>> /api/$version/servers/:id/deliveryservices >>>>> /api/$version/deliveryservices/:id/servers >>>>> >>>>> Those endpoints would have to start taking into account any CAGs. >>>>> >>>>> - Rawlin >>>>> >>>>> >>>>> >>>>> On Tue, May 21, 2019 at 8:45 AM Fieck, Brennan >>>>> <brennan_fi...@comcast.com> wrote: >>>>>> >>>>>> I'd be a fan of adding a servers array to DS objects. We don't need the >>>>> whole server object in each entry, just some identifying information >>>>> (name, >>>>> id, type should be sufficient I would think). >>>>>> ________________________________________ >>>>>> From: Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter >>>>> Domus (UK) Limited -OBO at Cisco) <efrie...@cisco.com.INVALID> >>>>>> Sent: Tuesday, May 21, 2019 8:09 AM >>>>>> To: dev@trafficcontrol.apache.org >>>>>> Subject: Re: [EXTERNAL] [PROPOSAL] Cache Assignment Group REST API >>>>>> >>>>>> I like this, but I think we still have a challenge with tenancy. >>>>>> >>>>>> Two of the very common questions with these groups are >>>>>> >>>>>> 1) Which servers are assigned to this Delivery Service (either >>>>> individually or through a CAG). >>>>>> >>>>>> Using the existing proposed API, users would first need to call >>>>> /deliveryService?id= to get a list of CAGs. Then iterate of that list of >>>>> CAGs calling /server?cag= for each name/id. Not very user friendly. >>>>>> >>>>>> Instead, this question could be answered using >>>>> /servers?deliveryService=<dsId> >>>>>> But /server still needs to be tenant-aware >>>>>> >>>>>> I dont see a way to put it into the more tenant-friendly >>>>> /deliveryservice endpoint without adding a “servers” field to the existing >>>>> DS query params/response. >>>>>> >>>>>> 2) Which delivery services are assigned to this server (needed for >>>>> remap.config generation but operators also like to see this info) >>>>>> This could be answered with >>>>>> /servers?id=<serverId> >>>>>> If we are OK adding the DS assignments into the server as well >>>>>> >>>>>> Similarly to 1, it could also go into /deliveryservice with the >>>>> addition of an assigned servers field in the response. >>>>>> >>>>>> —Eric >>>>>> >>>>>>> On May 19, 2019, at 7:33 PM, Chris Lemmons <alfic...@gmail.com> wrote: >>>>>>> >>>>>>> I like where Rawlin is headed and I think you can take it even one >>>>>>> step simpler. What if you moved the cacheAssignmentGroup into the >>>>>>> server data instead? So it would look like this: >>>>>>> >>>>>>> Server: >>>>>>> { >>>>>>> "id": 1, >>>>>>> "cags": ["foo", "quux"] >>>>>>> ... >>>>>>> } >>>>>>> >>>>>>> Delivery Service: >>>>>>> { >>>>>>> "xmlId": "bar", >>>>>>> "cags": ["foo","bar"], >>>>>>> "tenantId": 7, >>>>>>> ... >>>>>>> } >>>>>>> >>>>>>> If we need it for performance, we could map names to numbers under the >>>>>>> hood, of course. This way tenancy works the way we want it to, and we >>>>>>> can use capabilities to restrict who can adjust server assignments, >>>>>>> which are, as has been observed, multi-tenant. A delivery service is >>>>>>> assigned to a server if one of its cags matches one of the server's >>>>>>> cags. >>>>>>> >>>>>>> For some bonus utility, you could allow most mutating operations to >>>>>>> operate on cags as well, for example to set a group admin-down at >>>>>>> once. >>>>>>> >>>>>>> In the future, if we need really fine control, we could potentially >>>>>>> allow boolean logic on the cag fields, which might be useful for >>>>>>> things like "cags": ["coreprod", "newprod & !canary"], which would >>>>>>> match any server that had a coreprod tag, or a server with newprod but >>>>>>> not canary. It could be used for managing "requirements", since not >>>>>>> all caches might support the same set or versions of plugins >>>>>>> (especially during a rollout of an upgrade). Imagine "cags": >>>>>>> ["prod_east & urisigning16"] for ensuring that the DS is only assigned >>>>>>> to servers with the correct version of urisigning. That sort of logic >>>>>>> could let operators set up very powerful and flexible assignment >>>>>>> systems, even in excess of what we can think up today. We'd need to >>>>>>> design that feature carefully, though, since we probably want to be >>>>>>> able to ask questions like "list all the DSs with the newprod cag", >>>>>>> which can be tricky to answer if we get too clever on our fields. >>>>>>> >>>>>>> On Sun, May 19, 2019 at 2:20 PM Jeremy Mitchell <mitchell...@gmail.com> >>>>> wrote: >>>>>>>> >>>>>>>> I think what Rawlin has proposed makes a lot of sense and would >>>>> simplify >>>>>>>> things w.r.t. tenancy. I like simplification. :) >>>>>>>> >>>>>>>> jeremy >>>>>>>> >>>>>>>> On Fri, May 17, 2019 at 1:59 PM Rawlin Peters < >>>>> rawlin.pet...@gmail.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I've been thinking about this a bit more, and I had a different idea >>>>>>>>> about CAGs w.r.t. tenancy. >>>>>>>>> >>>>>>>>> Maybe the CAGs shouldn't contain the list of delivery services >>>>> they're >>>>>>>>> assigned to, and instead, the delivery service is enhanced to include >>>>>>>>> the list of CAGs its assigned to. Also, instead of a CAG being >>>>>>>>> tenantable, maybe we just keep tenancy in the delivery service so >>>>> that >>>>>>>>> if a tenant has access to a delivery service they are free to change >>>>>>>>> their DS's CAGs at will. >>>>>>>>> >>>>>>>>> So we'd end up with something like: >>>>>>>>> CAG: >>>>>>>>> { >>>>>>>>> "name": "foo", >>>>>>>>> "servers": [1,2,3], >>>>>>>>> ... (no tenant ID) >>>>>>>>> } >>>>>>>>> Delivery Service: >>>>>>>>> { >>>>>>>>> "xmlId": "bar", >>>>>>>>> "cacheAssignmentGroups": [7, 8, 9], >>>>>>>>> "tenantId": 7, >>>>>>>>> ... >>>>>>>>> } >>>>>>>>> >>>>>>>>> I'm thinking that "logical server groups" shouldn't really be a >>>>>>>>> tenantable thing, because they are inherently multi-tenant, and we >>>>>>>>> might end up creating a crazy number of overlapping CAGs for all >>>>>>>>> tenants. Adding a new server into multiple overlapping CAGs per >>>>> tenant >>>>>>>>> might get out of hand. This would allow us to keep the total number >>>>> of >>>>>>>>> "logical server groups" down but still prevent a tenant from seeing >>>>>>>>> another tenant's CAGs. >>>>>>>>> >>>>>>>>> What do you think? >>>>>>>>> >>>>>>>>> - Rawlin >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, May 16, 2019 at 10:18 AM Jeremy Mitchell < >>>>> mitchell...@gmail.com> >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> yeah, maybe i overcomplicated it with my example and got it wrong. >>>>>>>>>> >>>>>>>>>> if the CAG belongs to tenant 2 and john is the only one that >>>>> belongs to >>>>>>>>>> tenant 2 (sally belongs to 2.1 and linda to 2.1.1), then john is >>>>> really >>>>>>>>> the >>>>>>>>>> only one that can modify the CAG. and since the CAG only contains >>>>> DS's >>>>>>>>> from >>>>>>>>>> tenant 2, 2.1 or 2.2, he can modify ALL the ds's in that CAG... >>>>>>>>>> >>>>>>>>>> so disregard what i said in my example about what sally and linda >>>>> can >>>>>>>>>> modify because they can't if you add tenantId to CAG. >>>>>>>>>> >>>>>>>>>> so i think >>>>>>>>>> >>>>>>>>>> 1. add a tenantID to a CAG >>>>>>>>>> 2. enforce user tenancy on CAG post/put/delete >>>>>>>>>> 3. on post/put, ensure the tenancy of the assigned ds's are >>>>> compatible >>>>>>>>> with >>>>>>>>>> the CAG tenant >>>>>>>>>> >>>>>>>>>> jeremy >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, May 16, 2019 at 9:08 AM Eric Friedrich -X (efriedri - >>>>> TRITON UK >>>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco) >>>>>>>>>> <efrie...@cisco.com.invalid> wrote: >>>>>>>>>> >>>>>>>>>>> Jeremy- >>>>>>>>>>> Going back to your original example of the tree below. >>>>>>>>>>> >>>>>>>>>>> If DS baz is assigned to tenantId 2, then tenantIds 2.1, 2.1.1, 2.2 >>>>>>>>> cannot >>>>>>>>>>> modify baz, right? >>>>>>>>>>> >>>>>>>>>>> If a CAG is created also with tenantId2, then I would expect the >>>>> same >>>>>>>>>>> behavior- only John as part of the 2 tenant can modify that CAG. >>>>>>>>>>> Similarly, this CAG could only contain DS’ that belong to our are >>>>>>>>> children >>>>>>>>>>> of tenant 2. >>>>>>>>>>> >>>>>>>>>>> This seems to match existing behavior more closely? >>>>>>>>>>> >>>>>>>>>>> —Eric >>>>>>>>>>> >>>>>>>>>>>> On May 16, 2019, at 10:43 AM, Jeremy Mitchell < >>>>> mitchell...@gmail.com >>>>>>>>>> >>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> no, capabilities are very different than tenancy. >>>>>>>>>>>> >>>>>>>>>>>> capabilities dictate what you "can do" - i.e. you can modify CAG's >>>>>>>>> if you >>>>>>>>>>>> have the cacheassignmentgroup-write capability >>>>>>>>>>>> tenancy dictates what you "can do it to". in this case, if CAG's >>>>>>>>> have a >>>>>>>>>>>> tenantId and you have the cacheassignmentgroup-write capability, >>>>>>>>> then you >>>>>>>>>>>> can ONLY modify CAG's that fall in your tenancy scope. >>>>>>>>>>>> >>>>>>>>>>>> although different, capabilities and tenancy work hand in hand to >>>>>>>>> limit >>>>>>>>>>>> what a user can do (permissions) and what they can do that to >>>>>>>>> (scope). >>>>>>>>>>>> >>>>>>>>>>>> because CAG's have an embedded tenantable resource (delivery >>>>>>>>> services), >>>>>>>>>>>> this makes it a bit trickier. not only should tenancy dictate >>>>> which >>>>>>>>> CAG's >>>>>>>>>>>> can be modified by the user, it should also dictate how those >>>>> CAG's >>>>>>>>>>> should >>>>>>>>>>>> be modified (i.e. which delivery services can be impacted by a >>>>>>>>>>> modification) >>>>>>>>>>>> >>>>>>>>>>>> jeremy >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, May 15, 2019 at 3:13 PM Eric Friedrich -X (efriedri - >>>>> TRITON >>>>>>>>> UK >>>>>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco) >>>>>>>>>>>> <efrie...@cisco.com.invalid> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> On May 15, 2019, at 4:16 PM, Fieck, Brennan < >>>>>>>>> brennan_fi...@comcast.com >>>>>>>>>>>> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> You could just set tenant permissions based on the owning tenant >>>>>>>>> of the >>>>>>>>>>>>> Delivery Service. >>>>>>>>>>>>>> Should the child of a tenant be able to modify cache >>>>> assignments of >>>>>>>>>>> said >>>>>>>>>>>>> tenant's Delivery Services? >>>>>>>>>>>>>> I wouldn't think so. >>>>>>>>>>>>> EF> Isn’t this what the capabilities are for? If a user has >>>>>>>>>>>>> “cacheassignmentgroup-write” capability, then they can modify the >>>>>>>>>>>>> assignments for any delivery services in that tenant >>>>>>>>>>>>> >>>>>>>>>>>>>> ________________________________________ >>>>>>>>>>>>>> From: Jeremy Mitchell <mitchell...@gmail.com> >>>>>>>>>>>>>> Sent: Wednesday, May 15, 2019 1:22 PM >>>>>>>>>>>>>> To: dev@trafficcontrol.apache.org >>>>>>>>>>>>>> Subject: [EXTERNAL] Re: [PROPOSAL] Cache Assignment Group REST >>>>> API >>>>>>>>>>>>>> >>>>>>>>>>>>>> example tenant tree: >>>>>>>>>>>>>> >>>>>>>>>>>>>> root >>>>>>>>>>>>>> - 1 (foo) >>>>>>>>>>>>>> -- 1.1 (bar) >>>>>>>>>>>>>> - 2 (baz) >>>>>>>>>>>>>> -- 2.1 (bee) >>>>>>>>>>>>>> --- 2.1.1 (bang) >>>>>>>>>>>>>> -- 2.2 (bop) >>>>>>>>>>>>>> >>>>>>>>>>>>>> the foo ds belongs to tenant 1, bar ds belongs to tenant 1.1, >>>>> etc. >>>>>>>>>>>>>> >>>>>>>>>>>>>> a CGA is created with tenantId=2 which means it can only have >>>>> the >>>>>>>>> baz, >>>>>>>>>>>>> bee, >>>>>>>>>>>>>> bang and bop ds's in it. John belongs to the 2 tenant and adds >>>>> all >>>>>>>>> 4 >>>>>>>>>>>>> (baz, >>>>>>>>>>>>>> bee, bang, bop). >>>>>>>>>>>>>> >>>>>>>>>>>>>> Sally belongs to the 2.1 tenant, and only sees [bee, bang] in >>>>> the >>>>>>>>> CGA >>>>>>>>>>> and >>>>>>>>>>>>>> does an update with [], so it blows away bee (the ds in her >>>>>>>>> tenant) and >>>>>>>>>>>>>> bang (plus any child tenant ds's) >>>>>>>>>>>>>> >>>>>>>>>>>>>> Linda belongs to the 2.1.1 tenant, and sees [] in the CGA >>>>> (because >>>>>>>>>>> sally >>>>>>>>>>>>>> blew them all away) and does an update with [goo]. now the CAG >>>>> has >>>>>>>>> baz >>>>>>>>>>>>> and >>>>>>>>>>>>>> goo ds's. >>>>>>>>>>>>>> >>>>>>>>>>>>>> so basically, a user can only modify the ds's that they can see >>>>>>>>> based >>>>>>>>>>> on >>>>>>>>>>>>>> their tenant (and subtenants). and a CAG can only have certain >>>>>>>>> ds's in >>>>>>>>>>> it >>>>>>>>>>>>>> based on it's tenant... >>>>>>>>>>>>>> >>>>>>>>>>>>>> I "think" that would work....sounds a bit complicated but i >>>>> really >>>>>>>>> feel >>>>>>>>>>>>>> like tenancy probably belongs on a CAG because of its >>>>> relationship >>>>>>>>> with >>>>>>>>>>>>>> ds's. plus, then it would be nice to create CAG's for tenants. >>>>> for >>>>>>>>>>>>> example, >>>>>>>>>>>>>> create a trial tenant and some trial ds's and some trial users >>>>> and >>>>>>>>> they >>>>>>>>>>>>>> have no choice but to use the trial CAG that has 2 caches in it >>>>> or >>>>>>>>>>>>>> something. >>>>>>>>>>>>>> >>>>>>>>>>>>>> jeremy >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, May 15, 2019 at 1:01 PM Eric Friedrich -X (efriedri - >>>>>>>>> TRITON UK >>>>>>>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco) >>>>>>>>>>>>>> <efrie...@cisco.com.invalid> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> What if the tenantId on the cacheassignmentgroup does not match >>>>>>>>> the >>>>>>>>>>>>>>> tenantID on one of the included delivery services? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On May 15, 2019, at 2:55 PM, Jeremy Mitchell < >>>>>>>>> mitchell...@gmail.com> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I got an idea. If you made a cachegroupassignment a >>>>> "tenantable" >>>>>>>>>>>>>>> resource, >>>>>>>>>>>>>>>> you could avoid the problem i mentioned above (having ds's >>>>>>>>> hidden for >>>>>>>>>>>>>>>> tenancy reasons). so this instead: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> {"id": 1, >>>>>>>>>>>>>>>> "name": "name1", >>>>>>>>>>>>>>>> "description": "description1", >>>>>>>>>>>>>>>> tenantId: 2, >>>>>>>>>>>>>>>> "cdnId": 1, >>>>>>>>>>>>>>>> "servers": [1,2,...n], >>>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30, 35] >>>>>>>>>>>>>>>> "lastUpdated": "", >>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> this has a nice benefit as well. i.e. certain tenants (content >>>>>>>>>>>>> providers) >>>>>>>>>>>>>>>> have access to certain cachegroupassignment configurations. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> jeremy >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, May 15, 2019 at 12:43 PM Jeremy Mitchell < >>>>>>>>>>>>> mitchell...@gmail.com> >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Just be careful that a GET >>>>> /api/1.4/cacheassignmentgroups?id=4 >>>>>>>>>>> doesn't >>>>>>>>>>>>>>>>> return a filtered list of delivery services because of >>>>> tenancy >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> {"id": 1, >>>>>>>>>>>>>>>>> "name": "name1", >>>>>>>>>>>>>>>>> "description": "description1", >>>>>>>>>>>>>>>>> "cdnId": 1, >>>>>>>>>>>>>>>>> "servers": [1,2,...n], >>>>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30], <-- maybe there are really >>>>> 5 >>>>>>>>>>>>> delivery >>>>>>>>>>>>>>>>> services but 2 of them (40 and 50) are hidden from you due to >>>>>>>>>>> tenancy >>>>>>>>>>>>>>>>> "lastUpdated": "", >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> and a subsequent PUT with the same json (plus a new delivery >>>>>>>>> service >>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>> is added): >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> {"id": 1, >>>>>>>>>>>>>>>>> "name": "name1", >>>>>>>>>>>>>>>>> "description": "description1", >>>>>>>>>>>>>>>>> "cdnId": 1, >>>>>>>>>>>>>>>>> "servers": [1,2,...n], >>>>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30, 35] >>>>>>>>>>>>>>>>> "lastUpdated": "", >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> doesn't wipe out 40 and 50. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> if you do this, it begs the question. how do you remove ALL >>>>> ds >>>>>>>>>>>>>>> assignments >>>>>>>>>>>>>>>>> from a cache assignment group? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> also, how about >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> DELETE /api/1.4/cacheassignmentgroups?id= >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> instead of >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> DELETE /api/1.4/cacheassignmentgroups/{id} >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> jeremy >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Wed, May 15, 2019 at 12:22 PM Eric Friedrich -X (efriedri >>>>> - >>>>>>>>>>> TRITON >>>>>>>>>>>>> UK >>>>>>>>>>>>>>>>> BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco) >>>>>>>>>>>>>>>>> <efrie...@cisco.com.invalid> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Feature description >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -------------------- >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Mail Thread: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>> https://lists.apache.org/thread.html/35ee49f4be1c30ff4a12c71e02897aee0e0d3d2f356640ab69ba247e@%3Cdev.trafficcontrol.apache.org%3E >>>>>>>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>> https://lists.apache.org/thread.html/35ee49f4be1c30ff4a12c71e02897aee0e0d3d2f356640ab69ba247e@ >>>>>>>>>>>>>>>>>> <dev.trafficcontrol.apache.org>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Github Issue: >>>>>>>>> https://github.com/apache/trafficcontrol/issues/3557 >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> API Proposal >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> ------------ >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> POST,GET /api/1.4/cacheassignmentgroups/ >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> PUT /api/1.4/cacheassignmentgroups/{id} >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> {"id": 1, >>>>>>>>>>>>>>>>>> "name": "name1", >>>>>>>>>>>>>>>>>> "description": "description1", >>>>>>>>>>>>>>>>>> "cdnId": 1, >>>>>>>>>>>>>>>>>> "servers": [1,2,...n], >>>>>>>>>>>>>>>>>> "deliveryServices": [10, 20, 30], >>>>>>>>>>>>>>>>>> "lastUpdated": "", >>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> DELETE /api/1.4/cacheassignmentgroups/{id} >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- No request body >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> This API is tenant-aware by delivery service. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Query Parameters (all optional) >>>>>>>>>>>>>>>>>> If multiple filter parameters are specified, they are AND'd >>>>>>>>>>> together >>>>>>>>>>>>>>>>>> - id: Filter for a specific entry >>>>>>>>>>>>>>>>>> - servers: Filter all entries containing this server >>>>>>>>>>>>>>>>>> - deliveryService: Filter all entries containing this DS >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> - limit: Return maximum number of entries (default 20) >>>>>>>>>>>>>>>>>> - page: Return page n, with each page having limit number of >>>>>>>>>>> entries >>>>>>>>>>>>>>>>>> (default 0) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Body Parameters: >>>>>>>>>>>>>>>>>> - id: Numeric identifier, automatically assigned on >>>>> creation. >>>>>>>>>>>>>>> [Read-Only, >>>>>>>>>>>>>>>>>> not allowed in PUT/POST] >>>>>>>>>>>>>>>>>> - name: Name of the cache assignment group >>>>>>>>>>>>>>>>>> - description Description of the cache assignment group >>>>>>>>>>>>>>>>>> - cdnId: ID of the CDN the cache assignment group belongs to >>>>>>>>>>>>>>>>>> - servers: List of server IDs. >>>>>>>>>>>>>>>>>> - deliveryServices: List of delivery service IDs. All caches >>>>>>>>> in the >>>>>>>>>>>>>>>>>> servers list will be assigned to these delivery services >>>>>>>>>>>>>>>>>> - lastUpdated: Timestamp this cache assignment group was >>>>> last >>>>>>>>>>>>> updated. >>>>>>>>>>>>>>>>>> [Read-Only, not allowed in PUT/POST] >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>> >>>>> >>> >> >
Re: [EXTERNAL] [PROPOSAL] Cache Assignment Group REST API
Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco) Thu, 23 May 2019 12:11:44 -0700
- ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
- ... Fieck, Brennan
- ... Rawlin Peters
- ... Jeremy Mitchell
- ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
- ... Fieck, Brennan
- ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
- ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
- ... Fieck, Brennan
- ... Jeremy Mitchell
- ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
- ... Chris Lemmons
- ... Eric Friedrich -X (efriedri - TRITON UK BIDCO LIMITED c/o Alter Domus (UK) Limited -OBO at Cisco)
- ... Chris Lemmons