diff --git a/mslib/mscolab/mscolab.py b/mslib/mscolab/mscolab.py index 0d33b17dd..70ff78c2a 100644 --- a/mslib/mscolab/mscolab.py +++ b/mslib/mscolab/mscolab.py @@ -101,9 +101,10 @@ def handle_mscolab_certificate_init(): try: cmd = ["openssl", "req", "-newkey", "rsa:4096", "-keyout", - f"{mscolab_settings.MSCOLAB_SSO_DIR}/key_mscolab.key", + os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "key_mscolab.key"), "-nodes", "-x509", "-days", "365", "-batch", "-subj", - "/CN=localhost", "-out", f"{mscolab_settings.MSCOLAB_SSO_DIR}/crt_mscolab.crt"] + "/CN=localhost", "-out", os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, + "crt_mscolab.crt")] subprocess.run(cmd, check=True) logging.info("generated CRTs for the mscolab server.") return True @@ -117,9 +118,9 @@ def handle_local_idp_certificate_init(): try: cmd = ["openssl", "req", "-newkey", "rsa:4096", "-keyout", - f"{mscolab_settings.MSCOLAB_SSO_DIR}/key_local_idp.key", + os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "key_local_idp.key"), "-nodes", "-x509", "-days", "365", "-batch", "-subj", - "/CN=localhost", "-out", f"{mscolab_settings.MSCOLAB_SSO_DIR}/crt_local_idp.crt"] + "/CN=localhost", "-out", os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "crt_local_idp.crt")] subprocess.run(cmd, check=True) logging.info("generated CRTs for the local identity provider") return True @@ -250,7 +251,7 @@ def handle_mscolab_backend_yaml_init(): # name_id_format_allow_create: true """ try: - file_path = f"{mscolab_settings.MSCOLAB_SSO_DIR}/mss_saml2_backend.yaml" + file_path = os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "mss_saml2_backend.yaml") with open(file_path, "w", encoding="utf-8") as file: file.write(saml_2_backend_yaml_content) return True @@ -271,14 +272,15 @@ def handle_mscolab_metadata_init(repo_exists): print('generating metadata file for the mscolab server') try: - command = ["python", "mslib/mscolab/mscolab.py", "start"] if repo_exists else ["mscolab", "start"] + command = ["python", os.path.join("mslib", "mscolab", "mscolab.py"), + "start"] if repo_exists else ["mscolab", "start"] process = subprocess.Popen(command) # Add a small delay to allow the server to start up time.sleep(10) cmd_curl = ["curl", "http://localhost:8083/metadata/localhost_test_idp", - "-o", f"{mscolab_settings.MSCOLAB_SSO_DIR}/metadata_sp.xml"] + "-o", os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "metadata_sp.xml")] subprocess.run(cmd_curl, check=True) process.terminate() logging.info('mscolab metadata file generated succesfully') @@ -293,27 +295,27 @@ def handle_local_idp_metadata_init(repo_exists): print('generating metadata for localhost identity provider') try: - if os.path.exists(f"{mscolab_settings.MSCOLAB_SSO_DIR}/idp.xml"): - os.remove(f"{mscolab_settings.MSCOLAB_SSO_DIR}/idp.xml") + if os.path.exists(os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "idp.xml")): + os.remove(os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "idp.xml")) - idp_conf_path = "mslib/msidp/idp_conf.py" + idp_conf_path = os.path.join("mslib", "msidp", "idp_conf.py") if not repo_exists: import site site_packages_path = site.getsitepackages()[0] - idp_conf_path = os.path.join(site_packages_path, "mslib/msidp/idp_conf.py") + idp_conf_path = os.path.join(site_packages_path, "mslib", "msidp", "idp_conf.py") cmd = ["make_metadata", idp_conf_path] - with open(f"{mscolab_settings.MSCOLAB_SSO_DIR}/idp.xml", + with open(os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "idp.xml"), "w", encoding="utf-8") as output_file: subprocess.run(cmd, stdout=output_file, check=True) logging.info("idp metadata file generated succesfully") return True except subprocess.CalledProcessError as error: # Delete the idp.xml file when the subprocess fails - if os.path.exists(f"{mscolab_settings.MSCOLAB_SSO_DIR}/idp.xml"): - os.remove(f"{mscolab_settings.MSCOLAB_SSO_DIR}/idp.xml") + if os.path.exists(os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "idp.xml")): + os.remove(os.path.join(mscolab_settings.MSCOLAB_SSO_DIR, "idp.xml")) print(f"Error while generating metadata for localhost identity provider: {error}") return False