1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-19 20:10:55 +01:00
phorge-phorge/src/applications/repository/management
epriestley ccff47682f Provide more useful guidance if a repository is clusterized into an existing multi-device cluster
Summary:
Fixes T12087. When transitioning into a clustered configuration for the first time, the documentation recommends using a one-device cluster as a transitional step.

However, installs may not do this for whatever reason, and we aren't as clear as we could be in warning about clusterizing directly into a multi-device cluster.

Roughly, when you do this, we end up believing that working copies exist on several different devices, but have no information about which copy or copies are up to date. //Usually// they all were already synchronized and are all up to date, but we can't make this assumption safely without risking data.

Instead, we err on the side of caution, and require a human to tell us which copy we should consider to be up-to-date, using `bin/repository thaw --promote`.

Test Plan:
```
$ ./bin/repository clusterize rLOCKS --service repos001.phacility.net
Service "repos001.phacility.net" is actively bound to more than one device
(local002.local, local001.phacility.net).

If you clusterize a repository onto this service it will be unclear which
devices have up-to-date copies of the repository. This leader/follower
ambiguity will freeze the repository. You may need to manually promote a
device to unfreeze it. See "Ambiguous Leaders" in the documentation for
discussion.

    Continue anyway? [y/N]
```

Read other changes.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12087

Differential Revision: https://secure.phabricator.com/D17169
2017-01-10 12:45:55 -08:00
..
PhabricatorRepositoryManagementCacheWorkflow.php phtize all the things 2015-05-22 21:16:39 +10:00
PhabricatorRepositoryManagementClusterizeWorkflow.php Provide more useful guidance if a repository is clusterized into an existing multi-device cluster 2017-01-10 12:45:55 -08:00
PhabricatorRepositoryManagementDiscoverWorkflow.php Provide a more consistent, mostly relaxed severity for updating non-cluster repositories on cluster devices 2016-05-12 15:51:14 -07:00
PhabricatorRepositoryManagementHintWorkflow.php Provide a new "hint" table for weird commits (rewritten, unreadable) 2016-08-24 09:31:46 -07:00
PhabricatorRepositoryManagementImportingWorkflow.php Ignore unreachable commits when testing if a repository has imported 2016-07-11 09:23:08 -07:00
PhabricatorRepositoryManagementListPathsWorkflow.php Add repository list-paths and repository move-paths 2015-07-16 14:11:33 -07:00
PhabricatorRepositoryManagementListWorkflow.php Remove calls to getCallsign() in bin/repository scripts 2016-01-02 04:23:26 -08:00
PhabricatorRepositoryManagementLookupUsersWorkflow.php Synchronize working copies before doing a "bypassCache" commit read 2016-04-22 08:11:43 -07:00
PhabricatorRepositoryManagementMarkImportedWorkflow.php Remove calls to getCallsign() in bin/repository scripts 2016-01-02 04:23:26 -08:00
PhabricatorRepositoryManagementMarkReachableWorkflow.php Add "bin/repository mark-reachable" for fixing commit reachability flags 2016-06-16 11:21:17 -07:00
PhabricatorRepositoryManagementMirrorWorkflow.php Provide a more consistent, mostly relaxed severity for updating non-cluster repositories on cluster devices 2016-05-12 15:51:14 -07:00
PhabricatorRepositoryManagementMovePathsWorkflow.php Add a "--force" flag to "bin/repository move-paths" 2016-08-20 14:10:47 -07:00
PhabricatorRepositoryManagementParentsWorkflow.php Various translation improvements 2015-11-03 07:02:46 +11:00
PhabricatorRepositoryManagementPullWorkflow.php Provide a more consistent, mostly relaxed severity for updating non-cluster repositories on cluster devices 2016-05-12 15:51:14 -07:00
PhabricatorRepositoryManagementRefsWorkflow.php Provide a more consistent, mostly relaxed severity for updating non-cluster repositories on cluster devices 2016-05-12 15:51:14 -07:00
PhabricatorRepositoryManagementReparseWorkflow.php Remove calls to getCallsign() in bin/repository scripts 2016-01-02 04:23:26 -08:00
PhabricatorRepositoryManagementThawWorkflow.php Implement bin/repository thaw for unfreezing cluster repositories 2016-04-20 10:45:58 -07:00
PhabricatorRepositoryManagementUpdateWorkflow.php Ignore unreachable commits when testing if a repository has imported 2016-07-11 09:23:08 -07:00
PhabricatorRepositoryManagementWorkflow.php Provide a more consistent, mostly relaxed severity for updating non-cluster repositories on cluster devices 2016-05-12 15:51:14 -07:00