mirror of
https://github.com/retspen/webvirtcloud
synced 2025-07-31 12:41:08 +00:00
Instances overhaul
This commit is contained in:
parent
f23e6b000f
commit
47009d47ca
69 changed files with 5011 additions and 4127 deletions
|
|
@ -1,8 +1,10 @@
|
|||
from django.db.models import CharField, IntegerField, Model
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from libvirt import virConnect
|
||||
|
||||
from vrtManager.connection import connection_manager
|
||||
from vrtManager.hostdetails import wvmHostDetails
|
||||
|
||||
|
||||
class Compute(Model):
|
||||
|
|
@ -15,7 +17,45 @@ class Compute(Model):
|
|||
|
||||
@cached_property
|
||||
def status(self):
|
||||
return connection_manager.host_is_up(self.type, self.hostname)
|
||||
# return connection_manager.host_is_up(self.type, self.hostname)
|
||||
# TODO: looks like socket has problems connecting via VPN
|
||||
if isinstance(self.connection, virConnect):
|
||||
return True
|
||||
else:
|
||||
return self.connection
|
||||
|
||||
@cached_property
|
||||
def connection(self):
|
||||
try:
|
||||
return connection_manager.get_connection(
|
||||
self.hostname,
|
||||
self.login,
|
||||
self.password,
|
||||
self.type,
|
||||
)
|
||||
except Exception as e:
|
||||
return e
|
||||
|
||||
@cached_property
|
||||
def proxy(self):
|
||||
return wvmHostDetails(
|
||||
self.hostname,
|
||||
self.login,
|
||||
self.password,
|
||||
self.type,
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def cpu_count(self):
|
||||
return self.proxy.get_node_info()[3]
|
||||
|
||||
@cached_property
|
||||
def ram_size(self):
|
||||
return self.proxy.get_node_info()[2]
|
||||
|
||||
@cached_property
|
||||
def ram_usage(self):
|
||||
return self.proxy.get_memory_usage()['percent']
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue