# nefila
<p align=center><img src="img/nefila.png" width="40%">
<p align=center>
Nefila is an elegant and simple Fortinet Security Fabric library for Python.
---
```python
Python 3.7.4 (default, Sep 7 2019, 18:27:02)
>>> import nefila
>>> device = nefila.FortiGate('192.0.2.1')
>>> device.open()
>>> device.status
{'version': 'v6.2.2', 'serial': 'FG81EP4Q17002000', 'forticare': 'registered', 'hostname': 'FW01', 'model': 'FortiGate-81E-POE', 'uptime': 22625}
```
## Features
- Environment variables based authentication
- Standard methods across all supported devices
## Supported Devices
- FortiOS v6.2
- FortiAnalyzer v6.2
- FortiManager v6.2
- FortiTester v4.0
- FortiSwitch v6.0
## Requirements and Installation
Nefila requires Python 3.7. You can install `nefila` using pip:
pip install nefila
## Credentials
You can pass device credentials during requests or you can load them
automatically using the following methods:
1. Setup your device credentials at ~/.nefila/credentials in the
following format:
```INI
[DEFAULT]
username = <your username>
password = <your password>
```
- You can also have device specific credentials:
```INI
[192.0.2.1]
username = <your username>
password = <your password>
```
2. Alternatively you can also use an access token:
```INI
[DEFAULT]
token = <your access token>
```
3. Environment Variables
```bash
export NEFILA_HOSTNAME=10.10.10.10
export NEFILA_USERNAME=admin
export NEFILA_PASSWORD=password
```
## License
This library is distributed under the
[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/).
Raw data
{
"_id": null,
"home_page": "https://github.com/mbdraks/nefila",
"name": "nefila",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "fortinet,fortigate,security fabric",
"author": "Michel Barbosa",
"author_email": "nefila@deadpackets.io",
"download_url": "https://files.pythonhosted.org/packages/d1/b9/0cf3aae559f6018efd9f03a7e3724a657e2a07696996142994367fbeaf77/nefila-0.0.5.tar.gz",
"platform": null,
"description": "# nefila\n\n<p align=center><img src=\"img/nefila.png\" width=\"40%\">\n\n<p align=center>\nNefila is an elegant and simple Fortinet Security Fabric library for Python.\n\n---\n\n```python\nPython 3.7.4 (default, Sep 7 2019, 18:27:02)\n>>> import nefila\n>>> device = nefila.FortiGate('192.0.2.1')\n>>> device.open()\n>>> device.status\n{'version': 'v6.2.2', 'serial': 'FG81EP4Q17002000', 'forticare': 'registered', 'hostname': 'FW01', 'model': 'FortiGate-81E-POE', 'uptime': 22625}\n```\n\n\n## Features\n\n- Environment variables based authentication\n- Standard methods across all supported devices\n\n\n## Supported Devices\n\n- FortiOS v6.2\n- FortiAnalyzer v6.2\n- FortiManager v6.2\n- FortiTester v4.0\n- FortiSwitch v6.0\n\n\n## Requirements and Installation\n\nNefila requires Python 3.7. You can install `nefila` using pip:\n\n pip install nefila\n\n\n## Credentials\n\nYou can pass device credentials during requests or you can load them \nautomatically using the following methods:\n\n1. Setup your device credentials at ~/.nefila/credentials in the \nfollowing format:\n```INI\n [DEFAULT]\n username = <your username>\n password = <your password>\n```\n\n- You can also have device specific credentials:\n```INI\n [192.0.2.1]\n username = <your username>\n password = <your password>\n```\n\n2. Alternatively you can also use an access token:\n```INI\n [DEFAULT]\n token = <your access token>\n```\n\n3. Environment Variables\n```bash\n export NEFILA_HOSTNAME=10.10.10.10\n export NEFILA_USERNAME=admin\n export NEFILA_PASSWORD=password\n```\n\n\n\n## License\n\nThis library is distributed under the \n[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/).\n",
"bugtrack_url": null,
"license": "GPL-3",
"summary": "Nefila is an elegant and simple Fortinet Security Fabric library for Python.",
"version": "0.0.5",
"project_urls": {
"Download": "https://github.com/mbdraks/nefila/archive/v0.0.4.tar.gz",
"Homepage": "https://github.com/mbdraks/nefila"
},
"split_keywords": [
"fortinet",
"fortigate",
"security fabric"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d1b90cf3aae559f6018efd9f03a7e3724a657e2a07696996142994367fbeaf77",
"md5": "5323fe1798e57e06579500434082c3d3",
"sha256": "a65572e75cc3b0d03eae1df9e22017f05abc8e1dda5d586e02089340a893adbe"
},
"downloads": -1,
"filename": "nefila-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "5323fe1798e57e06579500434082c3d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27334,
"upload_time": "2023-05-23T14:35:29",
"upload_time_iso_8601": "2023-05-23T14:35:29.344353Z",
"url": "https://files.pythonhosted.org/packages/d1/b9/0cf3aae559f6018efd9f03a7e3724a657e2a07696996142994367fbeaf77/nefila-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-23 14:35:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mbdraks",
"github_project": "nefila",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "alabaster",
"specs": [
[
">=",
"0.7.12"
]
]
},
{
"name": "appdirs",
"specs": [
[
">=",
"1.4.4"
]
]
},
{
"name": "appnope",
"specs": [
[
">=",
"0.1.0"
]
]
},
{
"name": "astroid",
"specs": [
[
">=",
"2.3.3"
]
]
},
{
"name": "atomicwrites",
"specs": [
[
">=",
"1.3.0"
]
]
},
{
"name": "attrs",
"specs": [
[
">=",
"19.3.0"
]
]
},
{
"name": "Babel",
"specs": [
[
">=",
"2.9.1"
]
]
},
{
"name": "backcall",
"specs": [
[
">=",
"0.1.0"
]
]
},
{
"name": "betamax",
"specs": [
[
">=",
"0.8.1"
]
]
},
{
"name": "betamax-serializers",
"specs": [
[
">=",
"0.2.1"
]
]
},
{
"name": "black",
"specs": [
[
">=",
"20.8b1"
]
]
},
{
"name": "bleach",
"specs": [
[
">=",
"3.1.4"
]
]
},
{
"name": "certifi",
"specs": [
[
">=",
"2019.11.28"
]
]
},
{
"name": "cffi",
"specs": [
[
">=",
"1.13.2"
]
]
},
{
"name": "chardet",
"specs": [
[
">=",
"3.0.4"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"7.1.2"
]
]
},
{
"name": "coverage",
"specs": [
[
">=",
"4.5.4"
]
]
},
{
"name": "cryptography",
"specs": [
[
">=",
"3.2"
]
]
},
{
"name": "daiquiri",
"specs": [
[
">=",
"2.1.1"
]
]
},
{
"name": "decorator",
"specs": [
[
">=",
"4.4.1"
]
]
},
{
"name": "distlib",
"specs": [
[
">=",
"0.3.1"
]
]
},
{
"name": "docutils",
"specs": [
[
">=",
"0.15.2"
]
]
},
{
"name": "filelock",
"specs": [
[
">=",
"3.0.12"
]
]
},
{
"name": "idna",
"specs": [
[
">=",
"2.8"
]
]
},
{
"name": "imagesize",
"specs": [
[
">=",
"1.1.0"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
">=",
"1.3.0"
]
]
},
{
"name": "ipython",
"specs": [
[
">=",
"7.16.3"
]
]
},
{
"name": "ipython-genutils",
"specs": [
[
">=",
"0.2.0"
]
]
},
{
"name": "isort",
"specs": [
[
">=",
"4.3.21"
]
]
},
{
"name": "jedi",
"specs": [
[
">=",
"0.15.1"
]
]
},
{
"name": "Jinja2",
"specs": []
},
{
"name": "lazy-object-proxy",
"specs": [
[
">=",
"1.4.3"
]
]
},
{
"name": "MarkupSafe",
"specs": [
[
">=",
"1.1.1"
]
]
},
{
"name": "mccabe",
"specs": [
[
">=",
"0.6.1"
]
]
},
{
"name": "more-itertools",
"specs": [
[
">=",
"8.0.2"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
">=",
"0.4.3"
]
]
},
{
"name": "packaging",
"specs": [
[
">=",
"19.2"
]
]
},
{
"name": "parso",
"specs": [
[
">=",
"0.5.1"
]
]
},
{
"name": "pathspec",
"specs": [
[
">=",
"0.8.0"
]
]
},
{
"name": "pexpect",
"specs": [
[
">=",
"4.7.0"
]
]
},
{
"name": "pickleshare",
"specs": [
[
">=",
"0.7.5"
]
]
},
{
"name": "pkginfo",
"specs": [
[
">=",
"1.5.0.1"
]
]
},
{
"name": "pluggy",
"specs": [
[
">=",
"0.13.1"
]
]
},
{
"name": "prompt-toolkit",
"specs": [
[
">=",
"3.0.2"
]
]
},
{
"name": "ptyprocess",
"specs": [
[
">=",
"0.6.0"
]
]
},
{
"name": "py",
"specs": []
},
{
"name": "pycparser",
"specs": [
[
">=",
"2.19"
]
]
},
{
"name": "pyfmg",
"specs": [
[
">=",
"0.8.5.1"
]
]
},
{
"name": "Pygments",
"specs": []
},
{
"name": "pylint",
"specs": [
[
">=",
"2.4.4"
]
]
},
{
"name": "pyOpenSSL",
"specs": [
[
">=",
"19.1.0"
]
]
},
{
"name": "pyparsing",
"specs": [
[
">=",
"2.4.5"
]
]
},
{
"name": "pytest",
"specs": [
[
">=",
"5.3.1"
]
]
},
{
"name": "pytest-cov",
"specs": [
[
">=",
"2.8.1"
]
]
},
{
"name": "python-json-logger",
"specs": [
[
">=",
"0.1.11"
]
]
},
{
"name": "pytz",
"specs": [
[
">=",
"2019.3"
]
]
},
{
"name": "readme-renderer",
"specs": [
[
">=",
"24.0"
]
]
},
{
"name": "regex",
"specs": [
[
">=",
"2020.7.14"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.22.0"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
">=",
"0.9.1"
]
]
},
{
"name": "rope",
"specs": [
[
">=",
"0.14.0"
]
]
},
{
"name": "six",
"specs": [
[
">=",
"1.15.0"
]
]
},
{
"name": "snowballstemmer",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "Sphinx",
"specs": [
[
">=",
"2.2.2"
]
]
},
{
"name": "sphinxcontrib-applehelp",
"specs": [
[
">=",
"1.0.1"
]
]
},
{
"name": "sphinxcontrib-devhelp",
"specs": [
[
">=",
"1.0.1"
]
]
},
{
"name": "sphinxcontrib-htmlhelp",
"specs": [
[
">=",
"1.0.2"
]
]
},
{
"name": "sphinxcontrib-jsmath",
"specs": [
[
">=",
"1.0.1"
]
]
},
{
"name": "sphinxcontrib-qthelp",
"specs": [
[
">=",
"1.0.2"
]
]
},
{
"name": "sphinxcontrib-serializinghtml",
"specs": [
[
">=",
"1.1.3"
]
]
},
{
"name": "toml",
"specs": [
[
">=",
"0.10.1"
]
]
},
{
"name": "tox",
"specs": [
[
">=",
"3.19.0"
]
]
},
{
"name": "tqdm",
"specs": [
[
">=",
"4.38.0"
]
]
},
{
"name": "traitlets",
"specs": [
[
">=",
"4.3.3"
]
]
},
{
"name": "twine",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "typed-ast",
"specs": [
[
">=",
"1.4.0"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
">=",
"3.7.4.3"
]
]
},
{
"name": "urllib3",
"specs": []
},
{
"name": "virtualenv",
"specs": [
[
">=",
"20.0.31"
]
]
},
{
"name": "wcwidth",
"specs": [
[
">=",
"0.1.7"
]
]
},
{
"name": "webencodings",
"specs": [
[
">=",
"0.5.1"
]
]
},
{
"name": "wrapt",
"specs": [
[
">=",
"1.11.2"
]
]
},
{
"name": "zipp",
"specs": [
[
">=",
"0.6.0"
]
]
}
],
"tox": true,
"lcname": "nefila"
}