mreg-cli 1.3.0__tar.gz → 1.4.1__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.
Files changed (90) hide show
  1. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/CHANGELOG.md +25 -1
  2. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/PKG-INFO +1 -1
  3. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/ci/testsuite +46 -1
  4. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/ci/testsuite-result.json +6004 -2786
  5. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/data/mreg-cli.conf +2 -1
  6. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/_version.py +2 -2
  7. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/api/abstracts.py +17 -0
  8. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/api/models.py +150 -0
  9. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/host_submodules/a_aaaa.py +93 -34
  10. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/host_submodules/core.py +10 -11
  11. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/host_submodules/rr.py +7 -8
  12. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/config.py +16 -0
  13. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/main.py +9 -0
  14. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/utilities/api.py +2 -3
  15. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli.egg-info/PKG-INFO +1 -1
  16. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/.github/workflows/publish.yml +0 -0
  17. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/.github/workflows/test.yml +0 -0
  18. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/.gitignore +0 -0
  19. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/.markdownlint.json +0 -0
  20. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/AUTHORS +0 -0
  21. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/CONTRIBUTING +0 -0
  22. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/LICENSE +0 -0
  23. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/README.md +0 -0
  24. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/ci/Dockerfile +0 -0
  25. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/ci/diff.py +0 -0
  26. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/ci/docker-compose.yml +0 -0
  27. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/ci/run_testsuite_and_record.sh +0 -0
  28. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/ci/run_testsuite_and_record_V2.sh +0 -0
  29. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/__about__.py +0 -0
  30. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/__init__.py +0 -0
  31. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/__main__.py +0 -0
  32. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/api/__init__.py +0 -0
  33. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/api/endpoints.py +0 -0
  34. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/api/errors.py +0 -0
  35. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/api/fields.py +0 -0
  36. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/api/history.py +0 -0
  37. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/cli.py +0 -0
  38. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/__init__.py +0 -0
  39. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/base.py +0 -0
  40. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/dhcp.py +0 -0
  41. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/group.py +0 -0
  42. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/help.py +0 -0
  43. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/host.py +0 -0
  44. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/host_submodules/__init__.py +0 -0
  45. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/host_submodules/bacnet.py +0 -0
  46. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/host_submodules/cname.py +0 -0
  47. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/label.py +0 -0
  48. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/logging.py +0 -0
  49. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/network.py +0 -0
  50. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/permission.py +0 -0
  51. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/policy.py +0 -0
  52. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/recording.py +0 -0
  53. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/registry.py +0 -0
  54. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/root.py +0 -0
  55. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/commands/zone.py +0 -0
  56. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/errorbuilder.py +0 -0
  57. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/exceptions.py +0 -0
  58. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/help_formatter.py +0 -0
  59. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/outputmanager.py +0 -0
  60. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/prompt.py +0 -0
  61. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/py.typed +0 -0
  62. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/tags.txt +0 -0
  63. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/tokenfile.py +0 -0
  64. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/types.py +0 -0
  65. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/utilities/__init__.py +0 -0
  66. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/utilities/shared.py +0 -0
  67. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli/utilities/validators.py +0 -0
  68. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli.egg-info/SOURCES.txt +0 -0
  69. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli.egg-info/dependency_links.txt +0 -0
  70. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli.egg-info/entry_points.txt +0 -0
  71. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli.egg-info/requires.txt +0 -0
  72. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/mreg_cli.egg-info/top_level.txt +0 -0
  73. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/pyproject.toml +0 -0
  74. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/run.py +0 -0
  75. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/setup.cfg +0 -0
  76. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/__init__.py +0 -0
  77. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/api/__init__.py +0 -0
  78. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/api/test_fields.py +0 -0
  79. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/api/test_models.py +0 -0
  80. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/conftest.py +0 -0
  81. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/test_errorbuilder.py +0 -0
  82. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/test_exceptions.py +0 -0
  83. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/test_outputmanager.py +0 -0
  84. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/test_prompt.py +0 -0
  85. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/test_tokenfile.py +0 -0
  86. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/test_types.py +0 -0
  87. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/utilities/__init__.py +0 -0
  88. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tests/utilities/test_api.py +0 -0
  89. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/tox.ini +0 -0
  90. {mreg_cli-1.3.0 → mreg_cli-1.4.1}/uv.lock +0 -0
@@ -5,7 +5,31 @@ 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
- <!-- ## Unreleased -->
8
+ ## Unreleased
9
+
10
+ ### Changed
11
+
12
+ - `ptr add -force` now allows adding PTR records for IPs that are not in a network managed by MREG.
13
+
14
+ ## [1.4.0](https://github.com/unioslo/mreg-cli/releases/tag/1.4.0) - 2025-06-20
15
+
16
+ ### Added
17
+
18
+ - Configurable HTTP request timeout. The timeout can be set with the `--timeout` option or with the `timeout` option in the config file.
19
+
20
+ ### Changed
21
+
22
+ - Require `-force` for `host {a,aaaa}_remove` if the argument is a CNAME.
23
+ - Require `-force` when using network or broadcast addresses as arguments for the following commands:
24
+ - `host add`
25
+ - `host a_add`
26
+ - `host aaaa_add`
27
+ - `host a_change`
28
+ - `host aaaa_change`
29
+
30
+ ### Fixed
31
+
32
+ - `host info <ip>` command not working for IP addresses associated with multiple hosts.
9
33
 
