Archive for October 2010
VCAP-DCA….Finally!
VMware has finally released the VCAP-DCA exam, and I was able to schedule it pretty fast (still not sure if that was good or bad with my work schedule). Unfortunately, you agree to an NDA for the exam, so I can not post detailed information from the exam, nor would I. Seriously, do not ask, and if you do, prepare to pay a $10 non-refundable fee for any answer you may get back in return.
Here are my thoughts after taking the exam. First, I felt a lot better about this exam than I did the VCP 4. Now if I passed, well, I won’t know that for another 10 days. Make that another stressful 10 days. It was a very fair exam. I think VMware did an excellent job with a 100% lab based exam. I will say that I did not finish the exam. Well I was close. I did skip a couple of questions because time was running short, mostly because I knew what the answer was, but did not know the exact parameter to configure. So I moved on.
So what can you do to prepare?
1. Build a lab.
2. Practice
3. Practice
4. Practice
Honestly, you will not pass this exam if you just study documentation. You need hands on work with vSphere. Why? It’s lab based and there is a time limit. There is no google to help you out. Either you know it, or you don’t. There is documentation available, but you will waste precious seconds if you have to continually look up commands.
Now if anyone knows people involved with the exam, please find out if they would like feedback on it and get their information to me. I was disappointed there wasn’t anything available after the exam was completed. I would have liked to provide feedback because there were some errors in questions, and some items just did not work. I hope this gets taken into account when the exam is scored.
Now to wait….
Using PHP5 SOAP with vSphere API
I will more blog later detailing better usage of PHP with vSphere API. This post is focused on how to use PHP5 Soap Client methods to interact with the vSphere API.
The vSphere API is SOAP based. First step is to download the WSDL from vCenter or the ESX(i) host. So how do we do this with PHP5?
First, we need a SOAP Client.
$connection = new SoapClient(“https://<hostname or ip/sdk/vimService.wsdl”, array(“trace” => 1, “location”=>”https://<hostname or ip>/sdk/”);
From this code snippet, we created a new SoapClient, $connection, set the location of the wsdl, set trace to 1 for debugging purposes, and set the location that we will send requests to. Next we need to create a SOAP message to send to the server.
$soapmsg[“_this”] = new SoapVar(“ServiceInstance”, XSD_STRING, “ServiceInstance”);
Basically every call to vSphere API will require a “_this” key. Most calls will require more information. From this code snippet, we are creating an array with a “_this” key and setting a SoapVar with data of “ServiceInstance” and type of “ServiceInstance”. Now, we are going to retrieve the Service Instance.
$result = $connection->RetrieveServiceContent($soapmsg);
And what do we get? Definitely not the result we were expecting. With trace enabled, we can actually view the SOAP request that was made to the server.
var_dump($connection->__getLastRequest());
What is the problem with the SOAP request? Well, PHP5 SOAP function sets the type of the SOAP message as “xsi:type”. The vSphere API expects a type of just “type”. How do we fix this? We must create our own class that extends SoapClient and overrides the __doRequest method. Here, we can strip “xsi:” out of the request and send the vSphere API the request it is expecting.
class mySoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
$request = str_replace(“xsi:”, “”, $request);
return parent::__doRequest($request, $location, $action, $version);
}
}
After altering the request, we can now successfully retrieve the Service Instance from the vSphere API.