mreg-api 0.6.0__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mreg_api-0.6.0 → mreg_api-0.7.0}/CHANGELOG.md +48 -1
- {mreg_api-0.6.0 → mreg_api-0.7.0}/PKG-INFO +1 -1
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/reference/managers.md +4 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/_version.py +3 -3
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/client.py +13 -1
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/managers.py +294 -302
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/models/fields.py +2 -3
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api.egg-info/PKG-INFO +1 -1
- mreg_api-0.7.0/mreg_api.egg-info/scm_version.json +8 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_hostgroups.py +138 -2
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_networks.py +117 -1
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_roles.py +152 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_zones.py +124 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/test_client.py +2 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/test_managers.py +5 -6
- mreg_api-0.6.0/mreg_api.egg-info/scm_version.json +0 -8
- {mreg_api-0.6.0 → mreg_api-0.7.0}/.claude/CLAUDE.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/.github/workflows/docs.yml +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/.github/workflows/publish.yml +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/.github/workflows/test.yml +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/.gitignore +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/.markdownlint.json +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/.pre-commit-config.yaml +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/LICENSE +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/NOTES.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/README.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/TESTING.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/ci/Dockerfile +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/ci/docker-compose.yml +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/ci/run_tests.sh +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/_macros/main.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/guides/authentication.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/guides/caching.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/guides/configuration.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/guides/eventlog.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/guides/exceptions.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/guides/requestlog.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/guides/resources.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/index.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/quick-start.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/reference/cache.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/reference/client.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/reference/events.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/reference/exceptions.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/reference/models.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/docs/reference/requestlog.md +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/__about__.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/__init__.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/cache.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/endpoints.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/events.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/exceptions.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/models/__init__.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/models/abstracts.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/models/history.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/models/models.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/py.typed +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/requestlog.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/types.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/utilities/__init__.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/utilities/fs.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api/utilities/shared.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api.egg-info/SOURCES.txt +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api.egg-info/dependency_links.txt +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api.egg-info/requires.txt +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api.egg-info/scm_file_list.json +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/mreg_api.egg-info/top_level.txt +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/pyproject.toml +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/setup.cfg +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/__init__.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/conftest.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/__init__.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/conftest.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_atoms.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_cname.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_dhcp.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_host_records.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_hosts.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_ip.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_labels.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_meta.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_nameservers.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_network_policy.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/integration/test_permissions.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/models/__init__.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/models/test_fields.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/models/test_history.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/models/test_models.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/test_cache.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/test_events.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/test_exceptions.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/test_requestlog.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/tests/test_types.py +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/uv.lock +0 -0
- {mreg_api-0.6.0 → mreg_api-0.7.0}/zensical.toml +0 -0
|
@@ -5,7 +5,54 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Unreleased
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- `MregClient.network.update(network=)` parameter to change the network address of an existing network.
|
|
13
|
+
- `MregClient.zone` now has public `forward` and `reverse` sub-managers for ID-based lookups and standalone use.
|
|
14
|
+
- Can also be accessed directly via new `MregClient.forward_zone` and `MregClient.reverse_zone` properties.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- All `create` and `update` methods now support specifying their required arguments positionally. Previously, these parameters were inconsistent and were often keyword-only.
|
|
19
|
+
- **BREAKING**: All `update` methods now use the name `ref` for their first parameter (the object reference). Previously named after the managed entity:
|
|
20
|
+
- `MregClient.host.update()`: `host=` → `ref=`
|
|
21
|
+
- `MregClient.hostgroup.update()`: `hostgroup=` → `ref=`
|
|
22
|
+
- `MregClient.label.update()`: `label=` → `ref=`
|
|
23
|
+
- `MregClient.role.update()`: `role=` → `ref=`
|
|
24
|
+
- `MregClient.atom.update()`: `atom=` → `ref=`
|
|
25
|
+
- `MregClient.permission.update()`: `permission=` → `ref=`
|
|
26
|
+
- `MregClient.network_policy_attribute.update()`: `attr=` → `ref=`
|
|
27
|
+
- `MregClient.network_policy.update()`: `policy=` → `ref=`
|
|
28
|
+
- `MregClient.network.update()`: `network=` → `ref=`
|
|
29
|
+
- `MregClient.ip_address.update()`: `ip=` → `ref=`
|
|
30
|
+
- `MregClient.cname.update()`: `cname=` → `ref=`
|
|
31
|
+
- `MregClient.hinfo.update()`: `hinfo=` → `ref=`
|
|
32
|
+
- `MregClient.naptr.update()`: `naptr=` → `ref=`
|
|
33
|
+
- `MregClient.srv.update()`: `srv=` → `ref=`
|
|
34
|
+
- `MregClient.ptr_override.update()`: `ptr=` → `ref=`
|
|
35
|
+
- `MregClient.sshfp.update()`: `sshfp=` → `ref=`
|
|
36
|
+
- `MregClient.location.update()`: `location=` → `ref=`
|
|
37
|
+
- **BREAKING**: `MregClient.network.update(network=)` parameter now refers to a new network address for the network, not the reference to the existing network.
|
|
38
|
+
- `MregClient.hostgroup.create(description=)` now takes `None` (the default) to omit the description, replacing the `UNSET` sentinel. Passing `description=None` now omits the field instead of sending a null value. This was a bug, as host groups do not support null descriptions.
|
|
39
|
+
- `MregClient.host.update(comment=)` parameter now takes `None` and defaults to `None`. No changes in behavior when omitted compared to before (`""` was also treated as no comment, thus not included in the payload).
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- Docstrings for the `ttl` parameter in `MregClient.srv.create()` and `MregClient.sshfp.create()` described update semantics ("omit to leave unchanged") that do not apply to creation. The default TTL is used when unspecified.
|
|
44
|
+
- `MregClient.cname.update()` docstring now documents the full set of accepted reference types (`int | str | CNAME`).
|
|
45
|
+
|
|
46
|
+
## [0.6.1](https://github.com/unioslo/mreg-api/releases/tag/0.6.1) - 2026-10-07
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- `MregClient.network.community.get()` now always raises `EntityNotFound` if the community cannot be found.
|
|
51
|
+
- `MregClient.network.community.get_by_id()` now raises `GetError` if the community cannot be found (404).
|
|
52
|
+
|
|
53
|
+
### Removed
|
|
54
|
+
|
|
55
|
+
- Error wrappers for M2M get methods. Now uses the server's own error responses.
|
|
9
56
|
|
|
10
57
|
## [0.6.0](https://github.com/unioslo/mreg-api/releases/tag/0.6.0) - 2026-09-24
|
|
11
58
|
|
|
@@ -68,6 +68,10 @@ Other managers, such as the read-only meta-endpoint managers exposed via [`MregC
|
|
|
68
68
|
|
|
69
69
|
::: mreg_api.managers.ZoneManager
|
|
70
70
|
|
|
71
|
+
::: mreg_api.managers.ForwardZoneManager
|
|
72
|
+
|
|
73
|
+
::: mreg_api.managers.ReverseZoneManager
|
|
74
|
+
|
|
71
75
|
::: mreg_api.managers.DelegationManager
|
|
72
76
|
|
|
73
77
|
::: mreg_api.managers.NameServerManager
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0,
|
|
21
|
+
__version__ = version = '0.7.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 7, 0)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g511737d41'
|
|
@@ -56,6 +56,7 @@ from mreg_api.managers import DelegationManager
|
|
|
56
56
|
from mreg_api.managers import DhcpHostIPv4Manager
|
|
57
57
|
from mreg_api.managers import DhcpHostIPv6ByIPv4Manager
|
|
58
58
|
from mreg_api.managers import DhcpHostIPv6Manager
|
|
59
|
+
from mreg_api.managers import ForwardZoneManager
|
|
59
60
|
from mreg_api.managers import HInfoManager
|
|
60
61
|
from mreg_api.managers import HostGroupManager
|
|
61
62
|
from mreg_api.managers import HostManager
|
|
@@ -72,6 +73,7 @@ from mreg_api.managers import NetworkPolicyAttributeManager
|
|
|
72
73
|
from mreg_api.managers import NetworkPolicyManager
|
|
73
74
|
from mreg_api.managers import PermissionManager
|
|
74
75
|
from mreg_api.managers import PTROverrideManager
|
|
76
|
+
from mreg_api.managers import ReverseZoneManager
|
|
75
77
|
from mreg_api.managers import RoleManager
|
|
76
78
|
from mreg_api.managers import SrvManager
|
|
77
79
|
from mreg_api.managers import SSHFPManager
|
|
@@ -389,9 +391,19 @@ class MregClient:
|
|
|
389
391
|
|
|
390
392
|
@functools.cached_property
|
|
391
393
|
def zone(self) -> ZoneManager:
|
|
392
|
-
"""Manage forward and reverse zones."""
|
|
394
|
+
"""Manage forward and reverse zones based on their names."""
|
|
393
395
|
return ZoneManager(self)
|
|
394
396
|
|
|
397
|
+
@functools.cached_property
|
|
398
|
+
def forward_zone(self) -> ForwardZoneManager:
|
|
399
|
+
"""Manage forward zones."""
|
|
400
|
+
return ForwardZoneManager(self)
|
|
401
|
+
|
|
402
|
+
@functools.cached_property
|
|
403
|
+
def reverse_zone(self) -> ReverseZoneManager:
|
|
404
|
+
"""Manage reverse zones."""
|
|
405
|
+
return ReverseZoneManager(self)
|
|
406
|
+
|
|
395
407
|
def __init__(
|
|
396
408
|
self,
|
|
397
409
|
url: str,
|