function getCloudService($jsonParams)
 {
     $arg1 = 'providername';
     $accountprovider = $jsonParams->{$arg1};
     loghandler(INFO, "Connecting to provider:" . $accountprovider);
     $arg10 = 'cloudproviders';
     $cloudproviders = $jsonParams->{$arg10};
     $providerArray = json_decode($cloudproviders);
     $password = $providerArray->{$accountprovider}->password;
     $serverurl = "server name";
     $server = $providerArray->{$accountprovider}->{$serverurl};
     $username = "******";
     $user = $providerArray->{$accountprovider}->{$username};
     $this->orgName = $providerArray->{$accountprovider}->Organisation;
     $datacenter = "Data center";
     $this->vdc = $providerArray->{$accountprovider}->{$datacenter};
     // Initialize parameters
     $httpConfig = array('ssl_verify_peer' => false, 'ssl_verify_host' => false);
     $sdkversion = "5.5";
     $auth = array('username' => $user, 'password' => $password);
     // Create a service object";
     $service = VMware_VCloud_SDK_Service::getService();
     try {
         // Login to the service portal, parameters are set from command line
         $service->login($server, $auth, $httpConfig, $sdkversion);
         $serv = new VMWareService();
         $serv->setService($service);
         $serv->setOrganisation($this->orgName);
         $serv->setDataCenter($this->vdc);
         $serv->setProviderName($accountprovider);
         return $serv;
     } catch (Exception $se) {
         $message = $se->getMessage();
         trigger_error($message, E_USER_ERROR);
     }
     return null;
 }
    }
    // compare two certificate as string
    if (strcmp($encodeddata1, $encodeddata2) == 0) {
        echo "\n\nValidation of certificates is successful.\n\n";
        $flag = true;
    } else {
        echo "\n\nCertification Failed.\n";
        $flag = false;
    }
}
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);
    // create an SDK Org object
    $orgRefs = $service->getOrgRefs($orgName);
    if (0 == count($orgRefs)) {
        exit("No organization with name {$orgName} is found\n");
    }
    $orgRef = $orgRefs[0];
    $sdkOrg = $service->createSDKObj($orgRef);
    // create an SDK vDC object
    $vdcRefs = $sdkOrg->getVdcRefs($vdcName);
    if (0 == count($vdcRefs)) {
        exit("No vDC with name {$vdcName} is found\n");
    }
    $vdcRef = $vdcRefs[0];
    $sdkVdc = $service->createSDKObj($vdcRef);
 /**
  * Get a class name of an SDK object from a URI of a VMware
  * vCloud resource entity or the entry point of resource entity.
  *
  * @param VMware_VCloud_SDK_Service $svc
  * @param string $url    URL of the resource entity or the entry point
  * @return string|null
  * @access private
  */
 private static function getClassnameByUrl($svc, $url)
 {
     $urlMap = self::$urlMap;
     $baseUrl = $svc->getBaseUrl();
     $rest = substr($url, strlen($baseUrl) + 1);
     $restArr = explode('/', $rest);
     if (preg_match('/^vm-|vapp-|vappTemplate-/', end($restArr), $matches)) {
         $key = substr_replace($matches[0], '', -1);
     } else {
         if (!preg_match('/^admin|extension$/', end($restArr))) {
             array_splice($restArr, count($restArr) - 1);
             //remove id
         }
         $key = implode('/', $restArr);
     }
     $className = "VMware_VCloud_SDK_{$urlMap[$key]}";
     return class_exists($className) ? $className : null;
 }
 /**
  * Get a resource URL from its vCloud entity ID.
  *
  * @param VMware_VCloud_SDK_Service $service
  * @param string $eid  vCloud entity ID
  * @return string|null
  * @since Version 1.5.0
  */
 public static function getUrlByEntityId($service, $eid)
 {
     $url = $service->getBaseUrl() . '/entity/' . $eid;
     $entity = $service->get($url);
     $links = self::getContainedLinks(null, 'alternate', $entity);
     if (1 == count($links)) {
         return $links[0]->get_href();
     }
     return null;
 }
    // compare two certificate as string
    if (strcmp($encodeddata1, $encodeddata2) == 0) {
        echo "\n\nValidation of certificates is successful.\n\n";
        $flag = true;
    } else {
        echo "\n\nCertification Failed.\n";
        $flag = false;
    }
}
if ($flag == true) {
    if (!isset($certPath)) {
        echo "\n\nIgnoring the Certificate Validation --Fake certificate - DO NOT DO THIS IN PRODUCTION.\n\n";
    }
    // vCloud login
    $vcloudClient1 = VMware_VCloud_SDK_Service::getService();
    $vcloudClient2 = VMware_VCloud_SDK_Service::getService();
    echo "Note 1 : Every Authenticated VcloudClient instance gets a seperate token";
    // client 1 login
    try {
        $vcloudClient1->login($server, array('username' => $user, 'password' => $pswd), $httpConfig, $sdkversion);
        echo "\n\n VcloudClient 1\n";
        echo " Login Successful\n";
        echo " Token - " . $vcloudClient1->getToken();
        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";
    }
    // client 2 login
    try {
        $vcloudClient2->login($server, array('username' => $user, 'password' => $pswd), $httpConfig, $sdkversion);