<div dir="ltr"><div>Hello RTIR,</div><div><br></div><div>I've borrowed the code from RTIR_FindIP.pm and modified it so I can specify the ticket object to Add and Delete IP addresses.  This is so I can iterate through child tickets of an Incident and perform the same action on them.  I can add IP addresses to CF.{IP} but not delete IP addresses though.  I'm stumped.  Any clues about how to <i>delete</i> an IP address from the IP custom field?</div>

<div><br></div><b>This works:</b> (%existing is a hash where each key is an IP address already in the CF)<div><br><div><div><font face="courier new, monospace">$self->AddIP( Ticket => $ticket, IP => $ipaddr, CustomField => $cf, Skip => \%existing );</font></div>

<div><div><font face="courier new, monospace">sub AddIP {</font></div><div><font face="courier new, monospace">    my $self = shift;</font></div><div><font face="courier new, monospace">    my %arg = ( CustomField => undef, IP => undef, Skip => {}, @_ );</font></div>

<div><font face="courier new, monospace">    return 0 if !$arg{'IP'} || $arg{'Skip'}->{ $arg{'IP'} }++ || $arg{'Skip'}->{ $arg{'IP'} .'-'. $arg{'IP'} }++;</font></div>

<div><font face="courier new, monospace">    my $t = $arg{'Ticket'};</font></div><div><font face="courier new, monospace">    my ($status, $msg) = $t->AddCustomFieldValue( Value => $arg{'IP'}, Field => $arg{'CustomField'}, );</font></div>

<div><font face="courier new, monospace">    RT->Logger->error("Couldn't add IP address: $msg") unless $status;</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">    return 1;</font></div>

<div><font face="courier new, monospace">}</font></div><div><br></div><div><b>The code that errors out:</b> (%keep is a hash where each key is a list of IP addresses not to delete)<br></div><div><font face="courier new, monospace">$spots_left += $self->RemIP( Ticket => $ticket, IP => $_, CustomField => $cf, Skip => \%keep );<br>

</font></div><div><div><font face="courier new, monospace">sub RemIP {</font></div><div><font face="courier new, monospace">    my $self = shift;</font></div><div><font face="courier new, monospace">    my %arg = ( CustomField => undef, IP => undef, Skip => {}, @_ );</font></div>

<div><font face="courier new, monospace">    return 0 if !$arg{'IP'} || $arg{'Skip'}->{ $arg{'IP'} }++ || $arg{'Skip'}->{ $arg{'IP'} .'-'. $arg{'IP'} }++;</font></div>

<div><font face="courier new, monospace">    my $t = $arg{'Ticket'};</font></div><div><font face="courier new, monospace">    my ($status, $msg) = $t->DeleteCustomFieldValue( Value => $arg{'IP'}, Field => $arg{'CustomField'}, );</font></div>

<div><font face="courier new, monospace">    RT->Logger->error("Couldn't remove IP address: $msg") unless $status;</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">    return 1;</font></div>

<div><font face="courier new, monospace">}</font></div></div><div><br></div><div><b>The error:</b></div><div><div>RT::CustomField::ParseIPRange Unimplemented in RT::ObjectCustomFieldValue. (/opt/rt4/bin/../lib/RT/ObjectCustomFieldValue.pm line 169)</div>

</div><div><br></div><div>Commenting out DeleteCustomFieldValue() line and the logger line make the error not happen so I'm sure that line is the problem one.</div><div><br></div><div>Thank you for reading!</div><div>

<br></div>-- <br><div dir="ltr"><div><span style="font-family:arial;font-size:small">Landon Stewart :: </span><a href="mailto:lstewart@iweb.com" style="font-family:arial;font-size:small" target="_blank">lstewart@iweb.com</a><br>

</div><span style="font-family:arial;font-size:small">Lead Specialist, Abuse and Security Management</span><br style="font-family:arial;font-size:small"><span style="font-family:arial;font-size:small">Spécialiste principal, gestion des abus et sécurité</span><br style="font-family:arial;font-size:small">

<span style="font-family:arial;font-size:small"><a href="http://iweb.com" target="_blank">http://iweb.com</a> :: +1 (888) 909-4932</span><br><div><span style="font-family:arial;font-size:small"><br></span></div><div><span style="font-family:arial;font-size:small"><br>

</span></div></div>
</div></div></div></div>