Gunid format change!
Gunid is internally bigint (8B int). Gunid is transported as 16 hex digits string in input parameters and output results.
This commit is contained in:
parent
4f23838731
commit
a9e52421d9
9 changed files with 174 additions and 83 deletions
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: tomas $
|
Author : $Author: tomas $
|
||||||
Version : $Revision: 1.3 $
|
Version : $Revision: 1.4 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/BasicStor.php,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/BasicStor.php,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -48,7 +48,7 @@ require_once "Transport.php";
|
||||||
* Core of LiveSupport file storage module
|
* Core of LiveSupport file storage module
|
||||||
*
|
*
|
||||||
* @author $Author: tomas $
|
* @author $Author: tomas $
|
||||||
* @version $Revision: 1.3 $
|
* @version $Revision: 1.4 $
|
||||||
* @see Alib
|
* @see Alib
|
||||||
*/
|
*/
|
||||||
class BasicStor extends Alib{
|
class BasicStor extends Alib{
|
||||||
|
@ -215,7 +215,7 @@ class BasicStor extends Alib{
|
||||||
{
|
{
|
||||||
$cnt = $this->dbc->getOne("
|
$cnt = $this->dbc->getOne("
|
||||||
SELECT count(token) FROM {$this->accessTable}
|
SELECT count(token) FROM {$this->accessTable}
|
||||||
WHERE token='{$token}' AND type='$type'
|
WHERE token=x'{$token}'::bigint AND type='$type'
|
||||||
");
|
");
|
||||||
if(PEAR::isError($cnt)){ return FALSE; }
|
if(PEAR::isError($cnt)){ return FALSE; }
|
||||||
return ($cnt == 1);
|
return ($cnt == 1);
|
||||||
|
@ -236,9 +236,11 @@ class BasicStor extends Alib{
|
||||||
$token = StoredFile::_createGunid();
|
$token = StoredFile::_createGunid();
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
INSERT INTO {$this->accessTable}
|
INSERT INTO {$this->accessTable}
|
||||||
(gunid, sessid, token, ext, type, ts)
|
(gunid, sessid, token,
|
||||||
|
ext, type, ts)
|
||||||
VALUES
|
VALUES
|
||||||
('{$gunid}', '$sessid', '$token', '$ext', '$type', now())
|
(x'{$gunid}'::bigint, '$sessid', x'$token'::bigint,
|
||||||
|
'$ext', '$type', now())
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ return $res; }
|
if(PEAR::isError($res)){ return $res; }
|
||||||
$linkFname = "{$this->accessDir}/$token.$ext";
|
$linkFname = "{$this->accessDir}/$token.$ext";
|
||||||
|
@ -271,15 +273,15 @@ class BasicStor extends Alib{
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$acc = $this->dbc->getRow("
|
$acc = $this->dbc->getRow("
|
||||||
SELECT gunid, ext FROM {$this->accessTable}
|
SELECT to_hex(gunid)as gunid, ext FROM {$this->accessTable}
|
||||||
WHERE token='{$token}' AND type='$type'
|
WHERE token=x'{$token}'::bigint AND type='$type'
|
||||||
");
|
");
|
||||||
$ext = $acc['ext'];
|
$ext = $acc['ext'];
|
||||||
$gunid = $acc['gunid'];
|
$gunid = StoredFile::_normalizeGunid($acc['gunid']);
|
||||||
if(PEAR::isError($acc)){ return $acc; }
|
if(PEAR::isError($acc)){ return $acc; }
|
||||||
$linkFname = "{$this->accessDir}/$token.$ext";
|
$linkFname = "{$this->accessDir}/$token.$ext";
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
DELETE FROM {$this->accessTable} WHERE token='$token'
|
DELETE FROM {$this->accessTable} WHERE token=x'$token'::bigint
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ return $res; }
|
if(PEAR::isError($res)){ return $res; }
|
||||||
if(! @unlink($linkFname)){
|
if(! @unlink($linkFname)){
|
||||||
|
@ -339,10 +341,11 @@ class BasicStor extends Alib{
|
||||||
{
|
{
|
||||||
if($part == 'metadata'){
|
if($part == 'metadata'){
|
||||||
$gunid = $this->dbc->getOne("
|
$gunid = $this->dbc->getOne("
|
||||||
SELECT gunid FROM {$this->accessTable}
|
SELECT to_hex(gunid)as gunid FROM {$this->accessTable}
|
||||||
WHERE token='{$token}' AND type='download'
|
WHERE token=x'{$token}'::bigint AND type='download'
|
||||||
");
|
");
|
||||||
if(PEAR::isError($gunid)){ return $gunid; }
|
if(PEAR::isError($gunid)){ return $gunid; }
|
||||||
|
$gunid = StoredFile::_normalizeGunid($gunid);
|
||||||
$fname = "{$this->bufferDir}/$gunid";
|
$fname = "{$this->bufferDir}/$gunid";
|
||||||
@unlink($fname);
|
@unlink($fname);
|
||||||
}
|
}
|
||||||
|
@ -365,7 +368,7 @@ class BasicStor extends Alib{
|
||||||
INSERT INTO {$this->accessTable}
|
INSERT INTO {$this->accessTable}
|
||||||
(gunid, sessid, token, ext, chsum, type, ts)
|
(gunid, sessid, token, ext, chsum, type, ts)
|
||||||
VALUES
|
VALUES
|
||||||
('{$gunid}', '$sessid', '$token',
|
(x'{$gunid}'::bigint, '$sessid', x'$token'::bigint,
|
||||||
'$ext', '$chsum', 'put', now())
|
'$ext', '$chsum', 'put', now())
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ return $res; }
|
if(PEAR::isError($res)){ return $res; }
|
||||||
|
@ -390,7 +393,7 @@ class BasicStor extends Alib{
|
||||||
}
|
}
|
||||||
$chsum = $this->dbc->getOne("
|
$chsum = $this->dbc->getOne("
|
||||||
SELECT chsum FROM {$this->accessTable}
|
SELECT chsum FROM {$this->accessTable}
|
||||||
WHERE token='{$token}'
|
WHERE token=x'{$token}'::bigint
|
||||||
");
|
");
|
||||||
$fname = "{$this->accessDir}/$token";
|
$fname = "{$this->accessDir}/$token";
|
||||||
$md5sum = md5_file($fname);
|
$md5sum = md5_file($fname);
|
||||||
|
@ -400,7 +403,7 @@ class BasicStor extends Alib{
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
DELETE FROM {$this->accessTable} WHERE token='$token'
|
DELETE FROM {$this->accessTable} WHERE token=x'$token'::bigint
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ return $res; }
|
if(PEAR::isError($res)){ return $res; }
|
||||||
return $fname;
|
return $fname;
|
||||||
|
@ -544,14 +547,54 @@ class BasicStor extends Alib{
|
||||||
*/
|
*/
|
||||||
function bsLocalSearch($criteria)
|
function bsLocalSearch($criteria)
|
||||||
{
|
{
|
||||||
$ftsrch = $criteria;
|
$types = array('and'=>'AND', 'or'=>'OR');
|
||||||
$res = $this->dbc->getCol("SELECT md.gunid as gunid
|
$ops = array('full'=>"='%s'", 'partial'=>"like '%%%s%%'", 'prefix'=>"like '%s%%'",
|
||||||
|
'<'=>"< '%s'", '='=>"= '%s'", '>'=>"> '%s'", '<='=>"<= '%s'", '>='=>">= '%s'"
|
||||||
|
);
|
||||||
|
# var_dump($criteria);
|
||||||
|
echo "\n";
|
||||||
|
$type = strtolower($criteria['type']);
|
||||||
|
$conds = $criteria['conds'];
|
||||||
|
$whereArr = array();
|
||||||
|
foreach($conds as $cond){
|
||||||
|
$cat = strtolower($cond['cat']);
|
||||||
|
$opVal = sprintf($ops[$cond['op']], strtolower($cond['val']));
|
||||||
|
$sqlCond = "
|
||||||
|
%s.predicate = '".str_replace("%", "%%", $cat)."' AND
|
||||||
|
%s.objns='_L' AND lower(%s.object) ".str_replace("%", "%%", $opVal)."\n
|
||||||
|
";
|
||||||
|
# echo "$sqlCond\n";
|
||||||
|
$whereArr[] = "$sqlCond";
|
||||||
|
}
|
||||||
|
if($type == 'and'){
|
||||||
|
$from = array(); $joinArr = array();
|
||||||
|
foreach($whereArr as $i=>$v){
|
||||||
|
$from[] = "{$this->mdataTable} md$i";
|
||||||
|
$whereArr[$i] = sprintf($v, "md$i", "md$i", "md$i");
|
||||||
|
$joinArr[] = "md$i.gunid = md".($i+1).".gunid";
|
||||||
|
}
|
||||||
|
array_pop($joinArr);
|
||||||
|
$sql = "SELECT to_hex(md0.gunid)as gunid \nFROM ".join(", ", $from).
|
||||||
|
"\nWHERE ".join(' AND ', $whereArr);
|
||||||
|
if(count($joinArr)>0){ $sql .= " AND ".join(" AND ", $joinArr); }
|
||||||
|
}else{
|
||||||
|
foreach($whereArr as $i=>$v){
|
||||||
|
$whereArr[$i] = sprintf($v, "md", "md", "md");
|
||||||
|
}
|
||||||
|
$sql = "\nSELECT to_hex(gunid)as gunid \n".
|
||||||
|
"FROM {$this->mdataTable} md \nWHERE ".join(' OR ', $whereArr);
|
||||||
|
}
|
||||||
|
echo "$sql\n";
|
||||||
|
# var_dump($whereArr);
|
||||||
|
$sql0 = "SELECT to_hex(md.gunid)as gunid
|
||||||
FROM {$this->filesTable} f, {$this->mdataTable} md
|
FROM {$this->filesTable} f, {$this->mdataTable} md
|
||||||
WHERE f.gunid=md.gunid AND md.objns='_L' AND
|
WHERE f.gunid=md.gunid AND md.objns='_L' AND
|
||||||
md.object like '%$ftsrch%'
|
md.object like '%$criteria%'
|
||||||
GROUP BY md.gunid
|
GROUP BY md.gunid
|
||||||
");
|
";
|
||||||
|
$res = $this->dbc->getCol($sql);
|
||||||
if(!is_array($res)) $res = array();
|
if(!is_array($res)) $res = array();
|
||||||
|
// $res = array_map("StoredFile::_normalizeGunid", $res); // TODO: correct!
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -931,14 +974,16 @@ class BasicStor extends Alib{
|
||||||
function install()
|
function install()
|
||||||
{
|
{
|
||||||
parent::install();
|
parent::install();
|
||||||
$this->dbc->query("CREATE TABLE {$this->filesTable} (
|
echo "{$this->filesTable}\n";
|
||||||
|
$r = $this->dbc->query("CREATE TABLE {$this->filesTable} (
|
||||||
id int not null,
|
id int not null,
|
||||||
gunid char(32) not null, -- global unique ID
|
gunid bigint not null, -- global unique ID
|
||||||
name varchar(255) not null default'', -- human file id ;)
|
name varchar(255) not null default'', -- human file id ;)
|
||||||
type varchar(255) not null default'', -- mime type
|
type varchar(255) not null default'', -- mime type
|
||||||
state varchar(128) not null default'empty', -- file state
|
state varchar(128) not null default'empty', -- file state
|
||||||
currentlyAccessing int not null default 0 -- access counter
|
currentlyAccessing int not null default 0 -- access counter
|
||||||
)");
|
)");
|
||||||
|
if(PEAR::isError($r)) return $r;
|
||||||
$this->dbc->query("CREATE UNIQUE INDEX {$this->filesTable}_id_idx
|
$this->dbc->query("CREATE UNIQUE INDEX {$this->filesTable}_id_idx
|
||||||
ON {$this->filesTable} (id)");
|
ON {$this->filesTable} (id)");
|
||||||
$this->dbc->query("CREATE UNIQUE INDEX {$this->filesTable}_gunid_idx
|
$this->dbc->query("CREATE UNIQUE INDEX {$this->filesTable}_gunid_idx
|
||||||
|
@ -946,10 +991,11 @@ class BasicStor extends Alib{
|
||||||
$this->dbc->query("CREATE INDEX {$this->filesTable}_name_idx
|
$this->dbc->query("CREATE INDEX {$this->filesTable}_name_idx
|
||||||
ON {$this->filesTable} (name)");
|
ON {$this->filesTable} (name)");
|
||||||
|
|
||||||
|
echo "{$this->mdataTable}\n";
|
||||||
$this->dbc->createSequence("{$this->mdataTable}_id_seq");
|
$this->dbc->createSequence("{$this->mdataTable}_id_seq");
|
||||||
$this->dbc->query("CREATE TABLE {$this->mdataTable} (
|
$r = $this->dbc->query("CREATE TABLE {$this->mdataTable} (
|
||||||
id int not null,
|
id int not null,
|
||||||
gunid char(32),
|
gunid bigint,
|
||||||
subjns varchar(255), -- subject namespace shortcut/uri
|
subjns varchar(255), -- subject namespace shortcut/uri
|
||||||
subject varchar(255) not null default '',
|
subject varchar(255) not null default '',
|
||||||
predns varchar(255), -- predicate namespace shortcut/uri
|
predns varchar(255), -- predicate namespace shortcut/uri
|
||||||
|
@ -958,6 +1004,7 @@ class BasicStor extends Alib{
|
||||||
objns varchar(255), -- object namespace shortcut/uri
|
objns varchar(255), -- object namespace shortcut/uri
|
||||||
object text
|
object text
|
||||||
)");
|
)");
|
||||||
|
if(PEAR::isError($r)) return $r;
|
||||||
$this->dbc->query("CREATE UNIQUE INDEX {$this->mdataTable}_id_idx
|
$this->dbc->query("CREATE UNIQUE INDEX {$this->mdataTable}_id_idx
|
||||||
ON {$this->mdataTable} (id)");
|
ON {$this->mdataTable} (id)");
|
||||||
$this->dbc->query("CREATE INDEX {$this->mdataTable}_gunid_idx
|
$this->dbc->query("CREATE INDEX {$this->mdataTable}_gunid_idx
|
||||||
|
@ -967,15 +1014,17 @@ class BasicStor extends Alib{
|
||||||
$this->dbc->query("CREATE INDEX {$this->mdataTable}_pred_idx
|
$this->dbc->query("CREATE INDEX {$this->mdataTable}_pred_idx
|
||||||
ON {$this->mdataTable} (predns, predicate)");
|
ON {$this->mdataTable} (predns, predicate)");
|
||||||
|
|
||||||
$this->dbc->query("CREATE TABLE {$this->accessTable} (
|
echo "{$this->accessTable}\n";
|
||||||
gunid char(32) not null default'',
|
$r = $this->dbc->query("CREATE TABLE {$this->accessTable} (
|
||||||
|
gunid bigint,
|
||||||
sessid char(32) not null default'',
|
sessid char(32) not null default'',
|
||||||
token char(32) not null default'',
|
token bigint,
|
||||||
chsum char(32) not null default'',
|
chsum char(32) not null default'',
|
||||||
ext varchar(128) not null default'',
|
ext varchar(128) not null default'',
|
||||||
type varchar(20) not null default'',
|
type varchar(20) not null default'',
|
||||||
ts timestamp
|
ts timestamp
|
||||||
)");
|
)");
|
||||||
|
if(PEAR::isError($r)) return $r;
|
||||||
$this->dbc->query("CREATE INDEX {$this->accessTable}_token_idx
|
$this->dbc->query("CREATE INDEX {$this->accessTable}_token_idx
|
||||||
ON {$this->accessTable} (token)");
|
ON {$this->accessTable} (token)");
|
||||||
$this->dbc->query("CREATE INDEX {$this->accessTable}_gunid_idx
|
$this->dbc->query("CREATE INDEX {$this->accessTable}_gunid_idx
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: tomas $
|
Author : $Author: tomas $
|
||||||
Version : $Revision: 1.12 $
|
Version : $Revision: 1.13 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/GreenBox.php,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/GreenBox.php,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -35,7 +35,7 @@ require_once "BasicStor.php";
|
||||||
* LiveSupport file storage module
|
* LiveSupport file storage module
|
||||||
*
|
*
|
||||||
* @author $Author: tomas $
|
* @author $Author: tomas $
|
||||||
* @version $Revision: 1.12 $
|
* @version $Revision: 1.13 $
|
||||||
* @see BasicStor
|
* @see BasicStor
|
||||||
*/
|
*/
|
||||||
class GreenBox extends BasicStor{
|
class GreenBox extends BasicStor{
|
||||||
|
@ -522,7 +522,7 @@ class GreenBox extends BasicStor{
|
||||||
function _idFromGunid($gunid)
|
function _idFromGunid($gunid)
|
||||||
{
|
{
|
||||||
return $this->dbc->getOne(
|
return $this->dbc->getOne(
|
||||||
"SELECT id FROM {$this->filesTable} WHERE gunid='$gunid'"
|
"SELECT id FROM {$this->filesTable} WHERE gunid=x'$gunid'::bigint"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -535,9 +535,12 @@ class GreenBox extends BasicStor{
|
||||||
function _gunidFromId($id)
|
function _gunidFromId($id)
|
||||||
{
|
{
|
||||||
if(!is_numeric($id)) return NULL;
|
if(!is_numeric($id)) return NULL;
|
||||||
return $this->dbc->getOne(
|
$gunid = $this->dbc->getOne("
|
||||||
"SELECT gunid FROM {$this->filesTable} WHERE id='$id'"
|
SELECT to_hex(gunid)as gunid FROM {$this->filesTable}
|
||||||
);
|
WHERE id='$id'
|
||||||
|
");
|
||||||
|
if(is_null($gunid)) return NULL;
|
||||||
|
return StoredFile::_normalizeGunid($gunid);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: tomas $
|
Author : $Author: tomas $
|
||||||
Version : $Revision: 1.5 $
|
Version : $Revision: 1.6 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/MetaData.php,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/MetaData.php,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -111,8 +111,10 @@ class MetaData{
|
||||||
*/
|
*/
|
||||||
function delete()
|
function delete()
|
||||||
{
|
{
|
||||||
$res = $this->dbc->query("DELETE FROM {$this->mdataTable}
|
$res = $this->dbc->query("
|
||||||
WHERE gunid='{$this->gunid}'");
|
DELETE FROM {$this->mdataTable}
|
||||||
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
|
");
|
||||||
if(PEAR::isError($res)) return $res;
|
if(PEAR::isError($res)) return $res;
|
||||||
$this->exists = FALSE;
|
$this->exists = FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -135,8 +137,11 @@ class MetaData{
|
||||||
*/
|
*/
|
||||||
function dbCheck($gunid)
|
function dbCheck($gunid)
|
||||||
{
|
{
|
||||||
$cnt = $this->dbc->getOne("SELECT count(*)as cnt
|
$cnt = $this->dbc->getOne("
|
||||||
FROM {$this->mdataTable} WHERE gunid='$gunid'");
|
SELECT count(*)as cnt
|
||||||
|
FROM {$this->mdataTable}
|
||||||
|
WHERE gunid=x'$gunid'::bigint
|
||||||
|
");
|
||||||
if(PEAR::isError($cnt)) return $cnt;
|
if(PEAR::isError($cnt)) return $cnt;
|
||||||
return (intval($cnt) > 0);
|
return (intval($cnt) > 0);
|
||||||
}
|
}
|
||||||
|
@ -192,7 +197,7 @@ class MetaData{
|
||||||
$nameSpaces = array();
|
$nameSpaces = array();
|
||||||
$arr = $this->dbc->getAll("SELECT subject, object
|
$arr = $this->dbc->getAll("SELECT subject, object
|
||||||
FROM {$this->mdataTable}
|
FROM {$this->mdataTable}
|
||||||
WHERE gunid='{$this->gunid}'
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
AND subjns='_L'
|
AND subjns='_L'
|
||||||
AND predns is null AND predicate='_namespace'
|
AND predns is null AND predicate='_namespace'
|
||||||
AND objns='_L'
|
AND objns='_L'
|
||||||
|
@ -218,16 +223,19 @@ class MetaData{
|
||||||
function storeXMLNode($node, $parid=NULL, $mode='insert')
|
function storeXMLNode($node, $parid=NULL, $mode='insert')
|
||||||
{
|
{
|
||||||
//echo $node->node_name().", ".$node->node_type().", ".$node->prefix().", $parid.\n";
|
//echo $node->node_name().", ".$node->node_type().", ".$node->prefix().", $parid.\n";
|
||||||
|
// preprocessing:
|
||||||
switch($node->node_type()){
|
switch($node->node_type()){
|
||||||
case 1: // element
|
case 1: // element
|
||||||
case 2: // attribute
|
case 2: // attribute
|
||||||
$subjns = (is_null($parid)? '_G' : '_I');
|
$subjns = (is_null($parid)? '_G' : '_I');
|
||||||
$subject = (is_null($parid)? $this->gunid : $parid);
|
$subject = (is_null($parid)? $this->gunid : $parid);
|
||||||
|
// DOM XML extension doesn't like empty prefix - use '_d'
|
||||||
$prefix = $node->prefix(); $prefix = ($prefix === '' ? '_d' : $prefix);
|
$prefix = $node->prefix(); $prefix = ($prefix === '' ? '_d' : $prefix);
|
||||||
if(!isset($this->nameSpaces[$prefix]))
|
if(!isset($this->nameSpaces[$prefix]))
|
||||||
$this->nameSpaces[$prefix] = $node->namespace_uri();
|
$this->nameSpaces[$prefix] = $node->namespace_uri();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// main processing:
|
||||||
switch($node->node_type()){
|
switch($node->node_type()){
|
||||||
case 9: // document
|
case 9: // document
|
||||||
$this->storeXMLNode($node->document_element(), $parid, $mode);
|
$this->storeXMLNode($node->document_element(), $parid, $mode);
|
||||||
|
@ -264,6 +272,7 @@ class MetaData{
|
||||||
# echo"T\n";
|
# echo"T\n";
|
||||||
if($node->is_blank_node()) break;
|
if($node->is_blank_node()) break;
|
||||||
$objns_sql = "'_L'";
|
$objns_sql = "'_L'";
|
||||||
|
// coalesce ... returns the first of its arguments that is not NULL
|
||||||
$object_sql = "coalesce(object,'')||'".$node->node_value()."'";
|
$object_sql = "coalesce(object,'')||'".$node->node_value()."'";
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
UPDATE {$this->mdataTable}
|
UPDATE {$this->mdataTable}
|
||||||
|
@ -297,7 +306,7 @@ class MetaData{
|
||||||
{
|
{
|
||||||
$res = $this->dbc->query("UPDATE {$this->mdataTable}
|
$res = $this->dbc->query("UPDATE {$this->mdataTable}
|
||||||
SET objns = '$objns', object = '$object'
|
SET objns = '$objns', object = '$object'
|
||||||
WHERE gunid = '{$this->gunid}' AND id='$mdid'
|
WHERE gunid = x'{$this->gunid}'::bigint AND id='$mdid'
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)) return $res;
|
if(PEAR::isError($res)) return $res;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -327,7 +336,7 @@ class MetaData{
|
||||||
$objns_sql = (is_null($objns) ? "NULL":"'$objns'" );
|
$objns_sql = (is_null($objns) ? "NULL":"'$objns'" );
|
||||||
$object_sql = (is_null($object)? "NULL":"'$object'");
|
$object_sql = (is_null($object)? "NULL":"'$object'");
|
||||||
if($mode == 'update'){
|
if($mode == 'update'){
|
||||||
$cond = "gunid = '{$this->gunid}' AND predns=$predns_sql
|
$cond = "gunid = x'{$this->gunid}'::bigint AND predns=$predns_sql
|
||||||
AND predicate='$predicate'";
|
AND predicate='$predicate'";
|
||||||
if($subjns == '_I'){
|
if($subjns == '_I'){
|
||||||
$cond .= " AND subjns='_I' AND subject='$subject'";
|
$cond .= " AND subjns='_I' AND subject='$subject'";
|
||||||
|
@ -349,7 +358,7 @@ class MetaData{
|
||||||
objns , object
|
objns , object
|
||||||
)
|
)
|
||||||
VALUES
|
VALUES
|
||||||
($id, '{$this->gunid}', '$subjns', '$subject',
|
($id, x'{$this->gunid}'::bigint, '$subjns', '$subject',
|
||||||
$predns_sql, '$predicate', '$predxml',
|
$predns_sql, '$predicate', '$predxml',
|
||||||
$objns_sql, $object_sql
|
$objns_sql, $object_sql
|
||||||
)
|
)
|
||||||
|
@ -376,8 +385,8 @@ class MetaData{
|
||||||
$domd =& domxml_new_xmldoc('1.0');
|
$domd =& domxml_new_xmldoc('1.0');
|
||||||
$row = $this->dbc->getRow("
|
$row = $this->dbc->getRow("
|
||||||
SELECT * FROM {$this->mdataTable}
|
SELECT * FROM {$this->mdataTable}
|
||||||
WHERE gunid='{$this->gunid}'
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
AND subjns='_G' AND subject='{$this->gunid}'
|
AND subjns='_G' AND subject=x'{$this->gunid}'::bigint
|
||||||
");
|
");
|
||||||
if(PEAR::isError($row)) return $row;
|
if(PEAR::isError($row)) return $row;
|
||||||
if(is_null($row)){
|
if(is_null($row)){
|
||||||
|
@ -412,7 +421,7 @@ class MetaData{
|
||||||
$xn->append_child(&$nxn);
|
$xn->append_child(&$nxn);
|
||||||
$uri = $this->dbc->getOne("
|
$uri = $this->dbc->getOne("
|
||||||
SELECT object FROM {$this->mdataTable}
|
SELECT object FROM {$this->mdataTable}
|
||||||
WHERE gunid='{$this->gunid}' AND predicate='_namespace'
|
WHERE gunid=x'{$this->gunid}'::bigint AND predicate='_namespace'
|
||||||
AND subjns='_L' AND subject='{$row['predns']}'
|
AND subjns='_L' AND subject='{$row['predns']}'
|
||||||
");
|
");
|
||||||
if(!is_null($uri) && $uri !== ''){
|
if(!is_null($uri) && $uri !== ''){
|
||||||
|
@ -440,7 +449,8 @@ class MetaData{
|
||||||
{
|
{
|
||||||
$qh = $this->dbc->query("
|
$qh = $this->dbc->query("
|
||||||
SELECT * FROM {$this->mdataTable}
|
SELECT * FROM {$this->mdataTable}
|
||||||
WHERE gunid='{$this->gunid}' AND subjns='_I' AND subject='$parid'
|
WHERE gunid=x'{$this->gunid}'::bigint AND subjns='_I'
|
||||||
|
AND subject='$parid'
|
||||||
ORDER BY id
|
ORDER BY id
|
||||||
");
|
");
|
||||||
if(PEAR::isError($qh)) return $qh;
|
if(PEAR::isError($qh)) return $qh;
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: tomas $
|
Author : $Author: tomas $
|
||||||
Version : $Revision: 1.8 $
|
Version : $Revision: 1.9 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/StoredFile.php,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/StoredFile.php,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -96,8 +96,8 @@ class StoredFile{
|
||||||
INSERT INTO {$ac->filesTable}
|
INSERT INTO {$ac->filesTable}
|
||||||
(id, name, gunid, type, state)
|
(id, name, gunid, type, state)
|
||||||
VALUES
|
VALUES
|
||||||
('$oid', '{$ac->name}', '{$ac->gunid}', '{$ac->type}',
|
('$oid', '{$ac->name}', x'{$ac->gunid}'::bigint,
|
||||||
'incomplete')
|
'{$ac->type}', 'incomplete')
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ $this->dbc->query("ROLLBACK"); return $res; }
|
if(PEAR::isError($res)){ $this->dbc->query("ROLLBACK"); return $res; }
|
||||||
// --- metadata insert:
|
// --- metadata insert:
|
||||||
|
@ -154,9 +154,12 @@ class StoredFile{
|
||||||
*/
|
*/
|
||||||
function recall(&$gb, $oid='', $gunid='')
|
function recall(&$gb, $oid='', $gunid='')
|
||||||
{
|
{
|
||||||
$cond = ($oid != '' ? "id='".intval($oid)."'" : "gunid='$gunid'" );
|
$cond = ($oid != ''
|
||||||
|
? "id='".intval($oid)."'"
|
||||||
|
: "gunid=x'$gunid'::bigint"
|
||||||
|
);
|
||||||
$row = $gb->dbc->getRow("
|
$row = $gb->dbc->getRow("
|
||||||
SELECT id, gunid, type, name
|
SELECT id, to_hex(gunid)as gunid, type, name
|
||||||
FROM {$gb->filesTable} WHERE $cond
|
FROM {$gb->filesTable} WHERE $cond
|
||||||
");
|
");
|
||||||
if(PEAR::isError($row)) return $row;
|
if(PEAR::isError($row)) return $row;
|
||||||
|
@ -166,7 +169,8 @@ class StoredFile{
|
||||||
GBERR_FOBJNEX
|
GBERR_FOBJNEX
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$ac =& new StoredFile(&$gb, $row['gunid']);
|
$gunid = StoredFile::_normalizeGunid($row['gunid']);
|
||||||
|
$ac =& new StoredFile(&$gb, $gunid);
|
||||||
$ac->type = $row['type'];
|
$ac->type = $row['type'];
|
||||||
$ac->name = $row['name'];
|
$ac->name = $row['name'];
|
||||||
$ac->id = $row['id'];
|
$ac->id = $row['id'];
|
||||||
|
@ -196,11 +200,15 @@ class StoredFile{
|
||||||
*/
|
*/
|
||||||
function recallByToken(&$gb, $token)
|
function recallByToken(&$gb, $token)
|
||||||
{
|
{
|
||||||
$gunid = $gb->dbc->getOne("SELECT gunid FROM {$gb->accessTable}
|
$gunid = $gb->dbc->getOne("
|
||||||
WHERE token='$token'");
|
SELECT to_hex(gunid)as gunid
|
||||||
|
FROM {$gb->accessTable}
|
||||||
|
WHERE token=x'$token'::bigint
|
||||||
|
");
|
||||||
if(PEAR::isError($gunid)) return $gunid;
|
if(PEAR::isError($gunid)) return $gunid;
|
||||||
if(is_null($gunid)) return PEAR::raiseError(
|
if(is_null($gunid)) return PEAR::raiseError(
|
||||||
"StoredFile::recallByToken: invalid token ($token)", GBERR_AOBJNEX);
|
"StoredFile::recallByToken: invalid token ($token)", GBERR_AOBJNEX);
|
||||||
|
$gunid = StoredFile::_normalizeGunid($gunid);
|
||||||
return StoredFile::recall(&$gb, '', $gunid);
|
return StoredFile::recall(&$gb, '', $gunid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +278,7 @@ class StoredFile{
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
UPDATE {$this->filesTable}
|
UPDATE {$this->filesTable}
|
||||||
SET currentlyAccessing=currentlyAccessing+1
|
SET currentlyAccessing=currentlyAccessing+1
|
||||||
WHERE gunid='{$this->gunid}'
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ $this->dbc->query("ROLLBACK"); return $res; }
|
if(PEAR::isError($res)){ $this->dbc->query("ROLLBACK"); return $res; }
|
||||||
# $token = $this->_createGunid();
|
# $token = $this->_createGunid();
|
||||||
|
@ -298,7 +306,7 @@ class StoredFile{
|
||||||
$this->dbc->query("BEGIN");
|
$this->dbc->query("BEGIN");
|
||||||
$res = $this->dbc->query("UPDATE {$this->filesTable}
|
$res = $this->dbc->query("UPDATE {$this->filesTable}
|
||||||
SET currentlyAccessing=currentlyAccessing-1
|
SET currentlyAccessing=currentlyAccessing-1
|
||||||
WHERE gunid='{$this->gunid}' AND currentlyAccessing>0
|
WHERE gunid=x'{$this->gunid}'::bigint AND currentlyAccessing>0
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ $this->dbc->query("ROLLBACK"); return $res; }
|
if(PEAR::isError($res)){ $this->dbc->query("ROLLBACK"); return $res; }
|
||||||
$res = $this->gb->bsRelease($token);
|
$res = $this->gb->bsRelease($token);
|
||||||
|
@ -408,7 +416,7 @@ class StoredFile{
|
||||||
{
|
{
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
UPDATE {$this->filesTable} SET name='$newname'
|
UPDATE {$this->filesTable} SET name='$newname'
|
||||||
WHERE gunid='{$this->gunid}'
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)) return $res;
|
if(PEAR::isError($res)) return $res;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -424,7 +432,7 @@ class StoredFile{
|
||||||
{
|
{
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
UPDATE {$this->filesTable} SET state='$state'
|
UPDATE {$this->filesTable} SET state='$state'
|
||||||
WHERE gunid='{$this->gunid}'
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ return $res; }
|
if(PEAR::isError($res)){ return $res; }
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -440,7 +448,7 @@ class StoredFile{
|
||||||
{
|
{
|
||||||
$res = $this->dbc->query("
|
$res = $this->dbc->query("
|
||||||
UPDATE {$this->filesTable} SET type='$type'
|
UPDATE {$this->filesTable} SET type='$type'
|
||||||
WHERE gunid='{$this->gunid}'
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
");
|
");
|
||||||
if(PEAR::isError($res)){ return $res; }
|
if(PEAR::isError($res)){ return $res; }
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -458,17 +466,23 @@ class StoredFile{
|
||||||
if(PEAR::isError($res)) return $res;
|
if(PEAR::isError($res)) return $res;
|
||||||
$res = $this->md->delete();
|
$res = $this->md->delete();
|
||||||
if(PEAR::isError($res)) return $res;
|
if(PEAR::isError($res)) return $res;
|
||||||
$tokens = $this->dbc->getAll("SELECT token, ext FROM {$this->accessTable}
|
$tokens = $this->dbc->getAll("
|
||||||
WHERE gunid='{$this->gunid}'");
|
SELECT to_hex(token)as token, ext FROM {$this->accessTable}
|
||||||
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
|
");
|
||||||
if(is_array($tokens)) foreach($tokens as $i=>$item){
|
if(is_array($tokens)) foreach($tokens as $i=>$item){
|
||||||
$file = $this->_getAccessFname($item['token'], $item['ext']);
|
$file = $this->_getAccessFname($item['token'], $item['ext']);
|
||||||
if(file_exists($file)){ @unlink($file); }
|
if(file_exists($file)){ @unlink($file); }
|
||||||
}
|
}
|
||||||
$res = $this->dbc->query("DELETE FROM {$this->accessTable}
|
$res = $this->dbc->query("
|
||||||
WHERE gunid='{$this->gunid}'");
|
DELETE FROM {$this->accessTable}
|
||||||
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
|
");
|
||||||
if(PEAR::isError($res)) return $res;
|
if(PEAR::isError($res)) return $res;
|
||||||
$res = $this->dbc->query("DELETE FROM {$this->filesTable}
|
$res = $this->dbc->query("
|
||||||
WHERE gunid='{$this->gunid}'");
|
DELETE FROM {$this->filesTable}
|
||||||
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
|
");
|
||||||
if(PEAR::isError($res)) return $res;
|
if(PEAR::isError($res)) return $res;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -484,7 +498,7 @@ class StoredFile{
|
||||||
if(is_null($gunid)) $gunid = $this->gunid;
|
if(is_null($gunid)) $gunid = $this->gunid;
|
||||||
return (0 < $this->dbc->getOne("
|
return (0 < $this->dbc->getOne("
|
||||||
SELECT currentlyAccessing FROM {$this->filesTable}
|
SELECT currentlyAccessing FROM {$this->filesTable}
|
||||||
WHERE gunid='$gunid'
|
WHERE gunid=x'$gunid'::bigint
|
||||||
"));
|
"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -504,8 +518,8 @@ class StoredFile{
|
||||||
function exists()
|
function exists()
|
||||||
{
|
{
|
||||||
$indb = $this->dbc->getRow("
|
$indb = $this->dbc->getRow("
|
||||||
SELECT gunid FROM {$this->filesTable}
|
SELECT to_hex(gunid) FROM {$this->filesTable}
|
||||||
WHERE gunid='{$this->gunid}'
|
WHERE gunid=x'{$this->gunid}'::bigint
|
||||||
");
|
");
|
||||||
return (!is_null($indb) && $this->rmd->exists());
|
return (!is_null($indb) && $this->rmd->exists());
|
||||||
}
|
}
|
||||||
|
@ -517,9 +531,21 @@ class StoredFile{
|
||||||
*/
|
*/
|
||||||
function _createGunid()
|
function _createGunid()
|
||||||
{
|
{
|
||||||
return md5(
|
$initString =
|
||||||
microtime().$_SERVER['SERVER_ADDR'].rand()."org.mdlf.livesupport"
|
microtime().$_SERVER['SERVER_ADDR'].rand()."org.mdlf.livesupport";
|
||||||
);
|
$hash = md5($initString);
|
||||||
|
// int8
|
||||||
|
$res = substr($hash, 0, 16);
|
||||||
|
return StoredFile::_normalizeGunid($res);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create new global unique id
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function _normalizeGunid($gunid0)
|
||||||
|
{
|
||||||
|
return str_pad($gunid0, 16, "0", STR_PAD_LEFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -532,8 +558,10 @@ class StoredFile{
|
||||||
function _idFromGunid($gunid=NULL)
|
function _idFromGunid($gunid=NULL)
|
||||||
{
|
{
|
||||||
if(is_null($gunid)) $gunid = $this->$gunid;
|
if(is_null($gunid)) $gunid = $this->$gunid;
|
||||||
$id = $this->dbc->getOne("SELECT id FROM {$this->filesTable}
|
$id = $this->dbc->getOne("
|
||||||
WHERE gunid='$gunid'");
|
SELECT id FROM {$this->filesTable}
|
||||||
|
WHERE gunid=x'$gunid'::bigint
|
||||||
|
");
|
||||||
if(is_null($id)) return PEAR::raiseError(
|
if(is_null($id)) return PEAR::raiseError(
|
||||||
"StoredFile::_idFromGunid: no such global unique id ($gunid)"
|
"StoredFile::_idFromGunid: no such global unique id ($gunid)"
|
||||||
);
|
);
|
||||||
|
@ -566,7 +594,7 @@ class StoredFile{
|
||||||
{
|
{
|
||||||
return $this->dbc->getOne("
|
return $this->dbc->getOne("
|
||||||
SELECT type FROM {$this->filesTable}
|
SELECT type FROM {$this->filesTable}
|
||||||
WHERE gunid='$gunid'
|
WHERE gunid=x'$gunid'::bigint
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -600,8 +628,7 @@ class StoredFile{
|
||||||
*/
|
*/
|
||||||
function _getAccessFname($token, $ext='EXT')
|
function _getAccessFname($token, $ext='EXT')
|
||||||
{
|
{
|
||||||
$spart = md5($token);
|
return "{$this->accessDir}/$token.$ext";
|
||||||
return "{$this->accessDir}/$spart.$ext";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: tomas $
|
Author : $Author: tomas $
|
||||||
Version : $Revision: 1.6 $
|
Version : $Revision: 1.7 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/install/install.php,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/install/install.php,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -63,7 +63,8 @@ echo "\n# storageServer: Install ...\n";
|
||||||
$dbc->setErrorHandling(PEAR_ERROR_RETURN);
|
$dbc->setErrorHandling(PEAR_ERROR_RETURN);
|
||||||
$gb->uninstall();
|
$gb->uninstall();
|
||||||
PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s<hr>\n");
|
PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s<hr>\n");
|
||||||
$gb->install();
|
$r = $gb->install();
|
||||||
|
if(PEAR::isError($r)){ echo $r->getUserInfo()."\n"; exit; }
|
||||||
|
|
||||||
echo "# Testing ...\n";
|
echo "# Testing ...\n";
|
||||||
$gb->test();
|
$gb->test();
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<xbmf:episodetitle >Episode Title txt</xbmf:episodetitle>
|
<xbmf:episodetitle >Episode Title txt</xbmf:episodetitle>
|
||||||
<xbmf:episodesequence >Episode sequence</xbmf:episodesequence>
|
<xbmf:episodesequence >Episode sequence</xbmf:episodesequence>
|
||||||
<xbmf:contributor>
|
<xbmf:contributor>
|
||||||
<xbmf:role>Editor</xbmf:role>
|
<xbmf:role>Author</xbmf:role>
|
||||||
<xbmf:name>John X</xbmf:name>
|
<xbmf:name>John X</xbmf:name>
|
||||||
<xbmf:phone>123456789</xbmf:phone>
|
<xbmf:phone>123456789</xbmf:phone>
|
||||||
</xbmf:contributor>
|
</xbmf:contributor>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: tomas $
|
Author : $Author: tomas $
|
||||||
Version : $Revision: 1.2 $
|
Version : $Revision: 1.3 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/put.php,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/put.php,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -71,7 +71,7 @@ function http_error($code, $err){
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(preg_match("|^[0-9a-f]{32}$|", $_REQUEST['token'])){
|
if(preg_match("|^[0-9a-f]{16}$|", $_REQUEST['token'])){
|
||||||
$token = $_REQUEST['token'];
|
$token = $_REQUEST['token'];
|
||||||
}else{
|
}else{
|
||||||
http_error(400, "Error on token parameter. ({$_REQUEST['token']})");
|
http_error(400, "Error on token parameter. ({$_REQUEST['token']})");
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: tomas $
|
Author : $Author: tomas $
|
||||||
Version : $Revision: 1.4 $
|
Version : $Revision: 1.5 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/simpleGet.php,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/simpleGet.php,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -76,7 +76,7 @@ if(preg_match("|^[0-9a-f]{32}$|", $_REQUEST['sessid'])){
|
||||||
}else{
|
}else{
|
||||||
http_error(400, "Error on sessid parameter. ({$_REQUEST['sessid']})");
|
http_error(400, "Error on sessid parameter. ({$_REQUEST['sessid']})");
|
||||||
}
|
}
|
||||||
if(preg_match("|^[0-9a-f]{32}$|", $_REQUEST['id'])){
|
if(preg_match("|^[0-9a-f]{16}$|", $_REQUEST['id'])){
|
||||||
$gunid = $_REQUEST['id'];
|
$gunid = $_REQUEST['id'];
|
||||||
}else{
|
}else{
|
||||||
http_error(400, "Error on id parameter. ({$_REQUEST['id']})");
|
http_error(400, "Error on id parameter. ({$_REQUEST['id']})");
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Author : $Author: tomas $
|
# Author : $Author: tomas $
|
||||||
# Version : $Revision: 1.6 $
|
# Version : $Revision: 1.7 $
|
||||||
# Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/Attic/xr_cli_test.py,v $
|
# Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/Attic/xr_cli_test.py,v $
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
@ -117,7 +117,8 @@ try:
|
||||||
elif method=="updateAudioClipMetadata":
|
elif method=="updateAudioClipMetadata":
|
||||||
print server.locstor.updateAudioClipMetadata({'sessid':pars[0], 'gunid':pars[1], 'mdataFileLP':pars[2]})
|
print server.locstor.updateAudioClipMetadata({'sessid':pars[0], 'gunid':pars[1], 'mdataFileLP':pars[2]})
|
||||||
elif method=="searchMetadata":
|
elif method=="searchMetadata":
|
||||||
print server.locstor.searchMetadata({'sessid':pars[0], 'criteria':pars[1]})
|
# print server.locstor.searchMetadata({'sessid':pars[0], 'criteria':pars[1]})
|
||||||
|
print server.locstor.searchMetadata({'sessid':pars[0], 'criteria':{'type':'and', 'conds':['a', 'b']}})
|
||||||
elif method=="getAudioClip":
|
elif method=="getAudioClip":
|
||||||
r = server.locstor.getAudioClip({'sessid':pars[0], 'gunid':pars[1]})
|
r = server.locstor.getAudioClip({'sessid':pars[0], 'gunid':pars[1]})
|
||||||
print r['metadata']
|
print r['metadata']
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue