예제 #1
0
def add_variable_temporary(variable_name, variable_val):
    """
    User can define his own variable, that can be called from any place in test scenario,
    by $(variable_name). Allowed signs in variable name are: capitalized letters and '_'.

    Temporary variable will be stored in world.define and cleared at the end of scenario.
    """
    other.add_variable(variable_name, variable_val, 0)
예제 #2
0
def add_variable_temporary(variable_name, variable_val):
    """
    User can define his own variable, that can be called from any place in test scenario,
    by $(variable_name). Allowed signs in variable name are: capitalized letters and '_'.

    Temporary variable will be stored in world.define and cleared at the end of scenario.
    """
    multi_protocol_functions.add_variable(variable_name, variable_val, 0)
예제 #3
0
def add_variable_permanent(variable_name, variable_val):
    """
    User can define his own variable, that can be called from any place in test scenario,
    by $(variable_name). Allowed signs in variable name are: capitalized letters and '_'.

    Permanent variable will be placed at the end of the init_all.py file. It won't be removed.
    User can do so by removing it from file.
    """
    other.add_variable(variable_name, variable_val, 1)
예제 #4
0
def add_variable_permanent(variable_name, variable_val):
    """
    User can define his own variable, that can be called from any place in test scenario,
    by $(variable_name). Allowed signs in variable name are: capitalized letters and '_'.

    Permanent variable will be placed at the end of the init_all.py file. It won't be removed.
    User can do so by removing it from file.
    """
    multi_protocol_functions.add_variable(variable_name, variable_val, 1)