10
34
  ## [1.3.0](https://github.com/unioslo/mreg-cli/releases/tag/1.3.0) - 2025-05-20
11
35
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mreg-cli
3
- Version: 1.3.0
3
+ Version: 1.4.1
4
4
  Summary: MREG interactive command line client
5
5
  Author: Others (see AUTHORS)
6
6
  Author-email: Øyvind Kolbu <oyvind.kolbu@usit.uio.no>, Safet A <amedov@usit.uio.no>, Magnus Hirth <mhmorgan42@gmail.com>, Nico <nicolaydmohebi@gmail.com>, Marius Bakke <marius.bakke@usit.uio.no>, Fredrik Larsen <fredrik.larsen@usit.uio.no>, Paal Braathen <paal.braathen@usit.uio.no>, Nils Hiorth <nils@nls.me>, Dmytro Karpenko <dmytrok@usit.uio.no>
@@ -68,7 +68,7 @@ host add otherhost -ip 10.0.1.20 -contact support@example.org # fails because r
68
68
  network remove_excluded_range 10.0.1.0/24 10.0.1.20 10.0.1.30
69
69
  host add otherhost -ip 10.0.1.20 -contact support@example.org # should not need force now that net is unfrozen
70
70
  host remove otherhost
71
- network remove 10.0.1.0/24 -f
71
+
72
72
  # IPv6
73
73
  network create -network 2001:db8::/64 -desc "Lorem ipsum dolor sit amet"
74
74
  network set_frozen 2001:db8::/64
@@ -81,6 +81,51 @@ network info 2001:db8::/64
81
81
  host aaaa_add somehost 2001:db8::/64 # should require force, because the network is frozen
82
82
  host aaaa_add somehost 2001:db8::/64 -force
83
83
  host remove somehost -force
84
+ network unset_frozen 2001:db8::/64
85
+
86
+ # Test handling of network and broadcast address arguments
87
+ ## IPv4
88
+ ### Adding/changing A-records for an existing host
89
+ host add somehost -contact support@example.org
90
+ host a_add somehost 10.0.1.0 # should require force because it is a network address
91
+ host a_add somehost 10.0.1.0 -force
92
+ host a_remove somehost 10.0.1.0 # force not required for removal
93
+ host a_add somehost 10.0.1.255 # force again (broadcast address)
94
+ host a_add somehost 10.0.1.255 -force
95
+ host a_change -old 10.0.1.255 -new 10.0.1.0 somehost # changing to network address, requires force
96
+ host a_change -old 10.0.1.255 -new 10.0.1.0 somehost -force
97
+ host remove somehost -force # cleanup
98
+
99
+ ### Adding A-records for a new host
100
+ host add somehost -ip 10.0.1.0 # requires force because it is a network address
101
+ host add somehost -ip 10.0.1.1 -force
102
+ host remove somehost -force -override ipaddress
103
+ host add somehost -ip 10.0.1.255 # requires force because it is a broadcast address
104
+ host add somehost -ip 10.0.1.255 -force
105
+ host a_remove somehost 10.0.1.255 # cleanup
106
+
107
+ ## IPv6
108
+ ### Adding/changing AAAA-records for an existing host
109
+ host aaaa_add somehost 2001:db8:: # should require force because it is a network address
110
+ host aaaa_add somehost 2001:db8:: -force
111
+ host aaaa_remove somehost 2001:db8:: # force not required for removal
112
+ host aaaa_add somehost 2001:db8::ffff:ffff:ffff:ffff # force again (broadcast address)
113
+ host aaaa_add somehost 2001:db8::ffff:ffff:ffff:ffff -force
114
+ host aaaa_change -old 2001:db8::ffff:ffff:ffff:ffff -new 2001:db8:: somehost # changing to network address, requires force
115
+ host aaaa_change -old 2001:db8::ffff:ffff:ffff:ffff -new 2001:db8:: somehost -force
116
+ host aaaa_remove somehost 2001:db8::ffff:ffff:ffff:ffff # force not required for removal
117
+ host remove somehost -force -override ipaddress# cleanup
118
+
119
+ ### Adding AAAA-records for a new host
120
+ host add somehost -ip 10.0.1.0 # requires force because it is a network address
121
+ host add somehost -ip 10.0.1.1 -force
122
+ host remove somehost -force -override ipaddress
123
+ host add somehost -ip 10.0.1.255 # requires force because it is a broadcast address
124
+ host add somehost -ip 10.0.1.255 -force
125
+
126
+ # Cleanup
127
+ host remove somehost -force
128
+ network remove 10.0.1.0/24 -f
84
129
  network remove 2001:db8::/64 -f
85
130
 
86
131