diff options
author | Oliver Tappe | 2008-01-08 11:28:49 +0100 |
---|---|---|
committer | Oliver Tappe | 2008-01-08 11:28:49 +0100 |
commit | a608f561c48bf247e313f383e6f806f10d70f253 (patch) | |
tree | 13e2a35b0b448d1063e56e14aea864cbe2a6ca31 /config-db/OpenSLX/MetaDB/DBI.pm | |
parent | * fixed several smaller bugs found when testing slxexport (diff) | |
download | core-a608f561c48bf247e313f383e6f806f10d70f253.tar.gz core-a608f561c48bf247e313f383e6f806f10d70f253.tar.xz core-a608f561c48bf247e313f383e6f806f10d70f253.zip |
* added new DB-table 'installed_plugin', moving schema version to 0.21
* added functionality to DB-layer for adding, removing and fetching
plugins that have been installed into a vendor-OS.
* added a set of tests related to installed plugins.
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1447 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/OpenSLX/MetaDB/DBI.pm')
-rw-r--r-- | config-db/OpenSLX/MetaDB/DBI.pm | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/config-db/OpenSLX/MetaDB/DBI.pm b/config-db/OpenSLX/MetaDB/DBI.pm index 94d92188..e709038b 100644 --- a/config-db/OpenSLX/MetaDB/DBI.pm +++ b/config-db/OpenSLX/MetaDB/DBI.pm @@ -201,6 +201,25 @@ sub fetchVendorOSByID return $self->_doSelect($sql); } +sub fetchInstalledPlugins +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + + return if !$vendorOSID; + my $nameClause + = defined $pluginName + ? "AND plugin_name = '$pluginName'" + : ''; + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT * FROM installed_plugin + WHERE vendor_os_id = '$vendorOSID' + $nameClause + End-of-Here + return $self->_doSelect($sql); +} + sub fetchExportByFilter { my $self = shift; @@ -682,6 +701,34 @@ sub changeVendorOS return $self->_doUpdate('vendor_os', $vendorOSIDs, $valRows); } +sub addInstalledPlugin +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + + return if !$vendorOSID || !$pluginName; + + return if $self->fetchInstalledPlugins($vendorOSID, $pluginName); + return $self->_doInsert('installed_plugin', [ { + vendor_os_id => $vendorOSID, + plugin_name => $pluginName, + } ] ); +} + +sub removeInstalledPlugin +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + + return if !$vendorOSID || !$pluginName; + + my $plugin = $self->fetchInstalledPlugins($vendorOSID, $pluginName); + return if !$plugin; + return $self->_doDelete('installed_plugin', [ $plugin->{id} ] ); +} + sub addExport { my $self = shift; |