The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Net::DRI;

my $dri=Net::DRI->new({cache_ttl => 10});

my $ok=eval {
############################################################################################################
$dri->add_registry('WS',{tz=>'America/Los_Angeles'});

## This connects to .WS OT&E server
my $rc=$dri->target('WS')->add_current_profile('profile1','rrp',{defer=>0,socktype=>'ssl',remote_host=>'www.worldsite.ws',remote_port=>648,ssl_key_file=>'./privkey.pem',ssl_cert_file=>'./cacert.pem',ssl_ca_file=>'./cacert.pem',ssl_cipher_list=>'TLSv1',protocol_connection=>'Net::DRI::Protocol::RRP::Connection',protocol_version=>1,client_login=>'MyLOGIN',client_password=>'MyPASSWORD'});

my $dom='toto-'.time().'.ws';
$rc=$dri->domain_check($dom);
print "$dom does not exist\n" unless $dri->get_info('exist');
$rc=$dri->domain_create($dom,{pure_create=>1,duration=>$dri->local_object('duration',years => 5)});
print "$dom created\n" if $rc->is_success();
$rc=$dri->domain_check($dom);
print "$dom does exist now\n" if $dri->get_info('exist');
$rc=$dri->domain_info($dom);
print "domain_info OK\n" if $rc->is_success();

my $ns='ns.titi-'.time().'.fr';
my $nso=$dri->local_object('hosts')->add($ns);
print "NS=$ns\n";
my $e=$dri->host_exist($ns);
print "Host exist\n" if ($e==1);
if ($e==0)
{
 print "Creating $ns\n";
 $rc=$dri->host_create($nso);
 print "Host created OK\n";
}

$rc=$dri->domain_update_ns_add($dom,$nso);
print "ns_add OK\n" if $rc->is_success();
$rc=$dri->domain_info($dom);
$rc=$dri->domain_update_ns_del($dom,$nso);
print "ns_del OK\n" if $rc->is_success();
$rc=$dri->domain_info($dom);


$rc=$dri->host_delete($nso);
print "host_delete OK\n";

my $s=$dri->local_object('status')->no('update');
$rc=$dri->domain_update_status_add($dom,$s);
print "status_add OK\n" if $rc->is_success();
$rc=$dri->domain_info($dom);
$rc=$dri->domain_update_status_del($dom,$s);
print "status_del OK\n" if $rc->is_success();
$rc=$dri->domain_info($dom);


$rc=$dri->domain_delete($dom,{pure_delete => 1});
print "domain_delete OK\n" if $rc->is_success();

$dri->end();
};

if (! $ok)
{ 
 my $err=$@;
 print "\n\nAN ERROR happened !!!\n";
 if (ref $err)
 {
  $err->print();
 } else
 {
  print $err;
 }
} else
{
 print "\n\nNo error";
}

print "\n";

exit 0;