def modify_cs_config()

in bicep/files-to-load/cyclecloud_install.py [0:0]


def modify_cs_config(options):
    print("Editing CycleCloud server system properties file")
    # modify the CS config files
    cs_config_file = cycle_root + "/config/cycle_server.properties"

    fh, tmp_cs_config_file = mkstemp()
    with fdopen(fh, 'w') as new_config:
        with open(cs_config_file) as cs_config:
            for line in cs_config:
                if line.startswith('webServerMaxHeapSize='):
                    new_config.write('webServerMaxHeapSize={}\n'.format(options['webServerMaxHeapSize']))
                elif line.startswith('webServerPort='):                    
                    # Port numbers may not be empty
                    new_config.write('webServerPort={}\n'.format(options['webServerPort'] if options['webServerPort'] else 8080))  
                elif line.startswith('webServerSslPort='):
                    new_config.write('webServerSslPort={}\n'.format(options['webServerSslPort'] if options['webServerSslPort'] else 8443))
                elif line.startswith('webServerClusterPort'):
                    new_config.write('webServerClusterPort={}\n'.format(options['webServerClusterPort'] if options['webServerClusterPort'] else 9443))
                elif line.startswith('webServerEnableHttps='):
                    new_config.write('webServerEnableHttps={}\n'.format(str(options['webServerEnableHttps']).lower()) if options['webServerEnableHttps'] else 'true')
                elif line.startswith('webServerHostname'):
                    # This isn't generally a default setting, so set it below
                    continue
                elif line.startswith('webServerJvmOptions='):
                    # JVM Options are complex and difficult to pass as arguments
                    #     so for now, we require an environment variable
                    jvm_options = os.environ.get('CYCLECLOUD_WEBSERVER_JVM_OPTIONS', '')
                    if jvm_options:
                        new_config.write('webServerJvmOptions={}\n'.format(jvm_options))
                    else:
                        new_config.write(line)
                else:
                    new_config.write(line)

            if 'webServerHostname' in options and options['webServerHostname']:
                new_config.write('webServerHostname={}\n'.format(options['webServerHostname']))

    remove(cs_config_file)
    move(tmp_cs_config_file, cs_config_file)

    #Ensure that the files are created by the cycleserver service user
    #   - Recursive chown is not supported if installing as low-priv cycle_server user
    #_catch_sys_error(["chown", "-R", "cycle_server.", cycle_root])
    _catch_sys_error(["chown", "cycle_server:cycle_server", cs_config_file])