From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 4E4B31FF15E for <inbox@lore.proxmox.com>; Tue, 6 May 2025 11:00:58 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9C1034DEB; Tue, 6 May 2025 11:01:00 +0200 (CEST) From: Hannes Duerr <h.duerr@proxmox.com> To: pve-devel@lists.proxmox.com Date: Tue, 6 May 2025 11:00:39 +0200 Message-Id: <20250506090041.53080-2-h.duerr@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506090041.53080-1-h.duerr@proxmox.com> References: <20250506090041.53080-1-h.duerr@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.049 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH pve-network v4 2/2] ipam: add test cases for nautobot plugin X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> Co-authored-by: Lou Lecrivain <lou.lecrivain@wdz.de> Signed-off-by: Hannes Duerr <h.duerr@proxmox.com> --- 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.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel