diff --git a/bin/delete_domains.pl b/bin/delete_domains.pl new file mode 100755 index 00000000..dd9b3642 --- /dev/null +++ b/bin/delete_domains.pl @@ -0,0 +1,60 @@ +#!/usr/bin/perl +# +# Copyright: 2021 Sipwise Development Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This package is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# On Debian systems, the complete text of the GNU General +# Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". +# +use strict; +use warnings; +use Data::Dumper; +use English; +use Cwd 'abs_path'; +use YAML::XS qw(DumpFile LoadFile); +use Getopt::Long; +use List::Util qw(none); +use Config::Tiny; +use Sipwise::API qw(all); + +my $config = Config::Tiny->read('/etc/default/ngcp-api'); +my $opts; +if ($config) { + $opts = {}; + $opts->{host} = $config->{_}->{NGCP_API_IP}; + $opts->{port} = $config->{_}->{NGCP_API_PORT}; + $opts->{sslverify} = $config->{_}->{NGCP_API_SSLVERIFY}; +} +my $api = Sipwise::API->new($opts); +$opts = $api->opts; + +sub usage { + return "Usage:\n$PROGRAM_NAME\n". + "Options:\n". + " -d debug\n". + " -h this help\n"; +} +my $help = 0; +GetOptions ("h|help" => \$help, "d|debug" => \$opts->{verbose}) + or die("Error in command line arguments\n".usage()); + +die(usage()) unless (!$help); +die("Wrong number of arguments\n".usage()) unless ($#ARGV < 0); + +my $domains = $api->get_domains(); +foreach (@{$domains}) { + print "delete $_->{domain}"."[$_->{id}]\n"; + $api->delete_domain($_->{id}); +} diff --git a/lib/Sipwise/API.pm b/lib/Sipwise/API.pm index 69a924dc..2f0bca12 100644 --- a/lib/Sipwise/API.pm +++ b/lib/Sipwise/API.pm @@ -344,6 +344,15 @@ sub create_reseller { return $self->_create($data, $urldata); } +sub get_domains { + my ($self, $data) = @_; + my $urldata = "/api/domains/"; + my $collection_id = 'ngcp:domains'; + + my $collection = $self->_get_content(undef, $urldata); + return $collection->{_embedded}->{$collection_id}; +} + sub check_domain_exists { my ($self, $data) = @_; my $urldata = "/api/domains/"; @@ -375,6 +384,13 @@ sub create_domain { return $self->_create($data, $urldata); } +sub delete_domain { + my ($self, $id) = @_; + my $urldata = "/api/domains/${id}"; + + return $self->_delete($urldata); +} + sub check_customer_exists { my ($self, $data) = @_; my $urldata = '/api/customers/';