예제 #5
0
파일: functions.py 프로젝트: godfryd/forge
def cfg_write():
    config_db_backend()
    for number in range(0, len(world.subcfg)):
        if len(world.subcfg[number][2]) > 10:
            world.subcfg[number][
                2] = '"option-data": [' + world.subcfg[number][2] + "]"
        if len(world.subcfg[number][4]) > 10:
            world.subcfg[number][
                4] = '"pools": [' + world.subcfg[number][4] + "]"
        if len(world.subcfg[number][5]) > 10:
            world.subcfg[number][
                5] = '"reservations":[' + world.subcfg[number][5] + "]"
    cfg_file = open(world.cfg["cfg_file"], 'w')
    # add timers
    cfg_file.write(world.cfg["main"])
    if len(world.cfg["server-id"]) > 5:
        cfg_file.write(world.cfg["server-id"])
    # add class definitions
    if len(world.classification) > 0:
        if len(world.classification[0][0]) > 0:
            cfg_file.write('"client-classes": [')
            counter = 0
            for each_class in world.classification:
                if counter > 0:
                    cfg_file.write(',')
                cfg_file.write('{')  # open class
                cfg_file.write('"name":"' + each_class[0] + '"')
                if len(each_class[1]) > 0:
                    cfg_file.write("," + each_class[1])
                if len(each_class[2]) > 0:
                    cfg_file.write(',"option-data": [' + each_class[2] + "]")
                cfg_file.write('}')  # close each class
                counter += 1
            cfg_file.write("],")  # close classes
    # add interfaces
    cfg_file.write('"interfaces-config": { "interfaces": [ ' +
                   world.cfg["interfaces"] + ' ] },')
    # add header for subnets
    if world.subnet_add:
        if "kea6" in world.cfg["dhcp_under_test"]:
            cfg_file.write('"subnet6":[')
        elif "kea4" in world.cfg["dhcp_under_test"]:
            cfg_file.write('"subnet4":[')
        # add subnets
        counter = 0
        comma = 0
        for each_subnet in world.subcfg:
            if counter in world.shared_subnets_tmp:
                # subnets that suppose to go to shared-networks should be omitted here
                counter += 1
                continue
            if counter > 0 and comma == 1:
                cfg_file.write(",")
            tmp = each_subnet[0]
            # we need to be able to add interface-id to config but we want to keep backward compatibility.
            if "interface" not in tmp or "interface-id" not in tmp:
                eth = world.f_cfg.server_iface
                tmp += ', "interface": "{eth}" '.format(**locals())
            counter += 1
            comma = 1
            for each_subnet_config_part in each_subnet[1:]:
                if len(each_subnet_config_part) > 0:
                    tmp += ',' + each_subnet_config_part
            cfg_file.write(tmp + '}')
        cfg_file.write(']')
        # that is ugly hack but kea confing generation is awaiting rebuild anyway
        if "options" in world.cfg:
            cfg_file.write(',' + world.cfg["options"])
            cfg_file.write("]")
            del world.cfg["options"]

    if "options" in world.cfg:
        cfg_file.write(world.cfg["options"])
        cfg_file.write("]")
        del world.cfg["options"]

    if "option_def" in world.cfg:
        cfg_file.write(',' + world.cfg["option_def"])
        cfg_file.write("]")
        del world.cfg["option_def"]

    if len(world.hooks) > 0 or len(world.kea_ha[0]) > 0:
        cfg_file.write(',"hooks-libraries": [')
        test_length_1 = len(world.hooks)
        counter_1 = 1
        for each_hook in world.hooks:
            cfg_file.write('{"library": "' + each_hook[0] + '"')
            if len(each_hook[1]) > 0:
                cfg_file.write(',"parameters": {')
                test_length_2 = len(each_hook[1])
                counter_2 = 1
                for every_parameter in each_hook[1]:
                    cfg_file.write('"' + every_parameter[0] + '":')
                    if every_parameter[1] in [
                            "true", "false"
                    ]:  # TODO add if value is numeric
                        cfg_file.write(every_parameter[1])
                    else:
                        cfg_file.write('"' + every_parameter[1] + '"')
                    if counter_2 < test_length_2:
                        cfg_file.write(',')
                    counter_2 += 1
                cfg_file.write('}')  # closing parameters
            if counter_1 < test_length_1:
                cfg_file.write('},')
            counter_1 += 1
        cfg_file.write('}')  # closing libs
        if len(world.kea_ha[0]) > 0:
            if len(world.hooks) > 0:
                cfg_file.write(',')
            cfg_file.write('{"library": "' + world.kea_ha[0][0] +
                           '","parameters":{"high-availability":[{')
            # add single parameters to main map
            for each_param in world.kea_ha[1]:
                cfg_file.write('"' + each_param[0] + '":' + each_param[1] +
                               ",")
            # add peers
            cfg_file.write('"peers": [')
            for each_ha_peer in world.kea_ha[2]:
                cfg_file.write(each_ha_peer)
                if world.kea_ha[2].index(each_ha_peer) != len(
                        world.kea_ha[2]) - 1:
                    cfg_file.write(",")
            cfg_file.write(']')
            if len(world.kea_ha[3]) > 0:
                cfg_file.write(',"state-machine":{"states":[')
                for each_state in world.kea_ha[3]:
                    cfg_file.write(each_state)
                    if world.kea_ha[3].index(each_state) != len(
                            world.kea_ha[3]) - 1:
                        cfg_file.write(",")
                cfg_file.write(']}')
            cfg_file.write('}]}}')

        cfg_file.write(']')  # closing hooks

    if "simple_options" in world.cfg:
        cfg_file.write(',' + world.cfg["simple_options"])
        del world.cfg["simple_options"]

    if world.ddns_enable:
        cfg_file.write(',' + world.ddns_add + '}')

    if "custom_lines" in world.cfg:
        cfg_file.write(',' + world.cfg["custom_lines"])
        # cfg_file.write("]")
        del world.cfg["custom_lines"]

    if "socket" in world.cfg:
        cfg_file.write(',' + world.cfg["socket"])
        del world.cfg["socket"]

    if len(world.shared_subnets) > 0:
        shared_counter = 0
        last_option = ""
        cfg_file.write(' ,"shared-networks":[')
        for each_shared_subnet in world.shared_subnets:
            counter = 0
            comma = 0
            if shared_counter > 0:
                cfg_file.write(',')
            cfg_file.write('{')

            for each_option in world.shared_subcfg[shared_counter]:
                cfg_file.write(each_option)
                last_option = each_option

            if last_option[:-1] != ",":
                cfg_file.write(",")

            if "kea6" in world.cfg["dhcp_under_test"]:
                cfg_file.write('"subnet6":[')

            elif "kea4" in world.cfg["dhcp_under_test"]:
                cfg_file.write('"subnet4":[')

            for each_subnet in world.subcfg:
                if counter in each_shared_subnet:
                    if counter > 0 and comma == 1:
                        cfg_file.write(",")
                    tmp = each_subnet[0]
                    # we need to be able to add interface-id to config but we want to keep backward compatibility.
                    # if "interface" not in tmp or "interface-id" not in tmp:
                    #     eth = world.f_cfg.server_iface
                    #     tmp += ', "interface": "{eth}" '.format(**locals())
                    counter += 1
                    comma = 1

                    for each_subnet_config_part in each_subnet[1:]:
                        if len(each_subnet_config_part) > 0:
                            tmp += ',' + each_subnet_config_part
                        # tmp += str(each_subnet[-1])
                    cfg_file.write(tmp + '}')
                else:
                    counter += 1
            # shared_counter += 1
            cfg_file.write(']')
            shared_counter += 1
            cfg_file.write('}')  # end of map of each shared network
        cfg_file.write(']')  # end of shared networks list

    cfg_file.write(
        '}'
    )  # end of DHCP part (should be moved if something else will be added after shared-networks

    if world.ddns_enable:
        build_ddns_config()
        cfg_file.write(world.ddns)

    if "agent" in world.cfg:
        cfg_file.write(',' + world.cfg["agent"])
        del world.cfg["agent"]

    logging_file = world.f_cfg.software_install_path + 'var/kea/kea.log'

    log_type = ''
    if "kea6" in world.cfg["dhcp_under_test"]:
        log_type = 'kea-dhcp6'
    elif "kea4" in world.cfg["dhcp_under_test"]:
        log_type = 'kea-dhcp4'

    cfg_file.write(',"Logging": {"loggers": [')
    if "logger" not in world.cfg:
        cfg_file.write('{"name": "' + log_type +
                       '","output_options": [{"output": "' + logging_file +
                       '"}')
        cfg_file.write('],"debuglevel": 99,"severity": "DEBUG"}')
        if world.ddns_enable:
            cfg_file.write(
                ',{"name": "kea-dhcp-ddns","output_options": [{"output": "' +
                logging_file + '_ddns"}')
            cfg_file.write('],"debuglevel": 99,"severity": "DEBUG"}')
    else:
        cfg_file.write(world.cfg["logger"])

    cfg_file.write(']}')
    cfg_file.write('}')  # end of the config file
    cfg_file.close()
    # kea ctrl script config file
    cfg_file = open(world.cfg["cfg_file_2"], 'w')
    cfg_file.write(world.cfg["keactrl"])
    cfg_file.close()
    world.subcfg = [["", "", "", "", "", "", ""]]
    config = open(world.cfg["cfg_file"], 'r')
    world.configString = config.read().replace('\n', '').replace(' ', '')
    config.close()
    add_variable("SERVER_CONFIG", world.configString, False)
    json_file_layout()
