Files
cursor_ai/config.py

113 lines
4.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
Конфигурационный файл для SSH клиента и миграции 1С
ВНИМАНИЕ: Не коммитьте этот файл в публичные репозитории!
Пароли хранятся в открытом виде в этом файле.
"""
# SSH настройки
SSH_CONFIG = {
"hostname": "g.it.cln.su",
"port": 22222, # Порт должен быть int
"username": "root",
"pkey_file": "/root/.ssh/id_rsa",
"host_keys": "~/.ssh/known_hosts"
}
# PostgreSQL настройки
POSTGRESQL_CONFIG = {
"archive_server": "1c.it.cln.su",
"restore_server": "postgres.it.cln.su",
"backup_date": "16.12.2025",
"extra_backup": True,
"postgres_user": "postgres",
"postgres_password": "PrestigePostgres"
}
# 1C настройки
C1_CONFIG = {
"lxc_container_name": "c1", # Имя LXC контейнера с сервером 1С
"cluster_user": "neon",
"cluster_password": "Pre$tige310582",
# Настройки для обновления базы 1С (используются в c1_base_info_update)
# "db_server": "/tmp",
# "db_user": "usr1cv8",
# "db_password": "",
"db_server": "postgres.it.cln.su",
"db_user": "postgres",
"db_password": "PrestigePostgres",
# "db_name": "", # Имя базы данных PostgreSQL (если пустое, будет использовано имя базы 1С)
"infobase_user": "neon",
"infobase_password": "$F%G^H&J*K"
}
# Списки баз данных для миграции и примеров использования
MIGRATION_CONFIG = {
"archive_bases_name": [
# 'konsaltpt-buhg',
# 'vpr-ut-crm',
# 'quant-ut',
# 'kompromis-test',
# 'luna-ut',
# 'messinia-buhg',
# 'morea-buhg',
# 'horen-ut',
'salon',
'lmotor-ut',
'staretail',
'uran-ut',
],
"restore_bases_name": None, # Если None, будет использован archive_bases_name
"bases": None, # Список баз для обработки в примерах (example_c1_cluster.py, example_postgresql.py)
# Если None, будет использован archive_bases_name
"scheduled_jobs_deny": "on", # Запрет запланированных заданий для всех баз (on/off)
"sessions_deny": "off" # Запрет сеансов для всех баз (on/off)
}
def get_config():
"""
Возвращает конфигурацию проекта
Returns:
dict: Словарь с конфигурацией, содержащий секции:
- ssh: настройки SSH подключения
- postgresql: настройки PostgreSQL
- c1: настройки 1С кластера
- migration: настройки миграции баз данных (включая список баз для примеров)
"""
config = {
'ssh': SSH_CONFIG.copy(),
'postgresql': POSTGRESQL_CONFIG.copy(),
'c1': C1_CONFIG.copy(),
'migration': MIGRATION_CONFIG.copy()
}
# Если restore_bases_name не указан, используем archive_bases_name
if config['migration']['restore_bases_name'] is None:
config['migration']['restore_bases_name'] = config['migration']['archive_bases_name'].copy()
# Если bases не указан, используем archive_bases_name для примеров
if config['migration']['bases'] is None:
config['migration']['bases'] = config['migration']['archive_bases_name'].copy()
# Валидация scheduled_jobs_deny и sessions_deny
scheduled_jobs_deny = config['migration'].get('scheduled_jobs_deny', 'off')
sessions_deny = config['migration'].get('sessions_deny', 'off')
if scheduled_jobs_deny not in ['on', 'off']:
raise ValueError(f"scheduled_jobs_deny должен быть 'on' или 'off', получено: {scheduled_jobs_deny}")
if sessions_deny not in ['on', 'off']:
raise ValueError(f"sessions_deny должен быть 'on' или 'off', получено: {sessions_deny}")
# Устанавливаем значения по умолчанию, если не указаны
config['migration']['scheduled_jobs_deny'] = scheduled_jobs_deny
config['migration']['sessions_deny'] = sessions_deny
return config