Archive

Archive for the ‘Virtualization’ Category

vCenter Server Linked Mode: An API Perspective

May 4th, 2011 1 comment

A new feature called vCenter Linked Mode has been introduced in vSphere 4. It allows several vCenter servers to form a linked mode group. When you connect to any of the vCenter server via vSphere Client, you see all of them behind a single pane of glass.

I got questions from time to time, “what does it mean for vSphere API?” More specifically, if you connect to one vCenter in a linked mode group, will you “see” all of them? If not, how can vSphere Client achieve that?

New Licensing APIs Since VMware vSphere 4: Check License Expiration

May 4th, 2011 No comments

In my previous blog, I introduced the new licensing APIs since vSphere 4. As promised, I will write samples showing how to use the APIs.

Here is the first sample (stay tuned to next one, coming soon). What it does is to check the licenses in vCenter server for their expiration dates, and print them out in the console. You can of course save them into other format, say an CSV file so that you can use Excel to further analyze it. To run the sample, you must change the IP address to the vCenter server, the username/password, as would with most VI Java API samples.

Note that a license could be an

New Licensing APIs Since VMware vSphere 4

May 1st, 2011 3 comments

There has been a total change in vSphere licensing model since version 4. Before that, you need a special/dedicated licensing server which may be more flexible/powerful but also cause many troubles in production environment which made licensing related issues one of the top categories in tech support.

vSphere 4 has dramatically simplified the whole licensing model, and removed the licensing server. To find out how the new licensing model works, check out the VMware vSphere 4 Licensing Guide. It covers both the vSphere side and the portal with which you can easily manage your license keys: splitting/combining, etc. This article does not cover the portal part but related APIs only.

Management APIs reflect product features. If you check the latest API reference, you will find out

Mark Your Calendar For Our First Community Event

April 13th, 2011 7 comments

After I touted the idea to have a meetup last week, I got quite positive feedbacks from the community. More importantly, I secured sponsorship from my employer VMware so that we can have the event at VMware headquarter. Due to a little time conflict, we will have it on May 18, instead of May 25 as I planned before. It’s still a Wednesday and food/drinks will be served with no charge.

This event was designed for professionals like developers, system administrators. Even if you are not but interested in virtualization and cloud computing in general, you are still very welcome to join us.

The first 100 registers for onsite will have chance to win

Introducing vSphere Guest API

April 11th, 2011 1 comment

If you want to read information about a virtual machine from the guest OS running on it, the vSphere Guest API is for you. It’s a C library coming with VMware Tools. Unlike the vSphere API which can be used anywhere, the vSphere Guest API is only available in the guest OS.

High Level Characteristics

  • It’s read only. You can use it to retrieve state and performance of a virtual machine running on ESX, but you can NOT
Categories: vSphere API Tags: , , ,

Features Not Exposed in vSphere Client but vSphere APIs

April 6th, 2011 10 comments

If you think vSphere Client exposes everything, you are wrong. The vSphere APIs actually expose more features than the vSphere Client, which is a great product. This is one reason why system administrators should learn vSphere APIs.

While writing my book, for example, I noticed that vSphere APIs actually allow you to change guest OS screen size with a simple call setScreenResolution(int width, int height).

Given the time pressure, I didn’t summarize these API only features at that time. To be honest,

VI Java API Community Meetup?

April 5th, 2011 10 comments

By this May, the open source VI Java API will turn 3 year old. While there is a big community out there, we haven’t organized any event for people to meet each other in person.

I think now is a good time to do so. How about a meet up in the silicon valley around May 25(Update: 18 as new date) which is a Wednesday?

Agenda

  1. 6:30PM-7PM. Reception and Networking.

Virtual Machine Roaming in the Cloud

March 28th, 2011 No comments

If you have a mobile phone and travel to other areas or countries, you can still use it to make and receive a call. Your phone number does not change. This is called roaming in the wireless telecommunications.

In the cloud environment, your virtual machine can “travel” around as well, maybe from one datacenter to another, from your enterprise to one of your service providers or the other way around, or from one service provider to another.

It’s relatively easy for a virtual machine

Introducing VMware vCenter Chargeback API

March 22nd, 2011 No comments

Chargeback is an important feature for computing infrastructures. Even inside an enterprise where IT users are not charged with real money, it’s still nice to see the usage patterns and sometimes avoid wasting resources. As I mentioned in IBM RC2, applying chargeback reduced unnecessary usage overnight.

VMware vCenter Chargeback is a component for this purpose. It can run standalone with Web GUI, and surface to vSphere Client as a plug-in. Although its name includes vCenter, it can also work with vCloud Director (see Using vCenter Chargeback with VMware Cloud Director).

I just spent some time over the weekend reading the API documentation, including vCenter Chargeback API Programming Guide, API Reference. The version 1.5 of the API

Finding out Guest OS Running on a Virtual Machine

March 18th, 2011 5 comments

 

 

VMware ESX and ESXi (a.k.a. vSphere Hypervisor) support the most guest operating systems among all the hypervisors. From the vSphere API, you can determine what operating system is installed on a virtual machine.

The related managed object is the VirtualMachine and there are multiple ways to

Two Developers in VMware Community

March 9th, 2011 No comments

Many folks talk about developer enablement today because it’s a key success factor for a platform company. If you haven’t watched this video by Microsoft CEO Steve Ballmer, you want to check it out. Also, my previous blog: CO2: The Formula For A Successful Developer Ecosystem.

