Просмотр исходного кода

修正初始化配置时提交的字段类型异常

James Iter 9 лет назад
Родитель
Сommit
81108ceea8
4 измененных файлов с 17 добавлено и 12 удалено
  1. 10 5
      api/config.py
  2. 1 1
      models/guest.py
  3. 3 3
      views/config.py
  4. 3 3
      views/disk.py

+ 10 - 5
api/config.py

@@ -46,15 +46,15 @@ def r_create():
 
     config = Config()
     config.id = 1
-    config.jimv_edition = request.json.get('jimv_edition', 0)
-    config.storage_mode = request.json.get('storage_mode', 0)
+    config.jimv_edition = int(request.json.get('jimv_edition', 0))
+    config.storage_mode = int(request.json.get('storage_mode', 0))
     config.dfs_volume = request.json.get('dfs_volume', '')
     config.storage_path = request.json.get('storage_path')
     config.vm_network = request.json.get('vm_network')
     config.vm_manage_network = request.json.get('vm_manage_network')
     config.start_ip = request.json.get('start_ip')
     config.end_ip = request.json.get('end_ip')
-    config.start_vnc_port = request.json.get('start_vnc_port')
+    config.start_vnc_port = int(request.json.get('start_vnc_port'))
     config.netmask = request.json.get('netmask')
     config.gateway = request.json.get('gateway')
     config.dns1 = request.json.get('dns1')
@@ -63,6 +63,13 @@ def r_create():
     try:
         ji.Check.previewing(args_rules, config.__dict__)
 
+        ret = dict()
+        ret['state'] = ji.Common.exchange_state(20000)
+
+        if config.exist():
+            ret['state'] = ji.Common.exchange_state(40901)
+            return ret
+
         config.check_ip()
         config.generate_available_ip2set()
         config.generate_available_vnc_port()
@@ -70,8 +77,6 @@ def r_create():
 
         config.id = 1
         config.get()
-        ret = dict()
-        ret['state'] = ji.Common.exchange_state(20000)
         ret['data'] = config.__dict__
         return ret
     except ji.PreviewingError, e:

+ 1 - 1
models/guest.py

@@ -151,7 +151,7 @@ class Disk(ORM):
 
     @staticmethod
     def get_allow_update_keywords():
-        return ['on_host']
+        return ['on_host', 'sequence', 'state', 'guest_uuid']
 
     @staticmethod
     def get_allow_content_search_keywords():

+ 3 - 3
views/config.py

@@ -107,15 +107,15 @@ def create():
 
     if request.method == 'POST':
         payload = {
-            'jimv_edition': request.form.get('jimv_edition'),
-            'storage_mode': request.form.get('storage_mode'),
+            'jimv_edition': request.form.get('jimv_edition', 0),
+            'storage_mode': int(request.form.get('storage_mode')),
             'dfs_volume': request.form.get('dfs_volume'),
             'storage_path': request.form.get('storage_path'),
             'vm_network': request.form.get('vm_network'),
             'vm_manage_network': request.form.get('vm_manage_network'),
             'start_ip': request.form.get('start_ip'),
             'end_ip': request.form.get('end_ip'),
-            'start_vnc_port': request.form.get('start_vnc_port'),
+            'start_vnc_port': int(request.form.get('start_vnc_port')),
             'netmask': request.form.get('netmask'),
             'gateway': request.form.get('gateway'),
             'dns1': request.form.get('dns1'),

+ 3 - 3
views/disk.py

@@ -6,7 +6,7 @@ import json
 from flask import Blueprint, render_template, url_for, request
 import requests
 from math import ceil
-from models.status import JimVEdition
+from models.status import StorageMode
 
 
 __author__ = 'James Iter'
@@ -122,7 +122,7 @@ def show():
     config_ret = json.loads(config_ret.content)
 
     show_on_host = False
-    if config_ret['data']['jimv_edition'] == JimVEdition.standalone.value:
+    if config_ret['data']['storage_mode'] == StorageMode.local.value:
         show_on_host = True
 
     last_page = int(ceil(disks_ret['paging']['total'] / float(page_size)))
@@ -181,7 +181,7 @@ def create():
         config_ret = json.loads(config_ret.content)
 
         show_on_host = False
-        if config_ret['data']['jimv_edition'] == JimVEdition.standalone.value:
+        if config_ret['data']['storage_mode'] == StorageMode.local.value:
             show_on_host = True
 
         return render_template('disk_create.html', show_on_host=show_on_host)