db - disable connection pooling for one shot tasks

This commit is contained in:
florian 2023-08-03 13:40:27 +02:00
parent f3081e3c34
commit 784ce643f0
No known key found for this signature in database
GPG key ID: 3D80806F12602A7C
19 changed files with 28 additions and 3 deletions

View file

@ -80,6 +80,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
# Create directories if they don't exist

View file

@ -60,6 +60,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
bunkernet_id = get_file_in_db("instance.id", db)
if bunkernet_id:

View file

@ -61,6 +61,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
bunkernet_id = get_file_in_db("instance.id", db)
if bunkernet_id:

View file

@ -111,6 +111,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
cert_path = getenv("CUSTOM_SSL_CERT", "")
@ -142,6 +143,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
cert_path = getenv(f"{first_server}_CUSTOM_SSL_CERT", "")

View file

@ -80,6 +80,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
# Create directories if they don't exist

View file

@ -177,6 +177,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI"),
pool=False
)
lock = Lock()

View file

@ -71,6 +71,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
if dl_mmdb:

View file

@ -71,6 +71,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
if dl_mmdb:

View file

@ -52,6 +52,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
lock = Lock()

View file

@ -51,6 +51,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
lock = Lock()
with lock:

View file

@ -67,6 +67,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
lock = Lock()

View file

@ -99,6 +99,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
tgz = get_file_in_db("folder.tgz", db, job_name="certbot-renew")

View file

@ -91,6 +91,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
tgz = get_file_in_db("folder.tgz", db)

View file

@ -102,6 +102,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
cached, err = set_file_in_db(

View file

@ -76,6 +76,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
# Don't go further if the cache is fresh

View file

@ -134,6 +134,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
ret, ret_status = generate_cert(
@ -155,6 +156,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
first_server = getenv("SERVER_NAME", "").split(" ")[0]

View file

@ -80,6 +80,7 @@ try:
db = Database(
logger,
sqlalchemy_string=getenv("DATABASE_URI", None),
pool=False
)
# Create directories if they don't exist

View file

@ -50,6 +50,7 @@ from sqlalchemy.exc import (
SQLAlchemyError,
)
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.pool import NullPool
install_as_MySQLdb()
@ -61,6 +62,7 @@ class Database:
sqlalchemy_string: Optional[str] = None,
*,
ui: bool = False,
pool: bool = True
) -> None:
"""Initialize the database"""
self.__logger = logger
@ -92,6 +94,7 @@ class Database:
self.__sql_engine = create_engine(
sqlalchemy_string,
future=True,
poolclass=None if pool else NullPool,
pool_pre_ping=True
)
except ArgumentError:
@ -136,6 +139,7 @@ class Database:
self.__sql_engine = create_engine(
sqlalchemy_string,
future=True,
poolclass=None if pool else NullPool,
pool_pre_ping=True
)
if "Unknown table" in str(e):

View file

@ -64,6 +64,7 @@ def get_instance_configs_and_apis(instance: Any, db, _type="Docker"):
db = Database(
logger,
sqlalchemy_string=splitted[1],
pool=False
)
elif splitted[0] == "API_HTTP_PORT":
api_http_port = splitted[1]
@ -164,7 +165,7 @@ if __name__ == "__main__":
external_plugins = args.plugins
if not Path(sep, "usr", "sbin", "nginx").exists() and args.method == "ui":
db = Database(logger)
db = Database(logger, pool=False)
external_plugins = []
for plugin in db.get_plugins():
external_plugins.append(plugin)
@ -224,7 +225,7 @@ if __name__ == "__main__":
f"Found custom conf env var {'for service ' + custom_conf[0] if custom_conf[0] else 'without service'} with type {custom_conf[1]} and name {custom_conf[2]}"
)
db = Database(logger, config_files.get("DATABASE_URI", None))
db = Database(logger, config_files.get("DATABASE_URI", None), pool=False)
else:
docker_client = DockerClient(
base_url=getenv("DOCKER_HOST", "unix:///var/run/docker.sock")
@ -269,6 +270,7 @@ if __name__ == "__main__":
db = Database(
logger,
sqlalchemy_string=splitted[1],
pool=False
)
elif splitted[0] == "API_HTTP_PORT":
api_http_port = splitted[1]
@ -283,7 +285,7 @@ if __name__ == "__main__":
)
if not db:
db = Database(logger)
db = Database(logger, pool=False)
# Compute the config
if not config_files: