|
18 | 18 | CODE_CREATED, \
|
19 | 19 | request_debug
|
20 | 20 |
|
| 21 | +from common.utils import K8S_CRED_TYPE |
| 22 | + |
21 | 23 | from modules import host_handler
|
22 | 24 | from modules.models import Cluster as ClusterModel
|
23 | 25 | from modules.models import Host as HostModel
|
@@ -141,6 +143,28 @@ def host_create():
|
141 | 143 | log_server=log_server,
|
142 | 144 | host_type=host_type,
|
143 | 145 | params=vsphere_param)
|
| 146 | + |
| 147 | + elif host_type == 'kubernetes': |
| 148 | + worker_api = r.form['k8s_master_address'] |
| 149 | + k8s_param = create_k8s_host(name, capacity, log_type, r) |
| 150 | + if len(k8s_param) == 0: |
| 151 | + return make_fail_resp(error=error_msg, data=r.form) |
| 152 | + |
| 153 | + logger.debug("name={}, capacity={}," |
| 154 | + "fillup={}, schedulable={}, log={}/{}, k8s_param={}". |
| 155 | + format(name, capacity, autofill, schedulable, |
| 156 | + log_type, log_server, k8s_param)) |
| 157 | + |
| 158 | + result = host_handler.create(name=name, worker_api=worker_api, |
| 159 | + capacity=int(capacity), |
| 160 | + autofill=autofill, |
| 161 | + schedulable=schedulable, |
| 162 | + log_level=log_level, |
| 163 | + log_type=log_type, |
| 164 | + log_server=log_server, |
| 165 | + host_type=host_type, |
| 166 | + params=k8s_param) |
| 167 | + |
144 | 168 | else:
|
145 | 169 | logger.debug("name={}, worker_api={}, capacity={}"
|
146 | 170 | "fillup={}, schedulable={}, log={}/{}".
|
@@ -276,3 +300,49 @@ def host_actions():
|
276 | 300 | error_msg = "unknown host action={}".format(action)
|
277 | 301 | logger.warning(error_msg)
|
278 | 302 | return make_fail_resp(error=error_msg, data=body)
|
| 303 | + |
| 304 | + |
| 305 | +def create_k8s_host(name, capacity, log_type, request): |
| 306 | + k8s_param = { |
| 307 | + 'address': request.form['k8s_master_address'], |
| 308 | + 'credType': request.form['k8s_cred_type'], |
| 309 | + 'username': request.form['k8s_username'], |
| 310 | + 'password': request.form['k8s_password'], |
| 311 | + 'cert': request.form['k8s_cert'], |
| 312 | + 'key': request.form['k8s_key'], |
| 313 | + 'config': request.form['k8s_config'], |
| 314 | + 'nfsServer': request.form['k8s_nfs_server'], |
| 315 | + 'extra_params': request.form['k8s_extra_params'] |
| 316 | + } |
| 317 | + if "k8s_ssl" in request.form and request.form["k8s_ssl"] == "on": |
| 318 | + k8s_ssl = "true" |
| 319 | + else: |
| 320 | + k8s_ssl = "false" |
| 321 | + k8s_param['use_ssl'] = k8s_ssl |
| 322 | + |
| 323 | + k8s_must_have_params = { |
| 324 | + 'Name': name, |
| 325 | + 'Capacity': capacity, |
| 326 | + 'LoggingType': log_type, |
| 327 | + 'K8SAddress': request.form['k8s_master_address'], |
| 328 | + 'K8SCredType': request.form['k8s_cred_type'], |
| 329 | + 'K8SNfsServer': request.form['k8s_nfs_server'], |
| 330 | + 'K8SUseSsl': k8s_param['use_ssl'] |
| 331 | + } |
| 332 | + |
| 333 | + if k8s_must_have_params['K8SCredType'] == K8S_CRED_TYPE['account']: |
| 334 | + k8s_must_have_params['K8SUsername'] = request.form['k8s_username'] |
| 335 | + k8s_must_have_params['K8SPassword'] = request.form['k8s_password'] |
| 336 | + elif k8s_must_have_params['K8SCredType'] == K8S_CRED_TYPE['cert']: |
| 337 | + k8s_must_have_params['K8SCert'] = request.form['k8s_cert'] |
| 338 | + k8s_must_have_params['K8SKey'] = request.form['k8s_key'] |
| 339 | + elif k8s_must_have_params['K8SCredType'] == K8S_CRED_TYPE['config']: |
| 340 | + k8s_must_have_params['K8SConfig'] = request.form['k8s_config'] |
| 341 | + |
| 342 | + for key in k8s_must_have_params: |
| 343 | + if k8s_must_have_params[key] == '': |
| 344 | + error_msg = "host POST without {} data".format(key) |
| 345 | + logger.warning(error_msg) |
| 346 | + return [] |
| 347 | + |
| 348 | + return k8s_param |
0 commit comments