Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Queuing Updates by Server Type #4982

Closed
dsouza93 opened this issue Aug 21, 2020 · 7 comments · Fixed by #6014
Closed

Support Queuing Updates by Server Type #4982

dsouza93 opened this issue Aug 21, 2020 · 7 comments · Fixed by #6014
Assignees
Labels
new feature A new feature, capability or behavior Traffic Ops related to Traffic Ops Traffic Portal v1 related to Traffic Portal version 1

Comments

@dsouza93
Copy link
Contributor

dsouza93 commented Aug 21, 2020

I'm submitting a ...

  • new feature / enhancement request

Traffic Control components affected ...

  • Documentation
  • Traffic Ops
  • Traffic Ops ORT
  • Traffic Portal

Current behavior:

There has been the need to queue only the edge caches or only the mid caches. Currently, this has to either be done by writing a script to hit the API, or hacky ways like admin_downing mid caches in each cache group to queue updates on edges.

Expected / new behavior:

I'd like the ability to only queue updates on a specific tier. To expand on this it might be nice to be able to queue based on a profile regex as well.

Minimal reproduction of the problem with instructions:

N/A

Anything else:

@mitchell852 mitchell852 added Traffic Portal v1 related to Traffic Portal version 1 Traffic Ops related to Traffic Ops new feature A new feature, capability or behavior labels Aug 21, 2020
@mitchell852 mitchell852 changed the title Support Queuing by Server Type Support Queuing Updates by Server Type Aug 21, 2020
@mitchell852
Copy link
Member

mitchell852 commented Aug 21, 2020

currently you can queue updates on servers at 3 levels:

  1. all servers in a cdn
  2. all servers in a cache group
  3. an individual server

I know that #3 will also queue updates on any "child" servers of that server automatically. I'm not sure if #2 does the same thing. I.e. if you queue updates on a cache group's servers, does it also queue updates on any servers in child cache group(s). I'd need to look into that.

my point being, when you say "queue updates by server type", you really only want updates queued for servers of that type and NOT "children" servers as it does now, correct? Example, if you want to queue updates on all MID servers, you only want those MID servers queued, right? nothing else....

@mitchell852
Copy link
Member

Maybe we need to consider a new endpoint like:

POST (or PUT) /api/queue_updates with a bunch of supported query params such as:

/api/queue_updates?cdn=
/api/queue_updates?cacheGroup=
/api/queue_updates?server=(hostname? id? both?)
/api/queue_updates?type=
/api/queue_updates?profile=
/api/queue_updates?topology=
/api/queue_updates?deliveryService=(xmlId? id? both?)
/api/queue_updates?physLocation=
/api/queue_updates?serverCapability=
/api/queue_updates?status=

that would give the user lots of options on how they wan to queue updates :)

@srijeet0406
Copy link
Contributor

@mitchell852 I can take this one.

@srijeet0406
Copy link
Contributor

srijeet0406 commented Jun 30, 2021

Talked to @mitchell852 about this, and for this issue, I'll be adding queueing updates by Type and profile only. We can keep adding to that endpoint later as we'd like.

@dsouza93
Copy link
Contributor Author

Queueing updates by type and profile only seems acceptable and more user friendly! Sounds good to me.

@rawlinp
Copy link
Contributor

rawlinp commented Jul 12, 2021

Rather than adding a new endpoint, would it make sense to just add type and profile query parameters to the existing /cdns/{id}/queue_update endpoint? I think most of the time you're queuing within a single CDN, so it might make sense to keep it CDN-specific, but within that CDN you can narrow down by server type and profile.

I would prefer us to move away from having to do targeted queues in the first place -- in general if you queue updates on a server that doesn't actually have updates, it should be a no-op. The problem is that it adds load on Traffic Ops to serve requests from t3c when they're not actually needed. However, we are trying to get to a point where Traffic Ops can easily handle the load from thousands of t3c instances at a time, so eventually we should be able to just queue entire CDNs at a time and have the change fully propagated in a few minutes rather than an hour.

@mitchell852
Copy link
Member

mitchell852 commented Jul 13, 2021

Rather than adding a new endpoint, would it make sense to just add type and profile query parameters to the existing /cdns/{id}/queue_update endpoint? I think most of the time you're queuing within a single CDN, so it might make sense to keep it CDN-specific, but within that CDN you can narrow down by server type and profile.

this makes sense to me. i think most (all?) of the time, you are concerned with a specific cdn anyhow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature A new feature, capability or behavior Traffic Ops related to Traffic Ops Traffic Portal v1 related to Traffic Portal version 1
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants