summaryrefslogtreecommitdiffstats
path: root/config-db/ODLX/ConfigDB.pm
diff options
context:
space:
mode:
authorOliver Tappe2006-08-16 15:06:25 +0200
committerOliver Tappe2006-08-16 15:06:25 +0200
commitab88dd0ca8a52782931439387c5e43316cd772c6 (patch)
tree65241b62f0c282ef5b9787a051b881a0bf0257f4 /config-db/ODLX/ConfigDB.pm
parent* fixed bug with automatic ID-creation not working as it should (diff)
downloadcore-ab88dd0ca8a52782931439387c5e43316cd772c6.tar.gz
core-ab88dd0ca8a52782931439387c5e43316cd772c6.tar.xz
core-ab88dd0ca8a52782931439387c5e43316cd772c6.zip
* added all vendor_os-related functions to DB-interface and
-implementation * more cleanup git-svn-id: http://svn.openslx.org/svn/openslx/trunk@305 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/ODLX/ConfigDB.pm')
-rw-r--r--config-db/ODLX/ConfigDB.pm107
1 files changed, 101 insertions, 6 deletions
diff --git a/config-db/ODLX/ConfigDB.pm b/config-db/ODLX/ConfigDB.pm
index 93ef14be..aa9625d3 100644
--- a/config-db/ODLX/ConfigDB.pm
+++ b/config-db/ODLX/ConfigDB.pm
@@ -20,14 +20,17 @@ use Exporter;
my @accessExports = qw(
connectConfigDB disconnectConfigDB
- fetchSystemsByFilter fetchSystemsById fetchAllSystemIDsOfClient
+ fetchVendorOSesByFilter fetchVendorOSesByID fetchAllVendorOSIDsOfSystem
+ fetchSystemsByFilter fetchSystemsByID fetchAllSystemIDsOfClient
fetchAllSystemIDsOfGroup
- fetchClientsByFilter fetchClientsById fetchAllClientIDsOfSystem
+ fetchClientsByFilter fetchClientsByID fetchAllClientIDsOfSystem
fetchAllClientIDsOfGroup
- fetchGroupsByFilter fetchGroupsById fetchAllGroupIDsOfClient
+ fetchGroupsByFilter fetchGroupsByID fetchAllGroupIDsOfClient
fetchAllGroupIDsOfSystem
);
my @manipulationExports = qw(
+ addVendorOS removeVendorOS changeVendorOS
+ setSystemIDsOfVendorOS addSystemIDsToVendorOS removeSystemIDsFromVendorOS
addSystem removeSystem changeSystem
setClientIDsOfSystem addClientIDsToSystem removeClientIDsFromSystem
setGroupIDsOfSystem addGroupIDsToSystem removeGroupIDsFromSystem
@@ -160,6 +163,27 @@ sub disconnectConfigDB
$confDB->{'meta-db'}->disconnectConfigDB();
}
+sub fetchVendorOSesByFilter
+{
+ my $confDB = shift;
+ my $filter = shift;
+ my $resultCols = shift;
+
+ my @vendorOSes
+ = $confDB->{'meta-db'}->fetchVendorOSesByFilter($filter, $resultCols);
+ return wantarray() ? @vendorOSes : shift @vendorOSes;
+}
+
+sub fetchVendorOSesByID
+{
+ my $confDB = shift;
+ my $id = shift;
+
+ my $filter = { 'id' => $id };
+ my @vendorOSes = $confDB->{'meta-db'}->fetchVendorOSesByFilter($filter);
+ return wantarray() ? @vendorOSes : shift @vendorOSes;
+}
+
sub fetchSystemsByFilter
{
my $confDB = shift;
@@ -171,7 +195,7 @@ sub fetchSystemsByFilter
return wantarray() ? @systems : shift @systems;
}
-sub fetchSystemsById
+sub fetchSystemsByID
{
my $confDB = shift;
my $id = shift;
@@ -181,6 +205,14 @@ sub fetchSystemsById
return wantarray() ? @systems : shift @systems;
}
+sub fetchAllSystemIDsOfVendorOS
+{
+ my $confDB = shift;
+ my $vendorOSID = shift;
+
+ return $confDB->{'meta-db'}->fetchAllSystemIDsOfVendorOS($vendorOSID);
+}
+
sub fetchAllSystemIDsOfClient
{
my $confDB = shift;
@@ -206,7 +238,7 @@ sub fetchClientsByFilter
return wantarray() ? @clients : shift @clients;
}
-sub fetchClientsById
+sub fetchClientsByID
{
my $confDB = shift;
my $id = shift;
@@ -243,7 +275,7 @@ sub fetchGroupsByFilter
return wantarray() ? @groups : shift @groups;
}
-sub fetchGroupsById
+sub fetchGroupsByID
{
my $confDB = shift;
my $id = shift;
@@ -272,6 +304,69 @@ sub fetchAllGroupIDsOfClient
################################################################################
### data manipulation interface
################################################################################
+sub addVendorOS
+{
+ my $confDB = shift;
+ my $valRows = _aref(shift);
+
+ return $confDB->{'meta-db'}->addVendorOS($valRows);
+}
+
+sub removeVendorOS
+{
+ my $confDB = shift;
+ my $vendorOSIDs = _aref(shift);
+
+ return $confDB->{'meta-db'}->removeVendorOS($vendorOSIDs);
+}
+
+sub changeVendorOS
+{
+ my $confDB = shift;
+ my $vendorOSIDs = _aref(shift);
+ my $valRows = _aref(shift);
+
+ return $confDB->{'meta-db'}->changeVendorOS($vendorOSIDs, $valRows);
+}
+
+sub setSystemIDsOfVendorOS
+{
+ my $confDB = shift;
+ my $vendorOSID = shift;
+ my $systemIDs = _aref(shift);
+
+ my %seen;
+ my @uniqueSystemIDs = grep { !$seen{$_}++ } @$systemIDs;
+ return $confDB->{'meta-db'}->setSystemIDsOfVendorOS($vendorOSID,
+ \@uniqueSystemIDs);
+}
+
+sub addSystemIDsToVendorOS
+{
+ my $confDB = shift;
+ my $vendorOSID = shift;
+ my $newSystemIDs = _aref(shift);
+
+ my @systemIDs
+ = $confDB->{'meta-db'}->fetchAllSystemIDsOfVendorOS($vendorOSID);
+ push @systemIDs, @$newSystemIDs;
+ return setSystemIDsOfVendorOS($confDB, $vendorOSID, \@systemIDs);
+}
+
+sub removeSystemIDsFromVendorOS
+{
+ my $confDB = shift;
+ my $vendorOSID = shift;
+ my $removedSystemIDs = _aref(shift);
+
+ my %toBeRemoved;
+ @toBeRemoved{@$removedSystemIDs} = ();
+ my @systemIDs
+ = grep { !exists $toBeRemoved{$_} }
+ $confDB->{'meta-db'}->fetchAllSystemIDsOfVendorOS($vendorOSID);
+ return setSystemIDsOfVendorOS($confDB, $vendorOSID, \@systemIDs);
+}
+
sub addSystem
{
my $confDB = shift;