Skip to main content

Introduction

The package ftw.catalogdoctor provides healthcheck to find inconsistencies in portal_catalog and surgery to remove some of them. It can be run via a zopectl.command.

Healthcheck

Lists inconsistencies detected in portal_catalog. Finds inconsistencies by inspecting the catalog’s internal data structures. It currently uses paths (the rid-path mapping), uids (the path-rid mapping), the UID index and catalog metadata to determine if the catalog is healthy or if there are problems. Healtcheck is a read-only operation and won’t modify the catalog.

It can be run as follows:

$ bin/instance doctor healthcheck

Surgery

Attempts to fix issues found by healthcheck. Will do a healtchcheck before surgery, then attempt surgery and finally do a post-surgery healthcheck. Surgery is a write operation but changes are only committed to the database if the post-surgery healtcheck yields no more health problems. Currently the set of available surgery is limited to problems we have observed in production.

It can be run as follows:

$ bin/instance doctor surgery

There is also a –dry-run parameter that prevents committing changes.

$ bin/instance doctor --dry-run surgery

Debugging

If you need to debug/analyze issues that ftw.catalogdoctor cannot fix yet have a look at the debug module. It provides useful functions to pprint or inspect catalog state.

Installation

  • Add the package to your buildout configuration:

[instance]
eggs +=
    ...
    ftw.catalogdoctor

Compatibility

Plone 4.3.x Plone 5.1.x

Development

  1. Fork this repo

  2. Clone your fork

  3. Shell: ln -s development.cfg buildout.cfg

  4. Shell: python bootstrap.py

  5. Shell: bin/buildout

Run bin/test to test your changes.

Or start an instance by running bin/instance fg.

Changelog

1.2.1 (2024-10-14)

  • Delay import of Testing module in zopectl command to not accidently create a demo storage. [buchi]

1.2.0 (2020-10-06)

  • Defer reindex until removal from indexes is done, introduce post-op. [deiferni]

1.1.0 (2020-09-30)

  • Drop duplicate objects from Acquisition when fixing UID index. [deiferni]

  • Implement reindexing objects when still traversable for orphaned rids. [deiferni]

  • Check for shorter path rather than direct parent in surgery safeguard. [deiferni]

  • Use extra rid removal surgery for new symptoms. [deiferni]

1.0.0 (2019-07-08)

  • Initial implementation.

Release files for ftw.catalogdoctor 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ftw.catalogdoctor 1.2.1
File Size Uploaded
ftw.catalogdoctor-1.2.1.tar.gz 33.0 kB Details

Release files / ftw.catalogdoctor-1.2.1.tar.gz

Download URL ftw.catalogdoctor-1.2.1.tar.gz
Size 33.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fd243d5d9b6a2d1fe73d012b369107e72e5f13e2ac15667422c75412f8f62fb3
BLAKE2b-256 checksum
How to use checksums
e85912ce4b1aaf4681d1055ddb4b561b68b3af448618b253fdab245cb97021a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.6

Release history Release notifications | RSS feed

This release

1.2.1 This release

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page