VMObjectsNames = [];
var retry = 3;
var undef = false;
while (retry > 0)
{
vcs = VcPlugin.allSdkConnections;
for each (var vc in vcs)
{
if (vc.viewManager)
{
var containerView = vc.viewManager.createContainerView(vc.rootFolder, ["VirtualMachine"], true);
var oSpec = new VcObjectSpec();
oSpec.obj = containerView.reference;
oSpec.skip = true;
var tSpec = new VcTraversalSpec();
tSpec.name = 'traverseEntities';
tSpec.path = 'view';
tSpec.skip = false;
tSpec.type = 'ContainerView';
oSpec.selectSet = [tSpec];
seconds
var propertySpecs = new Array();
var pSpec = new VcPropertySpec();
pSpec.type = "VirtualMachine";
pSpec.pathSet = ["name"];
propertySpecs.push(pSpec);
var fs = new VcPropertyFilterSpec();
fs.objectSet = [ oSpec ];
fs.propSet = propertySpecs;
var retrieveOptions = new VcRetrieveOptions();
var propertyCollector = vc.propertyCollector.createPropertyCollector();
try
{
retrieveResult = propertyCollector.retrievePropertiesEx([fs], retrieveOptions);
do
{
if (typeof retrieveResult !== 'undefined' && retrieveResult !== null)
{
processObjects(retrieveResult);
if (retrieveResult.token !== 'undefined' && retrieveResult.token !== null)
{
retrieveResult = propertyCollector.continueRetrievePropertiesEx(retrieveResult.token);
} else
{
break;
}
} else
{
break;
}
} while(true);
} finally
{
propertyCollector.destroyPropertyCollector();
containerView.destroyView();
}
} else
{
undef = true;
break;
}
}
if (undef == false)
{
retry = 0;
}
}
if (VMObjectsNames.length < 1)
{
Error = "VM '" + VMName + "' is not reachable."
}else
{
if (VMObjectsNames.length > 1)
{
Error = "There is more than one VM with that name ! (" + VMName + ")";
}else
{
Error = "";
}
}
function processObjects(retrieveResult)
{
var resultObjects = retrieveResult.objects;
var pattern = new RegExp("^" + VMName + "$", "i");
for (r in resultObjects)
{
var objContent = resultObjects[r];
var id = objContent.obj.id;
var type = objContent.obj.type;
var props = objContent.propSet;
for (p in props)
{
if (pattern.test(props[p].val))
{
var dunesId = "dunes://service.dunes.ch/CustomSDKObject?id='" + vc.id + ",id:" + id +"'&dunesName='VC:" + type + "'";
VMObjectsNames.push(dunesId);
break;
}
}
}
}