To empower developers, we got to figure out who the developers are and what they want. It’s hard, if ever possible, to identify every developer in VMware community. But it’s normally easy to find out the types of the developers. In my observation, there are two types of developers (The title of this article is not that accurate, but

Released: VMware vSphere API and SDK FAQ

March 6th, 2011 25 comments

After working on this for weeks, I am pleased to announce the first release of VMware vSphere API and SDK Frequently Asked Questions. It includes 70+ questions and trustable answers in 6 different categories: General, Getting Started, Language Bindings, VI Java API, API Usage, Troubleshooting.

From now on, before posting any question to any forum please read this FAQ page. For the best readability, I decided not to allow comments on that page. But your feedbacks and suggestions are always important. Please feel free to use this post for comments and discussions. Based on your inputs, I will continue to enhance the FAQs.

Categories: vSphere API Tags: , , ,

How to Get a Managed Object With Its ID Like task-id?

March 3rd, 2011 1 comment

The open source VI Java API has implemented typing which makes it much easier to use and possible to catch errors in compile time. To use these types, you have to get hold of these objects. Normally you don’t need to worry about this because you navigate the system from the top ServiceInstance and get the managed objects through VI Java API calls.

There are some rare cases in which you get the object id first, for example, a task id as asked in the VI Java API forum. A bit more common case is when you develop vSphere Client plug-ins. The URL string your web application gets has object id and type for a virtual machine or host, etc.

Although coming from different use cases,

Categories: vSphere API Tags:

How to Set up Connection Timeout in VI Java API

March 2nd, 2011 13 comments

Per community requests, two methods were added into VI Java API 2.1 (GAed last summer) for changing the default connection and read timeouts. Both methods are defined in WSClient.java.

The first method setConnectTimeout() sets a specified timeout in milliseconds. It intends to be used when opening a communications link to the resource referenced by the URLConnection inside the WSClient object. If the timeout expires before the connection can be established, a java.net.SocketTimeoutException is raised. A timeout of zero is interpreted as an infinite timeout.

The second method setReadTimeout()

Categories: vSphere API Tags:

How to Set Up Proxy With VI Java API?

February 27th, 2011 No comments

It’s common for companies to proxy HTTP traffics to external Web site, but not so for internal sites. Therefore, you rarely need to set up proxy for using vSphere API calls with an internal vCenter server. The uncommon cases do come up sometimes. This post explains how to set it up for vSphere API. Note that this is not really for VI Java API only but applicable for all Java applications.

There are two options and you can pick either of them per your use case:

Categories: vSphere API Tags: ,

Welcome Cisco to Open Source VI Java Community

February 23rd, 2011 No comments

It gives me great pleasure to welcome Cisco to our open source community. Given the brand recognition of Cisco, I don’t need to explain much about the significance of its becoming part of our community.

At the end of 2009, a development team at Cisco contacted me, and then started to use the VI Java API for integration with VMware vSphere. Like many other partners, they succeeded. Here is a paragraph I received from Andrew Levin (product manager) and Louis Jia (development manager). Thanks Andrew and Louis!

Introducing VMware vShield REST API

February 22nd, 2011 6 comments

One of my colleagues asked me about vShield API and pointed me to the vShield API Programming Guide. I have of course heard about the vShield many times, but haven’t tried it out, let alone its API. But that doesn’t mean I cannot read it on demand. In fact, such questions motivate me to learn more beyond vSphere API. So keep your questions coming if you have one.

Here is what I found out after reading the programming guide. I have to admit I haven’t written any code connecting to a vShield test-bed, so I just share some basics of the API. Overall I found it’s similar to the vCloud API that I had worked with before in format and protocol.

Somehow the API does not, but I think should,

vSphere SDK Compatibility

February 21st, 2011 No comments

Last week an issue was reported with using vSphere SDK 4.1 to connect vSphere 4.0. The problem is related to the HTTP header called “SOAPAction” introduced in vSphere SDK 4.0. A recent KB article introduced this header, but with a minor error. I will talk about it in the end.

With vSphere SDK 4.1, the SOAPAction header has a value of “urn:vim25/4.1” while 4.0 has “urn:vim25/4.0”. For an older version of vSphere server, either vCenter or ESX/ESXi, it has no idea of the new value of SOAPAction, therefore refuse to serve. But the other way around works just fine because the newer version of vSphere knows about the older value but also support the older version of SDK directly. As a result, any application using older version of SDK works with newer version of vSphere. I am not saying your application can leverage new features. In fact, you cannot and must upgrade to do so.

From the SDK part, I found it’s a little disturbing when your newer SDK cannot work with older vSphere. We all expert newer SDK are better and back compatible. That is why

Introducing PowerShell CLIs for VMware View

February 16th, 2011 2 comments

Two weeks ago when I twitted about VMware View APIs, several folks asked me if and where they could find View APIs. While VMware does not provide a full set of APIs, but does offer PowerShell based CLI as documented in the VMware View Integration Guide.

Beyond that, the guide also introduces the event database with tables and schemas so that you can retrieve various events from the database directly; how to import/export LDAP data to/from View; and how to “use Microsoft System Center Operations Manager (SCOM) to monitor the state of VMware View components, including View Connection Server instances and security servers and View services running on these hosts.”

While trying the PowerShell CLI,

Categories: Virtualization Tags: , ,

How to Enable or Disable Copy and Paste to Remote VM Console?

February 14th, 2011 No comments

In my previous post, I introduced how to change a virtual machine’s vmx file programmatically and promised to post a full sample in my presentation at VMware Parter Exchange 2011. Now that the conference is over, it’s time to post it.

The sample is based on guideline VMX03 in vSphere security hardening guide: disable copy/paste to remote console. To me, allowing copy and paste to remote console like vSphere Client is a nice feature which can save you a lot of time. When security is a concern, however, you may want to disable it.

I will not discuss when you should disable/enable it because it really depends on your requirements. In most cases, security and convenience contradict with each other. I leave it for you to decide the right balance, but show you how you can check the setting and change it here.

Like most samples I write,