#!/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.path


CERT_PATH = "/etc/opt/novell/cis/certs/servercert.pem"
OUT_JSON_PATH = "/var/opt/novell/oes-cert-mgmt/servicecerts/cis-core.json"

def iscisconfigured():
    configStatusjson = open('/etc/opt/novell/cis/configurationStatus.json')
    data = json.load(configStatusjson)
    isconfigured = data['cisConfigSuccess']
    return bool(isconfigured)

def deploymenttype():
    if os.path.exists('/etc/opt/novell/cis/configurationStatus.json'):
        configStatusjson = open('/etc/opt/novell/cis/configurationStatus.json')
        data = json.load(configStatusjson)
        deploymenttype = data['configType']
        configStatusjson.close()
        return deploymenttype
    else:
        return ""

# Data to be written
if os.path.exists(CERT_PATH) and deploymenttype() != "infraHA" and iscisconfigured() == True:
    cisagentcerts = {
        "servicename": "CIS-core",
        "certpath": CERT_PATH,
        "certpathtoprocess": CERT_PATH
    }

    # Serializing json
    json_object = json.dumps(cisagentcerts, indent=4)

    # Writing to sample.json
    with open(OUT_JSON_PATH, "w") as outfile:
        outfile.write(json_object)

    exit (204)
else:
    exit (201)
