Age | Commit message (Collapse) | Author |
|
This completes the separation started in an earlier commit.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This stuff is all below the fold when the page first loads, and adds a
good amount of loading time to the developer dashboard. Split it out,
where it will be wired back and hooked up via an AJAX insertion in a
future commit. Both parts work standalone as is in this commit.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The dumbass currency parser was matching values like '1.5 GB', causing
the actual sorting to not work right since the magnitude values of GB
values are obviously different than MB. Remove it fully from the parser
list so our actual parser matches and we sort correctly.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is dirty, but it works. There is probably a better and cleaner way
to do all of this, but for now just fix it quickly.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We had a weird conditional around everything on the page that doesn't
really need to be there. Remove it.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
I added this a while back, but didn't roll it out to all templates.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
If certain attributes came back from the database as NULL, we had issues
parsing them. Pass None/NULL straight through rather than trying to
type-convert.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This tag is simply not worth the time it takes to do what it does.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This was a bit of premature optimization, and ends up slowing the page
generation a good amount since we have to run this ~400 times on some
packages with long depends or required by lists. Webserver compression
should handle this just fine and not result in too much page bloat.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We were doing this for depends entries already, and we can do the same
for required by entries via some absolutely awesome SQL query magic and
injecting a few more things to our already crazy query.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Most of these were suggested by PyCharm, and include everything from
little syntax issues and other bad smells to dead or bad code.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We sometimes see some web bots and crawlers make HEAD requests to verify
existence of certain pages in the application. However, they are less
than kind as 20-50 requests might arrive at the same time, and package
search and details pages are some of the slowest rendering pages we have
due to the Django template engine.
Rather than waste time generating the content only to throw it away,
response as soon as we can with either a 404 or 200 response as
appropriate, omitting the 'Content-Length' header completely, which
seems to be acceptable by the HTTP spec.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is only used in one place, so it makes more sense for it to not be
globally accessible.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Saves a query to the database.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This was added in Django 1.4, and ensures both GET and HEAD requests,
but not POST requests, are allowed through.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
* Use 'jQuery' rather than '$'
* Use same colors for URLs in every chart for clarity
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Rather than lump it all together and have odd spikes depending on which
side of the Atlantic checked a mirror in a given timeslot, draw a chart
per check location.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Whoops. Just introduced this when ensuring we look for both the packgae
in other repositories as well as any replacments.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The benefit of these storage operations might be outweighed by the cost,
especially given how infrequently these functions are called.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Move completely to custom SQL for this logic. The Django ORM just
doesn't play nice with the kind of query we are looking to do, so it is
easier to do using raw SQL.
The biggest pain factor here is in supporting sqlite as it doesn't have
nearly the capabilities in handling datetime types directly in the
database, as well as having some different type conversion necessities.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This covers the case where we can't find the package in any other
repositories, but it was removed recently enough that we have a found
package update object.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This allows our normal keyword-based search to be index-optimized rather
than always doing full table scans. It requires the pg_trgm extension
which is shipped out of the box with any sane install of PostgreSQL.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This simplifies things and makes injecting this single mirror ID into
custom SQL a whole lot easier.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Rather than doing this in the Python code and needing 12,000+ rows
returned from the database, we can do it in the database and get fewer
than 300 rows back.
If I recall correctly, the reason this was not done originally was due
to our usage of MySQL and some really bad date math/overflow stuff it
did when the interval between last_sync and check_time were greater than
about a week. Luckily, we have switched to using a more sane database.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This gives us a bunch more flexibility on this field, and now supports
all the options that the rsync config file supports.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This was added in 2010 in commit e95c4563e32 as a short-term fix. The
short-term is up.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This was a silly thinko here; it caused the logs to fill up with a bunch
of 'unknown url type: rsync' errors.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Very few, if any, FTP servers support connections over IPv6.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We don't see these called enough to make caching the data worth it.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Remove the login_required decorator from the index and detail views to
allow everyone to see the same thing. Of course, when I say "same" here,
unauthenticated users don't see the same links developers do to mark
packages complete and incomplete.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is similar to what we had before on the public list page; put it
here too so the page explains at least a little to the general public.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
And continue sorting by creation date after that. Turns out most people
care about incomplete todolists more than complete ones.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Replace this with a redirect to the developer todolist index page.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
If a package is built as a split package where pkgname != pkgbase, but
only one actual split package is produced, the link on the recent update
screen requires an extra click to get to the single package. Fix this by
linking directly to the package itself.
(Examples in current repos: ntfs-3g, python2-south)
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We removed the last non-admin usage of this in commit e65c78055474, so
it can be removed.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We were seeing this in production:
IntegrityError: duplicate key value violates unique constraint "todolists_todolistpackage_todolist_id_700d1b623414814c_uniq"
DETAIL: Key (todolist_id, pkgname, arch_id)=(206, ruby-cairo, 2) already exists.
This is due to a corner case where a package was originally on a
todolist and the underlying package object disappeared, so the todolist
entry was unlinked and pkg_id set to NULL. Later, this package came
back, but our get_or_create tried to create an object that violated our
unique constraint because of the missing pkg_id.
Call get_or_create with the minimum necessary bits to find the todolist
package object, and pass the rest of the values via defaults to avoid
this problem. Additionally, relink any todolist entries up to a package
in the repositories if one is available.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Rsync doesn't like this so much:
Unexpected remote arg: rsync://mirror.example.com/archlinux/lastsync
rsync error: syntax or usage error (code 1) at main.c(1214) [sender=3.0.9]
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This adds the -l/--location argument to the command in order to pass in
a check location that we are currently running from. This locks the IP
address family to the one derived from the address on that location, and
stores any check results tagged with a location ID.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This reverts commit 3c4ceb16. We don't need this anymore as bulk_create
gets automatic batching now on sqlite3 so it is safe to use.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|