Closed
Bug 1135818
Opened 10 years ago
Closed 8 years ago
Port slavealloc API, UI to relengapi
Categories
(Release Engineering :: General, defect)
Release Engineering
General
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: dustin, Unassigned)
Details
Attachments
(1 file)
747.20 KB,
text/plain
|
Details |
There are three parts to https://wiki.mozilla.org/ReleaseEngineering/Applications/Slavealloc
* the "allocator" that each of the buildslaves use to get their configuration on startup
* the API, which allows updating and changing records in the DB
* the UI, which uses the API on the backend
Currently the API is completely unauthenticated -- if you have access, you can change whatever you want. That's not great, because it means we can't really trust the data in the database.
The UI is a total piece of junk. I can say that because I wrote it! With the number of slaves we have, it hangs the browser when you load it. Boo.
So the idea here is to rewrite just the API and UI bits using RelengAPI. The allocator would remain as-is (for now.. that's another project). The API is really basic: create/read/update/delete slaves and masters.
Comment 1•10 years ago
|
||
To say, alongside this, is that the slavealloc changes that take place, have long wanted some form of history and *who changed them*
E.g. if I disable a slave, or mark a comment saying "on loan" would be great to be able to see who did that.
This need is not in current implementation so doesn't block this, but is good to think about while designing its new home.
Reporter | ||
Updated•10 years ago
|
Assignee: nobody → tanujsrivastava22
Reporter | ||
Comment 2•10 years ago
|
||
Let's keep it simple to start, but an audit trail will be a good follow-on project.
Reporter | ||
Comment 3•10 years ago
|
||
Here's a dump of the current slavealloc DB, with slave passwords scrubbed out. Hopefully this will just load right into a sqlite database, but it was exported from MySQL so there may be issues. At worst, it should give you an idea what the data looks like so that you can create your own test data.
Reporter | ||
Comment 4•10 years ago
|
||
Tanuj, how's this going?
Comment 5•10 years ago
|
||
I was busy with my University Assessments. Gearing up from today. Will report you soon.
Comment 6•10 years ago
|
||
(In reply to Dustin J. Mitchell [:dustin] from comment #0)
> So the idea here is to rewrite just the API and UI bits using RelengAPI.
> The allocator would remain as-is (for now.. that's another project). The
> API is really basic: create/read/update/delete slaves and masters.
Do we have a definition of this API, i.e. the exact http methods and urls to use, payloads etc?
Reporter | ||
Comment 7•10 years ago
|
||
It's defined in the code:
https://github.com/mozilla/build-tools/blob/master/lib/python/slavealloc/daemon/http/api.py
That doesn't specify the payloads, but they're flat JSON dicts so running a copy of the daemon in a test environment should make it easy to find out.
Comment 8•10 years ago
|
||
I'm wondering if maybe slavealloc becomes less important with a move to put workers in the cloud, and TaskCluster not tracking workers. In other words, maybe we don't need to have a slave database in the "new world". This may still apply for legacy, of course.
In light of this though, should we maybe lower the priority on this one?
Flags: needinfo?(coop)
Comment 9•10 years ago
|
||
(In reply to Pete Moore [:pmoore][:pete] from comment #8)
> I'm wondering if maybe slavealloc becomes less important with a move to put
> workers in the cloud, and TaskCluster not tracking workers. In other words,
> maybe we don't need to have a slave database in the "new world". This may
> still apply for legacy, of course.
Buildbot will still be with us for many months.
Even in the taskcluster world we will need tools for managing hardware machines that Mozilla owns & operates. Slavealloc is not that tool, but a relengapi version thereof that can also accept health data from sources like runner certainly is.
> In light of this though, should we maybe lower the priority on this one?
In effect, we've already done that by soliciting help from a contributor who doesn't work for us. We're happy to manage this and assist, but it's a good opportunity for Tanuj to learn his way around.
Flags: needinfo?(coop)
Reporter | ||
Comment 10•10 years ago
|
||
Callek, this is another good place to see that merging relengapi blueprints makes sense -- a "buildslaves" table will be useful for more than just this blueprint.
Flags: needinfo?(bugspam.Callek)
Reporter | ||
Updated•10 years ago
|
Flags: needinfo?(bugspam.Callek)
Updated•10 years ago
|
Assignee: tanujsrivastava22 → nobody
Updated•8 years ago
|
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INCOMPLETE
Assignee | ||
Updated•7 years ago
|
Component: General Automation → General
You need to log in
before you can comment on or make changes to this bug.
Description
•