swift/test/probe
Alistair Coles c9c42c07c9 swift-manage-shard-ranges: add repair and analyze commands
Adds a repair command that reads shard ranges from the container DB,
identifies overlapping shard ranges and recommends how overlaps can be
repaired by shrinking into a single chosen path.  Prompted user input
or a '-y' option will then cause the appropriately modified shard
ranges to be merged into the container DB.

The repair command does not fix gaps in shard range paths and can
therefore only succeed if there is at least one unbroken path of
shards through the entire namespace.

Also adds an analyze command that loads shard data from a file and
reports overlapping shard ranges, but takes no action.  The analyze
command is similar to the repair command but reads shard data from
file rather than a container db and makes no changes to the db.

e.g.:
  swift-manage-shard-ranges <db-file-name> repair
  swift-manage-shard-ranges <shard-data.json> analyze

to see more detail:
  swift-manage-shard-ranges -v <shard-data.json> analyze

For consistency with the new repair command, and to be more cautious,
this patch changes the user input required to apply the compact
command changes to the DB from 'y' to 'yes'.

Change-Id: I9ec411462e4aaf9f21aba6c5fd7698ff75a07de3
2021-03-25 11:00:15 +00:00
..
__init__.py probe tests: Work when fronted by a TLS terminator 2020-05-04 10:54:01 -07:00
brain.py probe tests: Work when fronted by a TLS terminator 2020-05-04 10:54:01 -07:00
common.py Run garbage collector during probe test setUp 2021-02-26 15:51:06 +00:00
test_account_failures.py Remove executable flag from some test modules 2016-10-31 21:22:10 +00:00
test_account_get_fake_responses_match.py probe tests: Work when fronted by a TLS terminator 2020-05-04 10:54:01 -07:00
test_account_reaper.py Update hacking for Python3 2020-04-03 21:21:07 +02:00
test_container_failures.py Update SAIO & docker image to use 62xx ports 2020-07-20 15:17:12 -07:00
test_container_merge_policy_index.py replace md5 with swift utils version 2020-12-15 09:52:55 -05:00
test_container_sync.py Merge "probe: Add test for syncing a delete when the remote 404s" 2020-01-31 22:45:24 +00:00
test_dark_data.py Let developers/operators add watchers to object audit 2020-12-26 17:16:14 -06:00
test_db_replicator.py Apply remote metadata in _handle_sync_response 2018-03-06 19:52:59 +00:00
test_empty_device_handoff.py pep8: Turn on E305 2020-04-03 21:22:38 +02:00
test_object_async_update.py func tests: work with etag-quoter on by default 2020-06-01 18:38:23 -05:00
test_object_conditional_requests.py py3: (mostly) port probe tests 2019-09-04 10:17:45 -07:00
test_object_expirer.py Add a new URL parameter to allow for async cleanup of SLO segments 2020-11-10 18:22:01 +00:00
test_object_failures.py Merge "Update SAIO & docker image to use 62xx ports" 2020-08-01 02:39:00 +00:00
test_object_handoff.py replace md5 with swift utils version 2020-12-15 09:52:55 -05:00
test_object_metadata_replication.py func tests: work with etag-quoter on by default 2020-06-01 18:38:23 -05:00
test_object_partpower_increase.py relinker: use abs path index in part power replace 2021-03-17 12:29:23 +00:00
test_object_versioning.py New Object Versioning mode 2020-01-24 17:39:56 -08:00
test_reconstructor_rebuild.py Refactor reconstructor probe tests 2021-01-11 13:57:55 +00:00
test_reconstructor_revert.py ssync: sync non-durable fragments from handoffs 2021-01-20 12:00:10 +00:00
test_replication_servers_working.py Have REPLICATE with suffixes just append to hashes.invalid 2020-11-16 08:21:16 -06:00
test_reserved_name.py Allow internal clients to use reserved namespace 2019-11-27 11:22:00 -06:00
test_sharder.py swift-manage-shard-ranges: add repair and analyze commands 2021-03-25 11:00:15 +00:00
test_signals.py Merge "probe-tests: Avoid a DuplicateSectionError on py3" 2020-10-07 00:11:43 +00:00