[freeside-commits] freeside/FS/FS svc_Common.pm,1.59,1.59.2.1
Ivan,,,
ivan at wavetail.420.am
Mon Feb 14 13:43:05 PST 2011
Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv12783
Modified Files:
Tag: FREESIDE_2_1_BRANCH
svc_Common.pm
Log Message:
finish fixing declined signup of prepaid package provisioning to RADIUS anyway, RT#10122
Index: svc_Common.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/svc_Common.pm,v
retrieving revision 1.59
retrieving revision 1.59.2.1
diff -u -w -d -r1.59 -r1.59.2.1
--- svc_Common.pm 28 Oct 2010 07:47:13 -0000 1.59
+++ svc_Common.pm 14 Feb 2011 21:43:03 -0000 1.59.2.1
@@ -376,6 +376,15 @@
Replaces OLD_RECORD with this one. If there is an error, returns the error,
otherwise returns false.
+Currently available options are: I<export_args> and I<depend_jobnum>.
+
+If I<depend_jobnum> is set (to a scalar jobnum or an array reference of
+jobnums), all provisioning jobs will have a dependancy on the supplied
+jobnum(s) (they will not run until the specific job(s) complete(s)).
+
+If I<export_args> is set to an array reference, the referenced list will be
+passed to export commands.
+
=cut
sub replace {
@@ -390,6 +399,13 @@
? shift
: { @_ };
+ my @jobnums = ();
+ local $FS::queue::jobnums = \@jobnums;
+ warn "[$me] replace: set \$FS::queue::jobnums to $FS::queue::jobnums\n"
+ if $DEBUG;
+ my $depend_jobnums = $options->{'depend_jobnum'} || [];
+ $depend_jobnums = [ $depend_jobnums ] unless ref($depend_jobnums);
+
local $SIG{HUP} = 'IGNORE';
local $SIG{INT} = 'IGNORE';
local $SIG{QUIT} = 'IGNORE';
@@ -435,6 +451,9 @@
#new-style exports!
unless ( $noexport_hack ) {
+ warn "[$me] replace: \$FS::queue::jobnums is $FS::queue::jobnums\n"
+ if $DEBUG;
+
my $export_args = $options->{'export_args'} || [];
#not quite false laziness, but same pattern as FS::svc_acct::replace and
@@ -483,6 +502,21 @@
}
}
+ foreach my $depend_jobnum ( @$depend_jobnums ) {
+ warn "[$me] inserting dependancies on supplied job $depend_jobnum\n"
+ if $DEBUG;
+ foreach my $jobnum ( @jobnums ) {
+ my $queue = qsearchs('queue', { 'jobnum' => $jobnum } );
+ warn "[$me] inserting dependancy for job $jobnum on $depend_jobnum\n"
+ if $DEBUG;
+ my $error = $queue->depend_insert($depend_jobnum);
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "error queuing job dependancy: $error";
+ }
+ }
+ }
+
}
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
More information about the freeside-commits
mailing list