summaryrefslogtreecommitdiffstats
path: root/config-db/OpenSLX/MetaDB
diff options
context:
space:
mode:
authorOliver Tappe2007-11-09 16:54:04 +0100
committerOliver Tappe2007-11-09 16:54:04 +0100
commitbf6beb5f4374938b20af65af76003376d9ea0ffd (patch)
tree256ba47b2976b0782317112d99fd0ee3c67312ae /config-db/OpenSLX/MetaDB
parent* added default debconf database for openslx systems based on (diff)
downloadcore-bf6beb5f4374938b20af65af76003376d9ea0ffd.tar.gz
core-bf6beb5f4374938b20af65af76003376d9ea0ffd.tar.xz
core-bf6beb5f4374938b20af65af76003376d9ea0ffd.zip
* started to work on configDB-tests
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1407 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/OpenSLX/MetaDB')
-rw-r--r--config-db/OpenSLX/MetaDB/DBI.pm20
-rw-r--r--config-db/OpenSLX/MetaDB/SQLite.pm32
2 files changed, 40 insertions, 12 deletions
diff --git a/config-db/OpenSLX/MetaDB/DBI.pm b/config-db/OpenSLX/MetaDB/DBI.pm
index b80f3c0a..bb0a8fdc 100644
--- a/config-db/OpenSLX/MetaDB/DBI.pm
+++ b/config-db/OpenSLX/MetaDB/DBI.pm
@@ -86,14 +86,15 @@ sub _doSelect
vlog(3, _trim($sql));
my $sth = $dbh->prepare($sql)
- or
- croak _tr(q[Can't prepare SQL-statement <%s> (%s)], $sql, $dbh->errstr);
+ or croak _tr(
+ q[Can't prepare SQL-statement <%s> (%s)], $sql, $dbh->errstr
+ );
$sth->execute()
- or
- croak _tr(q[Can't execute SQL-statement <%s> (%s)], $sql, $dbh->errstr);
- my (@vals, $row);
- while ($row = $sth->fetchrow_hashref()) {
-
+ or croak _tr(
+ q[Can't execute SQL-statement <%s> (%s)], $sql, $dbh->errstr
+ );
+ my @vals;
+ while (my $row = $sth->fetchrow_hashref()) {
if (defined $resultCol) {
return $row->{$resultCol} unless wantarray();
push @vals, $row->{$resultCol};
@@ -113,10 +114,11 @@ sub fetchVendorOSByFilter
$resultCols = '*' unless (defined $resultCols);
my $sql = "SELECT $resultCols FROM vendor_os";
- my $connector;
+ my ($connector, $quotedVal);
foreach my $col (keys %$filter) {
$connector = !defined $connector ? 'WHERE' : 'AND';
- $sql .= " $connector $col = '$filter->{$col}'";
+ $quotedVal = $self->{dbh}->quote($filter->{$col});
+ $sql .= " $connector $col = $quotedVal";
}
return $self->_doSelect($sql);
}
diff --git a/config-db/OpenSLX/MetaDB/SQLite.pm b/config-db/OpenSLX/MetaDB/SQLite.pm
index 558aebf9..c0725191 100644
--- a/config-db/OpenSLX/MetaDB/SQLite.pm
+++ b/config-db/OpenSLX/MetaDB/SQLite.pm
@@ -35,6 +35,27 @@ sub new
return bless $self, $class;
}
+sub databaseExists
+{
+ my $self = shift;
+
+ my $fullDBPath = $self->_getDBPath() . "/$openslxConfig{'db-name'}";
+print "$fullDBPath\n";
+ return -e $fullDBPath;
+}
+
+sub dropDatabase
+{
+ my $self = shift;
+
+ if ($self->{dbh}) {
+ die "need to disconnect before you can drop the database!";
+ }
+
+ my $fullDBPath = $self->_getDBPath() . "/$openslxConfig{'db-name'}";
+ system("rm -rf $fullDBPath") if -e $fullDBPath;
+}
+
sub connect ## no critic (ProhibitBuiltinHomonyms)
{
my $self = shift;
@@ -42,9 +63,7 @@ sub connect ## no critic (ProhibitBuiltinHomonyms)
my $dbSpec = $openslxConfig{'db-spec'};
if (!defined $dbSpec) {
# build $dbSpec from individual parameters:
- my $dbBasepath = "$openslxConfig{'private-path'}/db";
- my $dbDatadir = 'sqlite';
- my $dbPath = "$dbBasepath/$dbDatadir";
+ my $dbPath = $self->_getDBPath;
system("mkdir -p $dbPath") unless -e $dbPath;
$dbSpec = "dbname=$dbPath/$openslxConfig{'db-name'}";
}
@@ -102,4 +121,11 @@ sub schemaAddColumns
return;
}
+sub _getDBPath
+{
+ my $self = shift;
+
+ return "$openslxConfig{'private-path'}/db/sqlite";
+}
+
1;