{ "info": { "author": "Harry Lee", "author_email": "tclh123@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# icinga2-api\n\n![](https://img.shields.io/pypi/pyversions/icinga2py)\n\nAn icinga2 API client, see to learn more about icinga2 API.\n\n## Installation\n\n```shell\npip install icinga2py\n```\n\n## Development Guide\n\n```shell\nmake init\n```\n\n### Run Examples\n\n```shell\n. venv/bin/activate\ncp examples/local_config.py.example examples/local_config.py\n# edit examples/local_config.py\nvi examples/local_config.py\npython examples/example.py\n```\n\n## Icinga2 API Reference\n\n```\nperm, url, SUPPORTS FILTERS\n\nactions/ /v1/actions Yes\nconfig/query /v1/config No\nconfig/modify /v1/config No\nobjects/query/ /v1/objects Yes\nobjects/create/ /v1/objects No\nobjects/modify/ /v1/objects Yes\nobjects/delete/ /v1/objects Yes\nstatus/query/ /v1/status Yes\nevents/ /v1/events No\nconsole /v1/console No\n\n---\n\nbase url = /v1\n\nGET /objects/[/] attrs, joins, meta, filter\nPUT /objects// templates, attrs\nPOST /objects// attrs\nDELETE /objects/[/] cascade, filter\n\n/actions/\n\n/events ?\n/status ?\n/console session,command,sandboaxed\n\nGET /config/packages\nPOST /config/packages/\nDELETE /config/packages/\nPOST /config/stages/ files(file => content pairs)\nGET /config/stages//\nDELETE /config/stages//\nGET /config/files///\n\nGET /types/\n\n*notes: has to be replaced with the plural name of the object type\n```\n\n## Usage\n\n```python\nfrom icinga2_api.api import Api\nfrom pprint import pprint\n\n# init api instance\napi = Api(['config-master.localdomain', 'icinga-api1.localdomin', 'icinga-api2.localdomin'],\n (username, passwd),\n 'path of your ca cert')\n\n# /objects/hosts\nprint api.objects.hosts.get(attrs=[\"name\"])\npprint(api.objects.hosts.get(attrs=[\"name\"], filter='host.name == \"sindar1a\"'))\n\n# /config/packages\npprint(api.config.packages.dae.post())\nprint api.config.packages.dae.delete()\npprint(api.config.packages.get())\npprint(api.config.stages.dae.url('sindar33a-1458219125-0').get())\n\n## upload config file\nfiles = {\n 'zones.d/global-templates/dae.conf': '// Hello DAE yesyesyes',\n 'zones.d/checker/dae.conf': '// Hello DAE',\n}\npprint(api.config.stages.dae.post(files=files))\n\n## clean old config package stages\nMAX_STAGE_RESERVED = 3\nr = api.config.packages.get()\nfor pkg in r.get('results', []):\n if pkg['name'] != 'dae':\n continue\n remove_cnt = max(len(pkg['stages']) - MAX_STAGE_RESERVED, 0)\n remove_stages = pkg['stages'][:remove_cnt]\n print 'going to remove', remove_stages\n for stage in remove_stages:\n api.config.stages.dae.url(stage).delete()\npprint(api.config.packages.get())\n```\n\n## NOTES\n\n- only support Advanced Filters\n- only support http basic auth\n- I think there's bug in icinga2 api, that you better query to only one host(your cluster config master) when you need to manipulate config package\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tclh123/icinga2-api", "keywords": "Icinga2,API Client", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "icinga2py", "package_url": "https://pypi.org/project/icinga2py/", "platform": "", "project_url": "https://pypi.org/project/icinga2py/", "project_urls": { "Homepage": "https://github.com/tclh123/icinga2-api" }, "release_url": "https://pypi.org/project/icinga2py/0.1.1/", "requires_dist": [ "setuptools", "requests" ], "requires_python": "", "summary": "An icinga2 API client.", "version": "0.1.1" }, "last_serial": 5586722, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e45686cd03b4678b198a8a538b1ae6a3", "sha256": "6fc14dc79cf63f592e952111d471fad3f39190041b75875c90454fc382247884" }, "downloads": -1, "filename": "icinga2py-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e45686cd03b4678b198a8a538b1ae6a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3869, "upload_time": "2019-07-26T04:03:43", "url": "https://files.pythonhosted.org/packages/29/e4/8ca08306c8290ef5a662798ebc54f054ffcac5fdf11ddcf8e8211493237b/icinga2py-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38a316ad5f82961bbae44f4969ec68ad", "sha256": "76caadc0130e61bbe2ad057d819464ae51fc829e85b25bf7ced5bbaac05a58e3" }, "downloads": -1, "filename": "icinga2py-0.1.0.tar.gz", "has_sig": false, "md5_digest": "38a316ad5f82961bbae44f4969ec68ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3959, "upload_time": "2019-07-26T04:03:45", "url": "https://files.pythonhosted.org/packages/0a/7a/5dc98e7f48977adf7d0a3350449b335f483575ea9bfb91d9d5015809a4b2/icinga2py-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4daf24e1c1f295d34810418fa2bb050c", "sha256": "c102ef8c86af8a6c04ad629b13207d2a130a28c640c4669d259f0b2ff0895bac" }, "downloads": -1, "filename": "icinga2py-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4daf24e1c1f295d34810418fa2bb050c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3870, "upload_time": "2019-07-26T04:05:32", "url": "https://files.pythonhosted.org/packages/30/7e/bca94b68017962253d4cf7665910410deb59a1d50dd8c1aae188797bb4e1/icinga2py-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3143c640a55a099d1ad8888666afc05", "sha256": "50d4d7e0da9059565dc5df7f9691132ab7700dadedef3543d91bcece7580fd7d" }, "downloads": -1, "filename": "icinga2py-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e3143c640a55a099d1ad8888666afc05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3965, "upload_time": "2019-07-26T04:05:34", "url": "https://files.pythonhosted.org/packages/3d/42/d074972a597561a58cbf469a5bdb1f20267640d339f6f5ca762304901b07/icinga2py-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4daf24e1c1f295d34810418fa2bb050c", "sha256": "c102ef8c86af8a6c04ad629b13207d2a130a28c640c4669d259f0b2ff0895bac" }, "downloads": -1, "filename": "icinga2py-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4daf24e1c1f295d34810418fa2bb050c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3870, "upload_time": "2019-07-26T04:05:32", "url": "https://files.pythonhosted.org/packages/30/7e/bca94b68017962253d4cf7665910410deb59a1d50dd8c1aae188797bb4e1/icinga2py-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3143c640a55a099d1ad8888666afc05", "sha256": "50d4d7e0da9059565dc5df7f9691132ab7700dadedef3543d91bcece7580fd7d" }, "downloads": -1, "filename": "icinga2py-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e3143c640a55a099d1ad8888666afc05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3965, "upload_time": "2019-07-26T04:05:34", "url": "https://files.pythonhosted.org/packages/3d/42/d074972a597561a58cbf469a5bdb1f20267640d339f6f5ca762304901b07/icinga2py-0.1.1.tar.gz" } ] }