-
Notifications
You must be signed in to change notification settings - Fork 26
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
paddles: Adding a queueing mechanism to Paddles #94
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking good! IIRC you had some alembic changes to the fields as well - looks like they weren't added in this commit.
It'd be great to add some unit tests for the new/updated models and controllers, particularly ones with logic - e.g. for updating job priority it looks like you had to modify the model to work without targets, and only an update of priority
I guess we need to deploy a test instance for this. |
travis tests are failing, btw |
@kshtsk I can see a connection refused error in the test logs here: https://travis-ci.org/github/ceph/paddles/builds/771656065#L711. Any idea how I can fix this? |
could you add a unit test for updating job priority? the new queue tests look good. For the travis failure, do the same commands work for you locally? i.e. the commands starting here https://travis-ci.com/github/ceph/paddles/builds/227874146#L196 Though travis doesn't show the paddles log, it looks like paddles is crashing quickly after startup |
This means that server is not started in fact, you must try reproduce it on your local machine. |
|
|
Sure I will do that. |
|
@amathuria usually you must make the PR run without unittests failures first ;-) |
Thank you for the logs. I was testing my changes on a mira setup with postgres and tested the sqlalchemy library upgrade there (which is causing the issue here in the docker test) and not with sqlite so I missed this. I'm working on the fix. |
Developers can now use start.sh to build the images and set up postgresql, paddles, pulpito and teuthology for development. This PR is also pending for: #1650 ceph/paddles#94 to be merged, as currently we use these branches as images for paddles and pulpito. Signed-off-by: Kamoltat Sirivadhna <[email protected]>
Developers can now use start.sh to build the images and set up postgresql, paddles, pulpito and teuthology for development. This PR is also pending for: #1650 ceph/paddles#94 to be merged, as currently we use these branches as images for paddles and pulpito. Signed-off-by: Kamoltat Sirivadhna <[email protected]>
855eeac
to
a2eb61d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a lot of good work here! I don't think this is too far from being ready.
I've left a lot of comments, and tried to be clear, but if you have any questions, or if I just got something wrong, let me know.
6bca229
to
8f10855
Compare
8f10855
to
d04e477
Compare
This change adds support for a queuing mechanism in Paddles. The idea is to eventually use only the Paddles backend for teuthology and remove the need for the Beanstalk queue The following are the changes made: 1. Addition of new fields to the Jobs table in order to store the entire teuthology config. 2. Addition of a priority field to mimic a priority queue (similar to Beanstalk) 3. A new Queue table to keep track of the queues and their statuses on various machine types 4. Generation of a unique Job ID in Paddles 5. Rest APIs for retrieving a job from the queue, creating a new queue, updating status of a queue and retrieving stats for a particular queue Signed-off-by: Aishwarya Mathuria <[email protected]>
Signed-off-by: Aishwarya Mathuria <[email protected]>
…user Signed-off-by: Aishwarya Mathuria <[email protected]>
Signed-off-by: Aishwarya Mathuria <[email protected]>
1. Adding error message for "user" key not found 2. Removing explicit rollbacks Signed-off-by: Aishwarya Mathuria <[email protected]>
Adding run name as a filter for retrieving jobs from paddles Signed-off-by: Aishwarya Mathuria <[email protected]>
1. listeners option in configuration is now deprecated. Using event.listen instead. 2. Adding alternative to using Sequence() since it is not supported in SQLite
1. listeners option in configuration is now deprecated. Using event.listen instead. 2. Adding alternative to using Sequence() since it is not supported in SQLite 3. Modifying test cases for SQLite testing
As we are adding a few columns to the Jobs table this script will take care of the upgrade of the table schema Signed-off-by: Aishwarya Mathuria <[email protected]>
Signed-off-by: Aishwarya Mathuria <[email protected]>
…ade script Signed-off-by: Aishwarya Mathuria <[email protected]>
Signed-off-by: Aishwarya Mathuria <[email protected]>
Signed-off-by: Aishwarya Mathuria <[email protected]>
Signed-off-by: Aishwarya Mathuria <[email protected]>
1. pop_queue only is queue is not paused 2. retrieve queued_jobs with just the queue name, user and run_name are optional parameters 3. addition of queue column to the Job schema 4. simplify queue pausing mechanism with the addition of paused_until Signed-off-by: Aishwarya Mathuria <[email protected]>
In order to store the job configuration details in Paddles we need to add a few columns to the existing Jobs table Signed-off-by: Aishwarya Mathuria <[email protected]>
In order to store the job configuration details in Paddles we need to add a few columns to the existing Jobs table Signed-off-by: Aishwarya Mathuria <[email protected]>
Due to a mismatch in name, post requests were getting sent to a function meant to handle only PUT requests. Signed-off-by: Aishwarya Mathuria <[email protected]>
d04e477
to
4ad5614
Compare
a07f537
to
4ad5614
Compare
Signed-off-by: Aishwarya Mathuria <[email protected]>
c6e562a
to
bcc6b4e
Compare
This change adds support for a queuing mechanism in Paddles. The idea is to eventually use only the Paddles backend for teuthology and remove the need for the Beanstalk queue
The following are the changes made:
Signed-off-by: Aishwarya Mathuria [email protected]