{
"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"
}
]
}