diff --git a/instances/templates/instance.html b/instances/templates/instance.html index a20e9ff..24ad104 100644 --- a/instances/templates/instance.html +++ b/instances/templates/instance.html @@ -416,7 +416,7 @@ {% ifequal status 5 %} {% else %} - + {% endifequal %} {% else %} diff --git a/instances/views.py b/instances/views.py index 979fd01..8e944b5 100644 --- a/instances/views.py +++ b/instances/views.py @@ -265,7 +265,7 @@ def instance(request, compute_id, vname): networks = conn.get_net_device() vcpu_range = conn.get_max_cpus() - memory_range = [256, 512, 768, 1024, 2048, 4096, 6144, 8192, 16384] + memory_range = [256, 512, 768, 1024, 2048, 3072, 4096, 6144, 8192, 16384] if memory not in memory_range: insort(memory_range, memory) if cur_memory not in memory_range: diff --git a/vrtManager/instance.py b/vrtManager/instance.py index 681e192..7c51a8b 100644 --- a/vrtManager/instance.py +++ b/vrtManager/instance.py @@ -1,7 +1,8 @@ import time import os.path try: - from libvirt import libvirtError, VIR_DOMAIN_XML_SECURE, VIR_MIGRATE_LIVE, VIR_MIGRATE_UNSAFE + from libvirt import libvirtError, VIR_DOMAIN_XML_SECURE, VIR_MIGRATE_LIVE, VIR_MIGRATE_UNSAFE, VIR_DOMAIN_RUNNING, \ + VIR_DOMAIN_AFFECT_LIVE, VIR_DOMAIN_AFFECT_CONFIG except: from libvirt import libvirtError, VIR_DOMAIN_XML_SECURE, VIR_MIGRATE_LIVE from vrtManager import util @@ -614,8 +615,14 @@ class wvmInstance(wvmConnect): """ Function change ram and cpu on vds. """ + memory = int(memory) * 1024 cur_memory = int(cur_memory) * 1024 + # if dom is running change only ram + if self.get_status() == VIR_DOMAIN_RUNNING: + self.set_memory(cur_memory, VIR_DOMAIN_AFFECT_LIVE) + self.set_memory(cur_memory, VIR_DOMAIN_AFFECT_CONFIG) + return xml = self._XMLDesc(VIR_DOMAIN_XML_SECURE) tree = ElementTree.fromstring(xml) @@ -906,3 +913,6 @@ class wvmInstance(wvmConnect): new_xml = ElementTree.tostring(tree) self._defineXML(new_xml) + def set_memory(self, size, flags=0): + self.instance.setMemoryFlags(size, flags) +