{ "info": { "author": "Anton Tolchanov", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [], "description": ".. image:: https://readthedocs.org/projects/urconf/badge/?version=latest\n :target: http://urconf.readthedocs.org/en/latest/?badge=latest\n\n.. image:: https://travis-ci.org/knyar/urconf.svg?branch=master\n :target: https://travis-ci.org/knyar/urconf\n\n.. image:: https://coveralls.io/repos/knyar/urconf/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/knyar/urconf?branch=master\n\nDeclarative configuration library for Uptime Robot\n--------------------------------------------------\n\n``urconf`` is a Python library for Uptime Robot \nAPI. It expects definition of all your contacts and monitors, and then issues\nAPI calls required to configure your Uptime Robot accordingly.\n\nUsage\n-----\n\nInstall urconf using pip: ``pip install urconf``\n\nWrite your monitoring configuration as a Python script:\n\n.. code:: python\n\n import logging\n import urconf\n\n # urconf logs all operations that change configuration at the INFO level.\n # Use DEBUG to see API call contents.\n logging.basicConfig(level=logging.INFO)\n\n config = urconf.UptimeRobot(\"api-key\") # dry_run=True enables dry mode\n\n # Define contacts\n email = config.email_contact(\"me@example.com\")\n boxcar = config.boxcar_contact(\"boxcar-api-key\", \"my boxcar\")\n\n # Define monitors\n ssh = config.port_monitor(\"ssh on server1\", \"server1.example.com\", 22)\n web = config.keyword_monitor(\n \"my site\", \"https://example.com/\", \"welcome to example.com!\")\n # More complex example with HTTP auth and non-standard monitoring interval\n backend = config.keyword_monitor(\n \"my backend\", \"https://admin.example.com\", \"Cannot connect to database\",\n should_exist=False, http_username=\"admin\", http_password=\"password\",\n interval=20)\n\n # Associate contacts with monitors\n for monitor in (ssh, web, backend):\n monitor.add_contacts(email, boxcar)\n\n # Sync configuration to Uptime Robot\n config.sync()\n\nRun the script to sync configuration.\n\nFunctionality\n-------------\n\nCurrently implemented:\n\n- email and boxcar contacts;\n- keyword and port monitors.\n\nPull requests extending supported types of contacts or monitors are very\nwelcome.\n\nCaveats\n-------\n\nSince uptimerobot API does not support modifying contacts, when contact\nmodification is detected, ``urconf`` has to remove the old contact and re-add\nit. This means that e-mail contacts have to be re-verified manually again.\n\nDevelopment notes\n-----------------\n\n- refer to API documentation while implementing\n additional functionality;\n- run ``tox`` to run the tests in Python 2.7 and 3.4 environments;\n- run ``make html`` in ``docs/`` to build documentation in HTML. It can be\n viewed in ``docs/_build/html/`` afterwards.\n\nLicense\n-------\n\n``urconf`` is licensed under the MIT license.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/knyar/urconf", "keywords": "monitoring,api,uptime robot", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "urconf", "package_url": "https://pypi.org/project/urconf/", "platform": "any", "project_url": "https://pypi.org/project/urconf/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/knyar/urconf" }, "release_url": "https://pypi.org/project/urconf/2016.5/", "requires_dist": null, "requires_python": null, "summary": "Declarative configuration library for Uptime Robot", "version": "2016.5" }, "last_serial": 1918369, "releases": { "2016.1": [ { "comment_text": "", "digests": { "md5": "53b7e9dc9295274022c89e9d256737e9", "sha256": "f7f22c8986cd905eba5be310c7b5c8ca1fde6b44ae26b7b5019eb3ce68ca20c0" }, "downloads": -1, "filename": "urconf-2016.1.tar.gz", "has_sig": false, "md5_digest": "53b7e9dc9295274022c89e9d256737e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11341, "upload_time": "2016-01-17T14:35:47", "url": "https://files.pythonhosted.org/packages/87/7c/750cf04192da9bfd310983fdc2e5986a5ff1a5de92d4f33f0b9b91ce8a93/urconf-2016.1.tar.gz" } ], "2016.2": [ { "comment_text": "", "digests": { "md5": "2922cc69e9574018617fe21e2514110a", "sha256": "eac615ec1775c1cad34f34de4dcc26abeafd6d738f35867b11053028b29917c7" }, "downloads": -1, "filename": "urconf-2016.2.tar.gz", "has_sig": false, "md5_digest": "2922cc69e9574018617fe21e2514110a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11486, "upload_time": "2016-01-17T18:11:00", "url": "https://files.pythonhosted.org/packages/60/90/e98f42496b173bd92a4d561c374e53342d73217f22b4ce4acc767dea551c/urconf-2016.2.tar.gz" } ], "2016.3": [ { "comment_text": "", "digests": { "md5": "cd69206427251aacda4bb1d1862ebfb8", "sha256": "e08dead299e0deab1d93f9334710afa0232336256eb12cf2f80c57ac16e22861" }, "downloads": -1, "filename": "urconf-2016.3.tar.gz", "has_sig": false, "md5_digest": "cd69206427251aacda4bb1d1862ebfb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11452, "upload_time": "2016-01-17T18:15:25", "url": "https://files.pythonhosted.org/packages/6e/75/57880581ef0864e5cc1fac03709c5f36349418b04e2e655cd3a97055b57e/urconf-2016.3.tar.gz" } ], "2016.4": [ { "comment_text": "", "digests": { "md5": "0daf9fd03d54eba3030e4e0e51c29d9a", "sha256": "6fee359c9dee813d4beb5a32a076ee467b518b95d32cd286fe0cdadbb82fc0a5" }, "downloads": -1, "filename": "urconf-2016.4.tar.gz", "has_sig": false, "md5_digest": "0daf9fd03d54eba3030e4e0e51c29d9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11449, "upload_time": "2016-01-17T21:30:19", "url": "https://files.pythonhosted.org/packages/f0/1e/51b6b63931f4d98821bec59a4b520a4f938706d8dbf3c8a3473931f3d01a/urconf-2016.4.tar.gz" } ], "2016.5": [ { "comment_text": "", "digests": { "md5": "8d1a9e831f718e9e867843aabb421172", "sha256": "b411cd71882c62a678b31f1ac58457abb6ff241c9ebb1c8a080cbde364ffeb2f" }, "downloads": -1, "filename": "urconf-2016.5.tar.gz", "has_sig": false, "md5_digest": "8d1a9e831f718e9e867843aabb421172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11690, "upload_time": "2016-01-23T00:58:04", "url": "https://files.pythonhosted.org/packages/e4/ee/566f91dea03020718ce6275c09c2d7b7ea71a8435ef6af65d01ce6c72aa8/urconf-2016.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d1a9e831f718e9e867843aabb421172", "sha256": "b411cd71882c62a678b31f1ac58457abb6ff241c9ebb1c8a080cbde364ffeb2f" }, "downloads": -1, "filename": "urconf-2016.5.tar.gz", "has_sig": false, "md5_digest": "8d1a9e831f718e9e867843aabb421172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11690, "upload_time": "2016-01-23T00:58:04", "url": "https://files.pythonhosted.org/packages/e4/ee/566f91dea03020718ce6275c09c2d7b7ea71a8435ef6af65d01ce6c72aa8/urconf-2016.5.tar.gz" } ] }