VMware Cloud Community
trailx
Enthusiast
Enthusiast

How to retrieve available resources in a cluster ?

Hi,

I'd like to get available resources in a cluster (free CPU and Memory).

I tried with : (resourceCluster = object ClusterComputeResource)

var resourceCpu = ressourceCluster.summary.effectiveCpu;
var resourceMemory = ressourceCluster.summary.effectiveMemory;

In my logs I have :

[2012-12-03 10:16:47.609] [I] CPU Total : 96399
[2012-12-03 10:16:47.609] [I] Mémoire Totale : 163721

But I want available resources not the amount of resources... In red what I want :

resources.png

--- If you found this information useful, please consider awarding points for "Correct" or "Helpful". Thanks!
0 Kudos
4 Replies
ChristianWehner
VMware Employee
VMware Employee

Hi,

define myVcClusterComputeResource as the cluster (inout or general) you want the information from.

var myVcResourcePoolRuntimeInfoCpu    = new VcResourcePoolRuntimeInfo() ;
var myVcResourcePoolRuntimeInfoMemory = new VcResourcePoolRuntimeInfo() ;


myVcResourcePoolRuntimeInfoCpu    = myVcClusterComputeResource.resourcePool.runtime.cpu;
myVcResourcePoolRuntimeInfoMemory = myVcClusterComputeResource.resourcePool.runtime.memory;


System.log( myVcResourcePoolRuntimeInfoCpu.maxUsage );
System.log( myVcResourcePoolRuntimeInfoCpu.overallUsage );
System.log( myVcResourcePoolRuntimeInfoCpu.reservationUsed );
System.log( myVcResourcePoolRuntimeInfoCpu.reservationUsedForVm );
System.warn( myVcResourcePoolRuntimeInfoCpu.unreservedForPool );
System.warn( myVcResourcePoolRuntimeInfoCpu.unreservedForVm );


System.log( myVcResourcePoolRuntimeInfoMemory.maxUsage );
System.log( myVcResourcePoolRuntimeInfoMemory.overallUsage );
System.log( myVcResourcePoolRuntimeInfoMemory.reservationUsed );
System.log( myVcResourcePoolRuntimeInfoMemory.reservationUsedForVm );
System.warn( myVcResourcePoolRuntimeInfoMemory.unreservedForPool );
System.warn( myVcResourcePoolRuntimeInfoMemory.unreservedForVm );


You are looking for the unreserved* properties.

Regards,

Chris

0 Kudos
trailx
Enthusiast
Enthusiast

Unfortunately, he didn' work for me.

My code :

var myVcResourcePoolRuntimeInfoCpu    = new VcResourcePoolRuntimeInfo() ;
var myVcResourcePoolRuntimeInfoMemory = new VcResourcePoolRuntimeInfo() ;


myVcResourcePoolRuntimeInfoCpu    = ressourceCluster.resourcePool.runtime.cpu;
myVcResourcePoolRuntimeInfoMemory = ressourceCluster.resourcePool.runtime.memory;

System.log("Value : "+ressourceCluster);
System.log("Value CPU : "+myVcResourcePoolRuntimeInfoCpu);
System.log("Value Memory : "+myVcResourcePoolRuntimeInfoMemory);

System.log( myVcResourcePoolRuntimeInfoCpu.maxUsage );
System.log( myVcResourcePoolRuntimeInfoCpu.overallUsage );
System.log( myVcResourcePoolRuntimeInfoCpu.reservationUsed );
System.log( myVcResourcePoolRuntimeInfoCpu.reservationUsedForVm );
System.warn( myVcResourcePoolRuntimeInfoCpu.unreservedForPool );
System.warn( myVcResourcePoolRuntimeInfoCpu.unreservedForVm );


System.log( myVcResourcePoolRuntimeInfoMemory.maxUsage );
System.log( myVcResourcePoolRuntimeInfoMemory.overallUsage );
System.log( myVcResourcePoolRuntimeInfoMemory.reservationUsed );
System.log( myVcResourcePoolRuntimeInfoMemory.reservationUsedForVm );
System.warn( myVcResourcePoolRuntimeInfoMemory.unreservedForPool );
System.warn( myVcResourcePoolRuntimeInfoMemory.unreservedForVm );

My result :

[2012-12-03 14:49:21.495] [I] Value : DynamicWrapper (Instance) : [VcClusterComputeResource]-[class com.vmware.vmo.plugin.vi4.model.VimClusterComputeResource] -- VALUE : ClusterComputeResource<domain-c5440>'EnergeTIC'
[2012-12-03 14:49:21.495] [I] Value CPU : DynamicWrapper (Instance) : [VcResourcePoolResourceUsage]-[class com.vmware.vim.vi4.ResourcePoolResourceUsage] -- VALUE : com.vmware.vim.vi4.ResourcePoolResourceUsage@1
[2012-12-03 14:49:21.495] [I] Value Memory : DynamicWrapper (Instance) : [VcResourcePoolResourceUsage]-[class com.vmware.vim.vi4.ResourcePoolResourceUsage] -- VALUE : com.vmware.vim.vi4.ResourcePoolResourceUsage@1
[2012-12-03 14:49:21.496] [I] 0
[2012-12-03 14:49:21.496] [I] 0
[2012-12-03 14:49:21.496] [I] 0
[2012-12-03 14:49:21.496] [I] 0
[2012-12-03 14:49:21.496] [W] 0
[2012-12-03 14:49:21.497] [W] 0
[2012-12-03 14:49:21.497] [I] 0
[2012-12-03 14:49:21.497] [I] 0
[2012-12-03 14:49:21.497] [I] 0
[2012-12-03 14:49:21.498] [I] 0
[2012-12-03 14:49:21.498] [W] 0
[2012-12-03 14:49:21.499] [W] 0

In my Cluster Energetic, I 've multiple resources pool with reservations (CPU-Memory).

--- If you found this information useful, please consider awarding points for "Correct" or "Helpful". Thanks!
0 Kudos
ChristianWehner
VMware Employee
VMware Employee

On my side it is working, with your code too.

The workflow shows the ressources for the root pool (the cluster itself) and not for any of the resource pools.

Regards

trailx
Enthusiast
Enthusiast

That's very curious, on my orchestrator 4.2.1 it doesn't work but on my orchestrator 5 it works... And i can't explain why....

Thank you Christian Smiley Wink

--- If you found this information useful, please consider awarding points for "Correct" or "Helpful". Thanks!
0 Kudos