v8.0.1: Fix SSL cert upload and improve error handling

Replaced single quotes in cert input and updated error handling to raise exceptions instead of returning error messages. This change ensures better logging and clear error propagation.
pull/399/head
Aidaho 2024-09-11 09:41:29 +03:00
parent 720616da95
commit 8964652375
2 changed files with 6 additions and 6 deletions

View File

@ -518,14 +518,14 @@ def del_ssl_cert(server_ip: str, cert_id: str) -> str:
return f'error: Cannot delete the certificate {e}'
def upload_ssl_cert(server_ip: str, ssl_name: str, ssl_cont: str) -> str:
def upload_ssl_cert(server_ip: str, ssl_name: str, ssl_cont: str) -> list[str]:
cert_path = sql.get_setting('cert_path')
tmp_path = sql.get_setting('tmp_config_path')
output = []
server_ip = str(server_ip)
if ssl_name is None:
return 'error: Please enter a desired name'
raise Exception('Please enter a desired name')
else:
name = f"{ssl_name}.pem"
path_to_file = f"{tmp_path}/{ssl_name}.pem"
@ -534,7 +534,7 @@ def upload_ssl_cert(server_ip: str, ssl_name: str, ssl_cont: str) -> str:
with open(path_to_file, "w") as ssl_cert:
ssl_cert.write(ssl_cont)
except IOError as e:
return f'error: Cannot save the SSL key file: {e}'
raise IOError(f'Cannot save the SSL key file: {e}')
masters = server_sql.is_master(server_ip)
for master in masters:
@ -546,7 +546,7 @@ def upload_ssl_cert(server_ip: str, ssl_name: str, ssl_cont: str) -> str:
output.append(f'success: the SSL file has been uploaded to {server_ip} into: {cert_path}/{name}')
except Exception as e:
roxywi_common.logging('Roxy-WI server', str(e), roxywi=1)
return f'error: cannot upload SSL cert: {e}'
raise Exception(f'Cannot upload SSL cert: {e}')
roxywi_common.logging(server_ip, f"add#ssl uploaded a new SSL cert {name}", roxywi=1, login=1)
roxywi_common.logging(server_ip, f"A new certificate {name} has been uploaded to {server_ip}", roxywi=1, login=1)
return output

View File

@ -574,7 +574,7 @@ def get_cert(server_ip, cert_id):
@validate(body=SSLCertUploadRequest)
def upload_cert(body: SSLCertUploadRequest):
try:
data = add_mod.upload_ssl_cert(body.server_ip, body.name, body.cert)
data = add_mod.upload_ssl_cert(body.server_ip, body.name, body.cert.replace("'", ""))
return jsonify(data), 201
except Exception as e:
return roxywi_common.handler_exceptions_for_json_data(e, 'Cannot upload SSL certificate')