octodns-edgecenter


Nameoctodns-edgecenter JSON
Version 0.0.3 PyPI version JSON
download
home_pagehttps://github.com/octodns/octodns-edgecenter
SummaryEdgeCenter DNS v2 API provider for octoDNS
upload_time2025-01-23 18:19:35
maintainerNone
docs_urlNone
authorRoss McFarland
requires_python>=3.9
licenseMIT
keywords
VCS
bugtrack_url
requirements PyYAML certifi charset-normalizer dnspython fqdn idna natsort octodns python-dateutil requests six urllib3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## EdgeCenter DNS v2 API provider for octoDNS

An [octoDNS](https://github.com/octodns/octodns/) provider that targets [EdgeCenter DNS](https://edgecenter.ru/dns/).

### Installation

#### Command line

```
pip install octodns-edgecenter
```

#### requirements.txt/setup.py

Pinning specific versions or SHAs is recommended to avoid unplanned upgrades.

##### Versions

```
# Start with the latest versions and don't just copy what's here
octodns==0.9.14
octodns-edgecenter==0.0.2
```

##### SHAs

```
# Start with the latest/specific versions and don't just copy what's here
-e git+https://git@github.com/octodns/octodns.git@9da19749e28f68407a1c246dfdf65663cdc1c422#egg=octodns
-e git+https://git@github.com/octodns/octodns-edgecenter.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg=octodns_edgecenter
```

### Configuration


#### EdgeCenterProvider

```yaml
providers:
  ec:
    class: octodns_edgecenter.EdgeCenterProvider
    # Your API key
    token: env/EC_TOKEN
    token_type: APIKey
    # or login + password
    #login: env/EC_LOGIN
    #password: env/EC_PASSWORD
    #auth_url: https://api.edgecenter.ru/iam
    #url: https://api.edgecenter.ru/dns/v2
    #records_per_response: 1
```

### Support Information

#### Records

Supports A, AAAA, NS, MX, TXT, SRV, CNAME, and PTR

#### Dynamic

Supports dynamic records.

#### Filters

Supports filter weight of records type A, AAAA, and CNAME (weighted_shuffle)

You need to use the weight pool:

```yaml
---
'':
  # This is a dynamic record when used with providers that support it
  dynamic:
    # These are the pools of records that can be referenced and thus used by rules
    pools:
      weight:
        # Implicit weight to the weight pool (below)
        values:
        - value: 5.5.5.5
          weight: 25
        - value: 6.6.6.6
        - value: 7.7.7.7
          weight: 75
    # Rules that assign queries to pools
    rules:
    # No geos means match all queries
    - pool: weight
  ttl: 60
  type: A
  # These values become a non-healthchecked default pool
  values:
  - 5.5.5.5
  - 6.6.6.6
  - 7.7.7.7
```
```json
{
    "rrsets": [
        {
            "name": "your.zone.",
            "type": "A",
            "ttl": 60,
            "filters": [
                {
                    "type": "weighted_shuffle"
                },
                {
                    "limit": 1,
                    "type": "first_n"
                }
            ],
            "resource_records": [
                {
                    "content": [
                        "7.7.7.7"
                    ],
                    "meta": {
                        "weight": 75
                    }
                },
                {
                    "content": [
                        "6.6.6.6"
                    ],
                    "meta": {
                        "weight": 1
                    }
                },
                {
                    "content": [
                        "5.5.5.5"
                    ],
                    "meta": {
                        "weight": 25
                    }
                }
            ]
        }
     ]
}

```

### Development

See the [/script/](/script/) directory for some tools to help with the development process. They generally follow the [Script to rule them all](https://github.com/github/scripts-to-rule-them-all) pattern. Most useful is `./script/bootstrap` which will create a venv and install both the runtime and development related requirements. It will also hook up a pre-commit hook that covers most of what's run by CI.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/octodns/octodns-edgecenter",
    "name": "octodns-edgecenter",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Ross McFarland",
    "author_email": "rwmcfa1@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/e6/5d/dcdcb06ebe40f90951bbde222fa7fee72d00827f33df9f38c12e4ca4b733/octodns_edgecenter-0.0.3.tar.gz",
    "platform": null,
    "description": "## EdgeCenter DNS v2 API provider for octoDNS\n\nAn [octoDNS](https://github.com/octodns/octodns/) provider that targets [EdgeCenter DNS](https://edgecenter.ru/dns/).\n\n### Installation\n\n#### Command line\n\n```\npip install octodns-edgecenter\n```\n\n#### requirements.txt/setup.py\n\nPinning specific versions or SHAs is recommended to avoid unplanned upgrades.\n\n##### Versions\n\n```\n# Start with the latest versions and don't just copy what's here\noctodns==0.9.14\noctodns-edgecenter==0.0.2\n```\n\n##### SHAs\n\n```\n# Start with the latest/specific versions and don't just copy what's here\n-e git+https://git@github.com/octodns/octodns.git@9da19749e28f68407a1c246dfdf65663cdc1c422#egg=octodns\n-e git+https://git@github.com/octodns/octodns-edgecenter.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg=octodns_edgecenter\n```\n\n### Configuration\n\n\n#### EdgeCenterProvider\n\n```yaml\nproviders:\n  ec:\n    class: octodns_edgecenter.EdgeCenterProvider\n    # Your API key\n    token: env/EC_TOKEN\n    token_type: APIKey\n    # or login + password\n    #login: env/EC_LOGIN\n    #password: env/EC_PASSWORD\n    #auth_url: https://api.edgecenter.ru/iam\n    #url: https://api.edgecenter.ru/dns/v2\n    #records_per_response: 1\n```\n\n### Support Information\n\n#### Records\n\nSupports A, AAAA, NS, MX, TXT, SRV, CNAME, and PTR\n\n#### Dynamic\n\nSupports dynamic records.\n\n#### Filters\n\nSupports filter weight of records type A, AAAA, and CNAME (weighted_shuffle)\n\nYou need to use the weight pool:\n\n```yaml\n---\n'':\n  # This is a dynamic record when used with providers that support it\n  dynamic:\n    # These are the pools of records that can be referenced and thus used by rules\n    pools:\n      weight:\n        # Implicit weight to the weight pool (below)\n        values:\n        - value: 5.5.5.5\n          weight: 25\n        - value: 6.6.6.6\n        - value: 7.7.7.7\n          weight: 75\n    # Rules that assign queries to pools\n    rules:\n    # No geos means match all queries\n    - pool: weight\n  ttl: 60\n  type: A\n  # These values become a non-healthchecked default pool\n  values:\n  - 5.5.5.5\n  - 6.6.6.6\n  - 7.7.7.7\n```\n```json\n{\n    \"rrsets\": [\n        {\n            \"name\": \"your.zone.\",\n            \"type\": \"A\",\n            \"ttl\": 60,\n            \"filters\": [\n                {\n                    \"type\": \"weighted_shuffle\"\n                },\n                {\n                    \"limit\": 1,\n                    \"type\": \"first_n\"\n                }\n            ],\n            \"resource_records\": [\n                {\n                    \"content\": [\n                        \"7.7.7.7\"\n                    ],\n                    \"meta\": {\n                        \"weight\": 75\n                    }\n                },\n                {\n                    \"content\": [\n                        \"6.6.6.6\"\n                    ],\n                    \"meta\": {\n                        \"weight\": 1\n                    }\n                },\n                {\n                    \"content\": [\n                        \"5.5.5.5\"\n                    ],\n                    \"meta\": {\n                        \"weight\": 25\n                    }\n                }\n            ]\n        }\n     ]\n}\n\n```\n\n### Development\n\nSee the [/script/](/script/) directory for some tools to help with the development process. They generally follow the [Script to rule them all](https://github.com/github/scripts-to-rule-them-all) pattern. Most useful is `./script/bootstrap` which will create a venv and install both the runtime and development related requirements. It will also hook up a pre-commit hook that covers most of what's run by CI.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "EdgeCenter DNS v2 API provider for octoDNS",
    "version": "0.0.3",
    "project_urls": {
        "Homepage": "https://github.com/octodns/octodns-edgecenter"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd6d0720f8b4d340395f94aed3e97e105e3a542cf48366ed9805c4a6921ccce5",
                "md5": "122c03892c22da390de9243c1100c135",
                "sha256": "c5a41f078a9387b2fcf2f1f69e38636203e14ad5b4d6dc4592e758dc0760707e"
            },
            "downloads": -1,
            "filename": "octodns_edgecenter-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "122c03892c22da390de9243c1100c135",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 9943,
            "upload_time": "2025-01-23T18:19:33",
            "upload_time_iso_8601": "2025-01-23T18:19:33.366299Z",
            "url": "https://files.pythonhosted.org/packages/dd/6d/0720f8b4d340395f94aed3e97e105e3a542cf48366ed9805c4a6921ccce5/octodns_edgecenter-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e65ddcdcb06ebe40f90951bbde222fa7fee72d00827f33df9f38c12e4ca4b733",
                "md5": "1a665dae5b2a3d825c1f190551e0efb5",
                "sha256": "0cc4ac8aa7b3ebc6c6f39dbb44fe96d9d6aff6fd95abdc451aa7c0e5ecba8393"
            },
            "downloads": -1,
            "filename": "octodns_edgecenter-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "1a665dae5b2a3d825c1f190551e0efb5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 16481,
            "upload_time": "2025-01-23T18:19:35",
            "upload_time_iso_8601": "2025-01-23T18:19:35.941516Z",
            "url": "https://files.pythonhosted.org/packages/e6/5d/dcdcb06ebe40f90951bbde222fa7fee72d00827f33df9f38c12e4ca4b733/octodns_edgecenter-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-23 18:19:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "octodns",
    "github_project": "octodns-edgecenter",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2024.8.30"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.3.2"
                ]
            ]
        },
        {
            "name": "dnspython",
            "specs": [
                [
                    "==",
                    "2.7.0"
                ]
            ]
        },
        {
            "name": "fqdn",
            "specs": [
                [
                    "==",
                    "1.5.1"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "natsort",
            "specs": [
                [
                    "==",
                    "8.4.0"
                ]
            ]
        },
        {
            "name": "octodns",
            "specs": [
                [
                    "==",
                    "1.10.0"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.post0"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        }
    ],
    "lcname": "octodns-edgecenter"
}
        
Elapsed time: 2.40108s