config_init.html 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. {% extends theme("layout.html") %}
  2. {% block head %}
  3. {{ super() }}
  4. <style type="text/css">
  5. label>span {
  6. color: deepskyblue;
  7. }
  8. .btn,
  9. .form-group>div>div,
  10. .form-control {
  11. border-radius: 0;
  12. }
  13. .form-horizontal > .form-group {
  14. margin: 0;
  15. }
  16. </style>
  17. {% endblock head %}
  18. {% block body %}
  19. <script>
  20. $(document).ready(function() {
  21. $('body').addClass('add-transition');
  22. $('.add-page-transition').on('click', function(){
  23. var transAttr = $(this).attr('data-transition');
  24. $('.add-transition').attr('class', 'add-transition');
  25. $('.add-transition').addClass(transAttr);
  26. });
  27. $('#storage_mode').on('changed.bs.select', function (me) {
  28. if ($('#storage_mode').val() === '2' || $('#storage_mode').val() === '3') {
  29. $('#dfs_volume_label').css('display', 'unset');
  30. $('#dfs_volume').css('display', 'unset');
  31. } else {
  32. $('#dfs_volume_label').css('display', 'none');
  33. $('#dfs_volume').css('display', 'none');
  34. }
  35. });
  36. });
  37. function create() {
  38. var data = {
  39. jimv_edition: 0,
  40. storage_mode: parseInt($('#storage_mode').val()),
  41. vm_network: $('#vm_network').val(),
  42. vm_manage_network: $('#vm_manage_network').val(),
  43. dfs_volume: $('#dfs_volume').val(),
  44. storage_path: $('#storage_path').val(),
  45. hdd_type: $('#hdd_type').val(),
  46. iops_base: parseInt($('#iops_base').val()),
  47. iops_pre_unit: parseInt($('#iops_pre_unit').val()),
  48. iops_cap: parseInt($('#iops_cap').val()),
  49. iops_max: parseInt($('#iops_max').val()),
  50. iops_max_length: parseInt($('#iops_max_length').val()),
  51. bps_base: parseInt($('#bps_base').val()),
  52. bps_pre_unit: parseInt($('#bps_pre_unit').val()),
  53. bps_cap: parseInt($('#bps_cap').val()),
  54. bps_max: parseInt($('#bps_max').val()),
  55. bps_max_length: parseInt($('#bps_max_length').val())
  56. };
  57. var go_back_url = '/';
  58. $.ajax({
  59. url : '/api/config',
  60. type : 'POST',
  61. contentType: "application/json; charset=utf-8",
  62. async: false,
  63. dataType: "json",
  64. data : JSON.stringify(data),
  65. error : function(data, textStatus, xhr) {
  66. alter_warning('初始化失败!');
  67. alter_danger(data.responseText);
  68. },
  69. success : function(data, textStatus, xhr) {
  70. alter_success('JimV 已被初始化。页面将在3秒钟后自动跳转到首页!!');
  71. }
  72. });
  73. setTimeout(function() {
  74. window.location.href=go_back_url;
  75. }, 3000);
  76. }
  77. function hdd_type_select(me) {
  78. var hdd_type = $(me).val();
  79. if (hdd_type === 'sas') {
  80. $('#iops_base').val('1000');
  81. $('#iops_pre_unit').val('1');
  82. $('#iops_cap').val('2000');
  83. $('#iops_max').val('3000');
  84. $('#iops_max_length').val('20');
  85. // 200 MiB
  86. $('#bps_base').val('209715200');
  87. // 0.3 MiB
  88. $('#bps_pre_unit').val('314572');
  89. // 500 MiB
  90. $('#bps_cap').val('524288000');
  91. // 1 GiB
  92. $('#bps_max').val('1073741824');
  93. $('#bps_max_length').val('10')
  94. } else if (hdd_type === 'ssd') {
  95. $('#iops_base').val('1000');
  96. $('#iops_pre_unit').val('30');
  97. $('#iops_cap').val('10000');
  98. $('#iops_max').val('20000');
  99. $('#iops_max_length').val('20');
  100. $('#bps_base').val('209715200');
  101. // 1 MiB
  102. $('#bps_pre_unit').val('1048576');
  103. $('#bps_cap').val('524288000');
  104. $('#bps_max').val('1073741824');
  105. $('#bps_max_length').val('10')
  106. } else {
  107. $('#iops_base').val('100');
  108. $('#iops_pre_unit').val('0');
  109. $('#iops_cap').val('100');
  110. $('#iops_max').val('200');
  111. $('#iops_max_length').val('20');
  112. // 30 MiB
  113. $('#bps_base').val('31457280');
  114. // 0.1 MiB
  115. $('#bps_pre_unit').val('104857');
  116. // 50 MiB
  117. $('#bps_cap').val('52428800');
  118. // 100 MiB
  119. $('#bps_max').val('104857600');
  120. $('#bps_max_length').val('10')
  121. }
  122. }
  123. </script>
  124. <div class="container" style="padding-top: 100px;">
  125. <div class="panel">
  126. <div class="panel-body">
  127. <h3 class="title-hero" style="text-transform: unset;">
  128. 初始化 JimV
  129. </h3>
  130. <div class="example-box-wrapper">
  131. <form class="form-horizontal bordered-row" action="javascript:;">
  132. <div class="form-group">
  133. <label class="col-sm-2 control-label">网桥(业务网络)</label>
  134. <div class="col-sm-3">
  135. <input title="Guest 业务网络" class="form-control" id="vm_network" name="vm_network" type="text" value="net-br0" disabled>
  136. </div>
  137. <label class="col-sm-2 control-label">网桥(管理网络)</label>
  138. <div class="col-sm-3">
  139. <input title="Guest 管理网络" class="form-control" id="vm_manage_network" name="vm_manage_network" type="text" value="net-br0" disabled>
  140. </div>
  141. </div>
  142. <div class="form-group">
  143. <label class="col-sm-2 control-label">虚拟机磁盘存储模式</label>
  144. <div class="col-sm-3">
  145. <select id="storage_mode" title="虚拟机磁盘存储模式" class="selectpicker" name="storage_mode" data-width="100%">
  146. <option value="0" selected>本地存储</option>
  147. <option value="1" data-subtext="NFS">挂载共享</option>
  148. <option value="2">Ceph</option>
  149. <option value="3">Glusterfs</option>
  150. </select>
  151. </div>
  152. <label id="dfs_volume_label" class="col-sm-2 control-label" style="display: none;">分布式文件系统存储卷</label>
  153. <div class="col-sm-3">
  154. <input id="dfs_volume" title="分布式文件系统存储卷" class="form-control" name="dfs_volume" type="text" style="display: none;">
  155. </div>
  156. </div>
  157. <div class="form-group">
  158. <label class="col-sm-2 control-label">虚拟机磁盘存放路径</label>
  159. <div class="col-sm-3">
  160. <input title="虚拟机磁盘存放路径" class="form-control" id="storage_path" name="storage_path" type="text" value="/opt/Images">
  161. </div>
  162. <!-- HDD for Hard Disk Drive -->
  163. <label id="hdd_type_label" class="col-sm-2 control-label">磁盘类型</label>
  164. <div class="col-sm-1">
  165. <label>STAT<input class="form-control" name="hdd_type" type="radio" value="stat" onclick="hdd_type_select(this)" /></label>
  166. </div>
  167. <div class="col-sm-1">
  168. <label>SAS<input class="form-control" name="hdd_type" type="radio" checked value="sas" onclick="hdd_type_select(this)" /></label>
  169. </div>
  170. <div class="col-sm-1">
  171. <label>SSD<input class="form-control" name="hdd_type" type="radio" value="ssd" onclick="hdd_type_select(this)" /></label>
  172. </div>
  173. <div>
  174. <input class="form-control" id="iops_base" name="iops_base" type="hidden" value="1000" />
  175. <input class="form-control" id="iops_pre_unit" name="iops_pre_unit" type="hidden" value="1" />
  176. <input class="form-control" id="iops_cap" name="iops_cap" type="hidden" value="2000" />
  177. <input class="form-control" id="iops_max" name="iops_max" type="hidden" value="3000" />
  178. <input class="form-control" id="iops_max_length" name="iops_max_length" type="hidden" value="20" />
  179. <input class="form-control" id="bps_base" name="bps_base" type="hidden" value="209715200" />
  180. <input class="form-control" id="bps_pre_unit" name="bps_pre_unit" type="hidden" value="314572" />
  181. <input class="form-control" id="bps_cap" name="bps_cap" type="hidden" value="524288000" />
  182. <input class="form-control" id="bps_max" name="bps_max" type="hidden" value="1073741824" />
  183. <input class="form-control" id="bps_max_length" name="bps_max_length" type="hidden" value="10" />
  184. </div>
  185. </div>
  186. <div class="form-group">
  187. <label class="col-sm-2 control-label"></label>
  188. <div class="col-sm-3 pull-right">
  189. <button class="btn btn-blue-alt" style="width: 180px; height: 40px; font-size: 16px;" onclick="create()">初始化</button>
  190. </div>
  191. </div>
  192. </form>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. {% endblock body %}