ftw.catalogdoctor


Nameftw.catalogdoctor JSON
Version 1.2.1 PyPI version JSON
download
home_pagehttps://github.com/4teamwork/ftw.catalogdoctor
Summaryftw.catalogdoctor
upload_time2024-10-14 07:11:46
maintainerNone
docs_urlNone
author4teamwork AG
requires_pythonNone
licenseGPL2
keywords ftw catalogdoctor
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. contents:: Table of Contents


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:

.. code:: sh

    $ 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:

.. code:: sh

    $ bin/instance doctor surgery


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

.. code:: sh

    $ 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``.


Links
=====

- Github: https://github.com/4teamwork/ftw.catalogdoctor
- Issues: https://github.com/4teamwork/ftw.catalogdoctor/issues
- Pypi: http://pypi.python.org/pypi/ftw.catalogdoctor


Copyright
=========

This package is copyright by `4teamwork <http://www.4teamwork.ch/>`_.

``ftw.catalogdoctor`` is licensed under GNU General Public License, version 2.

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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/4teamwork/ftw.catalogdoctor",
    "name": "ftw.catalogdoctor",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "ftw catalogdoctor",
    "author": "4teamwork AG",
    "author_email": "mailto:info@4teamwork.ch",
    "download_url": "https://files.pythonhosted.org/packages/e8/59/12ce4b1aaf4681d1055ddb4b561b68b3af448618b253fdab245cb97021a3/ftw.catalogdoctor-1.2.1.tar.gz",
    "platform": null,
    "description": ".. contents:: Table of Contents\n\n\nIntroduction\n============\n\nThe package ``ftw.catalogdoctor`` provides healthcheck to find\ninconsistencies in ``portal_catalog`` and surgery to remove some of them. It\ncan be run via a ``zopectl.command``.\n\n\nHealthcheck\n===========\n\nLists inconsistencies detected in ``portal_catalog``. Finds inconsistencies by\ninspecting the catalog's internal data structures. It currently uses ``paths``\n(the rid-path mapping), ``uids`` (the path-rid mapping), the ``UID`` index and\ncatalog metadata to determine if the catalog is healthy or if there are\nproblems. Healtcheck is a read-only operation and won't modify the catalog.\n\nIt can be run as follows:\n\n.. code:: sh\n\n    $ bin/instance doctor healthcheck\n\n\nSurgery\n=======\n\nAttempts to fix issues found by ``healthcheck``. Will do a healtchcheck before\nsurgery, then attempt surgery and finally do a post-surgery healthcheck.\nSurgery is a write operation but changes are only committed to the database if\nthe post-surgery healtcheck yields no more health problems.\nCurrently the set of available surgery is limited to problems we have observed\nin production.\n\n\nIt can be run as follows:\n\n.. code:: sh\n\n    $ bin/instance doctor surgery\n\n\nThere is also a `--dry-run` parameter that prevents committing changes.\n\n.. code:: sh\n\n    $ bin/instance doctor --dry-run surgery\n\n\nDebugging\n=========\n\nIf you need to debug/analyze issues that ``ftw.catalogdoctor`` cannot fix yet\nhave a look at the ``debug`` module. It provides useful functions to ``pprint``\nor inspect catalog state.\n\n\nInstallation\n============\n\n- Add the package to your buildout configuration:\n\n::\n\n    [instance]\n    eggs +=\n        ...\n        ftw.catalogdoctor\n\n\nCompatibility\n-------------\n\nPlone 4.3.x\nPlone 5.1.x\n\n\nDevelopment\n===========\n\n1. Fork this repo\n2. Clone your fork\n3. Shell: ``ln -s development.cfg buildout.cfg``\n4. Shell: ``python bootstrap.py``\n5. Shell: ``bin/buildout``\n\nRun ``bin/test`` to test your changes.\n\nOr start an instance by running ``bin/instance fg``.\n\n\nLinks\n=====\n\n- Github: https://github.com/4teamwork/ftw.catalogdoctor\n- Issues: https://github.com/4teamwork/ftw.catalogdoctor/issues\n- Pypi: http://pypi.python.org/pypi/ftw.catalogdoctor\n\n\nCopyright\n=========\n\nThis package is copyright by `4teamwork <http://www.4teamwork.ch/>`_.\n\n``ftw.catalogdoctor`` is licensed under GNU General Public License, version 2.\n\nChangelog\n=========\n\n\n1.2.1 (2024-10-14)\n------------------\n\n- Delay import of Testing module in zopectl command to not accidently create a demo storage. [buchi]\n\n\n1.2.0 (2020-10-06)\n------------------\n\n- Defer reindex until removal from indexes is done, introduce post-op. [deiferni]\n\n\n1.1.0 (2020-09-30)\n------------------\n\n- Drop duplicate objects from Acquisition when fixing UID index. [deiferni]\n- Implement reindexing objects when still traversable for orphaned rids. [deiferni]\n- Check for shorter path rather than direct parent in surgery safeguard. [deiferni]\n- Use extra rid removal surgery for new symptoms. [deiferni]\n\n\n1.0.0 (2019-07-08)\n------------------\n\n- Initial implementation.\n",
    "bugtrack_url": null,
    "license": "GPL2",
    "summary": "ftw.catalogdoctor",
    "version": "1.2.1",
    "project_urls": {
        "Homepage": "https://github.com/4teamwork/ftw.catalogdoctor"
    },
    "split_keywords": [
        "ftw",
        "catalogdoctor"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e85912ce4b1aaf4681d1055ddb4b561b68b3af448618b253fdab245cb97021a3",
                "md5": "dc9218d541a9f9982841e35c3dfd937c",
                "sha256": "fd243d5d9b6a2d1fe73d012b369107e72e5f13e2ac15667422c75412f8f62fb3"
            },
            "downloads": -1,
            "filename": "ftw.catalogdoctor-1.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "dc9218d541a9f9982841e35c3dfd937c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 32992,
            "upload_time": "2024-10-14T07:11:46",
            "upload_time_iso_8601": "2024-10-14T07:11:46.099225Z",
            "url": "https://files.pythonhosted.org/packages/e8/59/12ce4b1aaf4681d1055ddb4b561b68b3af448618b253fdab245cb97021a3/ftw.catalogdoctor-1.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-14 07:11:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "4teamwork",
    "github_project": "ftw.catalogdoctor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "ftw.catalogdoctor"
}
        
Elapsed time: 0.60019s