예제 #1
0
/**
 * Lists the correlation between the external network and the vcenter
 * network information.
 *
 * @throws VMware_VCloud_SDK_Exception
 */
function getExternalNetworkCorrelation()
{
    global $service;
    echo "\n---------------------------";
    echo "\nExternal Network Correlation";
    echo "\n---------------------------\n";
    // external network query
    $param = new VMware_VCloud_SDK_Query_Params();
    $param->setPageSize(128);
    $query = $service->getQueryService();
    $externalNetworkRecords = $query->queryRecords(VMware_VCloud_SDK_Query_Types::EXTERNAL_NETWORK, $param);
    if (!empty($externalNetworkRecords)) {
        $externalNetworkRecords = $externalNetworkRecords->getRecord();
        // iterate through the external network's
        foreach ($externalNetworkRecords as $externalNetworkRecord) {
            echo " " . $externalNetworkRecord->get_name() . "\n";
            // port group query to get the vcenter network information.
            $param = new VMware_VCloud_SDK_Query_Params();
            $param->setPageSize(128);
            $externalNetworkName = $externalNetworkRecord->get_name();
            $externalNetworkName = str_replace(" ", "%20", $externalNetworkName);
            $param->setFilter('networkName==' . $externalNetworkName);
            $query = $service->getQueryService();
            $portGroupResult = $query->queryRecords(VMware_VCloud_SDK_Query_Types::PORTGROUP, $param);
            if (!empty($portGroupResult)) {
                $portGroupRecords = $portGroupResult->getRecord();
                // iterate through the port group query result.
                foreach ($portGroupRecords as $portGroupRecord) {
                    // get the vcenter information.
                    try {
                        if (!empty($portGroupRecord)) {
                            $vc = $service->createSDKObj($portGroupRecord->get_vc());
                            echo "     (vCenter) " . $vc->getVimServer()->get_name() . "(";
                            echo $vc->getVimServer()->getUrl() . ")\n";
                        }
                    } catch (Exception $e) {
                        echo "     vCenter does not exist.\n";
                    }
                    echo "     (vCenter Network) ";
                    echo $portGroupRecord->get_moref() . "(";
                    echo $portGroupRecord->get_name() . ")\n";
                }
            }
        }
    }
}
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;
}