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