@@ -8,6 +8,7 @@ package datasource
88
99import (
1010 "context"
11+ "math"
1112
1213 "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1314 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -20,6 +21,7 @@ const (
2021 mkDataSourceVirtualEnvironmentNodeCPUCount = "cpu_count"
2122 mkDataSourceVirtualEnvironmentNodeCPUSockets = "cpu_sockets"
2223 mkDataSourceVirtualEnvironmentNodeCPUModel = "cpu_model"
24+ mkDataSourceVirtualEnvironmentNodeCPUUtilization = "cpu_utilization"
2325 mkDataSourceVirtualEnvironmentNodeMemoryAvailable = "memory_available"
2426 mkDataSourceVirtualEnvironmentNodeMemoryUsed = "memory_used"
2527 mkDataSourceVirtualEnvironmentNodeMemoryTotal = "memory_total"
@@ -52,6 +54,11 @@ func Node() *schema.Resource {
5254 Description : "The CPU model on the node" ,
5355 Computed : true ,
5456 },
57+ mkDataSourceVirtualEnvironmentNodeCPUUtilization : {
58+ Type : schema .TypeFloat ,
59+ Description : "The CPU utilization on the node (a value between `0.0` and `1.0`)" ,
60+ Computed : true ,
61+ },
5562 mkDataSourceVirtualEnvironmentNodeMemoryAvailable : {
5663 Type : schema .TypeInt ,
5764 Description : "The available memory in bytes on the node" ,
@@ -133,6 +140,14 @@ func nodeRead(ctx context.Context, d *schema.ResourceData, m any) diag.Diagnosti
133140
134141 diags = append (diags , diag .FromErr (err )... )
135142
143+ if node .CPUUtilization != nil {
144+ err = d .Set (mkDataSourceVirtualEnvironmentNodeCPUUtilization , math .Round (* node .CPUUtilization * 100 )/ 100 )
145+ } else {
146+ err = d .Set (mkDataSourceVirtualEnvironmentNodeCPUUtilization , 0 )
147+ }
148+
149+ diags = append (diags , diag .FromErr (err )... )
150+
136151 if node .MemoryInfo .Total != nil {
137152 err = d .Set (mkDataSourceVirtualEnvironmentNodeMemoryAvailable , node .MemoryInfo .Free )
138153 diags = append (diags , diag .FromErr (err )... )
0 commit comments