예제 #1
0
 /**
  * Retrieves all organization vDCs for the given provider vDC.
  *
  * @return array|null An array of VMware_VCloud_API_ReferenceType or null.
  * @since Version 1.5.0
  */
 public function getVdcRefs($name = null)
 {
     $url = $this->url . '/vdcReferences';
     $refs = $this->svc->get($url);
     return VMware_VCloud_SDK_Helper::getObjsByName($refs->getVdcReference(), $name);
 }
예제 #2
0
 /**
  * Get download URL of an iso or floppy media.
  *
  * @param array VMware_VCloud_API_FileType object array $files
  * @return string  an iso media URL
  * @access private
  * @since API Version 5.5.0
  * @since SDK Version 5.5.0
  */
 private function getDownloadMediaUrl($files)
 {
     $refs = VMware_VCloud_SDK_Helper::getContainedLinks(null, 'download:default', $files[0]);
     if (1 == count($refs)) {
         return $refs[0]->get_href();
     }
 }
예제 #3
0
function getEntityLink($rel, $obj, $method = 'getEntityLink')
{
    $links = VMware_VCloud_SDK_Helper::getContainedLinks(null, $rel, $obj, $method);
    return 1 == count($links) ? $links[0] : null;
}
예제 #4
0
     $refs = $sdkExt->getVMWExternalNetworkRefs();
     if (0 == count($refs)) {
         exit(0);
     }
     foreach ($refs as $ref) {
         echo "href=" . $ref->get_href() . " type=" . $ref->get_type() . " name=" . $ref->get_name() . "\n";
     }
     exit(0);
 }
 // create a reference to the vim server
 $vimRefs = $sdkExt->getVimServerRefs($vimName);
 if (0 == count($vimRefs)) {
     exit("No vim server with {$vimName} is found!\n");
 }
 $vimRef = $vimRefs[0];
 $vimRef = VMware_VCloud_SDK_Helper::createReferenceTypeObj($vimRef->get_href());
 // create a reference to the portgroup
 $vmPGRef = new VMware_VCloud_API_Extension_VimObjectRefType();
 $vmPGRef->setVimServerRef($vimRef);
 $vmPGRef->setMoRef($netMoRef);
 $vmPGRef->setVimObjectType('DV_PORTGROUP');
 // set IP range
 $ipRange = new VMware_VCloud_API_IpRangeType();
 $ipRange->setStartAddress($startAddr);
 $ipRange->setEndAddress($endAddr);
 $ipRanges = new VMware_VCloud_API_IpRangesType();
 $ipRanges->setIpRange(array($ipRange));
 // set network configuration
 $ipScope = new VMware_VCloud_API_IpScopeType();
 $ipScope->setIsInherited(false);
 $ipScope->setGateway($gateway);
예제 #5
0
 /**
  * Get references of all organization data objects or an organization data
  * object by its name in VMware vCloud Director. This function retrieves
  * organization references from server. User can also use the response of
  * the login() function call to get a list of the organization references.
  *
  * @param string $name   Name of the organization. If null, returns all.
  * @return array         VMware_VCloud_API_ReferenceType object array
  * @since Version 1.0.0
  */
 public function getOrgRefs($name = null)
 {
     $url = $this->baseUrl . '/org/';
     $refs = $this->get($url)->getOrg();
     return VMware_VCloud_SDK_Helper::getObjsByName($refs, $name);
 }
예제 #6
0
 }
 $vm = null;
 foreach ($vms as $v) {
     if ($vmName == $v->get_name()) {
         $vm = $v;
         break;
     }
 }
 $vappTemplateVM = $vm;
 $vmRef1 = VMware_VCloud_SDK_Helper::createReferenceTypeObj($vm->get_href());
 $sdkNet = $sdkVdc->getAvailableNetworks($orgVdcNetName);
 if (0 == count($sdkNet)) {
     exit("Specified organization '{$orgName}' does not have organization " . "network '{$orgVdcNetName}' configured\n");
 }
 $sdkNet = $sdkNet[0];
 $netRef = VMware_VCloud_SDK_Helper::createReferenceTypeObj($sdkNet->get_href(), 'reference', $sdkNet->get_type(), $sdkNet->get_name());
 $conf = $sdkNet->getConfiguration();
 $info = new VMware_VCloud_API_OVF_Msg_Type();
 $info->set_valueOf("Configuration parameters for logical networks");
 $netconf = new VMware_VCloud_API_VAppNetworkConfigurationType();
 $netconf->set_networkName($vappNetConfig->get_networkName());
 $netconf->setConfiguration($conf);
 $netconf->getConfiguration()->setParentNetwork($netRef);
 $section = new VMware_VCloud_API_NetworkConfigSectionType();
 $section->setInfo($info);
 $section->setNetworkConfig(array($netconf));
 $iparams = new VMware_VCloud_API_InstantiationParamsType();
 $iparams->setSection(array($section));
 /**
  * VM and its Nic settings.
  */
 /**
  * Send an HTTP DELETE request.
  *
  * @param string $url      URL to send an HTTP request
  * @param int    $expect   Expected HTTP status code on a successful request
  * @return VMware_VCloud_API_TaskType|null
  * @throws VMware_VCloud_SDK_Exception
  * @since Version 1.0.0
  */
 public function delete($url, $expect = null)
 {
     $response = $this->httpClient->delete($url);
     $code = $response->getStatus();
     $body = $response->getBody();
     $responseHeaders = $response->getHeader();
     $status = $response->getReasonPhrase();
     $file = $this->getLogger();
     $file->log("Delete Request URL: {$url}", PEAR_LOG_INFO);
     $file->log("Status Code: {$code}", PEAR_LOG_INFO);
     $file->log("Status: {$status}", PEAR_LOG_INFO);
     $file->log("Response Header: " . var_export($responseHeaders, true), PEAR_LOG_DEBUG);
     $file->log("Response: {$body}", PEAR_LOG_DEBUG);
     if (isset($expect) && $expect != $code) {
         throw new VMware_VCloud_SDK_Exception("DELETE {$url} failed, " . "error code: {$code}, error: {$body}\n");
     }
     return VMware_VCloud_SDK_Helper::getObjByXML($body);
 }
