107 lines
4.0 KiB
PHP
107 lines
4.0 KiB
PHP
<?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;
|
|
|
|
}
|
|
}
|
|
|
|
?>
|