18May05
- Modify wait during use_device to happen only after all devices
have been examined rather than in the reserve_device code.
+- Correct updating count of number of Volumes in a pool.
Changes to 1.37.18:
16May05
Copyright (C) 2000-2005 Kern Sibbald
This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
+ modify it under the terms of the GNU General Public License
+ version 2 as ammended with additional clauses defined in the
+ file LICENSE in the main source directory.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with this program; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ the file LICENSE for additional details.
*/
bstrncpy(pdbr->LabelFormat, row[16]!=NULL?row[16]:"", sizeof(pdbr->LabelFormat));
ok = true;
}
- } else {
- Mmsg(mdb->errmsg, _("Pool record not found in Catalog.\n"));
}
sql_free_result(mdb);
- } else {
- Mmsg(mdb->errmsg, _("Pool record not found in Catalog.\n"));
}
if (ok) {
- Mmsg(mdb->cmd, "SELECT count(*) from Pool");
- pdbr->NumVols = get_sql_record_max(jcr, mdb);
+ uint32_t NumVols;
+ Mmsg(mdb->cmd, "SELECT count(*) from Media WHERE PoolId=%s",
+ edit_int64(pdbr->PoolId, ed1));
+ NumVols = get_sql_record_max(jcr, mdb);
+ Dmsg2(400, "Actual NumVols=%d Pool NumVols=%d\n", NumVols, pdbr->NumVols);
+ if (NumVols != pdbr->NumVols) {
+ pdbr->NumVols = NumVols;
+ db_update_pool_record(jcr, mdb, pdbr);
+ }
+ } else {
+ Mmsg(mdb->errmsg, _("Pool record not found in Catalog.\n"));
}
db_unlock(mdb);
return ok;
char ed1[50], ed2[50], ed3[50], ed4[50];
db_lock(mdb);
- Mmsg(mdb->cmd, "SELECT count(*) from Pool");
+ Mmsg(mdb->cmd, "SELECT count(*) from Media WHERE PoolId=%s",
+ edit_int64(pr->PoolId, ed4));
pr->NumVols = get_sql_record_max(jcr, mdb);
+ Dmsg1(400, "NumVols=%d\n", pr->NumVols);
Mmsg(mdb->cmd,
"UPDATE Pool SET NumVols=%u,MaxVols=%u,UseOnce=%d,UseCatalog=%d,"
edit_uint64(pr->MaxVolBytes, ed3),
pr->Recycle, pr->AutoPrune, pr->LabelType,
pr->LabelFormat,
- edit_int64(pr->PoolId, ed4));
+ ed4);
stat = UPDATE_DB(jcr, mdb, mdb->cmd);
db_unlock(mdb);
* Version $Id$
*/
/*
- Copyright (C) 2001-2005 Kern Sibbald
+ Copyright (C) 2000-2005 Kern Sibbald
This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
+ modify it under the terms of the GNU General Public License
+ version 2 as ammended with additional clauses defined in the
+ file LICENSE in the main source directory.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with this program; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ the file LICENSE for additional details.
*/