Allow repository cluster bindings to be marked as not "writable", making them read-only
Summary: Depends on D19356. Fixes T10883. Ref T13120. - Add a "writable" property to the bindings, defaulting to "true" with a nice dropdown. - When selecting hosts, allow callers to request a writable host. - If the caller wants a writable host, only return hosts if they're writable. - In SVN and Mercurial, we sometimes return only writable hosts when we //could// return read-only hosts, but figuring out if these request are read-only or read-write is currently tricky. Since these repositories can't really cluster yet, this shouldn't matter too much today. Test Plan: - Without any config changes, viewed repositories via web UI and pushed/pulled via SSH and HTTP. - Made all nodes in the cluster read-only by disabling "writable", pulled and hit the web UI (worked), tried to push via SSH and HTTP (got errors about read-only). - Put everything back, pulled and pushed. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13120, T10883 Differential Revision: https://secure.phabricator.com/D19357
This commit is contained in:
@@ -437,6 +437,7 @@ final class DiffusionServeController extends DiffusionController {
|
||||
'http',
|
||||
'https',
|
||||
),
|
||||
'writable' => !$this->isReadOnlyRequest($repository),
|
||||
));
|
||||
if ($uri) {
|
||||
$future = $this->getRequest()->newClusterProxyFuture($uri);
|
||||
|
||||
Reference in New Issue
Block a user