예제 #6
0
def cfg_write():
    config_db_backend()
    checker = 0
    for number in range(len(world.subcfg)):
        if len(world.subcfg[number][2]) > 10:
            world.subcfg[number][2] = '"option-data": [' + world.subcfg[number][2] + "]"
        if len(world.subcfg[number][4]) > 10:
            world.subcfg[number][4] = '"pools": [' + world.subcfg[number][4] + "]"
        if len(world.subcfg[number][5]) > 10:
            world.subcfg[number][5] = '"reservations":[' + world.subcfg[number][5] + "]"
    cfg_file = open(world.cfg["cfg_file"], 'w')
    # add timers
    cfg_file.write(world.cfg["main"])
    if len(world.cfg["server-id"]) > 5:
        cfg_file.write(world.cfg["server-id"])
    # add class definitions
    if len(world.classification) > 0:
        if len(world.classification[0][0]) > 0:
            cfg_file.write('"client-classes": [')
            counter = 0
            for each_class in world.classification:
                if counter > 0:
                    cfg_file.write(',')
                cfg_file.write('{')  # open class
                cfg_file.write('"name":"' + each_class[0] + '"')
                if len(each_class[1]) > 0:
                    cfg_file.write("," + each_class[1])
                if len(each_class[2]) > 0:
                    cfg_file.write(',"option-data": [' + each_class[2] + "]")
                cfg_file.write('}')  # close each class
                counter += 1
            cfg_file.write("],")  # close classes
    # add interfaces
    cfg_file.write('"interfaces-config": { "interfaces": [ ' + world.cfg["interfaces"] + ' ] },')
    # add header for subnets
    if world.subnet_add:
        if "kea6" in world.cfg["dhcp_under_test"]:
            cfg_file.write('"subnet6":[')
        elif "kea4" in world.cfg["dhcp_under_test"]:
            cfg_file.write('"subnet4":[')
        # add subnets
        counter = 0
        comma = 0
        for each_subnet in world.subcfg:
            if counter in world.shared_subnets_tmp:
                # subnets that suppose to go to shared-networks should be omitted here
                checker = 1
                counter += 1
                continue
            if counter > 0 and comma == 1:
                cfg_file.write(",")
            tmp = each_subnet[0]
            # we need to be able to add interface-id to config but we want to keep backward compatibility.
            if "interface" not in tmp or "interface-id" not in tmp:
                eth = world.f_cfg.server_iface
                tmp += ', "interface": "{eth}" '.format(**locals())
            counter += 1
            comma = 1
            for each_subnet_config_part in each_subnet[1:]:
                checker = 1
                if len(each_subnet_config_part) > 0:
                    tmp += ',' + each_subnet_config_part
            cfg_file.write(tmp + '}')
        cfg_file.write(']')
        # that is ugly hack but kea confing generation is awaiting rebuild anyway
        if "options" in world.cfg:
            cfg_file.write(',' + world.cfg["options"])
            cfg_file.write("]")
            del world.cfg["options"]

    if "options" in world.cfg:
        cfg_file.write(world.cfg["options"])
        checker = 1
        cfg_file.write("]")
        del world.cfg["options"]

    if "option_def" in world.cfg:
        cfg_file.write(',' + world.cfg["option_def"])
        cfg_file.write("]")
        del world.cfg["option_def"]

    if len(world.hooks) > 0 or len(world.kea_ha[0]) > 0:
        if checker == 1:
            cfg_file.write(',')
        cfg_file.write('"hooks-libraries": [')
        test_length_1 = len(world.hooks)
        counter_1 = 1
        for each_hook in world.hooks:
            cfg_file.write('{"library": "' + each_hook[0] + '"')
            if len(each_hook[1]) > 0:
                cfg_file.write(',"parameters": {')
                test_length_2 = len(each_hook[1])
                counter_2 = 1
                for every_parameter in each_hook[1]:
                    cfg_file.write('"' + every_parameter[0] + '":')
                    if every_parameter[1] in ["true", "false"]:  # TODO add if value is numeric
                        cfg_file.write(every_parameter[1])
                    else:
                        cfg_file.write('"' + every_parameter[1] + '"')
                    if counter_2 < test_length_2:
                        cfg_file.write(',')
                    counter_2 += 1
                cfg_file.write('}')  # closing parameters
            if counter_1 < test_length_1:
                cfg_file.write('},')
            counter_1 += 1
        cfg_file.write('}')  # closing libs
        if len(world.kea_ha[0]) > 0:
            if len(world.hooks) > 0:
                cfg_file.write(',')
            cfg_file.write('{"library": "' + world.kea_ha[0][0] + '","parameters":{"high-availability":[{')
            # add single parameters to main map
            for each_param in world.kea_ha[1]:
                cfg_file.write('"'+each_param[0]+'":'+each_param[1]+",")
            # add peers
            cfg_file.write('"peers": [')
            for each_ha_peer in world.kea_ha[2]:
                cfg_file.write(each_ha_peer)
                if world.kea_ha[2].index(each_ha_peer) != len(world.kea_ha[2]) - 1:
                    cfg_file.write(",")
            cfg_file.write(']')
            if len(world.kea_ha[3]) > 0:
                cfg_file.write(',"state-machine":{"states":[')
                for each_state in world.kea_ha[3]:
                    cfg_file.write(each_state)
                    if world.kea_ha[3].index(each_state) != len(world.kea_ha[3]) - 1:
                        cfg_file.write(",")
                cfg_file.write(']}')
            cfg_file.write('}]}}')

        cfg_file.write(']')  # closing hooks

    if "simple_options" in world.cfg:
        cfg_file.write(',' + world.cfg["simple_options"])
        del world.cfg["simple_options"]

    if world.ddns_enable:
        cfg_file.write(',' + world.ddns_add + '}')

    if "custom_lines" in world.cfg:
        cfg_file.write(',' + world.cfg["custom_lines"])
        # cfg_file.write("]")
        del world.cfg["custom_lines"]

    if "socket" in world.cfg:
        cfg_file.write(',' + world.cfg["socket"])
        del world.cfg["socket"]

    if len(world.shared_subnets) > 0:
        shared_counter = 0
        last_option = ""
        cfg_file.write(' ,"shared-networks":[')
        for each_shared_subnet in world.shared_subnets:
            counter = 0
            comma = 0
            if shared_counter > 0:
                cfg_file.write(',')
            cfg_file.write('{')

            for each_option in world.shared_subcfg[shared_counter]:
                cfg_file.write(each_option)
                last_option = each_option

            if last_option[:-1] != ",":
                cfg_file.write(",")

            if "kea6" in world.cfg["dhcp_under_test"]:
                cfg_file.write('"subnet6":[')

            elif "kea4" in world.cfg["dhcp_under_test"]:
                cfg_file.write('"subnet4":[')

            for each_subnet in world.subcfg:
                if counter in each_shared_subnet:
                    if counter > 0 and comma == 1:
                        cfg_file.write(",")
                    tmp = each_subnet[0]
                    # we need to be able to add interface-id to config but we want to keep backward compatibility.
                    # if "interface" not in tmp or "interface-id" not in tmp:
                    #     eth = world.f_cfg.server_iface
                    #     tmp += ', "interface": "{eth}" '.format(**locals())
                    counter += 1
                    comma = 1

                    for each_subnet_config_part in each_subnet[1:]:
                        if len(each_subnet_config_part) > 0:
                            tmp += ',' + each_subnet_config_part
                        # tmp += str(each_subnet[-1])
                    cfg_file.write(tmp + '}')
                else:
                    counter += 1
            # shared_counter += 1
            cfg_file.write(']')
            shared_counter += 1
            cfg_file.write('}')  # end of map of each shared network
        cfg_file.write(']')  # end of shared networks list

    cfg_file.write('}')  # end of DHCP part (should be moved if something else will be added after shared-networks

    if world.ddns_enable:
        build_ddns_config()
        cfg_file.write(world.ddns)

    if "agent" in world.cfg:
        cfg_file.write(',' + world.cfg["agent"])
        del world.cfg["agent"]

    logging_file = os.path.join(world.f_cfg.software_install_path, 'var/kea/kea.log')

    log_type = ''
    if "kea6" in world.cfg["dhcp_under_test"]:
        log_type = 'kea-dhcp6'
    elif "kea4" in world.cfg["dhcp_under_test"]:
        log_type = 'kea-dhcp4'

    cfg_file.write(',"Logging": {"loggers": [')
    if "logger" not in world.cfg:
        cfg_file.write('{"name": "' + log_type + '","output_options": [{"output": "' + logging_file + '"}')
        cfg_file.write('],"debuglevel": 99,"severity": "DEBUG"}')
        if world.ddns_enable:
            cfg_file.write(',{"name": "kea-dhcp-ddns","output_options": [{"output": "' + logging_file + '_ddns"}')
            cfg_file.write('],"debuglevel": 99,"severity": "DEBUG"}')
    else:
        cfg_file.write(world.cfg["logger"])

    cfg_file.write(']}')
    cfg_file.write('}')  # end of the config file
    cfg_file.close()
    # kea ctrl script config file
    cfg_file = open(world.cfg["cfg_file_2"], 'w')
    cfg_file.write(world.cfg["keactrl"])
    cfg_file.close()
    world.subcfg = [["", "", "", "", "", "", ""]]
    config = open(world.cfg["cfg_file"], 'r')
    world.configString = config.read().replace('\n', '').replace(' ', '')
    config.close()
    add_variable("SERVER_CONFIG", world.configString, False)
    json_file_layout()