예제 #8
0
    }
}
if ($flag == true) {
    if (!isset($certPath)) {
        echo "\n\nIgnoring the Certificate Validation --Fake certificate - DO NOT DO THIS IN PRODUCTION.\n\n";
    }
    // login
    $service = VMware_VCloud_SDK_Service::getService();
    $service->login($server, array('username' => $user, 'password' => $pswd), $httpConfig, $sdkversion);
    if (true === $list) {
        $orgRefs = $service->getOrgRefs($orgName);
        if (0 == count($orgRefs)) {
            exit("No organization with {$orgName} is found\n");
        }
        $org = $service->get($orgRefs[0]->get_href());
        $links = VMware_VCloud_SDK_Helper::getContainedLinks('vdc', 'down', $org, $method = 'getLink');
        if (0 < count($links)) {
            foreach ($links as $ref) {
                echo "href=" . $ref->get_href() . " type=" . $ref->get_type() . " name=" . $ref->get_name() . "\n";
            }
        }
        exit(0);
    }
    // create an SDK Admin object
    $sdkAdmin = $service->createSDKAdminObj();
    // get references to administrative organization entities
    $adminOrgRefs = $sdkAdmin->getAdminOrgRefs($orgName);
    if (0 == count($adminOrgRefs)) {
        exit("No organization with {$orgName} is found\n");
    }
    $adminOrgRef = $adminOrgRefs[0];
예제 #9
0
 /**
  * Get subset links of a VMware vCloud data object, filtered by 'type'
  * and/or 'rel' attributes. If a link with specified filter (using $ctype or
  * $rel or both) does not exist, this means the desired opertion is not
  * allowed on that resource entity.
  *
  * @param string $ctype  The 'type' attribute of an XML element to filter
  * @param string $rel    The 'rel' attribute of an XML element to filter
  * @return array|null    VMware_VCloud_API_LinkType object array or null
  * @since Version 1.0.0
  */
 protected function getContainedLinks($ctype = null, $rel = null)
 {
     return VMware_VCloud_SDK_Helper::getContainedLinks($ctype, $rel, $this->getDataObj());
 }
        $errMessage = VMware_VCloud_SDK_Helper::getObjByXml($e->getMessage());
        echo $errMessage->get_majorErrorCode() . ' : ' . $errMessage->get_message() . "\n";
    }
    // client 1 and client 2 performing operation after logout.
    try {
        echo "\n\n VcloudClient 1 \n";
        echo "\n " . $vcloudClient1->createSDKAdminObj()->getVCloud()->getDescription();
    } catch (Exception $e) {
        $errMessage = VMware_VCloud_SDK_Helper::getObjByXml($e->getMessage());
        echo " " . $errMessage->get_majorErrorCode() . ' : ' . $errMessage->get_message() . "\n";
    }
    try {
        echo "\n VcloudClient 2\n";
        echo "\n " . $vcloudClient2->createSDKAdminObj()->getVCloud()->getDescription();
    } catch (Exception $e) {
        $errMessage = VMware_VCloud_SDK_Helper::getObjByXml($e->getMessage());
        echo " " . $errMessage->get_majorErrorCode() . ' : ' . $errMessage->get_message() . "\n";
    }
} else {
    echo "\n\nLogin Failed due to certification mismatch.";
    return;
}
function usage()
{
    echo "Usage:\n\n";
    echo "  [Description]\n";
    echo "     This sample illustrates the session management capabilities using the VcloudClient.\n";
    echo "\n";
    echo "  [Usage]\n";
    echo "     # php sessionmanagement.php -s <server> -u <username> -p <password> -v <sdkversion> [Options]\n";
    echo "\n";
 /**
  * Send an HTTP DELETE request.
  *
  * @param string $url      URL to send an HTTP request
  * @param int    $expect   Expected HTTP status code on a successful request
  * @return VMware_VCloud_API_TaskType|null
  * @throws VMware_VCloud_SDK_Exception
  * @since Version 1.0.0
  */
 public function delete($url, $expect = null)
 {
     $response = $this->httpClient->delete($url);
     $code = $response->getStatus();
     $body = $response->getBody();
     if (isset($expect) && $expect != $code) {
         throw new VMware_VCloud_SDK_Exception("DELETE {$url} failed, " . "error code: {$code}, error: {$body}\n");
     }
     return VMware_VCloud_SDK_Helper::getObjByXML($body);
 }