~andrey-fedoseev/launchpad:question-title

Last commit made on 2022-10-26
Get this branch:
git clone -b question-title https://git.launchpad.net/~andrey-fedoseev/launchpad
Only Andrey Fedoseev can upload to this branch. If you are Andrey Fedoseev please log in for upload directions.

Branch merges

Branch information

Name:
question-title
Repository:
lp:~andrey-fedoseev/launchpad

Recent commits

11686c1... by Andrey Fedoseev

Include question title to the browser window title

Succeeded
[SUCCEEDED] docs:0 (build)
[SUCCEEDED] lint:0 (build)
[SUCCEEDED] mypy:0 (build)
13 of 3 results
3dd04d6... by Andrey Fedoseev

UCT import/export: handle patch URLs

Merged from https://code.launchpad.net/~andrey-fedoseev/launchpad/+git/launchpad/+merge/431263

d04a846... by Andrey Fedoseev

Merge remote-tracking branch 'origin/master' into uct-import-export-patches

; Conflicts:
; lib/lp/bugs/scripts/tests/test_uct.py

Succeeded
[SUCCEEDED] docs:0 (build)
[SUCCEEDED] lint:0 (build)
[SUCCEEDED] mypy:0 (build)
13 of 3 results
1326ce4... by Andrey Fedoseev

Add `url` to `BugAttachment`

Merged from https://code.launchpad.net/~andrey-fedoseev/launchpad/+git/launchpad/+merge/430983

86cd1bd... by Patch Queue Manager <email address hidden>

Merge db-stable c83dbb0df5c8ce4de268b4133ef147ba0ce16188 (Add `BugAttachment.url` field)

Merged from https://code.launchpad.net/~andrey-fedoseev/launchpad/+git/launchpad/+merge/432128

d4c967e... by Colin Watson

Support multiple RabbitMQ broker URLs

Merged from https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/432065

013845f... by Colin Watson

Add ability to switch DB role after connecting

Merged from https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/432027

2870a38... by Colin Watson

Rename IMasterStore to IPrimaryStore

Merged from https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/432028

bfdf4e7... by Colin Watson

Support multiple RabbitMQ broker URLs

`kombu` (already used by `celery`) is a higher-level messaging library
than `amqp`. For our purposes, we can treat it mostly as a wrapper for
`amqp` with some slightly more convenient interfaces, but it has one key
feature that's of interest to us: it supports multiple RabbitMQ broker
URLs with round-robin failover between them. This makes it possible to
configure Launchpad to use RabbitMQ with high availability: if we have a
RabbitMQ cluster, then we can configure Launchpad with broker URLs for
all the nodes in the cluster, and if one fails then `kombu` will
automatically fail over to the next.

To make it practical to configure this, I had to add a
`rabbitmq.broker_urls` configuration option, which supersedes the
existing broken-out configuration options (`rabbitmq.host`,
`rabbitmq.userid`, `rabbitmq.password`, and `rabbitmq.virtual_host`).
For backward compatibility, the old options continue to work as long as
`rabbitmq.broker_urls` is unset.

This also includes upgrading to oops-amqp 0.2.0, since that includes a
change to accept connection factories that return `kombu` connections.

2738ed6... by Colin Watson

Rename IMasterStore to IPrimaryStore

Also `IMasterObject` to `IPrimaryObject`, and some other references to
the "master" database. This is in line with an earlier renaming of the
flavor.

This is long, but the bulk of it was mechanical search-and-replace.
I've run the full test suite to verify it.