Category Archives: Virtualization

Why Virtual Machine Not Found?

I saw a new bug (Intermittent ManagedObjectNotFound on VirtualMachine.getConf) filed in the open source VI Java API project today:

It looks like sometimes VirtualMachine.getConfig() returns null, but other times it throws:
Caused by: java.lang.RuntimeException: com.vmware.vim25.ManagedObjectNotFound
at com.vmware.vim25.mo.ManagedObject.retrieveObjectProperties(ManagedObject.java:158)
at com.vmware.vim25.mo.ManagedObject.getCurrentProperty(ManagedObject.java:179)
at com.vmware.vim25.mo.VirtualMachine.getConfig(VirtualMachine.java:55)

As the vSphere API reference points out,

Also posted in vSphere API | Tagged , , | 2 Responses

Moving Virtual Machine Back From Distributed Virtual Switch

After blogging about moving virtual machines from a standard virtual switch to a distributed virtual switch, I saw a new question in VI Java API forum on how to roll it back. Technically, I don’t see any reason why one should switch back because using distributed virtual switch gives you a lot of benefits. But the decision is not mine but yours. Whatever you want to do, we help do it easily.

The method involved is

Also posted in vSphere API | Tagged , , , | 4 Responses

Is serverGuid Attribute Really Needed in vSphere?

If you have paid close attention to the SOAP messages recorded by Oynx, you may have noticed that there is an extra attribute called “serverGuid” in a ManagedObjectReference. The following is copied from my previous posting “Moving Virtual Machine to Distributed Virtual Switch”.

<_this xsi:type=”ManagedObjectReference” type=”VirtualMachine” serverGuid=”BA9CE658-75F7-4A99-ACE6-99EB1376B94A”>vm-134</_this>

Note that this SOAP request message is from a vSphere Client. In VIJava API or other language binding, there is no such an attribute. You may wonder,

Also posted in vSphere API | Tagged , , | Leave a comment

ManagedObjectReference vs ManagedObject

One of the most common confusions that a newcomer has while learning vSphere API is the ManagedObjectReference, a.k.a MOR. If you read the API Reference, you will find a lot of them. Recently there was a question poping in the open source VIJava API forum. So I think it is worth explaining it here.

There are two major types in the vSphere API: managed object types are for these objects on the server side only; and data object types for properties, parameters, and results, which can be send back and forth between client and server. The MOR is a data object type, but used to represent managed objects living on server side. If you are familiar with C/C++ programming, you can think of it as pointer in some sense. Even better,

Also posted in vSphere API | Tagged , | 28 Responses

Most Used API in vSphere

Yesterday I blogged about the least used API in VMware vSphere. This naturally leads to another question, “what is the most used API in vSphere?” It’s a harder question than the “least” one, because for the latter I can be very sure that zero is the lowest possible usage. If that API is not the least, it must be one of the least.

Before we try to figure out the answer, let’s clarify a bit the “most used.” Does it mean the one that is called the most times? Does it mean the one that is touched and used by most developers?

Also posted in vSphere API | Tagged , , | 1 Response

Least Used API in vSphere

Last week I was extremely busy working on the VI(vSphere) Java API 3.0 (codename: Crescendo) whose main theme to support the next release of vSphere. To my surprise, I caught on an API that should have been included in vSphere Java API 2.1 but somehow omitted. Even surprised to me is that no one has reported to me via our sourceforge.net tracker.

I think the conclusion can only be one –

Also posted in vSphere API | Tagged , , | 1 Response

Moving Virtual Machine to Distributed Virtual Switch

The distributed virtual switch introduced in vSphere 4 has many benefits over the traditional switch. For one thing, you no longer have possible glitches with live migrating virtual machines from one host to another using traditional switches, and all your port settings go with your virtual machines.

If you have virtual machines using traditional switches, you can easily move them to new distributed virtual switches. The rest of this article explains how to achieve this.

You can use the

Also posted in vSphere API | Tagged , , , | 3 Responses

Tagging: What’s the Alternative?

After my last post Tagging: An invisible feature in vSphere, William Lam quickly followed up with another post in his blog, arguing vSphere Tagging Feature Not So Invisible. He made his case by showing how you can actually add and remove tags using addTag() and removeTag() method via vSphere MOB. You can definitely play with your test environment, but please do not mess up with any existing tags in your production environment.

