You can use vMA to write or convert agents.

You can write a new agent in Perl in the following situations.

When a partner or customer writes a new agent in Perl, the Perl script must import the VmaTargetLib Perl module and all VMware vSphere SDK for Perl modules. Instead of calling the VMware vSphere SDK for Perl subroutine Util::Connect(targetUrl, user name, password), the agent calls VmaTargetLib::VmaTarget.login().

A partner or customer runs an agent written in Perl or Java in the service console and wants to port the agent to vMA.

The agent uses code similar to the following Perl-like pseudo code to log in to VMware ESXi hosts:

LoginToMyEsx() {
SessionManagerLocalTicket tkt = SessionManager.AcquireLocalTicket(userName);
UserSession us = sm.login(tkt.userName, tkt.passwordFilePath);
}

The partner changes the agent to use code similar to the following pseudo-code instead:

LoginToMyEsx(String myESXName) {
VmaTarget target = VmaTargetLib.query_target(myESXName);
UserSession us = target.login();
}

This pseudo-code assumes only one vMA target. For multiple target servers, the code can specify any target server or loop through a list of target servers.