1#!/usr/bin/perl -w
2#
3#
4# A Net::DRI example
5# See also t/613cat_epp.t
6
7use strict;
8
9use Net::DRI;
10
11use DateTime::Duration;
12
13my $CLID='YOUR TEST CLIENT ID'; ### Change this information
14my $PASS='YOUR PASSWORD'; ### Change this information
15
16my $dri=Net::DRI->new({cache_ttl=>10,logging=>'files'});
17
18eval {
19############################################################################################################
20$dri->add_registry('CAT',{clid=>$CLID});
21
22## This connects to .CAT server for tests
23my $rc=$dri->target('CAT')->add_current_profile('profile1','epp',{remote_host=>'epp.ote.puntcat.corenic.net',client_login=>$CLID,client_password=>$PASS});
24
25die($rc) unless $rc->is_success(); ## Here we catch all errors during setup of transport, such as authentication errors
26
27my $c1=new_contact($dri,'CONTACT1');
28my $c2=new_contact($dri,'CONTACT2');
29my $c3=new_contact($dri,'CONTACT3');
30my $c4=new_contact($dri,'CONTACT4');
31
32$rc=$dri->contact_create($c1);
33die($rc) unless $rc->is_success();
34$rc=$dri->contact_create($c2);
35die($rc) unless $rc->is_success();
36$rc=$dri->contact_create($c3);
37die($rc) unless $rc->is_success();
38$rc=$dri->contact_create($c4);
39die($rc) unless $rc->is_success();
40
41my $nso=$dri->local_object('hosts');
42foreach my $ns (qw/ns1.example22.com ns2.example22.com/)
43{
44 print "Attempting to create host $ns ";
45 my $e=$dri->host_exist($ns);
46 if ($e==0)
47 {
48  $rc=$dri->host_create($ns);
49  print $rc->is_success()? "OK\n" : "KO\n";
50 } else
51 {
52  print "EXIST already\n";
53 }
54 $nso->add($ns);
55}
56
57my $dom='a-netdri'.time().'.cat';
58$rc=$dri->domain_check($dom);
59print "$dom does ".($dri->get_info('exist')? '' : 'not ')."exist\n";
60my $cs=$dri->local_object('contactset');
61$cs->set($c1,'registrant');
62$cs->set($c2,'billing');
63$cs->set($c3,'tech');
64$cs->set($c4,'admin');
65print "Attempting to create domain $dom\n";
66$rc=$dri->domain_create($dom,{pure_create=>1,duration=>DateTime::Duration->new(years =>1),ns=>$nso,contact=>$cs,lang=>'ca',ens=>{auth=>{id=>'FASE3-100000',key=>'0000'},intended_use=>'To test Net::DRI'},auth=>{pw=>'XYZE'}});
67print "Created $dom is_success=".$rc->is_success()."\n";
68
69
70# In OT&E you may need to wait for automated review of your domain,
71# in which case please uncomment the following lines
72#print "Now sleeping for 10 minutes...\n";
73#sleep(10*60);
74#print "Back from sleep\n";
75#$dri->transport()->current_state(0); ## forcing reconnection
76
77$rc=$dri->domain_check($dom);
78print "$dom does exist now\n" if $dri->get_info('exist');
79$rc=$dri->domain_info($dom);
80print "domain_info OK\n" if $rc->is_success();
81
82my $ns='ns.titi-'.time().'.fr';
83$nso=$dri->local_object('hosts')->set('ns.titi-'.time().'.fr');
84print "NS=$ns\n";
85
86print "Creating $ns\n";
87$rc=$dri->host_create($nso);
88print "Host created, is_success()=".$rc->is_success()."\n";
89
90$rc=$dri->domain_update_ns_add($dom,$nso);
91print "ns_add OK=".$rc->is_success()."\n";
92$rc=$dri->domain_info($dom);
93$rc=$dri->domain_update_ns_del($dom,$nso);
94print "ns_del OK=".$rc->is_success()."\n";
95$rc=$dri->domain_info($dom);
96
97my $s=$dri->create_status()->no('update');
98$rc=$dri->domain_update_status_add($dom,$s);
99print "status_add OK=".$rc->is_success()."\n";
100$rc=$dri->domain_info($dom);
101$rc=$dri->domain_update_status_del($dom,$s);
102print "status_del OK=".$rc->is_success()."\n";
103$rc=$dri->domain_info($dom);
104
105$rc=$dri->domain_delete($dom,{pure_delete => 1});
106print "domain_delete OK=".$rc->is_success()."\n";
107
108$rc=$dri->contact_delete($c1);
109print "Contact1 deleted successfully\n" if $rc->is_success();
110$rc=$dri->contact_delete($c2);
111print "Contact2 deleted successfully\n" if $rc->is_success();
112$rc=$dri->contact_delete($c3);
113print "Contact3 deleted successfully\n" if $rc->is_success();
114$rc=$dri->contact_delete($c4);
115print "Contact4 deleted successfully\n" if $rc->is_success();
116
117$dri->end();
118};
119
120if ($@)
121{
122 print "\n\nAn EXCEPTION happened !\n";
123 if (ref($@))
124 {
125  $@->print();
126 } else
127 {
128  print($@);
129 }
130} else
131{
132 print "\n\nNo exception happened";
133}
134
135print "\n";
136exit 0;
137
138######################################################
139
140sub new_contact
141{
142 my ($dri,$srid)=@_;
143 my $c=$dri->local_object('contact');
144 $c->name('My Name');
145 $c->org('My Organisation àé æ'.time());
146 $c->street(['My Address']);
147 $c->city('My city');
148 $c->pc(11111);
149 $c->cc('FR');
150 $c->email('test@example.com');
151 $c->voice('+44.1111111');
152 $c->fax('+55.2222222');
153 $c->auth({pw=>'XYZ'});
154 $c->srid($srid);
155 return $c;
156}
157