Send compute usage via in the compute.updated notification

Ref https://github.com/GNS3/gns3-gui/issues/1261
This commit is contained in:
Julien Duponchelle committed 2016-06-30 09:55:59 +02:00
1 parent 66959ee4e9
commit 543b423e03
5 files changed
+77 -5

No files matched your search

+20 -2
View File
@@ -89,6 +89,8 @@ class Compute:
self._set_auth(user, password)
self._session = aiohttp.ClientSession()
self._version = None
self._cpu_usage_percent = None
self._memory_usage_percent = None
self.name = name
# Websocket for notifications
self._ws = None
@@ -228,6 +230,14 @@ class Compute:
def password(self, value):
self._set_auth(self._user, value)
@property
def cpu_usage_percent(self):
return self._cpu_usage_percent
@property
def memory_usage_percent(self):
return self._memory_usage_percent
def __json__(self, topology_dump=False):
"""
:param topology_dump: Filter to keep only properties require for saving on disk
@@ -247,7 +257,9 @@ class Compute:
"host": self._host,
"port": self._port,
"user": self._user,
"connected": self._connected
"connected": self._connected,
"cpu_usage_percent": self._cpu_usage_percent,
"memory_usage_percent": self._memory_usage_percent
}
@asyncio.coroutine
@@ -307,7 +319,13 @@ class Compute:
msg = json.loads(response.data)
action = msg.pop("action")
event = msg.pop("event")
self._controller.notification.dispatch(action, event, compute_id=self.id)
if action == "ping":
self._cpu_usage_percent = event["cpu_usage_percent"]
self._memory_usage_percent = event["memory_usage_percent"]
self._controller.notification.emit("compute.updated", self.__json__())
else:
self._controller.notification.dispatch(action, event, compute_id=self.id)
yield from self._ws.close()
self._ws = None
+12
View File
@@ -90,6 +90,18 @@ COMPUTE_OBJECT_SCHEMA = {
"description": "Whether the controller is connected to the compute server or not",
"type": "boolean"
},
"cpu_usage_percent": {
"description": "CPU usage of the compute. Read only",
"type": ["number", "null"],
"maximum": 100,
"minimum": 0
},
"memory_usage_percent": {
"description": "RAM usage of the compute. Read only",
"type": ["number", "null"],
"maximum": 100,
"minimum": 0
},
"version": {
"description": "Version of the GNS3 remote compute server",
"type": ["string", "null"]