예제 #7
0
def cfg_write():
    config_db_backend()
    for number in range(0, len(world.subcfg)):
        if len(world.subcfg[number][2]) > 10:
            world.subcfg[number][
                2] = '"option-data": [' + world.subcfg[number][2] + "]"
        if len(world.subcfg[number][4]) > 10:
            world.subcfg[number][
                4] = '"pools": [' + world.subcfg[number][4] + "]"
        if len(world.subcfg[number][5]) > 10:
            world.subcfg[number][
                5] = '"reservations":[' + world.subcfg[number][5] + "]"
    cfg_file = open(world.cfg["cfg_file"], 'w')
    ## add timers
    cfg_file.write(world.cfg["main"])
    if len(world.cfg["server-id"]) > 5:
        cfg_file.write(world.cfg["server-id"])
    ## add interfaces
    cfg_file.write('"interfaces-config": { "interfaces": [ ' +
                   world.cfg["interfaces"] + ' ] },')
    ## add header for subnets
    if world.subnet_add:
        if "kea6" in world.cfg["dhcp_under_test"]:
            cfg_file.write('"subnet6":[')
        elif "kea4" in world.cfg["dhcp_under_test"]:
            cfg_file.write('"subnet4":[')

        ## add subnets
        counter = 0
        for each_subnet in world.subcfg:
            tmp = each_subnet[0]
            # we need to be able to add interface-id to config but we want to keep backward compatibility.
            if "interface" not in tmp or "interface-id" not in tmp:
                eth = world.f_cfg.server_iface
                tmp += ', "interface": "{eth}" '.format(**locals())
            counter += 1
            for each_subnet_config_part in each_subnet[1:]:
                if len(each_subnet_config_part) > 0:
                    tmp += ',' + each_subnet_config_part
                #tmp += str(each_subnet[-1])
            cfg_file.write(tmp + '}')
            if counter != len(world.subcfg) and len(world.subcfg) > 1:
                cfg_file.write(",")
        cfg_file.write(']')
        #that is ugly hack but kea confing generation is awaiting rebuild anyway
        if "options" in world.cfg:
            cfg_file.write(',' + world.cfg["options"])
            cfg_file.write("]")
            del world.cfg["options"]

    if "options" in world.cfg:
        cfg_file.write(world.cfg["options"])
        cfg_file.write("]")
        del world.cfg["options"]

    if "option_def" in world.cfg:
        cfg_file.write(',' + world.cfg["option_def"])
        cfg_file.write("]")
        del world.cfg["option_def"]

    if "hooks" in world.cfg:
        cfg_file.write(',"hooks-libraries": [' + world.cfg["hooks"] + ']')
        del world.cfg["hooks"]

    if "simple_options" in world.cfg:
        cfg_file.write(',' + world.cfg["simple_options"])
        del world.cfg["simple_options"]

    if world.ddns_enable:
        cfg_file.write(',' + world.ddns_add + '}')

    if "custom_lines" in world.cfg:
        cfg_file.write(',' + world.cfg["custom_lines"])
        #cfg_file.write("]")
        del world.cfg["custom_lines"]

    if "socket" in world.cfg:
        cfg_file.write(',' + world.cfg["socket"])
        del world.cfg["socket"]

    cfg_file.write('}')

    if world.ddns_enable:
        build_ddns_config()
        cfg_file.write(world.ddns)
        #cfg_file.write("}")

    if "agent" in world.cfg:
        cfg_file.write(',' + world.cfg["agent"])
        del world.cfg["agent"]

    logging_file = world.f_cfg.software_install_path + 'var/kea/kea.log'

    log_type = ''
    if "kea6" in world.cfg["dhcp_under_test"]:
        log_type = 'kea-dhcp6'
    elif "kea4" in world.cfg["dhcp_under_test"]:
        log_type = 'kea-dhcp4'

    cfg_file.write(',"Logging": {"loggers": [')
    if not "logger" in world.cfg:
        cfg_file.write('{"name": "' + log_type +
                       '","output_options": [{"output": "' + logging_file +
                       '"}')
        cfg_file.write('],"debuglevel": 99,"severity": "DEBUG"}')
        if world.ddns_enable:
            cfg_file.write(
                ',{"name": "kea-dhcp-ddns","output_options": [{"output": "' +
                logging_file + '_ddns"}')
            cfg_file.write('],"debuglevel": 99,"severity": "DEBUG"}')
    else:
        cfg_file.write(world.cfg["logger"])

    cfg_file.write(']}')
    cfg_file.write('}')  # end of the config file
    cfg_file.close()
    # kea ctrl script config file
    cfg_file = open(world.cfg["cfg_file_2"], 'w')
    cfg_file.write(world.cfg["keactrl"])
    cfg_file.close()
    world.subcfg = [["", "", "", "", "", "", ""]]
    config = open(world.cfg["cfg_file"], 'r')
    world.configString = config.read().replace('\n', '').replace(' ', '')
    config.close()
    add_variable("SERVER_CONFIG", world.configString, False)
    json_file_layout()