function queryRecord($type, $filter, $field, $sortType, $sortField, $pgSize)
{
    $queryParams = new VMware_VCloud_SDK_Query_Params();
    if (isset($filter)) {
        $queryParams->setFilter($filter);
    }
    if (isset($field)) {
        $queryParams->setFields($field);
    }
    if (isset($sortType)) {
        if (isset($sortField) && $sortType == "a") {
            $queryParams->setSortAsc($sortField);
        } else {
            $queryParams->setSortDesc($sortField);
        }
    }
    if (isset($pgSize)) {
        $queryParams->setPageSize($pgSize);
    } else {
        $queryParams->setPageSize(128);
    }
    // look for record types only
    $queryFormat = "Records";
    $qr = "query{$queryFormat}";
    $recObj = $GLOBALS['sdkQuery']->{$qr}($type, $queryParams);
    $records = $recObj->getRecord();
    return $records;
}
예제 #2
0
/**
 * Lists the correlation between the datastore and the vcenter.
 *
 * @throws VMware_VCloud_SDK_Exception
 */
function getDatastoreCorrelation()
{
    global $service;
    echo "\n---------------------";
    echo "\nDatastore Correlation";
    echo "\n---------------------\n";
    // datastore query
    $param = new VMware_VCloud_SDK_Query_Params();
    $param->setPageSize(128);
    $query = $service->getQueryService();
    $datastoreResult = $query->queryRecords(VMware_VCloud_SDK_Query_Types::DATASTORE, $param);
    if (!empty($datastoreResult)) {
        $records = $datastoreResult->getRecord();
        // iterate through the datastores
        foreach ($records as $record) {
            echo " " . $record->get_name() . "(" . $record->get_datastoreType() . ")\n";
            try {
                if (!is_null($record->get_vc())) {
                    $vc = $service->createSDKObj($record->get_vc());
                    echo "     (vCenter) " . $vc->getVimServer()->get_name() . "(";
                    echo $vc->getVimServer()->getUrl() . ")\n";
                }
            } catch (Exception $e) {
                echo "     vCenter does not exist.\n";
            }
            echo "     (Datastore)" . $record->get_moref() . "(" . $record->get_name() . ")\n";
        }
    }
}
    }
}
// parameters validation
if (!isset($server) || !isset($user) || !isset($pswd)) {
    echo "Error: missing required parameters\n";
    usage();
    exit(1);
}
// login
$service = VMware_VCloud_SDK_Service::getService();
$service->login($server, array('username' => $user, 'password' => $pswd), $httpConfig);
// create an SDK Query object
$sdkQuery = VMware_VCloud_SDK_Query::getInstance($service);
$qm = "queryRecords";
$type = "adminVM";
$params = new VMware_VCloud_SDK_Query_Params();
$params->setSortAsc('name');
$params->setPageSize(128);
$recsObj = $sdkQuery->{$qm}($type, $params);
// table to store output
$tbl = new Console_Table();
$tbl->setHeaders(array('VirtualMachine', 'vApp', 'vAppTemplate', 'vCenter Server', 'VM MoRef', 'ChainLength'));
// array to store URL pages
$pageUrls = array();
// retrieve all pages
getPages($recsObj->get_href());
foreach ($pageUrls as $url) {
    // GET operation on URL
    $record = $service->get($url);
    // query all adminVM using query service
    foreach ($record->getRecord() as $vm) {