|
|
@@ -7,7 +7,7 @@ from flask import request
|
|
|
import jimit as ji
|
|
|
import json
|
|
|
|
|
|
-from models import Config
|
|
|
+from models import Config, Disk, Guest
|
|
|
from models import Rules
|
|
|
from models import Utils
|
|
|
|
|
|
@@ -181,6 +181,54 @@ def r_update():
|
|
|
Rules.DNS2.value,
|
|
|
)
|
|
|
|
|
|
+ if args_rules.__len__() < 1:
|
|
|
+ ret = dict()
|
|
|
+ ret['state'] = ji.Common.exchange_state(20000)
|
|
|
+ return ret
|
|
|
+
|
|
|
+ try:
|
|
|
+ config.id = 1
|
|
|
+ ji.Check.previewing(args_rules, request.json)
|
|
|
+ config.get()
|
|
|
+
|
|
|
+ config.jimv_edition = int(request.json.get('jimv_edition', config.jimv_edition))
|
|
|
+ config.storage_mode = int(request.json.get('storage_mode', config.storage_mode))
|
|
|
+ config.dfs_volume = request.json.get('dfs_volume', config.dfs_volume)
|
|
|
+ config.storage_path = request.json.get('storage_path', config.storage_path)
|
|
|
+ config.vm_network = request.json.get('vm_network', config.vm_network)
|
|
|
+ config.vm_manage_network = request.json.get('vm_manage_network', config.vm_manage_network)
|
|
|
+ config.start_ip = request.json.get('start_ip', config.start_ip)
|
|
|
+ config.end_ip = request.json.get('end_ip', config.end_ip)
|
|
|
+ config.start_vnc_port = int(request.json.get('start_vnc_port', config.start_vnc_port))
|
|
|
+ config.netmask = request.json.get('netmask', config.netmask)
|
|
|
+ config.gateway = request.json.get('gateway', config.gateway)
|
|
|
+ config.dns1 = request.json.get('dns1', config.dns1)
|
|
|
+ config.dns2 = request.json.get('dns2', config.dns2)
|
|
|
+
|
|
|
+ config.check_ip()
|
|
|
+ config.generate_available_ip2set()
|
|
|
+ config.generate_available_vnc_port()
|
|
|
+ config.update()
|
|
|
+ config.update_global_config()
|
|
|
+
|
|
|
+ config.get()
|
|
|
+
|
|
|
+ ret = dict()
|
|
|
+ ret['state'] = ji.Common.exchange_state(20000)
|
|
|
+ ret['data'] = config.__dict__
|
|
|
+ return ret
|
|
|
+ except ji.PreviewingError, e:
|
|
|
+ return json.loads(e.message)
|
|
|
+
|
|
|
+
|
|
|
+@Utils.dumps2response
|
|
|
+def r_update_quota():
|
|
|
+
|
|
|
+ config = Config()
|
|
|
+
|
|
|
+ args_rules = [
|
|
|
+ ]
|
|
|
+
|
|
|
if 'iops_base' in request.json:
|
|
|
args_rules.append(
|
|
|
Rules.IOPS_BASE.value,
|
|
|
@@ -231,6 +279,11 @@ def r_update():
|
|
|
Rules.BPS_MAX_LENGTH.value,
|
|
|
)
|
|
|
|
|
|
+ if 'influence_current_guest' in request.json:
|
|
|
+ args_rules.append(
|
|
|
+ Rules.INFLUENCE_CURRENT_GUEST.value,
|
|
|
+ )
|
|
|
+
|
|
|
if args_rules.__len__() < 1:
|
|
|
ret = dict()
|
|
|
ret['state'] = ji.Common.exchange_state(20000)
|
|
|
@@ -241,19 +294,6 @@ def r_update():
|
|
|
ji.Check.previewing(args_rules, request.json)
|
|
|
config.get()
|
|
|
|
|
|
- config.jimv_edition = int(request.json.get('jimv_edition', config.jimv_edition))
|
|
|
- config.storage_mode = int(request.json.get('storage_mode', config.storage_mode))
|
|
|
- config.dfs_volume = request.json.get('dfs_volume', config.dfs_volume)
|
|
|
- config.storage_path = request.json.get('storage_path', config.storage_path)
|
|
|
- config.vm_network = request.json.get('vm_network', config.vm_network)
|
|
|
- config.vm_manage_network = request.json.get('vm_manage_network', config.vm_manage_network)
|
|
|
- config.start_ip = request.json.get('start_ip', config.start_ip)
|
|
|
- config.end_ip = request.json.get('end_ip', config.end_ip)
|
|
|
- config.start_vnc_port = int(request.json.get('start_vnc_port', config.start_vnc_port))
|
|
|
- config.netmask = request.json.get('netmask', config.netmask)
|
|
|
- config.gateway = request.json.get('gateway', config.gateway)
|
|
|
- config.dns1 = request.json.get('dns1', config.dns1)
|
|
|
- config.dns2 = request.json.get('dns2', config.dns2)
|
|
|
config.iops_base = int(request.json.get('iops_base', config.iops_base))
|
|
|
config.iops_pre_unit = int(request.json.get('iops_pre_unit', config.iops_pre_unit))
|
|
|
config.iops_cap = int(request.json.get('iops_cap', config.iops_cap))
|
|
|
@@ -265,9 +305,28 @@ def r_update():
|
|
|
config.bps_max = int(request.json.get('bps_max', config.bps_max))
|
|
|
config.bps_max_length = int(request.json.get('bps_max_length', config.bps_max_length))
|
|
|
|
|
|
- config.check_ip()
|
|
|
- config.generate_available_ip2set()
|
|
|
- config.generate_available_vnc_port()
|
|
|
+ if request.json.get('influence_current_guest', False):
|
|
|
+ disks, _ = Disk.get_all()
|
|
|
+
|
|
|
+ disk = Disk()
|
|
|
+ for disk_info in disks:
|
|
|
+ disk.id = disk_info['id']
|
|
|
+ disk.get()
|
|
|
+ disk.quota(config=config)
|
|
|
+ disk.update()
|
|
|
+
|
|
|
+ if disk.sequence >= 0:
|
|
|
+ message = {
|
|
|
+ '_object': 'disk',
|
|
|
+ 'action': 'quota',
|
|
|
+ 'uuid': disk.uuid,
|
|
|
+ 'guest_uuid': disk.guest_uuid,
|
|
|
+ 'hostname': disk.on_host,
|
|
|
+ 'disks': [disk.__dict__]
|
|
|
+ }
|
|
|
+
|
|
|
+ Guest.emit_instruction(message=json.dumps(message))
|
|
|
+
|
|
|
config.update()
|
|
|
config.update_global_config()
|
|
|
|
|
|
@@ -276,6 +335,7 @@ def r_update():
|
|
|
ret = dict()
|
|
|
ret['state'] = ji.Common.exchange_state(20000)
|
|
|
ret['data'] = config.__dict__
|
|
|
+
|
|
|
return ret
|
|
|
except ji.PreviewingError, e:
|
|
|
return json.loads(e.message)
|