summaryrefslogtreecommitdiffstats
path: root/config-db
diff options
context:
space:
mode:
authorOliver Tappe2007-04-23 20:31:29 +0200
committerOliver Tappe2007-04-23 20:31:29 +0200
commitcae12244b57f46e7a16ced888c7ba2f0a738ced9 (patch)
tree6f1c3aa9b918420f9ac39db8e435ee03da0194a7 /config-db
parent* added 'export_counter' to table 'vendor_os' (diff)
downloadcore-cae12244b57f46e7a16ced888c7ba2f0a738ced9.tar.gz
core-cae12244b57f46e7a16ced888c7ba2f0a738ced9.tar.xz
core-cae12244b57f46e7a16ced888c7ba2f0a738ced9.zip
* added method for getting the next export-counter of a vendor-OS.
However, this should be redone later in order to avoid possible races. git-svn-id: http://svn.openslx.org/svn/openslx/trunk@920 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db')
-rw-r--r--config-db/OpenSLX/ConfigDB.pm17
1 files changed, 17 insertions, 0 deletions
diff --git a/config-db/OpenSLX/ConfigDB.pm b/config-db/OpenSLX/ConfigDB.pm
index 253cff9a..0429a35d 100644
--- a/config-db/OpenSLX/ConfigDB.pm
+++ b/config-db/OpenSLX/ConfigDB.pm
@@ -86,6 +86,7 @@ sub _checkAndUpgradeDBSchemaIfNecessary
} elsif ($cmd eq 'add-columns') {
$metaDB->schemaAddColumns($changeDescr->{'table'},
$changeDescr->{'new-cols'},
+ $changeDescr->{'new-default-vals'},
$changeDescr->{'cols'});
} elsif ($cmd eq 'drop-columns') {
$metaDB->schemaDropColumns($changeDescr->{'table'},
@@ -389,6 +390,22 @@ sub changeVendorOS
return $self->{'meta-db'}->changeVendorOS($vendorOSIDs, $valRows);
}
+sub getNextExportCounterForVendorOS
+{
+ my $self = shift;
+ my $id = shift;
+
+ # TODO: fix this to be resilient against parallel execution
+ # (use a transaction)
+ my $vendorOS
+ = $self->fetchVendorOSByID($id);
+ return undef unless defined $vendorOS;
+ my $exportCounter = $vendorOS->{export_counter}+1;
+ $self->changeVendorOS($id, { 'export_counter' => $exportCounter, });
+
+ return $exportCounter;
+}
+
sub addExport
{
my $self = shift;