Although you can do that via MOB, it’s not the officially supported way (BTW, this should not be taken as show stopper. After all,

Also posted in vSphere API | Tagged , , | 5 Responses

Tagging: An Invisible Feature in vSphere

If you are familiar with social media or research papers, you must know tagging already – You use keywords to label an entity, be it a blog post, an article, or something else, so that it can be easily searched out. So it’s a very useful feature in managing information.

In vSphere 4.0, VMware added tagging capabilities to the managed entities. According to the API reference of 4.1, it’s still an experimental feature and

Also posted in vSphere API | Tagged , , , | 4 Responses

A Trick With OptionManager in vSphere API

There was recently a question in the open source VI Java API forum regarding the OptionManager. As you may have known, the OptionManager is used to manage key value pairs, for example, the “VMFS3.HardwareAcceleratedLocking” is a key as shown in the code included in the question. Somehow the code to set the key, as shown below, doesn’t work with com.vmware.vim25.InvalidArgument exception.

Also posted in vSphere API | Tagged , , , | Leave a comment

Recorded Tech Talks Are Ready!

After publishing the tech talk slides, I am happy to announce that the record is ready now. If you have missed the onsite or online session, or simply want to watch it again, please feel free to click here. Note that you will need Adobe Flash 10.1 or higher to view the recording.

Many thanks to my colleague Luke Kilpatrick (@lkilpatrick) for helping with online streaming and recording, and Matt Dhuyvetter for setting up the top quality audio feeds!

Also posted in vSphere API | Tagged , , , | Leave a comment

IT Automation: A Cognitive Perspective

Recently I stumbled at a book Things That Make Us Smart by one of my favorite authors Donald Norman. In the book, he shared many insights on the complex human machine interactions, “arguing for the development of machines that fit our minds, rather than minds that must conform to the machine.” By the way, I highly recommend his another book The Design of Everyday Things.

Because I just blogged about IT automation, I still have that topic on my mind. So when I read the book, I did quite a lot of reflective thinking around IT automation. In general, I feel

Also posted in Cloud Computing | Tagged , | 1 Response

A Powerless Feature in VMware vSphere

Distributed Power Management (DPM) is a powerful (powerless, really) feature can reduce host power consumption in a DRS cluster. It works in either manual mode or automatic mode only when DRS is enabled. DPM can place idle hosts into standby mode, or awaken them from standby when more resources are needed.

Like most of the features in vSphere, you can manage them with the APIs. A recent question at the open source vSphere Java API forum asks how to get hold of the DpmBehavior data object. This seems easy but

Also posted in vSphere API | Tagged , , , | Leave a comment

Tech Talk: Reflections on the vSphere Management API – Ease of Use and Consistency

This is the wrapping tech talk at our last community meetup by Jeff Hu who is the tech lead on vSphere APIs. Based on his 7 years of experience since the inception of vSphere API, Jeff shared his insights on the design of vSphere API, and what can be done for better ease of use and consistency. In my opinion, this is a must read for anyone who is interested in VMware management APIs.

Disclaimer: The presentation contains forwardlooking, exploratory ideas and should not be interpreted as a statement of official product direction by VMware.

Also posted in News & Events, vSphere API | Tagged , | Leave a comment

Tech Talk: vGhetto

This talk is by William Lam (@lamw) regarding his famous vGhetto project at our community meetup. Check out what vGhetto project is and what it means to you:

Also posted in News & Events, vSphere API | Tagged , , | Leave a comment

Tech Talk: Using VI Java from Scala

This talk is by Dave Briccetti (@dcbriccetti) who is an independent consultant working at VMware on vCloud related project. He is also a committer on the Lift framework for building Web applications in Scala.

Here is his slides:

Also posted in News & Events, vSphere API | Tagged , , | Leave a comment

Tech Talk: Accessing the Vsphere API from C/C++

This talk is by Steven Wong who is an architect working at EMC on various backup and virtualization projects. If you are using C or C++ with gSOAP to manage vSphere, this talk is for you.

Check it out below:

Also posted in News & Events, vSphere API | Tagged , , , | Leave a comment

Tech Talk: Automating Security in Dynamic Virtual Environments

This is the tech talk by Elsa Bignoli, who is now a Software Engineer at Altor Networks (part of Juniper now). Elsa is one of the contributors to our open source vSphere (VI) Java API.

Check out her presentation slides below:

Also posted in News & Events, vSphere API | Tagged , , | Leave a comment

Tech Talk: Massive VM Provisioning in the Cloud

This is the tech talk by Giridhar Padmanabh(@girip26), who is now a Sr. Manager at Cisco. He joined Cisco not long ago with the newScale acquisition. This tech talk draws on his 7 years of experience at newScale building industry leading software for delivering private cloud as a service.

Check out the slides below:

Also posted in Cloud Computing, News & Events, vSphere API | Tagged , , | Leave a comment

Tech Talk: Open Source VI Java API – State of the Union

We had a great community meetup last Wednesday. Check out this post for the photos. Thanks to the speakers, we have the tech talks slides ready for you. If you have missed the event last week, just check out these slides in PDF format. At the same time, we are working to make the recording available. So stay tuned for announcement.

Here is the talk is by me. I reviewed the history, current state, and future road map of the open source vSphere Java API. In the end, I also shared 3 success factors for

Also posted in News & Events, vSphere API | Tagged , | Leave a comment
  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.