@@ -24,7 +24,7 @@ def _initstatus(self):
24
24
self .resources = self .api .cluster .resources .get ()
25
25
26
26
self .nodes = []
27
- for node in self .get_resources_nodes () :
27
+ for node in self .resources_nodes :
28
28
self .nodes .append (
29
29
PVENode (
30
30
self ,
@@ -35,7 +35,7 @@ def _initstatus(self):
35
35
)
36
36
37
37
self .storages = []
38
- for storage in self .get_resources_storages () :
38
+ for storage in self .resources_storages :
39
39
self .storages .append (PVEStorage (storage .pop ("node" ), storage .pop ("id" ), storage .pop ("shared" ), ** storage ))
40
40
41
41
@property
@@ -81,6 +81,7 @@ def __str__(self):
81
81
output += f"{ node } \n "
82
82
return output
83
83
84
+ @property
84
85
def vms (self ):
85
86
"""Return all vms on this cluster"""
86
87
vms = []
@@ -111,19 +112,17 @@ def find_task(self, upid):
111
112
return task
112
113
return False
113
114
115
+ @property
114
116
def is_healthy (self ):
115
117
return bool ([item for item in self .status if item .get ("type" ) == "cluster" ][0 ]["quorate" ])
116
118
117
- def get_resources_nodes (self ):
118
- return [resource for resource in self .resources if resource ["type" ] == "node" ]
119
-
120
119
def get_vm (self , vm_id ):
121
120
if isinstance (vm_id , str ):
122
121
vm_id = int (vm_id )
123
122
124
123
result = None
125
124
node_name = None
126
- for vm in self .get_resources_vms () :
125
+ for vm in self .resources_vms :
127
126
if vm ["vmid" ] == vm_id :
128
127
node_name = vm ["node" ]
129
128
break
@@ -135,17 +134,24 @@ def get_vm(self, vm_id):
135
134
136
135
return result
137
136
138
- def get_resources_vms (self ):
137
+ @property
138
+ def resources_nodes (self ):
139
+ return [resource for resource in self .resources if resource ["type" ] == "node" ]
140
+
141
+ @property
142
+ def resources_vms (self ):
139
143
return [resource for resource in self .resources if resource ["type" ] == "qemu" ]
140
144
141
- def get_resources_storages (self ):
145
+ @property
146
+ def resources_storages (self ):
142
147
return [resource for resource in self .resources if resource ["type" ] == "storage" ]
143
148
144
149
def get_storage (self , storage_name ):
145
150
return next (filter (lambda s : s .storage == storage_name , self .storages ), None )
146
151
152
+ @property
147
153
def cpu_metrics (self ):
148
- nodes = self .get_resources_nodes ()
154
+ nodes = self .resources_nodes
149
155
total_cpu = sum (node ["maxcpu" ] for node in nodes )
150
156
total_cpu_usage = sum (node ["cpu" ] for node in nodes )
151
157
total_cpu_allocated = sum (node .allocatedcpu for node in self .nodes )
@@ -158,8 +164,9 @@ def cpu_metrics(self):
158
164
"percent" : cpu_percent ,
159
165
}
160
166
167
+ @property
161
168
def memory_metrics (self ):
162
- nodes = self .get_resources_nodes ()
169
+ nodes = self .resources_nodes
163
170
total_memory = sum (node ["maxmem" ] for node in nodes )
164
171
total_memory_usage = sum (node ["mem" ] for node in nodes )
165
172
total_memory_allocated = sum (node .allocatedmem for node in self .nodes )
@@ -172,8 +179,9 @@ def memory_metrics(self):
172
179
"percent" : memory_percent ,
173
180
}
174
181
182
+ @property
175
183
def disk_metrics (self ):
176
- storages = self .get_resources_storages ()
184
+ storages = self .resources_storages
177
185
total_disk = sum (node .get ("maxdisk" , 0 ) for node in storages )
178
186
total_disk_usage = sum (node .get ("disk" , 0 ) for node in storages )
179
187
disk_percent = total_disk_usage / total_disk * 100
@@ -184,9 +192,10 @@ def disk_metrics(self):
184
192
"percent" : disk_percent ,
185
193
}
186
194
195
+ @property
187
196
def metrics (self ):
188
197
return {
189
- "cpu" : self .cpu_metrics () ,
190
- "memory" : self .memory_metrics () ,
191
- "disk" : self .disk_metrics () ,
198
+ "cpu" : self .cpu_metrics ,
199
+ "memory" : self .memory_metrics ,
200
+ "disk" : self .disk_metrics ,
192
201
}
0 commit comments