SPAM: [PATCH pve-network v2 3/7] ipam: nautobot: add testing for nautobot plugin
Lou Lecrivain
lou.lecrivain at wdz.de
Wed Jan 8 13:15:25 CET 2025
Signed-off-by: lou lecrivain <lou.lecrivain at wdz.de>
---
src/test/ipams/nautobot/expected.add_ip | 11 +++++++++
.../ipams/nautobot/expected.add_ip_notgateway | 11 +++++++++
.../ipams/nautobot/expected.add_next_freeip | 11 +++++++++
src/test/ipams/nautobot/expected.add_subnet | 11 +++++++++
src/test/ipams/nautobot/expected.del_ip | 11 +++++++++
src/test/ipams/nautobot/expected.update_ip | 11 +++++++++
src/test/ipams/nautobot/ipam_config | 24 +++++++++++++++++++
src/test/ipams/nautobot/sdn_config | 20 ++++++++++++++++
src/test/ipams/netbox/ipam_config | 8 ++++++-
src/test/ipams/phpipam/ipam_config | 8 ++++++-
10 files changed, 124 insertions(+), 2 deletions(-)
create mode 100644 src/test/ipams/nautobot/expected.add_ip
create mode 100644 src/test/ipams/nautobot/expected.add_ip_notgateway
create mode 100644 src/test/ipams/nautobot/expected.add_next_freeip
create mode 100644 src/test/ipams/nautobot/expected.add_subnet
create mode 100644 src/test/ipams/nautobot/expected.del_ip
create mode 100644 src/test/ipams/nautobot/expected.update_ip
create mode 100644 src/test/ipams/nautobot/ipam_config
create mode 100644 src/test/ipams/nautobot/sdn_config
diff --git a/src/test/ipams/nautobot/expected.add_ip b/src/test/ipams/nautobot/expected.add_ip
new file mode 100644
index 0000000..60c62d4
--- /dev/null
+++ b/src/test/ipams/nautobot/expected.add_ip
@@ -0,0 +1,11 @@
+bless( {
+ '_content' => '{"address":"10.0.0.1/24","description":"gateway","dns_name":"myhostname","namespace":"TestNamespace","status":"Active","type":"dhcp"}',
+ '_headers' => bless( {
+ 'authorization' => 'token FAKETESTTOKEN',
+ 'content-type' => 'application/json',
+ 'accept' => 'application/json'
+ }, 'HTTP::Headers' ),
+ '_max_body_size' => undef,
+ '_method' => 'POST',
+ '_uri' => bless( do{\(my $o = 'http://localhost:8080/api/ipam/ip-addresses/')}, 'URI::http' )
+ }, 'HTTP::Request' );
diff --git a/src/test/ipams/nautobot/expected.add_ip_notgateway b/src/test/ipams/nautobot/expected.add_ip_notgateway
new file mode 100644
index 0000000..355ccde
--- /dev/null
+++ b/src/test/ipams/nautobot/expected.add_ip_notgateway
@@ -0,0 +1,11 @@
+bless( {
+ '_content' => '{"address":"10.0.0.1/24","description":"mac:da:65:8f:18:9b:6f","dns_name":"myhostname","namespace":"TestNamespace","status":"Active","type":"dhcp"}',
+ '_headers' => bless( {
+ 'authorization' => 'token FAKETESTTOKEN',
+ 'content-type' => 'application/json',
+ 'accept' => 'application/json'
+ }, 'HTTP::Headers' ),
+ '_max_body_size' => undef,
+ '_method' => 'POST',
+ '_uri' => bless( do{\(my $o = 'http://localhost:8080/api/ipam/ip-addresses/')}, 'URI::http' )
+ }, 'HTTP::Request' );
diff --git a/src/test/ipams/nautobot/expected.add_next_freeip b/src/test/ipams/nautobot/expected.add_next_freeip
new file mode 100644
index 0000000..da79a27
--- /dev/null
+++ b/src/test/ipams/nautobot/expected.add_next_freeip
@@ -0,0 +1,11 @@
+bless( {
+ '_content' => '{"description":"mac:da:65:8f:18:9b:6f","dns_name":"myhostname","namespace":"TestNamespace","status":"Active","type":"dhcp"}',
+ '_headers' => bless( {
+ 'authorization' => 'token FAKETESTTOKEN',
+ 'content-type' => 'application/json',
+ 'accept' => 'application/json'
+ }, 'HTTP::Headers' ),
+ '_max_body_size' => undef,
+ '_method' => 'POST',
+ '_uri' => bless( do{\(my $o = 'http://localhost:8080/api/ipam/prefixes/1/available-ips/')}, 'URI::http' )
+ }, 'HTTP::Request' );
diff --git a/src/test/ipams/nautobot/expected.add_subnet b/src/test/ipams/nautobot/expected.add_subnet
new file mode 100644
index 0000000..af4bc8e
--- /dev/null
+++ b/src/test/ipams/nautobot/expected.add_subnet
@@ -0,0 +1,11 @@
+bless({
+ '_content' => '{"namespace":"TestNamespace","prefix":"10.0.0.0/24","status":"Active"}',
+ '_headers' => bless({
+ 'authorization' => 'token FAKETESTTOKEN',
+ 'content-type' => 'application/json',
+ 'accept' => 'application/json',
+ }, 'HTTP::Headers'),
+ '_max_body_size' => undef,
+ '_method' => 'POST',
+ '_uri' => bless(do{\(my $o = 'http://localhost:8080/api/ipam/prefixes/')}, 'URI::http'),
+}, 'HTTP::Request');
diff --git a/src/test/ipams/nautobot/expected.del_ip b/src/test/ipams/nautobot/expected.del_ip
new file mode 100644
index 0000000..f4bc182
--- /dev/null
+++ b/src/test/ipams/nautobot/expected.del_ip
@@ -0,0 +1,11 @@
+bless( {
+ '_content' => '',
+ '_headers' => bless( {
+ 'authorization' => 'token FAKETESTTOKEN',
+ 'content-type' => 'application/json',
+ 'accept' => 'application/json'
+ }, 'HTTP::Headers' ),
+ '_max_body_size' => undef,
+ '_method' => 'DELETE',
+ '_uri' => bless( do{\(my $o = 'http://localhost:8080/api/ipam/ip-addresses/1/')}, 'URI::http' )
+ }, 'HTTP::Request' );
diff --git a/src/test/ipams/nautobot/expected.update_ip b/src/test/ipams/nautobot/expected.update_ip
new file mode 100644
index 0000000..58e0ac6
--- /dev/null
+++ b/src/test/ipams/nautobot/expected.update_ip
@@ -0,0 +1,11 @@
+bless( {
+ '_content' => '{"address":"10.0.0.1/24","description":"gateway","dns_name":"myhostname","namespace":"TestNamespace","status":"Active","type":"dhcp"}',
+ '_headers' => bless( {
+ 'authorization' => 'token FAKETESTTOKEN',
+ 'content-type' => 'application/json',
+ 'accept' => 'application/json'
+ }, 'HTTP::Headers' ),
+ '_max_body_size' => undef,
+ '_method' => 'PATCH',
+ '_uri' => bless( do{\(my $o = 'http://localhost:8080/api/ipam/ip-addresses/1/')}, 'URI::http' )
+ }, 'HTTP::Request' );
diff --git a/src/test/ipams/nautobot/ipam_config b/src/test/ipams/nautobot/ipam_config
new file mode 100644
index 0000000..014d6b1
--- /dev/null
+++ b/src/test/ipams/nautobot/ipam_config
@@ -0,0 +1,24 @@
+{
+ 'ids' => {
+ 'phpipam' => {
+ 'url' => 'https://localhost/api/apiadmin',
+ 'type' => 'phpipam',
+ 'section' => 1,
+ 'token' => 'JPHkPSLB4O_XL-GQz4qtEFmNpx-99Htw'
+ },
+ 'pve' => {
+ 'type' => 'pve'
+ },
+ 'netbox' => {
+ 'token' => '0123456789abcdef0123456789abcdef01234567',
+ 'type' => 'netbox',
+ 'url' => 'http://localhost:8000/api'
+ },
+ 'nautobot' => {
+ 'url' => 'http://localhost:8080/api',
+ 'type' => 'nautobot',
+ 'token' => 'FAKETESTTOKEN',
+ 'namespace' => 'TestNamespace'
+ }
+ },
+}
diff --git a/src/test/ipams/nautobot/sdn_config b/src/test/ipams/nautobot/sdn_config
new file mode 100644
index 0000000..784cd95
--- /dev/null
+++ b/src/test/ipams/nautobot/sdn_config
@@ -0,0 +1,20 @@
+{
+ version => 1,
+ vnets => {
+ ids => {
+ myvnet => { type => "vnet", zone => "myzone" },
+ },
+ },
+
+ zones => {
+ ids => { myzone => { ipam => "nautobot" } },
+ },
+
+ subnets => {
+ ids => { 'myzone-10.0.0.0-24' => {
+ 'type' => 'subnet',
+ 'vnet' => 'myvnet',
+ }
+ }
+ }
+}
diff --git a/src/test/ipams/netbox/ipam_config b/src/test/ipams/netbox/ipam_config
index a33be30..014d6b1 100644
--- a/src/test/ipams/netbox/ipam_config
+++ b/src/test/ipams/netbox/ipam_config
@@ -13,6 +13,12 @@
'token' => '0123456789abcdef0123456789abcdef01234567',
'type' => 'netbox',
'url' => 'http://localhost:8000/api'
- }
+ },
+ 'nautobot' => {
+ 'url' => 'http://localhost:8080/api',
+ 'type' => 'nautobot',
+ 'token' => 'FAKETESTTOKEN',
+ 'namespace' => 'TestNamespace'
+ }
},
}
diff --git a/src/test/ipams/phpipam/ipam_config b/src/test/ipams/phpipam/ipam_config
index a33be30..014d6b1 100644
--- a/src/test/ipams/phpipam/ipam_config
+++ b/src/test/ipams/phpipam/ipam_config
@@ -13,6 +13,12 @@
'token' => '0123456789abcdef0123456789abcdef01234567',
'type' => 'netbox',
'url' => 'http://localhost:8000/api'
- }
+ },
+ 'nautobot' => {
+ 'url' => 'http://localhost:8080/api',
+ 'type' => 'nautobot',
+ 'token' => 'FAKETESTTOKEN',
+ 'namespace' => 'TestNamespace'
+ }
},
}
--
2.39.5
More information about the pve-devel
mailing list