diff --git a/db/Node.pm.in b/db/Node.pm.in index 01a02d64ce5f9a7fa763626917d30baf8e3c271e..86fafd4dcd03d0c7ea0b0c0634653423cd69af68 100644 --- a/db/Node.pm.in +++ b/db/Node.pm.in @@ -819,17 +819,23 @@ sub MoveReservation($$) $oldeid = $self->{"RSRV"}->{'eid'}; $oldidx = $self->{"RSRV"}->{'exptidx'}; } - - DBQueryWarn("update reserved set " . - " vname='$node_id', ". - " exptidx=$newidx, ". - " pid='$newpid', ". - " eid='$neweid', ". - " old_exptidx=$oldidx, ". - " old_pid='$oldpid', ". - " old_eid='$oldeid' ". - "where node_id='$node_id'") - or return -1; + my $sets = "rsrv_time=now(), ". + " vname='$node_id', ". + " exptidx=$newidx, ". + " pid='$newpid', ". + " eid='$neweid', ". + " old_exptidx=$oldidx, ". + " old_pid='$oldpid', ". + " old_eid='$oldeid' "; + + if ($self->IsReserved()) { + DBQueryWarn("update reserved set $sets where node_id='$node_id'") + or return -1; + } + else { + DBQueryWarn("insert into reserved set $sets, node_id='$node_id'") + or return -1; + } # Force this to reload. $self->{"RSRV"} = undef;