Răsfoiți Sursa

实现不显示系统级别的启动作业功能

James Iter 9 ani în urmă
părinte
comite
a055d8f31e
4 a modificat fișierele cu 26 adăugiri și 9 ștergeri
  1. 4 1
      docs/todo.md
  2. 5 6
      templates/boot_job_show.html
  3. 6 0
      views/boot_job.py
  4. 11 2
      views/operate_rule.py

+ 4 - 1
docs/todo.md

@@ -11,8 +11,11 @@
 - [x] 统计活着的宿主机,并提供获取列表的接口,供迁移时选择
 - [x] 分离出 API 与 views 出入口,涉及 add_rule 与 route_table
 - [x] 加入被动更新 Guest xml 的功能,由宿主机主动推送。具体时机待定
-- [ ] 重置Guest密码功能
+- [x] 重置Guest密码功能
 - [ ] 增加模板镜像上传功能
+- [ ] 虚拟机加入重启作业功能
+- [ ] 提示待做的启动作业
+- [x] 不显示系统级别的启动作业
 - [ ] 添加对 Guest 的IP管理功能
 > 1. 给宿主机替换当前 IP 池中可用的 IP。替换后,新 IP 置为已用状态,被替换的 IP,
 > 要与系统配置中的可用 IP 范围做计算。计算其是不是可以被自动分配的合法 IP。如果是,

+ 5 - 6
templates/boot_job_show.html

@@ -416,9 +416,9 @@
                             <label class="col-sm-2 control-label"><span class="glyph-icon icon-pie-chart"></span>&nbsp;&nbsp;作用域</label>
                             <div class="col-sm-6">
                                 <select id="use_for" name="use_for" title="作用域" class="selectpicker">
-                                    <option value="0" data-subtext="从模板克隆的虚拟机,首次启动时初始化系统使用" selected>模板</option>
-                                    <option value="1" data-subtext="JimV系统平台内置的功能,如重置系统密码,更换IP等操作">系统</option>
-                                    <option value="2" data-subtext="通过重启系统,批量执行用户预定的操作">用户</option>
+                                    <option value="2" data-subtext="通过重启系统,批量执行用户预定的操作" selected>用户</option>
+                                    <option value="0" data-subtext="从模板克隆的虚拟机,首次启动时初始化系统使用">模板</option>
+                                    <!--<option value="1" data-subtext="JimV系统平台内置的功能,如重置系统密码,更换IP等操作">系统</option>-->
                                 </select>
                             </div>
                         </div>
@@ -463,9 +463,8 @@
                         <label class="col-sm-3 control-label"><span class="glyph-icon icon-pie-chart"></span>&nbsp;&nbsp;作用域</label>
                         <div class="col-sm-8">
                             <select id="update_use_for" name="use_for" title="作用域" class="selectpicker">
-                                <option value="0" data-subtext="从模板克隆的虚拟机,首次启动时初始化系统使用" selected>模板</option>
-                                <option value="1" data-subtext="JimV系统平台内置的功能,如重置系统密码,更换IP等操作">系统</option>
-                                <option value="2" data-subtext="通过重启系统,批量执行用户预定的操作">用户</option>
+                                <option value="2" data-subtext="通过重启系统,批量执行用户预定的操作" selected>用户</option>
+                                <option value="0" data-subtext="从模板克隆的虚拟机,首次启动时初始化系统使用">模板</option>
                             </select>
                         </div>
                     </div>

+ 6 - 0
views/boot_job.py

@@ -7,6 +7,7 @@ from flask import Blueprint, render_template, url_for, request, redirect
 import requests
 from math import ceil
 
+from models.status import BootJobUseFor
 
 __author__ = 'James Iter'
 __date__ = '2017/7/15'
@@ -71,6 +72,11 @@ def show():
     boot_jobs_ret = requests.get(url=boot_jobs_url)
     boot_jobs_ret = json.loads(boot_jobs_ret.content)
 
+    for i, boot_job in enumerate(boot_jobs_ret['data']):
+        # 去除系统级的启动作业。系统级的启动作业不展示给使用者。
+        if boot_job['use_for'] == BootJobUseFor.system.value:
+            del boot_jobs_ret['data'][i]
+
     last_page = int(ceil(boot_jobs_ret['paging']['total'] / float(page_size)))
     page_length = 5
     pages = list()

+ 11 - 2
views/operate_rule.py

@@ -7,8 +7,7 @@ from flask import Blueprint, render_template, url_for, request, redirect
 import requests
 from math import ceil
 
-from models.status import OperateRuleKind
-
+from models.status import OperateRuleKind, BootJobUseFor
 
 __author__ = 'James Iter'
 __date__ = '2017/7/17'
@@ -75,12 +74,22 @@ def show():
     operate_rules_ret = requests.get(url=operate_rules_url)
     operate_rules_ret = json.loads(operate_rules_ret.content)
 
+    system_level_ids = list()
+
     boot_jobs_ret = requests.get(url=boot_jobs_url)
     boot_jobs_ret = json.loads(boot_jobs_ret.content)
     boot_jobs_mapping_by_id = dict()
     for boot_job in boot_jobs_ret['data']:
         boot_jobs_mapping_by_id[boot_job['id']] = boot_job
 
+        if boot_job['use_for'] == BootJobUseFor.system.value:
+            system_level_ids.append(boot_job['id'])
+
+    for i, operate_rule in enumerate(operate_rules_ret['data']):
+        # 去除系统级的启动作业。系统级的启动作业不展示给使用者。
+        if operate_rule['boot_job_id'] in system_level_ids:
+            del operate_rules_ret['data'][i]
+
     last_page = int(ceil(operate_rules_ret['paging']['total'] / float(page_size)))
     page_length = 5
     pages = list()