/usr/share/php/irods/prods/src/ProdsQuery.class.php is in php-irods-prods 3.3.0~beta1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | <?php
/**
* ProdsQuery class.
*
* This class provides high level PRODS queries, which aren't specific
* to a path, account or resource.
* @author Sifang Lu <sifang@sdsc.edu>
* @copyright Copyright © 2007, TBD
* @package Prods
*/
require_once("autoload.inc.php");
class ProdsQuery
{
public $account;
public function __construct(RODSAccount $account)
{
$this->account = $account;
}
/**
* Get all user defined metadata names for all files on the server.
* @return array of strings (metadata names).
*/
public function getMetadataNamesForAllFiles()
{
$flds = array("COL_META_DATA_ATTR_NAME" => NULL);
$select = new RODSGenQueSelFlds(array_keys($flds), array_values($flds));
$condition = new RODSGenQueConds();
$condition->add('COL_D_DATA_ID', '>=', '0');
$conn = RODSConnManager::getConn($this->account);
$results = $conn->query($select, $condition);
RODSConnManager::releaseConn($conn);
if ($results->getNumRow() < 1)
return array();
else {
$values = $results->getValues();
return $values['COL_META_DATA_ATTR_NAME'];
}
}
/**
* Get all user defined metadata names for all directories(collections) on the server.
* @return array of strings (metadata names).
*/
public function getMetadataNamesForAllDirs()
{
$flds = array("COL_META_COLL_ATTR_NAME" => NULL);
$select = new RODSGenQueSelFlds(array_keys($flds), array_values($flds));
$condition = new RODSGenQueConds();
$condition->add('COL_COLL_ID', '>=', '0');
$conn = RODSConnManager::getConn($this->account);
$results = $conn->query($select, $condition);
RODSConnManager::releaseConn($conn);
if ($results->getNumRow() < 1)
return array();
else {
$values = $results->getValues();
return $values['COL_META_COLL_ATTR_NAME'];
}
}
/**
* Get all resources registered on the server
* @return array with fields: id, name, type, zone, class, loc, info, comment, ctime, mtime, vault_path, free_space. If user not found return empty array.
*/
public function getResources()
{
// set selected value
$flds = array("COL_R_RESC_ID" => NULL, "COL_R_RESC_NAME" => NULL,
"COL_R_ZONE_NAME" => NULL, "COL_R_TYPE_NAME" => NULL,
"COL_R_CLASS_NAME" => NULL, "COL_R_LOC" => NULL,
"COL_R_VAULT_PATH" => NULL, "COL_R_FREE_SPACE" => NULL,
"COL_R_RESC_INFO" => NULL, "COL_R_RESC_COMMENT" => NULL,
"COL_R_CREATE_TIME" => NULL, "COL_R_MODIFY_TIME" => NULL);
$select = new RODSGenQueSelFlds(array_keys($flds), array_values($flds));
$condition = new RODSGenQueConds();
$conn = RODSConnManager::getConn($this->account);
$results = $conn->query($select, $condition);
RODSConnManager::releaseConn($conn);
$result_vals = $results->getValues();
$retval = array();
for ($i = 0; $i < $results->getNumRow(); $i++) {
$retval_row = array();
$retval_row['id'] = $result_vals["COL_R_RESC_ID"][$i];
$retval_row['name'] = $result_vals["COL_R_RESC_NAME"][$i];
$retval_row['type'] = $result_vals["COL_R_TYPE_NAME"][$i];
$retval_row['zone'] = $result_vals["COL_R_ZONE_NAME"][$i];
$retval_row['class'] = $result_vals["COL_R_CLASS_NAME"][$i];
$retval_row['loc'] = $result_vals["COL_R_LOC"][$i];
$retval_row['info'] = $result_vals["COL_R_RESC_INFO"][$i];
$retval_row['comment'] = $result_vals["COL_R_RESC_COMMENT"][$i];
$retval_row['ctime'] = $result_vals["COL_R_CREATE_TIME"][$i];
$retval_row['mtime'] = $result_vals["COL_R_MODIFY_TIME"][$i];
$retval_row['vault_path'] = $result_vals["COL_R_VAULT_PATH"][$i];
$retval_row['free_space'] = $result_vals["COL_R_FREE_SPACE"][$i];
$retval[] = $retval_row;
}
return $retval;
}
}
?>
|