{ "info": { "author": "gocept", "author_email": "mail@gocept.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: No Input/Output (Daemon)", "Framework :: ZODB", "Framework :: Zope3", "Intended Audience :: System Administrators", "License :: OSI Approved :: Zope Public License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Site Management :: Link Checking", "Topic :: System :: Monitoring" ], "description": "=============================\ngocept Link Monitoring Server\n=============================\n\nThe Link Monitoring Server (LMS) is a coherent set of components to regularly\ncheck whether given URLs are reachable. It currently supports HTTP, HTTPS and\nFTP URLs.\n\n\nHistory\n=======\n\ngocept.lms is the third version of LMS (hence the major version number of\n3.x).\n\nThe first version was directly integrated into CMFLinkChecker and ran as a\nthread. This was not very stable.\n\nThe second version used the Twisted framework and a MySQL database. This was\nnot very stable either.\n\nThe third version now is written in Zope 3/Grok, uses the ZODB as data\nstorage and separates concerns wherever possible. This is stable.\n\n\nComponents\n==========\n\nThe LMS consists of small components that only communicate via storing data in\nthe ZODB.\n\nXML-RPC server\n++++++++++++++\n\nThe XML-RPC server provides the API to talk to the LMS from\napplications/clients that want to have their URLs checked. It provides\noperations to register and unregister clients and URLs.\n\nA management system can register clients. A client can register URLs it wants\nto be checked.\n\nScheduler\n+++++++++\n\nThe scheduler looks over the age of the data from URLs that where added by the\nclients. It decides when a URL needs to be checked and inserts it into the\ncheck queue accordingly.\n\n\nChecker\n+++++++\n\nThe checker pulls URLs from the check queue and performs the actual check. It\nhas measures in place that limit the number of checks performed in parallel\nand to avoid pounding too hard on external systems. (Per default it checks up\nto 20 URLs at the same time and assures that URLs that belong to the same host\nare checked at most once per second).\n\nNotifier\n++++++++\n\nThe notifier keeps the registered clients updated about the state information\nfor the URLs they subscribed to. Clients are notified via XML-RPC.\n\nSynchroniser/Syncer\n+++++++++++++++++++\n\nThe syncer is responsible for keeping the URL databases of the LMS and its\nclients synchronized. It does this by regularly getting a full snapshot of the\nclients' databases and provides them with the current status information for\nall URLs they are interested in.\n\n\nInstallation\n============\n\nThe installation works using a buildout. An example can be found at our SVN::\n\n % svn co https://code.gocept.com/svn/gocept/gocept.lms/deployment/profiles\n\nThe buildout currently defines two profiles:\n\n- `prod.cfg` for a production setup\n- `test.cfg` for a test setup\n\nThe profiles are not really different right now, though. They're there to\nillustrate the possibilities. The test profile looks like this::\n\n [buildout]\n extends = base.cfg\n\n [app]\n admin-password = admin\n appname = test\n mail-server-host = localhost\n\n [zeo]\n address = localhost:8100\n\n [lms]\n address = localhost:8080\n\n\nTo select the test profile create a `buildout.cfg` which includes it::\n\n [buildout]\n extends = profiles/test.cfg\n\nNext, bootstrap the buildout with Python 2.5::\n\n % python2.5 bootstrap.py\n\nThis creates the actual buildout script as ``bin/buildout``::\n\n % bin/buildout\n\nRunning the buildout created a set of scripts, corresponding to the various\ncomponents. The test profile uses a deployment sandbox, so all the scripts\nare contained in ``parts/deployment/etc/init.d``::\n\n % ls parts/deployment/etc/init.d/\n lms-checker\n lms-notifier\n lms-scheduler\n lms-syncer\n lms-web\n lms-zeo\n\nTo get started, first start the ZEO and the LMS web interface::\n\n % parts/deployment/etc/init.d/lms-zeo start\n % parts/deployment/etc/init.d/lms-web start\n\nPoint your browser to http://localhost:8080. This opens the grok admin UI.\nCreate an LMS with the id ``test``. Once created, the LMS will display\n\"Congratulations\". \n\n\nStart the other services now::\n\n % parts/deployment/etc/init.d/lms-checker start\n % parts/deployment/etc/init.d/lms-notifier start\n % parts/deployment/etc/init.d/lms-scheduler start\n % parts/deployment/etc/init.d/lms-syncer start\n\n\nThe next step is to register a client. The LMS welcome page has a link to a\nvery rudimentary form. There you have to enter the following data:\n\nClient Id\n This is an identifier for the client. It is used in combination with the\n password to authenticate XML-RPC requests.\n\nPassword\n The password to authenticate the client.\n\nContact name\n Emails sent by the LMS will contain the name to address the recipient.\n\nContact email address\n Emails sent by the LMS regarding this client will be sent to this address.\n\nCallback URL\n The callback URL is the XML-RPC point where the callback methods are\n invoked. For a gocept.linkchecker installation this would be\n http://example.com/portal_linkchecker/database/.\n\nAfter registering the client, you can configure `gocept.linkchecker` (or any other\nclient) to talk to the LMS.\n\n\nChanges\n=======\n\n3.0a6 (2011-02-14)\n++++++++++++++++++\n\n- Update reference to SVN.\n\n- Fix bug while accepting multiple URLs: don't break if a single URL isn't\n addable (ConstraintNotSatisfied).\n\n- Correctly handle InvalidURL exceptions from urllib.\n\n3.0a5 (2011-02-13)\n++++++++++++++++++\n\n- Actually mark URLs that do not have handlers available as 'uncheckable'.\n\n- Process at most 1000 items from the queue at once to decrease latency in the\n checker.\n\n\n3.0a4 (2011-01-25)\n++++++++++++++++++\n\n- Make registration and sync of URLs resilient towards malformed URLs. We now\n require URLs to be ASCII only. Please make your client encode the URL before\n sending it to us.\n\n- Increased debug output for client notification *a lot*. We show all URLs\n that the client gets notified about now.\n\n- Mark URLs that do not have handlers associated or are forbidden by the\n policy as checked so they will only reappar after the same period a\n successful check would.\n\n3.0a3 (2011-01-18)\n++++++++++++++++++\n\n- Provide a minimal UI for inspecting the URL database and allow purging\n selected URLs from the database.\n\n- Fix problem in conflict resolution: if an object relied on the default\n of a class then the state dict doesn't contain that value.\n\n- Improved error handling for URLs which have an empty string (or bad statust\n line) as response.\n\n- Remove dependency on twisted.\n\n- Provide a separate state (recommended color: blue) for URLs that the LMS can\n not or refuses to check.\n\n- Don't classify mailto links (optimization).\n\n3.0a2 (2009-05-21)\n++++++++++++++++++\n\n- Updated documentation a bit.\n\n- Declared namespace package.\n\n- Updated used egg versions.\n\n- Added missing dependency to pytz.\n\n3.0a1 (2009-04-14)\n++++++++++++++++++\n\n- first public release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/gocept.lms", "keywords": "zope lms link checking", "license": "ZPL 2.1", "maintainer": null, "maintainer_email": null, "name": "gocept.lms", "package_url": "https://pypi.org/project/gocept.lms/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gocept.lms/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/gocept.lms" }, "release_url": "https://pypi.org/project/gocept.lms/3.0a6/", "requires_dist": null, "requires_python": null, "summary": "gocept Link Monitoring Server", "version": "3.0a6" }, "last_serial": 792563, "releases": { "3.0a1": [ { "comment_text": "", "digests": { "md5": "70d8449071caa899134da7362ba159f4", "sha256": "3887845e18036b8604b1a32d53328b23c6302ee36110e5e7aeb0b55a9bc193e8" }, "downloads": -1, "filename": "gocept.lms-3.0a1.tar.gz", "has_sig": false, "md5_digest": "70d8449071caa899134da7362ba159f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35559, "upload_time": "2009-04-14T08:49:16", "url": "https://files.pythonhosted.org/packages/2b/0c/f778b864ede1f18e431f91f8c9e4abd251d2571fffae6aacb1ad1f562f99/gocept.lms-3.0a1.tar.gz" } ], "3.0a2": [ { "comment_text": "", "digests": { "md5": "ce85d211f5f65f69a5a2cf0d0ddad446", "sha256": "db91b8b84a3e7dbf0b7b926a51943588e6b08f24dc7b80c4416a28d6502a7a28" }, "downloads": -1, "filename": "gocept.lms-3.0a2.tar.gz", "has_sig": false, "md5_digest": "ce85d211f5f65f69a5a2cf0d0ddad446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36470, "upload_time": "2009-05-21T10:47:52", "url": "https://files.pythonhosted.org/packages/4f/71/fc213561bef168dfb685a02c8637bb63247b63cbfede1bbf1f18972ee42e/gocept.lms-3.0a2.tar.gz" } ], "3.0a3": [ { "comment_text": "", "digests": { "md5": "91882a54ca67ee0fd754165fe14e78b0", "sha256": "c1e3f7e34865dc10d9f5d984f725a8b78af64e10f103ecf4c44c6c14242754ec" }, "downloads": -1, "filename": "gocept.lms-3.0a3.tar.gz", "has_sig": false, "md5_digest": "91882a54ca67ee0fd754165fe14e78b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37848, "upload_time": "2011-01-18T14:10:40", "url": "https://files.pythonhosted.org/packages/ca/0c/d515202db6f0dd34417df8b5a3517b2df82bea882411d154d6e06f6d95fd/gocept.lms-3.0a3.tar.gz" } ], "3.0a4": [ { "comment_text": "", "digests": { "md5": "e9e022d043e2e835d5d357bfadbf52d0", "sha256": "90fb609c5258c5c99554d206042bb9513d026bb9c4718d8ea670e928e79e2a5c" }, "downloads": -1, "filename": "gocept.lms-3.0a4.tar.gz", "has_sig": false, "md5_digest": "e9e022d043e2e835d5d357bfadbf52d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38367, "upload_time": "2011-01-25T22:47:49", "url": "https://files.pythonhosted.org/packages/88/22/5b454fa89a2c58f92073d399c65d14dc3361b946a6bfb441f87b2ec1ab29/gocept.lms-3.0a4.tar.gz" } ], "3.0a5": [ { "comment_text": "", "digests": { "md5": "a3fd9b2ed560463803fbff395a5d26cb", "sha256": "3a358071b8cbdcfab6eb9ea442fa1bfcecbe67805507f36d63d21dde7cf1dd41" }, "downloads": -1, "filename": "gocept.lms-3.0a5.tar.gz", "has_sig": false, "md5_digest": "a3fd9b2ed560463803fbff395a5d26cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38653, "upload_time": "2011-02-13T14:56:07", "url": "https://files.pythonhosted.org/packages/33/38/5af76aa9176a98995a480ed81a244d88aaeeffd9a36c01ab1dff9bbe439c/gocept.lms-3.0a5.tar.gz" } ], "3.0a6": [ { "comment_text": "", "digests": { "md5": "080bf26265eac537de6e823967329417", "sha256": "b0b51ce4b4e40efa4419267f673bdb6f5cbb298a786c9b9e531664e0c6c16fae" }, "downloads": -1, "filename": "gocept.lms-3.0a6.tar.gz", "has_sig": false, "md5_digest": "080bf26265eac537de6e823967329417", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38845, "upload_time": "2011-02-14T14:37:38", "url": "https://files.pythonhosted.org/packages/bb/76/6c955ea7a045567656c8091bfeb9f1f3ed98689417ee060b02a097d91ece/gocept.lms-3.0a6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "080bf26265eac537de6e823967329417", "sha256": "b0b51ce4b4e40efa4419267f673bdb6f5cbb298a786c9b9e531664e0c6c16fae" }, "downloads": -1, "filename": "gocept.lms-3.0a6.tar.gz", "has_sig": false, "md5_digest": "080bf26265eac537de6e823967329417", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38845, "upload_time": "2011-02-14T14:37:38", "url": "https://files.pythonhosted.org/packages/bb/76/6c955ea7a045567656c8091bfeb9f1f3ed98689417ee060b02a097d91ece/gocept.lms-3.0a6.tar.gz" } ] }