]>
git.ipfire.org Git - pbs.git/log
Michael Tremer [Thu, 6 Feb 2025 16:27:17 +0000 (16:27 +0000)]
jobs: Fix finishing jobs
Obviously the database field is nullable and NULL by default.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 16:25:54 +0000 (16:25 +0000)]
builds: Actually call the add_watcher() coroutine
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 15:00:10 +0000 (15:00 +0000)]
jobs: Ensure that we have packages when a job finishes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 14:43:39 +0000 (14:43 +0000)]
backend: Allow passing keyword arguments to background tasks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 17:38:26 +0000 (17:38 +0000)]
jobs: Don't cache preceeding jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 17:27:59 +0000 (17:27 +0000)]
builds: Break some dependency cycle somewhere
SQLAlchemy failed to load alljobs in Builds and I could not quite figure
out why. It seems that when both properties that form the relationship
should be fetched in a single join, nothing happens and SQLAlchemy does
not even seem to complain about it. Oh well.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 17:13:59 +0000 (17:13 +0000)]
database: Require builders to be created by someone
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 17:13:28 +0000 (17:13 +0000)]
db: Drop the settings table
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 17:07:50 +0000 (17:07 +0000)]
database: Use as many inner joins as possible
We also are very unlikely to fetch any deleted objects, so let's rather
pull in the users that have deleted something by "SELECT IN" so that the
queries will be smaller and we don't add any joins which almost never
will find anything.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 16:20:19 +0000 (16:20 +0000)]
messages: Fetch messages in badges
We would have otherwise looped for forever since we cannot check in
advance whether the iterator actually has any elements, but we don't
want to connect to the mail relay if there is literally nothing to send.
So as a compromise we fetch messages in batches.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 16:06:06 +0000 (16:06 +0000)]
builders: Fix fetching running jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 15:53:38 +0000 (15:53 +0000)]
builders: Consider a builder running when it is online
This is a lot cheaper to test and should be sufficiently accurate.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 15:50:14 +0000 (15:50 +0000)]
jobs: Fix formatting timeout time
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 15:49:01 +0000 (15:49 +0000)]
messages: Ensure we commit to the database after each message
We have this weird problem that after any background tasks, SQLAlchemy
won't automatically commit. Therefore all those changes were lost.
But since we want to avoid sending messages again if something else
later in a batch fails we will commit any changes immediately after each
message has been sent.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 15:41:07 +0000 (15:41 +0000)]
settings: Remove database settings
We read stuff from the configuration file now.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 15:38:45 +0000 (15:38 +0000)]
release monitoring: Read the API key from configuration file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 15:34:47 +0000 (15:34 +0000)]
messages: Refactor the whole thing
This will now asynchronously send messages from the main thread.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 15:23:37 +0000 (15:23 +0000)]
backend: Load SSL context from certificate files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 14:32:17 +0000 (14:32 +0000)]
config: Don't log arch which can be empty
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:31:13 +0000 (11:31 +0000)]
packages: Fix rename installsize field
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:30:36 +0000 (11:30 +0000)]
repos: Fix relaunching pending jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:30:10 +0000 (11:30 +0000)]
jobs: Fix importing DependencyError
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:13:48 +0000 (11:13 +0000)]
config: Set cache path in context
This has now been fixed.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:19:51 +0000 (10:19 +0000)]
jobs: Don't abort when already aborted
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:19:02 +0000 (10:19 +0000)]
config: Initialize Pakfire in stub mode
This way, Pakfire does not need a path, won't initialize the database
and so on. It simply can be used to perform dependency solving which is
all we need here.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 09:42:34 +0000 (09:42 +0000)]
jobs: Drop unused control connection stuff
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 09:41:01 +0000 (09:41 +0000)]
jobs: Update message to abort
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:07:59 +0000 (14:07 +0000)]
jobs: Rename the finished handler
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:07:07 +0000 (14:07 +0000)]
web: Make fetching multiple uploads async
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 11:46:31 +0000 (11:46 +0000)]
jobs: Drop the control connection
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 10:13:31 +0000 (10:13 +0000)]
web: Consider spaces when splitting Accept-Enconding headers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 10:12:54 +0000 (10:12 +0000)]
jobs: Import log files as they are when they are already compressed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 10:10:52 +0000 (10:10 +0000)]
uploads: Commit the database session before sending response
The client could reconnect very quickly, before the database has session
has been commited which will result on the upload failing. Therefore we
make sure that the implicitely opened transaction has been commited
before we send the response.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 10:10:19 +0000 (10:10 +0000)]
mirrors: Use existing URLs to compose mirror URLs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 10:05:29 +0000 (10:05 +0000)]
repos: Don't include the build service in the mirrorlist
pakfire will already fall back to it, if baseurl is set.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 18:18:51 +0000 (18:18 +0000)]
uploads: Refactor this once again
This is not 100% async but good enough. If the system cannot write to
its own file system we probably have bigger issues.
This will now spool the uploaded data for a little while but soon flush
it out once it has become too large to be kept in memory for forever.
The file will then be copied (yes I know) and the new path stored.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 18:17:48 +0000 (18:17 +0000)]
backend: Drop an unused function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 17:15:46 +0000 (17:15 +0000)]
uploads: Calculate the digest when receiving the file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 17:14:01 +0000 (17:14 +0000)]
jobs: Fix sending configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 17:13:27 +0000 (17:13 +0000)]
uploads: Return the received filename in the API response
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 10:40:11 +0000 (10:40 +0000)]
uploads: Add a debug handler to download any uploaded payload
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 10:39:39 +0000 (10:39 +0000)]
uploads: Send an URL to the client where to send the payload
Hopefully this will give us some more flexibility in the future.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 10:38:58 +0000 (10:38 +0000)]
uploads: Manually commit the session
This is required because the session might not be fast enough before the
client comes back with the payload. This ensures that we won't have a
race.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 27 Jan 2025 15:47:45 +0000 (15:47 +0000)]
config: Pass the configuration to Pakfire as string
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 27 Jan 2025 15:07:59 +0000 (15:07 +0000)]
configure: Check for all required Python module
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 27 Jan 2025 15:02:09 +0000 (15:02 +0000)]
constants: Remove unused values
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 27 Jan 2025 14:58:53 +0000 (14:58 +0000)]
Rename to PBS
This is easier than a hyphenated Python package name. This is now also
moved out of the pakfire module which has become a pure C module.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 17:27:35 +0000 (17:27 +0000)]
jobs: Store control connections by their UUID
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 17:26:52 +0000 (17:26 +0000)]
jobs: Add crash handler
This will be called by the builders when the build process has
unexexpectedly crashed.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 14:32:35 +0000 (14:32 +0000)]
jobs: Fix retrying jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 14:28:32 +0000 (14:28 +0000)]
jobs: Fix aborting jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 14:22:15 +0000 (14:22 +0000)]
web: Don't fetch index data in a transaction
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 14:21:54 +0000 (14:21 +0000)]
jobs: Fix fetching running jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 14:01:32 +0000 (14:01 +0000)]
builders: Refactor dispatching jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:58:25 +0000 (13:58 +0000)]
config: Tidy up code
No functional changes.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:54:39 +0000 (13:54 +0000)]
config: Make it easier to generate a text configuration
We cannot use the old method any more since we need to call async
methods.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:53:40 +0000 (13:53 +0000)]
database: (Re-)raise any exceptions after the task is done
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:42:10 +0000 (13:42 +0000)]
builders: Fix least busy iterator
This must be an outer join so that we will always get all builds, even
those that don't have a job running.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:41:48 +0000 (13:41 +0000)]
builders: Fix accidental join
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:32:01 +0000 (13:32 +0000)]
jobs: Use shorter code return queue length
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:31:15 +0000 (13:31 +0000)]
database: Fix loads of incorrect joins
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 13:01:46 +0000 (13:01 +0000)]
cli: Fix running installchecks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 12:20:38 +0000 (12:20 +0000)]
jobs: Send log files with decompressing them if client supports it
If the browser supports gzip, we simply send the raw file as there is no
need to decompress it first and then have the reverse proxy compress it
again.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 12:09:15 +0000 (12:09 +0000)]
events: Rely more on "selectin"
This seems to be slightly faster in case of larger result sets.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 12:06:59 +0000 (12:06 +0000)]
web: Initialize the locale
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 12:05:49 +0000 (12:05 +0000)]
web: Log in the user before checking the XSRF cookie
In case the cookie validation fails, we need to be able to send an error
message which accesses current_user.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 12:04:44 +0000 (12:04 +0000)]
database: Implement custom logger that only logs debugging
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 11:57:12 +0000 (11:57 +0000)]
users: Bring back the welcome push message
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 11:02:07 +0000 (11:02 +0000)]
users: Don't include the TTL in the payload of the push message
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:57:52 +0000 (10:57 +0000)]
users: Simplify passing around push messages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:57:11 +0000 (10:57 +0000)]
auth: Correctly set session expiry time in cookies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:56:56 +0000 (10:56 +0000)]
sessions: Correctly set expiry time
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:35:34 +0000 (10:35 +0000)]
users: Send push messages from the same task
This is necessary because SQLAlchemy cannot delete the push
notification from a different task.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:35:07 +0000 (10:35 +0000)]
users: Fix sending push notifications from command line
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:34:50 +0000 (10:34 +0000)]
users: Fix deleting push subscriptions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:28:02 +0000 (10:28 +0000)]
users: Move JS for push notifications into the main file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 10:24:46 +0000 (10:24 +0000)]
users: Fix subscribing to push notifications
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 26 Jan 2025 09:44:47 +0000 (09:44 +0000)]
builders: Fix showing number of running jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:31:10 +0000 (19:31 +0000)]
builders: Store when a builder has connected last and from where
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:24:55 +0000 (19:24 +0000)]
builders: Hash connections by hostname
Since we now have one builder object per session they don't match their
hashes any more. Therefore we identify them by their name which is also
unique.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:24:39 +0000 (19:24 +0000)]
builders: Log when builders connect or disconnect
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:20:55 +0000 (19:20 +0000)]
uploads: Actually send an empty response
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:15:26 +0000 (19:15 +0000)]
watchers: Fetch users as selectin
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:15:01 +0000 (19:15 +0000)]
builds: Finish relationship to points
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:09:03 +0000 (19:09 +0000)]
CSS: Fix broken stuff by importing CSS in the correct order
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:05:31 +0000 (19:05 +0000)]
CSS: Drop unused style.css
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 19:04:45 +0000 (19:04 +0000)]
builders: Show system information
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 17:52:41 +0000 (17:52 +0000)]
builders: Rename a couple of fields and add system
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 25 Jan 2025 17:51:06 +0000 (17:51 +0000)]
database: Add a helper function to trigger a commit
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 17:16:43 +0000 (17:16 +0000)]
jobs: Limit the amount of concurrent log tail operations
This way we will ensure that we access one file at a time and put the
others in a queue to not starve IO too hard.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 17:14:22 +0000 (17:14 +0000)]
jobs: Stream the log file faster
When we are downloading the entire file, we only have to decompress it
and we don't have to search for line breaks before sending each chunk.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 17:05:35 +0000 (17:05 +0000)]
jobs: Ratelimit access to logs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 16:52:16 +0000 (16:52 +0000)]
builds: Fix deleting builds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 16:24:35 +0000 (16:24 +0000)]
events: Correctly show the bug ID
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 15:56:35 +0000 (15:56 +0000)]
builders: Refactor auto-scaling
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 15:56:07 +0000 (15:56 +0000)]
builds: Propagate back the group
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 15:55:44 +0000 (15:55 +0000)]
builds: Make repos read-only
SQLAlchemy complained and wanted this flag set.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 15:55:15 +0000 (15:55 +0000)]
jobs: Add a CTE to fetch all currently running jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 13:06:57 +0000 (13:06 +0000)]
builds: Fix rendering bugs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 24 Jan 2025 13:04:24 +0000 (13:04 +0000)]
builds: Fix incorrect attribute access
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>