infrahub-sync


Nameinfrahub-sync JSON
Version 0.4.1 PyPI version JSON
download
home_pagehttps://opsmill.com
SummaryInfrahub-Sync is a versatile Python package that synchronizes data between a source and a destination system
upload_time2024-05-17 10:27:55
maintainerNone
docs_urlNone
authorOpsMill
requires_python<3.13,>=3.9
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!-- markdownlint-disable -->
![Infrahub Logo](https://assets-global.website-files.com/657aff4a26dd8afbab24944b/657b0e0678f7fd35ce130776_Logo%20INFRAHUB.svg)
<!-- markdownlint-restore -->

# Infrahub Sync

[Infrahub](https://github.com/opsmill/infrahub) by [OpsMill](https://opsmill.com) acts as a central hub to manage the data, templates and playbooks that powers your infrastructure. At its heart, Infrahub is built on 3 fundamental pillars:

- **A Flexible Schema**: A model of the infrastructure and the relation between the objects in the model, that's easily extensible.
- **Version Control**: Natively integrated into the graph database which opens up some new capabilities like branching, diffing, and merging data directly in the database.
- **Unified Storage**: By combining a graph database and git, Infrahub stores data and code needed to manage the infrastructure.

## Introduction

Infrahub Sync is a versatile Python package that synchronizes data between a source and a destination system. It builds on the robust capabilities of `diffsync` to offer flexible and efficient data synchronization across different platforms, including Netbox, Nautobot, and Infrahub. This package features a Typer-based CLI for ease of use, supporting operations such as listing available sync projects, generating diffs, and executing sync processes.

### Features

- **Multiple Systems Support**: Synchronize data between Netbox, Nautobot, and Infrahub.
- **Flexible Configuration**: Define synchronization tasks with YAML configuration files.
- **CLI Interface**: Manage sync tasks directly from the command line.
- **Custom Sync Logic**: Generate Python code for custom sync adapters and models using provided Jinja templates.

### Requirements

Requirements

- The two latest Infrahub releases
- Python >=3.9, <3.13
- Python modules:
  - infrahub-sdk >= 0.9.0

## Documentation

Please refer to the [Infrahub Sync](https://docs.infrahub.app/integrations/sync/) documentation.

## Project Structure

```bash
.
├── README.md
├── examples
│   ├── nautobot-v1_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   └── nautobot
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   ├── nautobot-v2_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   └── nautobot
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   └── netbox_to_infrahub
│       ├── config.yml
│       ├── infrahub
│       │   ├── __init__.py
│       │   ├── sync_adapter.py
│       │   └── sync_models.py
│       └── netbox
│           ├── __init__.py
│           ├── sync_adapter.py
│           └── sync_models.py
├── infrahub-sync
│   ├── infrahub_sync
│   │   ├── __init__.py
│   │   ├── adapters
│   │   │   ├── infrahub.py
│   │   │   ├── nautobot.py
│   │   │   └── netbox.py
│   │   ├── cli.py
│   │   ├── generator
│   │   │   ├── __init__.py
│   │   │   ├── templates
│   │   │   │   ├── diffsync_adapter.j2
│   │   │   │   └── diffsync_models.j2
│   │   │   └── utils.py
│   │   └── utils.py
│   └── tests
│       └── __init__.py
├── poetry.lock
├── potenda
│   └── potenda
│       └── __init__.py
└── pyproject.toml
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://opsmill.com",
    "name": "infrahub-sync",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "OpsMill",
    "author_email": "info@opsmill.com",
    "download_url": "https://files.pythonhosted.org/packages/13/e6/4f4e097770bb5a65615d9ade2b63fd951a09fc4a32bdac282fec4d2f8645/infrahub_sync-0.4.1.tar.gz",
    "platform": null,
    "description": "<!-- markdownlint-disable -->\n![Infrahub Logo](https://assets-global.website-files.com/657aff4a26dd8afbab24944b/657b0e0678f7fd35ce130776_Logo%20INFRAHUB.svg)\n<!-- markdownlint-restore -->\n\n# Infrahub Sync\n\n[Infrahub](https://github.com/opsmill/infrahub) by [OpsMill](https://opsmill.com) acts as a central hub to manage the data, templates and playbooks that powers your infrastructure. At its heart, Infrahub is built on 3 fundamental pillars:\n\n- **A Flexible Schema**: A model of the infrastructure and the relation between the objects in the model, that's easily extensible.\n- **Version Control**: Natively integrated into the graph database which opens up some new capabilities like branching, diffing, and merging data directly in the database.\n- **Unified Storage**: By combining a graph database and git, Infrahub stores data and code needed to manage the infrastructure.\n\n## Introduction\n\nInfrahub Sync is a versatile Python package that synchronizes data between a source and a destination system. It builds on the robust capabilities of `diffsync` to offer flexible and efficient data synchronization across different platforms, including Netbox, Nautobot, and Infrahub. This package features a Typer-based CLI for ease of use, supporting operations such as listing available sync projects, generating diffs, and executing sync processes.\n\n### Features\n\n- **Multiple Systems Support**: Synchronize data between Netbox, Nautobot, and Infrahub.\n- **Flexible Configuration**: Define synchronization tasks with YAML configuration files.\n- **CLI Interface**: Manage sync tasks directly from the command line.\n- **Custom Sync Logic**: Generate Python code for custom sync adapters and models using provided Jinja templates.\n\n### Requirements\n\nRequirements\n\n- The two latest Infrahub releases\n- Python >=3.9, <3.13\n- Python modules:\n  - infrahub-sdk >= 0.9.0\n\n## Documentation\n\nPlease refer to the [Infrahub Sync](https://docs.infrahub.app/integrations/sync/) documentation.\n\n## Project Structure\n\n```bash\n.\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 examples\n\u2502   \u251c\u2500\u2500 nautobot-v1_to_infrahub\n\u2502   \u2502   \u251c\u2500\u2500 config.yml\n\u2502   \u2502   \u251c\u2500\u2500 infrahub\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 sync_adapter.py\n\u2502   \u2502   \u2502   \u2514\u2500\u2500 sync_models.py\n\u2502   \u2502   \u2514\u2500\u2500 nautobot\n\u2502   \u2502       \u251c\u2500\u2500 __init__.py\n\u2502   \u2502       \u251c\u2500\u2500 sync_adapter.py\n\u2502   \u2502       \u2514\u2500\u2500 sync_models.py\n\u2502   \u251c\u2500\u2500 nautobot-v2_to_infrahub\n\u2502   \u2502   \u251c\u2500\u2500 config.yml\n\u2502   \u2502   \u251c\u2500\u2500 infrahub\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 sync_adapter.py\n\u2502   \u2502   \u2502   \u2514\u2500\u2500 sync_models.py\n\u2502   \u2502   \u2514\u2500\u2500 nautobot\n\u2502   \u2502       \u251c\u2500\u2500 __init__.py\n\u2502   \u2502       \u251c\u2500\u2500 sync_adapter.py\n\u2502   \u2502       \u2514\u2500\u2500 sync_models.py\n\u2502   \u2514\u2500\u2500 netbox_to_infrahub\n\u2502       \u251c\u2500\u2500 config.yml\n\u2502       \u251c\u2500\u2500 infrahub\n\u2502       \u2502   \u251c\u2500\u2500 __init__.py\n\u2502       \u2502   \u251c\u2500\u2500 sync_adapter.py\n\u2502       \u2502   \u2514\u2500\u2500 sync_models.py\n\u2502       \u2514\u2500\u2500 netbox\n\u2502           \u251c\u2500\u2500 __init__.py\n\u2502           \u251c\u2500\u2500 sync_adapter.py\n\u2502           \u2514\u2500\u2500 sync_models.py\n\u251c\u2500\u2500 infrahub-sync\n\u2502   \u251c\u2500\u2500 infrahub_sync\n\u2502   \u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u2502   \u251c\u2500\u2500 adapters\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 infrahub.py\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 nautobot.py\n\u2502   \u2502   \u2502   \u2514\u2500\u2500 netbox.py\n\u2502   \u2502   \u251c\u2500\u2500 cli.py\n\u2502   \u2502   \u251c\u2500\u2500 generator\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 templates\n\u2502   \u2502   \u2502   \u2502   \u251c\u2500\u2500 diffsync_adapter.j2\n\u2502   \u2502   \u2502   \u2502   \u2514\u2500\u2500 diffsync_models.j2\n\u2502   \u2502   \u2502   \u2514\u2500\u2500 utils.py\n\u2502   \u2502   \u2514\u2500\u2500 utils.py\n\u2502   \u2514\u2500\u2500 tests\n\u2502       \u2514\u2500\u2500 __init__.py\n\u251c\u2500\u2500 poetry.lock\n\u251c\u2500\u2500 potenda\n\u2502   \u2514\u2500\u2500 potenda\n\u2502       \u2514\u2500\u2500 __init__.py\n\u2514\u2500\u2500 pyproject.toml\n```\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Infrahub-Sync is a versatile Python package that synchronizes data between a source and a destination system",
    "version": "0.4.1",
    "project_urls": {
        "Documentation": "https://docs.infrahub.app/integrations/sync/",
        "Homepage": "https://opsmill.com",
        "Repository": "https://github.com/opsmill/infrahub"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "23d05de81faa0a8f9db74b25aeae5bcc82286e221ed67bb1ec16ef32b8380c94",
                "md5": "2ee3aeaa3264da1c3d24c58b1d8c45d2",
                "sha256": "169a49c5f4e6a410f03b3eb52d20767d3bc58b262492a8c1042d4e20a16ca0d6"
            },
            "downloads": -1,
            "filename": "infrahub_sync-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2ee3aeaa3264da1c3d24c58b1d8c45d2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.9",
            "size": 16785,
            "upload_time": "2024-05-17T10:27:53",
            "upload_time_iso_8601": "2024-05-17T10:27:53.130460Z",
            "url": "https://files.pythonhosted.org/packages/23/d0/5de81faa0a8f9db74b25aeae5bcc82286e221ed67bb1ec16ef32b8380c94/infrahub_sync-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "13e64f4e097770bb5a65615d9ade2b63fd951a09fc4a32bdac282fec4d2f8645",
                "md5": "3fd14ec1f3d245b9b6653281057aea80",
                "sha256": "cbaeafd8f510ff1ff401f4e0306a99fae600ebd9ede0e9efaa30beca008ab2f4"
            },
            "downloads": -1,
            "filename": "infrahub_sync-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "3fd14ec1f3d245b9b6653281057aea80",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.9",
            "size": 14686,
            "upload_time": "2024-05-17T10:27:55",
            "upload_time_iso_8601": "2024-05-17T10:27:55.978581Z",
            "url": "https://files.pythonhosted.org/packages/13/e6/4f4e097770bb5a65615d9ade2b63fd951a09fc4a32bdac282fec4d2f8645/infrahub_sync-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-17 10:27:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "opsmill",
    "github_project": "infrahub",
    "github_not_found": true,
    "lcname": "infrahub-sync"
}
        
Elapsed time: 0.40298s