Merge pull request 'dev' (#5) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/dabdatasync/pulls/5 new-tag:0.4
This commit was merged in pull request #5.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -44,3 +44,4 @@ helpers-results
|
||||
.coverage
|
||||
.mypy_cache
|
||||
test/tmp
|
||||
test/nextcloud_pwd.mdp
|
||||
@@ -18,7 +18,7 @@ name = "dabdatasync"
|
||||
description = "dabdatasync"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
keywords = ["chacha","chacha","template","dabdatasync"]
|
||||
keywords = ["chacha","dabdatasync","dab","debian","proxmox","pydabfactory"]
|
||||
license = { file = "LICENSE.md" }
|
||||
|
||||
authors = [
|
||||
|
||||
@@ -17,9 +17,10 @@ import sys
|
||||
from tap import Tap
|
||||
from loguru import logger
|
||||
|
||||
from . import __Summuary__, __Name__
|
||||
from . import __Summuary__, __Name__, __version__
|
||||
from . import datasync
|
||||
from . import exceptions
|
||||
from . import compressors
|
||||
|
||||
|
||||
class dabdatasync_args_GetServices(Tap):
|
||||
@@ -36,7 +37,10 @@ class dabdatasync_args_service_abstract(Tap):
|
||||
service: Optional[str] = None
|
||||
|
||||
def configure(self) -> None:
|
||||
self.add_argument("--service")
|
||||
self.add_argument(
|
||||
"--service",
|
||||
help=f"specify the service to use (availables: {datasync.DataSync_Factory.get_list()}, first found in priority if not set)",
|
||||
)
|
||||
|
||||
|
||||
class dabdatasync_args_service_compress_abstract(dabdatasync_args_service_abstract):
|
||||
@@ -46,7 +50,10 @@ class dabdatasync_args_service_compress_abstract(dabdatasync_args_service_abstra
|
||||
|
||||
def configure(self) -> None:
|
||||
super().configure()
|
||||
self.add_argument("--compressor")
|
||||
self.add_argument(
|
||||
"--compressor",
|
||||
help=f"specify the compressor method (availables: {compressors.DataSync_Compressors.get_list()}, .tar.gz if not set)",
|
||||
)
|
||||
|
||||
|
||||
class dabdatasync_args_PullData(dabdatasync_args_service_compress_abstract):
|
||||
@@ -65,11 +72,15 @@ class dabdatasync_args(Tap):
|
||||
"""Main CLI arg parser"""
|
||||
|
||||
verbosity: int = 0
|
||||
help: bool = False
|
||||
version: bool = False
|
||||
|
||||
def configure(self) -> None:
|
||||
self.add_argument("--version", action="store_true", help="show version string")
|
||||
self.add_argument("-h", "--help", action="store_true", help="full help")
|
||||
self.add_argument("-v", "--verbosity", action="count", help="increase output verbosity")
|
||||
|
||||
self.add_subparsers(dest="command", help="command type", required=True)
|
||||
self.add_subparsers(dest="command", help="command type")
|
||||
self.add_subparser("GetServices", dabdatasync_args_GetServices, help="Get registered services list")
|
||||
self.add_subparser("PullData", dabdatasync_args_PullData, help="Pull data from the service")
|
||||
self.add_subparser("PushData", dabdatasync_args_PushData, help="Push data to the service")
|
||||
@@ -81,12 +92,26 @@ class dabdatasync_args(Tap):
|
||||
self.command: Union[str, None] = cast(Union[str, None], self.command) # pylint: disable=attribute-defined-outside-init
|
||||
|
||||
|
||||
def fct_main(i_args: list[str]) -> None: # pylint: disable=too-many-branches,too-complex
|
||||
def fct_main(i_args: list[str]) -> None: # pylint: disable=too-many-branches,too-complex,too-many-statements
|
||||
"""CLI main function"""
|
||||
parser: dabdatasync_args = dabdatasync_args(prog=__Name__, description=__Summuary__)
|
||||
|
||||
args: dabdatasync_args = parser.parse_args(i_args)
|
||||
|
||||
if args.help or args.version:
|
||||
print(f"{__Name__} version {__version__}")
|
||||
|
||||
if args.help:
|
||||
print(parser.format_help())
|
||||
|
||||
for name, subparser in parser._subparsers.choices.items(): # type: ignore[union-attr] # pylint: disable=protected-access
|
||||
print("=========================")
|
||||
print(f"Subparser {{{name}}}")
|
||||
print(subparser.format_help())
|
||||
|
||||
if args.help or args.version:
|
||||
sys.exit(0)
|
||||
|
||||
logger.remove()
|
||||
if args.verbosity:
|
||||
if args.verbosity == 1:
|
||||
@@ -143,13 +168,13 @@ def fct_main(i_args: list[str]) -> None: # pylint: disable=too-many-branches,to
|
||||
selected_dabdatasync.wipe_remote_data()
|
||||
return
|
||||
|
||||
raise RuntimeError("Invalid argument")
|
||||
raise RuntimeError("a command is required")
|
||||
|
||||
|
||||
def CLI():
|
||||
"""wrapper for .toml declared script"""
|
||||
fct_main(sys.argv)
|
||||
fct_main(sys.argv[1:])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
fct_main(sys.argv[1:])
|
||||
CLI()
|
||||
|
||||
@@ -76,6 +76,11 @@ class DataSync_Compressors:
|
||||
return found[0]
|
||||
raise DataSyncException_TooManyCompressorFound()
|
||||
|
||||
@classmethod
|
||||
def get_list(cls) -> list[str]:
|
||||
"""return the available compressor name list"""
|
||||
return [_.compressor_name for _ in cls._availables]
|
||||
|
||||
|
||||
@DataSync_Compressors.register
|
||||
class DataSync_Compressor__tar_gz(A_DataSync_Compressor):
|
||||
|
||||
@@ -33,6 +33,7 @@ class A_DataSync(ABC):
|
||||
"""Abstract DataSync class"""
|
||||
|
||||
service_name: str = "ABSTRACT"
|
||||
priority: int = 0
|
||||
|
||||
@classmethod
|
||||
@final
|
||||
@@ -178,3 +179,8 @@ class DataSync_Factory:
|
||||
"""decorator to register a concrete class to the factory"""
|
||||
cls.ar_cls_DataSync.add(_cls)
|
||||
return _cls
|
||||
|
||||
@classmethod
|
||||
def get_list(cls) -> list[str]:
|
||||
"""return the available DataSync concrete class name list"""
|
||||
return [_.service_name for _ in cls.ar_cls_DataSync]
|
||||
|
||||
@@ -32,6 +32,7 @@ class C_DataSync_NextCloud(A_DataSync):
|
||||
"""Concrete DataSync class - Nextcloud"""
|
||||
|
||||
service_name: str = "Nextcloud"
|
||||
priority: int = 100
|
||||
|
||||
def __init__(self, manifest: dict[Any, Any], cls_compressor: type[A_DataSync_Compressor]) -> None:
|
||||
super().__init__(manifest, cls_compressor)
|
||||
|
||||
@@ -10,9 +10,12 @@ import unittest
|
||||
from os import chdir, path as os_path
|
||||
from pathlib import Path
|
||||
import pprint
|
||||
import os
|
||||
import glob
|
||||
from io import StringIO
|
||||
from contextlib import redirect_stdout, redirect_stderr
|
||||
import shutil
|
||||
import json
|
||||
from contexttimer import Timer
|
||||
|
||||
print(__name__)
|
||||
@@ -33,10 +36,45 @@ class TestDabDataSync(unittest.TestCase):
|
||||
shutil.copytree(testdir_path / "test_data_origin", testdir_path / "test_data")
|
||||
shutil.copytree(testdir_path / "test_data_origin", testdir_path / "test_data2")
|
||||
|
||||
nextcloud_pwd = ""
|
||||
if "nextcloud_pwd" in os.environ:
|
||||
nextcloud_pwd = os.environ.get("nextcloud_pwd")
|
||||
elif os.path.isfile(testdir_path / "nextcloud_pwd.mdp"):
|
||||
with open(testdir_path / "nextcloud_pwd.mdp", "rt", encoding="utf-8") as pwd_file:
|
||||
nextcloud_pwd = pwd_file.read()
|
||||
else:
|
||||
raise RuntimeError("NextCloud pwd file not found")
|
||||
|
||||
files = glob.glob(str(testdir_path / "*.json"))
|
||||
files += glob.glob(str(testdir_path / "*.json"))
|
||||
for file in files:
|
||||
with open(file) as f:
|
||||
data = json.load(f)
|
||||
try:
|
||||
data["Args"]["FSSync_NextCloud_Password"]["value"] = nextcloud_pwd
|
||||
except Exception:
|
||||
pass
|
||||
os.remove(file)
|
||||
with open(file, "w") as f:
|
||||
json.dump(data, f, sort_keys=True, indent=4)
|
||||
|
||||
def tearDown(self) -> None:
|
||||
shutil.rmtree(testdir_path / "test_data", ignore_errors=True)
|
||||
shutil.rmtree(testdir_path / "test_data2", ignore_errors=True)
|
||||
|
||||
files = glob.glob(str(testdir_path / "*.json"))
|
||||
files += glob.glob(str(testdir_path / "*.json"))
|
||||
for file in files:
|
||||
with open(file) as f:
|
||||
data = json.load(f)
|
||||
try:
|
||||
data["Args"]["FSSync_NextCloud_Password"]["value"] = ""
|
||||
except Exception:
|
||||
pass
|
||||
os.remove(file)
|
||||
with open(file, "w") as f:
|
||||
json.dump(data, f, sort_keys=True, indent=4)
|
||||
|
||||
def test_version(self):
|
||||
self.assertNotEqual(dabdatasync.__version__, "?.?.?")
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"APP_ID": "2a13dff2-1298-11ee-be56-0242ac120002",
|
||||
"Args": {}}
|
||||
"Args": {}
|
||||
}
|
||||
@@ -1,2 +1,3 @@
|
||||
{
|
||||
"APP_ID": "2a13dff2-1298-11ee-be56-0242ac120002"}
|
||||
"APP_ID": "2a13dff2-1298-11ee-be56-0242ac120002"
|
||||
}
|
||||
@@ -1,374 +1,15 @@
|
||||
{
|
||||
"APP_NAME": "CHACHA-SOTF",
|
||||
"APP_DESC": "ChaCha SonOfTheForset Dedicated Server",
|
||||
"APP_ID": "2a13dff2-1298-11ee-be56-0242ac120002",
|
||||
"REFERENCE_CONFIG_ID": "cf698a62-120a-11ee-be56-0242ac120002",
|
||||
"VIRTUAL": false,
|
||||
"NOBOOTSTRAP": false,
|
||||
"NOFINALIZE": false,
|
||||
"NOSTART": false,
|
||||
"creation_date": "2024-03-24T19:07:48.862542",
|
||||
"Params": {
|
||||
"ROOTFS_SIZE_G": {
|
||||
"value": 20,
|
||||
"modified": true
|
||||
},
|
||||
"AR_TAGS": {
|
||||
"value": [
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "debianbase"
|
||||
},
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "chacha"
|
||||
},
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "games"
|
||||
},
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "sotf"
|
||||
}
|
||||
],
|
||||
"modified": true
|
||||
},
|
||||
"FEATURE_NESTING": {
|
||||
"value": false,
|
||||
"modified": false
|
||||
},
|
||||
"MAIN_MACADDR": {
|
||||
"value": "D2:A9:59:72:C4:B4",
|
||||
"modified": true
|
||||
},
|
||||
"AUTOSTART": {
|
||||
"value": true,
|
||||
"modified": true
|
||||
},
|
||||
"CPU_UNIT": {
|
||||
"value": 1536,
|
||||
"modified": true
|
||||
},
|
||||
"PRIVILEGIED": {
|
||||
"value": false,
|
||||
"modified": false
|
||||
},
|
||||
"DEST_NODE": {
|
||||
"value": "hypervisor2",
|
||||
"modified": true
|
||||
},
|
||||
"SWAP_M": {
|
||||
"value": 2048,
|
||||
"modified": true
|
||||
},
|
||||
"AR_CFG_OPT": {
|
||||
"value": [],
|
||||
"modified": false
|
||||
},
|
||||
"RUNNING_STORAGE": {
|
||||
"value": "VMStore2",
|
||||
"modified": true
|
||||
},
|
||||
"FEATURE_FUSE": {
|
||||
"value": false,
|
||||
"modified": false
|
||||
},
|
||||
"FEATURE_MKNODE": {
|
||||
"value": false,
|
||||
"modified": false
|
||||
},
|
||||
"NETWORK_BRIDGE": {
|
||||
"value": "vmbr1",
|
||||
"modified": true
|
||||
},
|
||||
"CPU_COUNT": {
|
||||
"value": 2,
|
||||
"modified": true
|
||||
},
|
||||
"TEMPLATE_STORAGE": {
|
||||
"value": "live-storage-h2",
|
||||
"modified": true
|
||||
},
|
||||
"RAM_M": {
|
||||
"value": 12000,
|
||||
"modified": true
|
||||
}
|
||||
},
|
||||
"APP_NAME": "CHACHA-SOTF",
|
||||
"Args": {
|
||||
"RootPasswd": {
|
||||
"type": "ROOT_PASSWD",
|
||||
"value": "######"
|
||||
},
|
||||
"DEBUG_TOOLS": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"SSH_PORT": {
|
||||
"type": "LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"type": "STRING",
|
||||
"value": "tcp"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 50020
|
||||
}
|
||||
}
|
||||
},
|
||||
"FirstBootFilePath": {
|
||||
"type": "STRING",
|
||||
"value": "/firstboot.sh"
|
||||
},
|
||||
"CustomFirstBootFilePath": {
|
||||
"type": "STRING",
|
||||
"value": "/customfirstboot.sh"
|
||||
},
|
||||
"ACLSavePath": {
|
||||
"type": "STRING",
|
||||
"value": "/saved.acl"
|
||||
},
|
||||
"locale": {
|
||||
"AnimalSpawnRate": {
|
||||
"type": "STRING",
|
||||
"value": "fr_FR.UTF-8"
|
||||
},
|
||||
"locale_gen": {
|
||||
"type": "STRING",
|
||||
"value": "fr_FR.UTF-8 UTF-8"
|
||||
},
|
||||
"timezone": {
|
||||
"type": "STRING",
|
||||
"value": "Europe/Paris"
|
||||
},
|
||||
"EnableLog2Ram": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"EnableAutoReboot": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"EnableJava": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"ForcePython39": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"EXEC_USER": {
|
||||
"type": "STRING",
|
||||
"value": "GenUser"
|
||||
},
|
||||
"EXEC_USER_ID": {
|
||||
"type": "UINT",
|
||||
"value": 1000
|
||||
},
|
||||
"EXEC_USER_PASSWD": {
|
||||
"type": "PASSWD",
|
||||
"value": "######"
|
||||
},
|
||||
"DEFAULT_CHACHA_GIT_BRANCH": {
|
||||
"type": "STRING",
|
||||
"value": "production"
|
||||
},
|
||||
"SECTION": {
|
||||
"type": "STRING",
|
||||
"value": "games"
|
||||
},
|
||||
"SystemDJournalMaxSize": {
|
||||
"type": "STRING",
|
||||
"value": "40M"
|
||||
},
|
||||
"FSSYNC_PRESYNC_CMD": {
|
||||
"type": "STRING",
|
||||
"value": ""
|
||||
},
|
||||
"FSSYNC_POSTSYNC_CMD": {
|
||||
"type": "STRING",
|
||||
"value": ""
|
||||
},
|
||||
"FSSYNC_INITIAL_FETCH": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"FSSYNC_RECORD": {
|
||||
"type": "T_ARRAY_FSSYNC_RECORD",
|
||||
"value": [
|
||||
{
|
||||
"type": "T_FSSYNC_RECORD",
|
||||
"value": {
|
||||
"name": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "SOTF_map"
|
||||
},
|
||||
"type": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "fs"
|
||||
},
|
||||
"value": {
|
||||
"type": "STRING",
|
||||
"value": "test/test_data"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "T_FSSYNC_RECORD",
|
||||
"value": {
|
||||
"name": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "SOTF_map2"
|
||||
},
|
||||
"type": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "fs"
|
||||
},
|
||||
"value": {
|
||||
"type": "STRING",
|
||||
"value": "test/test_data2/SAVE_FILE.txt"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"FSSync_NextCloud_Enabled": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"FSSync_NextCloud_Address": {
|
||||
"type": "URL",
|
||||
"value": "https://chacha.ddns.net/nextcloud"
|
||||
},
|
||||
"FSSync_NextCloud_User": {
|
||||
"type": "STRING",
|
||||
"value": "chacha-bot"
|
||||
},
|
||||
"FSSync_NextCloud_Password": {
|
||||
"type": "STRING",
|
||||
"value": "F3P8m-nQHik-NSmb2-mnFEF-s85RE"
|
||||
},
|
||||
"FSSync_NextCloud_Path": {
|
||||
"type": "STRING",
|
||||
"value": "pydabfactory-test"
|
||||
},
|
||||
"GAME_MNG_PWD": {
|
||||
"type": "STRING",
|
||||
"value": "cfographut"
|
||||
},
|
||||
"GAME_MNG_DEFAULT_MODE": {
|
||||
"type": "STRING",
|
||||
"value": "BLACKLIST"
|
||||
},
|
||||
"GAME_MNG_LISTENING_PORT": {
|
||||
"type": "UINT",
|
||||
"value": 50000
|
||||
},
|
||||
"GAME_MNG_RESTART_DELAY": {
|
||||
"type": "UINT",
|
||||
"value": 30
|
||||
},
|
||||
"GAMETYPENAME": {
|
||||
"type": "STRING",
|
||||
"value": "sotf"
|
||||
},
|
||||
"WINE_ARCH": {
|
||||
"type": "STRING",
|
||||
"value": "win64"
|
||||
},
|
||||
"WINE_NAME": {
|
||||
"type": "STRING",
|
||||
"value": "wine-9.4-staging-tkg-amd64"
|
||||
},
|
||||
"WINEPREFIX": {
|
||||
"type": "STRING",
|
||||
"value": "DEFAULT"
|
||||
},
|
||||
"WINE_URL": {
|
||||
"type": "URL",
|
||||
"value": "https://github.com/Kron4ek/Wine-Builds/releases/download/9.4/wine-9.4-staging-tkg-amd64.tar.xz"
|
||||
},
|
||||
"ENABLE_WINE_ESYNC": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"ENABLE_WINE_FSYNC": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"ENABLE_WINE_PRELOADER": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"MEMLIMITHIGH": {
|
||||
"type": "SYSTEMD_RAM",
|
||||
"value": "10G"
|
||||
},
|
||||
"MEMLIMITMAX": {
|
||||
"type": "SYSTEMD_RAM",
|
||||
"value": "11G"
|
||||
},
|
||||
"CPUQUOTA": {
|
||||
"type": "SYSTEMD_CPUQUOTA",
|
||||
"value": 98
|
||||
},
|
||||
"STEAM_APP_ID": {
|
||||
"type": "UINT",
|
||||
"value": 2465200
|
||||
},
|
||||
"STEAM_LOGIN": {
|
||||
"type": "STRING",
|
||||
"value": "cclecle"
|
||||
},
|
||||
"STEAM_PWD": {
|
||||
"type": "PASSWD",
|
||||
"value": "######"
|
||||
},
|
||||
"HostName": {
|
||||
"type": "STRING",
|
||||
"value": "ChaCha - Sons Of The Forest Server"
|
||||
},
|
||||
"MaxPlayers": {
|
||||
"type": "UINT",
|
||||
"value": 8
|
||||
},
|
||||
"GamePassword": {
|
||||
"type": "STRING",
|
||||
"value": "!bourges2023"
|
||||
},
|
||||
"GamePort": {
|
||||
"type": "EXT_LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"type": "STRING",
|
||||
"value": "udp"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 8766
|
||||
}
|
||||
}
|
||||
},
|
||||
"QueryPort": {
|
||||
"type": "EXT_LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"type": "STRING",
|
||||
"value": "udp"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 27018
|
||||
}
|
||||
}
|
||||
"value": "Normal"
|
||||
},
|
||||
"BlobSyncPort": {
|
||||
"type": "EXT_LISTEN_PORT",
|
||||
@@ -383,107 +24,21 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"LanOnly": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"SaveSlot": {
|
||||
"type": "UINT",
|
||||
"value": 1
|
||||
},
|
||||
"SaveInterval": {
|
||||
"type": "UINT",
|
||||
"value": 600
|
||||
},
|
||||
"TreeRegrowth": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"StructureDamage": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"EnemySpawn": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"SkipNetworkAccessibilityTest": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"EnemyHealth": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"EnemyDamage": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"EnemyArmour": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"EnemyAggression": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"AnimalSpawnRate": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"StartingSeason": {
|
||||
"type": "STRING",
|
||||
"value": "Summer"
|
||||
},
|
||||
"SeasonLength": {
|
||||
"type": "STRING",
|
||||
"value": "Default"
|
||||
},
|
||||
"DayLength": {
|
||||
"type": "STRING",
|
||||
"value": "Default"
|
||||
},
|
||||
"PrecipitationFrequency": {
|
||||
"type": "STRING",
|
||||
"value": "Default"
|
||||
},
|
||||
"ConsumableEffects": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"PlayerStatsDamage": {
|
||||
"type": "STRING",
|
||||
"value": "Off"
|
||||
"CPUQUOTA": {
|
||||
"type": "SYSTEMD_CPUQUOTA",
|
||||
"value": 98
|
||||
},
|
||||
"ColdPenalties": {
|
||||
"type": "STRING",
|
||||
"value": "Off"
|
||||
},
|
||||
"ReducedFoodInContainers": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"SingleUseContainers": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"DAB_LISTEN_PORTS": {
|
||||
"type": "AR_LISTEN_PORT",
|
||||
"value": [
|
||||
{
|
||||
"type": "LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"ConsumableEffects": {
|
||||
"type": "STRING",
|
||||
"value": "tcp"
|
||||
"value": "Normal"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 50020
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
"CustomFirstBootFilePath": {
|
||||
"type": "STRING",
|
||||
"value": "/customfirstboot.sh"
|
||||
},
|
||||
"DAB_EXT_LISTEN_PORTS": {
|
||||
"type": "AR_EXT_LISTEN_PORT",
|
||||
@@ -529,6 +84,24 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"DAB_LISTEN_PORTS": {
|
||||
"type": "AR_LISTEN_PORT",
|
||||
"value": [
|
||||
{
|
||||
"type": "LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"type": "STRING",
|
||||
"value": "tcp"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 50020
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"DAB_MOUNT_POINTS": {
|
||||
"type": "AR_MOUNT_POINT",
|
||||
"value": []
|
||||
@@ -536,6 +109,433 @@
|
||||
"DAB_SHARED_MOUNT_POINTS": {
|
||||
"type": "AR_MOUNT_POINT",
|
||||
"value": []
|
||||
},
|
||||
"DEBUG_TOOLS": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"DEFAULT_CHACHA_GIT_BRANCH": {
|
||||
"type": "STRING",
|
||||
"value": "production"
|
||||
},
|
||||
"DayLength": {
|
||||
"type": "STRING",
|
||||
"value": "Default"
|
||||
},
|
||||
"ENABLE_WINE_ESYNC": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"ENABLE_WINE_FSYNC": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"ENABLE_WINE_PRELOADER": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"EXEC_USER": {
|
||||
"type": "STRING",
|
||||
"value": "GenUser"
|
||||
},
|
||||
"EXEC_USER_ID": {
|
||||
"type": "UINT",
|
||||
"value": 1000
|
||||
},
|
||||
"EXEC_USER_PASSWD": {
|
||||
"type": "PASSWD",
|
||||
"value": "######"
|
||||
},
|
||||
"EnableAutoReboot": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"EnableJava": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"EnableLog2Ram": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"EnemyAggression": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"EnemyArmour": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"EnemyDamage": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"EnemyHealth": {
|
||||
"type": "STRING",
|
||||
"value": "Normal"
|
||||
},
|
||||
"EnemySpawn": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"FSSYNC_INITIAL_FETCH": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"FSSYNC_POSTSYNC_CMD": {
|
||||
"type": "STRING",
|
||||
"value": ""
|
||||
},
|
||||
"FSSYNC_PRESYNC_CMD": {
|
||||
"type": "STRING",
|
||||
"value": ""
|
||||
},
|
||||
"FSSYNC_RECORD": {
|
||||
"type": "T_ARRAY_FSSYNC_RECORD",
|
||||
"value": [
|
||||
{
|
||||
"type": "T_FSSYNC_RECORD",
|
||||
"value": {
|
||||
"name": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "SOTF_map"
|
||||
},
|
||||
"type": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "fs"
|
||||
},
|
||||
"value": {
|
||||
"type": "STRING",
|
||||
"value": "test/test_data"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "T_FSSYNC_RECORD",
|
||||
"value": {
|
||||
"name": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "SOTF_map2"
|
||||
},
|
||||
"type": {
|
||||
"type": "SIMPLE_STRING",
|
||||
"value": "fs"
|
||||
},
|
||||
"value": {
|
||||
"type": "STRING",
|
||||
"value": "test/test_data2/SAVE_FILE.txt"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"FSSync_NextCloud_Address": {
|
||||
"type": "URL",
|
||||
"value": "https://chacha.ddns.net/nextcloud"
|
||||
},
|
||||
"FSSync_NextCloud_Enabled": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"FSSync_NextCloud_Password": {
|
||||
"type": "STRING",
|
||||
"value": ""
|
||||
},
|
||||
"FSSync_NextCloud_Path": {
|
||||
"type": "STRING",
|
||||
"value": "pydabfactory-test"
|
||||
},
|
||||
"FSSync_NextCloud_User": {
|
||||
"type": "STRING",
|
||||
"value": "chacha-bot"
|
||||
},
|
||||
"FirstBootFilePath": {
|
||||
"type": "STRING",
|
||||
"value": "/firstboot.sh"
|
||||
},
|
||||
"ForcePython39": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"GAMETYPENAME": {
|
||||
"type": "STRING",
|
||||
"value": "sotf"
|
||||
},
|
||||
"GAME_MNG_DEFAULT_MODE": {
|
||||
"type": "STRING",
|
||||
"value": "BLACKLIST"
|
||||
},
|
||||
"GAME_MNG_LISTENING_PORT": {
|
||||
"type": "UINT",
|
||||
"value": 50000
|
||||
},
|
||||
"GAME_MNG_PWD": {
|
||||
"type": "STRING",
|
||||
"value": "cfographut"
|
||||
},
|
||||
"GAME_MNG_RESTART_DELAY": {
|
||||
"type": "UINT",
|
||||
"value": 30
|
||||
},
|
||||
"GamePassword": {
|
||||
"type": "STRING",
|
||||
"value": "!bourges2023"
|
||||
},
|
||||
"GamePort": {
|
||||
"type": "EXT_LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"type": "STRING",
|
||||
"value": "udp"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 8766
|
||||
}
|
||||
}
|
||||
},
|
||||
"HostName": {
|
||||
"type": "STRING",
|
||||
"value": "ChaCha - Sons Of The Forest Server"
|
||||
},
|
||||
"LanOnly": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"MEMLIMITHIGH": {
|
||||
"type": "SYSTEMD_RAM",
|
||||
"value": "10G"
|
||||
},
|
||||
"MEMLIMITMAX": {
|
||||
"type": "SYSTEMD_RAM",
|
||||
"value": "11G"
|
||||
},
|
||||
"MaxPlayers": {
|
||||
"type": "UINT",
|
||||
"value": 8
|
||||
},
|
||||
"PlayerStatsDamage": {
|
||||
"type": "STRING",
|
||||
"value": "Off"
|
||||
},
|
||||
"PrecipitationFrequency": {
|
||||
"type": "STRING",
|
||||
"value": "Default"
|
||||
},
|
||||
"QueryPort": {
|
||||
"type": "EXT_LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"type": "STRING",
|
||||
"value": "udp"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 27018
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReducedFoodInContainers": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"RootPasswd": {
|
||||
"type": "ROOT_PASSWD",
|
||||
"value": "######"
|
||||
},
|
||||
"SECTION": {
|
||||
"type": "STRING",
|
||||
"value": "games"
|
||||
},
|
||||
"SSH_PORT": {
|
||||
"type": "LISTEN_PORT",
|
||||
"value": {
|
||||
"port_type": {
|
||||
"type": "STRING",
|
||||
"value": "tcp"
|
||||
},
|
||||
"value": {
|
||||
"type": "UINT",
|
||||
"value": 50020
|
||||
}
|
||||
}
|
||||
},
|
||||
"STEAM_APP_ID": {
|
||||
"type": "UINT",
|
||||
"value": 2465200
|
||||
},
|
||||
"STEAM_LOGIN": {
|
||||
"type": "STRING",
|
||||
"value": "cclecle"
|
||||
},
|
||||
"STEAM_PWD": {
|
||||
"type": "PASSWD",
|
||||
"value": "######"
|
||||
},
|
||||
"SaveInterval": {
|
||||
"type": "UINT",
|
||||
"value": 600
|
||||
},
|
||||
"SaveSlot": {
|
||||
"type": "UINT",
|
||||
"value": 1
|
||||
},
|
||||
"SeasonLength": {
|
||||
"type": "STRING",
|
||||
"value": "Default"
|
||||
},
|
||||
"SingleUseContainers": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"SkipNetworkAccessibilityTest": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"StartingSeason": {
|
||||
"type": "STRING",
|
||||
"value": "Summer"
|
||||
},
|
||||
"StructureDamage": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"SystemDJournalMaxSize": {
|
||||
"type": "STRING",
|
||||
"value": "40M"
|
||||
},
|
||||
"TreeRegrowth": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
"WINEPREFIX": {
|
||||
"type": "STRING",
|
||||
"value": "DEFAULT"
|
||||
},
|
||||
"WINE_ARCH": {
|
||||
"type": "STRING",
|
||||
"value": "win64"
|
||||
},
|
||||
"WINE_NAME": {
|
||||
"type": "STRING",
|
||||
"value": "wine-9.4-staging-tkg-amd64"
|
||||
},
|
||||
"WINE_URL": {
|
||||
"type": "URL",
|
||||
"value": "https://github.com/Kron4ek/Wine-Builds/releases/download/9.4/wine-9.4-staging-tkg-amd64.tar.xz"
|
||||
},
|
||||
"locale": {
|
||||
"type": "STRING",
|
||||
"value": "fr_FR.UTF-8"
|
||||
},
|
||||
"locale_gen": {
|
||||
"type": "STRING",
|
||||
"value": "fr_FR.UTF-8 UTF-8"
|
||||
},
|
||||
"timezone": {
|
||||
"type": "STRING",
|
||||
"value": "Europe/Paris"
|
||||
}
|
||||
},
|
||||
"NOBOOTSTRAP": false,
|
||||
"NOFINALIZE": false,
|
||||
"NOSTART": false,
|
||||
"Params": {
|
||||
"AR_CFG_OPT": {
|
||||
"modified": false,
|
||||
"value": []
|
||||
},
|
||||
"AR_TAGS": {
|
||||
"modified": true,
|
||||
"value": [
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "debianbase"
|
||||
},
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "chacha"
|
||||
},
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "games"
|
||||
},
|
||||
{
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
{
|
||||
"value": "sotf"
|
||||
}
|
||||
]
|
||||
},
|
||||
"AUTOSTART": {
|
||||
"modified": true,
|
||||
"value": true
|
||||
},
|
||||
"CPU_COUNT": {
|
||||
"modified": true,
|
||||
"value": 2
|
||||
},
|
||||
"CPU_UNIT": {
|
||||
"modified": true,
|
||||
"value": 1536
|
||||
},
|
||||
"DEST_NODE": {
|
||||
"modified": true,
|
||||
"value": "hypervisor2"
|
||||
},
|
||||
"FEATURE_FUSE": {
|
||||
"modified": false,
|
||||
"value": false
|
||||
},
|
||||
"FEATURE_MKNODE": {
|
||||
"modified": false,
|
||||
"value": false
|
||||
},
|
||||
"FEATURE_NESTING": {
|
||||
"modified": false,
|
||||
"value": false
|
||||
},
|
||||
"MAIN_MACADDR": {
|
||||
"modified": true,
|
||||
"value": "D2:A9:59:72:C4:B4"
|
||||
},
|
||||
"NETWORK_BRIDGE": {
|
||||
"modified": true,
|
||||
"value": "vmbr1"
|
||||
},
|
||||
"PRIVILEGIED": {
|
||||
"modified": false,
|
||||
"value": false
|
||||
},
|
||||
"RAM_M": {
|
||||
"modified": true,
|
||||
"value": 12000
|
||||
},
|
||||
"ROOTFS_SIZE_G": {
|
||||
"modified": true,
|
||||
"value": 20
|
||||
},
|
||||
"RUNNING_STORAGE": {
|
||||
"modified": true,
|
||||
"value": "VMStore2"
|
||||
},
|
||||
"SWAP_M": {
|
||||
"modified": true,
|
||||
"value": 2048
|
||||
},
|
||||
"TEMPLATE_STORAGE": {
|
||||
"modified": true,
|
||||
"value": "live-storage-h2"
|
||||
}
|
||||
},
|
||||
"REFERENCE_CONFIG_ID": "cf698a62-120a-11ee-be56-0242ac120002",
|
||||
"VIRTUAL": false,
|
||||
"creation_date": "2024-03-24T19:07:48.862542"
|
||||
}
|
||||
@@ -1,9 +1,25 @@
|
||||
{
|
||||
"APP_ID": "2a13dff2-1298-11ee-be56-0242ac120002",
|
||||
"Args": {
|
||||
"FSSync_NextCloud_Enabled": {"type": "BOOL", "value": false},
|
||||
"FSSync_NextCloud_Address": {"type": "URL", "value": "https://chacha.ddns.net/nextcloud"},
|
||||
"FSSync_NextCloud_User": {"type": "STRING", "value": "chacha-bot"},
|
||||
"FSSync_NextCloud_Password": {"type": "STRING", "value": "F3P8m-nQHik-NSmb2-mnFEF-s85RE"},
|
||||
"FSSync_NextCloud_Path": {"type": "STRING", "value": "pydabfactory"}
|
||||
}}
|
||||
"FSSync_NextCloud_Address": {
|
||||
"type": "URL",
|
||||
"value": "https://chacha.ddns.net/nextcloud"
|
||||
},
|
||||
"FSSync_NextCloud_Enabled": {
|
||||
"type": "BOOL",
|
||||
"value": false
|
||||
},
|
||||
"FSSync_NextCloud_Password": {
|
||||
"type": "STRING",
|
||||
"value": ""
|
||||
},
|
||||
"FSSync_NextCloud_Path": {
|
||||
"type": "STRING",
|
||||
"value": "pydabfactory"
|
||||
},
|
||||
"FSSync_NextCloud_User": {
|
||||
"type": "STRING",
|
||||
"value": "chacha-bot"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
{
|
||||
"APP_ID": "2a13dff2-1298-11ee-be56-0242ac120002",
|
||||
"Args": {
|
||||
"FSSync_NextCloud_Enabled": {"type": "BOOL", "value": true}
|
||||
}}
|
||||
"FSSync_NextCloud_Enabled": {
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user