From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 5F2381FF187 for ; Mon, 22 Sep 2025 11:19:58 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A62B61613A; Mon, 22 Sep 2025 11:20:27 +0200 (CEST) To: pve-devel@lists.proxmox.com Date: Mon, 22 Sep 2025 11:19:40 +0200 In-Reply-To: <20250922091942.4715-1-lou.lecrivain@orange.fr> References: <20250922091942.4715-1-lou.lecrivain@orange.fr> MIME-Version: 1.0 Message-ID: List-Id: Proxmox VE development discussion List-Post: From: Lou Lecrivain via pve-devel Precedence: list Cc: lou.lecrivain@orange.fr X-Mailman-Version: 2.1.29 X-BeenThere: pve-devel@lists.proxmox.com List-Subscribe: , List-Unsubscribe: , List-Archive: Reply-To: Proxmox VE development discussion List-Help: Subject: [pve-devel] [PATCH pve-network v6 2/2] ipam: add test cases for nautobot plugin Content-Type: multipart/mixed; boundary="===============2302321310359353839==" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" --===============2302321310359353839== Content-Type: message/rfc822 Content-Disposition: inline Return-Path: X-Original-To: pve-devel@lists.proxmox.com Delivered-To: pve-devel@lists.proxmox.com Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id CF719D361D for ; Mon, 22 Sep 2025 11:20:25 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A0C8A16004 for ; Mon, 22 Sep 2025 11:19:55 +0200 (CEST) Received: from smtp.smtpout.orange.fr (smtp-14.smtpout.orange.fr [80.12.242.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Mon, 22 Sep 2025 11:19:54 +0200 (CEST) Received: from localhost ([176.139.8.107]) by smtp.orange.fr with ESMTPA id 0ci3vj6r121nQ0ci3vR2er; Mon, 22 Sep 2025 11:19:48 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1758532788; bh=TDMFicLyHjVRszKUnCWbpIwWH4EetZM6PuA+EUrwznI=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=G8m6sWFj1oEc7H0OYAiMyoY21BKcD7IBEIMsdpki0KfuK6MmKgHMgIxGWkBjxRuMe aS5kkuc+ySZskUSHVSs2ghfRsg7xkthwCdYZ2WJvy0n19JSaKCyVoNEI/rWZapahg1 k+dFLlmNybZn90bYeS2LVZOS97avQcyzYHrTtTMYXretSHSV/WGcL83hM0pk7dnfBV BvbyzzsaILAHDTpOWpe68PsBf3PFB1tqOlLJNs/blIS+IYA4I2a2UlKMGXFZw8IjhF YM1cH1LRipBoqBeUvBan4aYJ+R+j2C8jCtUDbkz5fJn1HGxzDKGQ12LeY9yaFIBlGG ZX/ejf5BekeLA== X-ME-Helo: localhost X-ME-Auth: bG91LmxlY3JpdmFpbkBvcmFuZ2UuZnI= X-ME-Date: Mon, 22 Sep 2025 11:19:48 +0200 X-ME-IP: 176.139.8.107 From: lou.lecrivain@orange.fr To: pve-devel@lists.proxmox.com Subject: [PATCH pve-network v6 2/2] ipam: add test cases for nautobot plugin Date: Mon, 22 Sep 2025 11:19:40 +0200 Message-ID: <20250922091942.4715-3-lou.lecrivain@orange.fr> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250922091942.4715-1-lou.lecrivain@orange.fr> References: <20250922091942.4715-1-lou.lecrivain@orange.fr> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.125 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy FREEMAIL_FROM 0.001 Sender email is commonly abused enduser mail provider RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record From: Lou Lecrivain Co-authored-by: Lou Lecrivain Signed-off-by: Hannes Duerr Signed-off-by: Lou Lecrivain --- 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..bec1f3a --- /dev/null +++ b/src/test/ipams/nautobot/expected.add_ip @@ -0,0 +1,11 @@ +bless( { + '_content' => '{"address":"10.0.0.1/24","description":"gateway","namespace":"TestNamespace","status":"Active","type":"dhcp"}', + '_headers' => bless( { + 'accept' => 'application/json', + 'authorization' => 'token FAKETESTTOKEN', + 'content-type' => 'application/json; charset=UTF-8', + }, '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..bae92e6 --- /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","namespace":"TestNamespace","status":"Active","type":"dhcp"}', + '_headers' => bless( { + 'accept' => 'application/json', + 'authorization' => 'token FAKETESTTOKEN', + 'content-type' => 'application/json; charset=UTF-8', + }, '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..0181719 --- /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","namespace":"TestNamespace","status":"Active","type":"dhcp"}', + '_headers' => bless( { + 'accept' => 'application/json', + 'authorization' => 'token FAKETESTTOKEN', + 'content-type' => 'application/json; charset=UTF-8', + }, '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..78f911d --- /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({ + 'accept' => 'application/json', + 'authorization' => 'token FAKETESTTOKEN', + 'content-type' => 'application/json; charset=UTF-8', + }, '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..eaa133e --- /dev/null +++ b/src/test/ipams/nautobot/expected.del_ip @@ -0,0 +1,11 @@ +bless( { + '_content' => '', + '_headers' => bless( { + 'accept' => 'application/json', + 'authorization' => 'token FAKETESTTOKEN', + 'content-type' => 'application/json; charset=UTF-8', + }, '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..be6df47 --- /dev/null +++ b/src/test/ipams/nautobot/expected.update_ip @@ -0,0 +1,11 @@ +bless( { + '_content' => '{"address":"10.0.0.1/24","description":"gateway","namespace":"TestNamespace","status":"Active","type":"dhcp"}', + '_headers' => bless( { + 'accept' => 'application/json', + 'authorization' => 'token FAKETESTTOKEN', + 'content-type' => 'application/json; charset=UTF-8', + }, '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..6a6fe44 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.47.3 --===============2302321310359353839== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel --===============2302321310359353839==--