#!/usr/bin/env python3.11
# ------------------------------------------------------------------------------
# Copyright 2023 Open Text.
#
# The only warranties for products and services of Open Text and its
# affiliates and licensors (“Open Text”) are as may be set forth in the
# express warranty statements accompanying such products and services.
# Nothing herein should be construed as constituting an additional
# warranty. Open Text shall not be liable for technical or editorial
# errors or omissions contained herein. The information contained herein
# is subject to change without notice.
#
# Except as specifically indicated otherwise, this document contains
# confidential information and a valid license is required for possession,
# use or copying. If this work is provided to the U.S. Government,
# consistent with FAR 12.211 and 12.212, Commercial Computer Software,
# Computer Software Documentation, and Technical Data for Commercial Items
# are licensed to the U.S. Government under vendor's standard commercial
# license.
# -------------------------------------------------------------------------

import json
import os

CERT_PATH = "/etc/ssl/servercerts/servercert.pem"
SERVET_CONFIG_PATH="/etc/opt/novell/telemetry/config/serverconfig"
SERVER_ROLE_TYPE_STR="SERVER_ROLE="
def get_server_role(filePath, searchString):
    """
    Get the certificate path from the conf file

    """
    certificatePath = ""
    try:
        with open(filePath,'r') as file:
            for line in file.readlines():
                if not line.startswith(";") and not line.startswith("#"):
                    if searchString in line:
                        length=len(line)
                        start_index=line.find(searchString)
                        extracted_string= line[start_index:start_index+length]
                        string=(extracted_string.strip())
                        splitting = string.split("=")
                        certificatePath = (splitting[1].strip())
                        certificatePath = (certificatePath.split(' '))
                        certificatePath = certificatePath[0]
                        certificatePath = certificatePath.strip("\"")

                        """
                        If it is a symlink then we will get the corrsponding value.
                        """
                        if os.path.islink(certificatePath):
                            certificatePath = os.readlink(certificatePath)
                        else:
                            certificatePath = certificatePath

    except FileNotFoundError as e:
        exit(200)
    finally:
        if(file != None):
            file.close()

    return certificatePath

if os.path.exists(CERT_PATH):

    serverrole = get_server_role(SERVET_CONFIG_PATH, SERVER_ROLE_TYPE_STR)
    if (serverrole == "yes") :
        exit (202)
    else :
        exit (201)
else:
    exit (201)