Page MenuHomePhabricator

Allow repository cluster bindings to be marked as not "writable", making them read-only
ClosedPublic

Authored by epriestley on Apr 12 2018, 9:08 PM.
Tags
None
Referenced Files
F19501444: D19357.diff
Thu, Jan 8, 3:17 PM
F19501319: D19357.diff
Thu, Jan 8, 3:14 PM
F19383788: D19357.id46307.diff
Sat, Dec 27, 1:19 AM
F19153022: D19357.id46306.diff
Dec 11 2025, 6:51 AM
F19086541: D19357.id.diff
Dec 2 2025, 10:08 PM
F19074437: D19357.diff
Dec 1 2025, 5:13 AM
F19059779: D19357.id46307.diff
Nov 29 2025, 6:47 AM
F19059364: D19357.id46307.diff
Nov 29 2025, 5:12 AM
Subscribers
None

Details

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.

Diff Detail

Repository
rP Phabricator
Branch
writable3
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 20124
Build 27300: Run Core Tests
Build 27299: arc lint + arc unit

Event Timeline

  • Document the slightly fancier cluster contraction process.
This revision is now accepted and ready to land.Apr 12 2018, 9:56 PM
This revision was automatically updated to reflect the committed changes.

See T13611. This was broken by D20775 (September 2019) until D21576 (February 2021).