3 # Save a node in the resources file
5 require './heartbeat-lib.pl';
7 &error_setup($text{'node_err'});
9 @res = &list_resources();
10 $res = $res[$in{'idx'}];
14 # Just delete this resource
15 &delete_resource($res);
16 &redirect("edit_res.cgi");
20 # Validate and store inputs
21 $in{'node'} =~ /^(\S+)$/ || &error($text{'node_enode'});
22 for($i=0; defined($in{"ip_$i"}); $i++) {
23 next if (!$in{"ip_$i"});
24 &check_ipaddress($in{"ip_$i"}) ||
25 &error(&text('node_eip', $in{"ip_$i"}));
26 local @ip = ( $in{"ip_$i"} );
27 if (!$in{"cidr_def_$i"}) {
28 $in{"cidr_$i"} =~ /^(\d+)$/ ||
29 &error(&text('node_ecidr', $in{"cidr_$i"}));
30 push(@ip, $in{"cidr_$i"});
31 if (!$in{"broad_def_$i"}) {
32 &check_ipaddress($in{"broad_$i"}) ||
33 &error(&text('node_ebroad', $in{"broad_$i"}));
34 push(@ip, $in{"broad_$i"});
37 push(@ips, join("/", @ip));
39 for($i=0; defined($in{"serv_$i"}); $i++) {
40 next if (!$in{"serv_$i"});
41 push(@servs, join("::", $in{"serv_$i"}, split(/\s+/, $in{"args_$i"})));
44 # Create or update the resource
45 $res->{'node'} = $in{'node'};
46 $res->{'ips'} = \@ips;
47 $res->{'servs'} = \@servs;
49 &create_resource($res);
52 &modify_resource($res);
54 &redirect("edit_res.cgi");