Compare commits

..

25 Commits

Author SHA1 Message Date
41080370c5 Merge pull request 'fix' (#51) from master into dev
Reviewed-on: #51
2025-06-12 02:19:28 +03:00
ff2fbba1aa Merge pull request 'fix' (#50) from master into dev
Reviewed-on: #50
2025-06-12 02:16:02 +03:00
6b9b6cb3b8 Merge pull request 'fix' (#49) from master into dev
Reviewed-on: #49
2025-06-12 02:10:14 +03:00
9e3becfc17 Merge pull request 'fix' (#47) from master into dev
Reviewed-on: #47
2025-06-12 01:11:28 +03:00
96a9bd8fc8 Merge pull request 'fix' (#46) from master into dev
Reviewed-on: #46
2025-06-12 00:54:37 +03:00
75a8a5e307 Merge pull request 'fix' (#45) from master into dev
Reviewed-on: #45
2025-06-10 02:04:42 +03:00
5dd11e1fc8 Merge pull request 'fix' (#44) from master into dev
Reviewed-on: #44
2025-06-10 02:02:30 +03:00
d0c26f15e2 Merge pull request 'fix' (#43) from master into dev
Reviewed-on: #43
2025-06-10 01:49:37 +03:00
560d21c9fe Merge pull request 'fix' (#42) from master into dev
Reviewed-on: #42
2025-06-08 11:49:43 +03:00
4f0571ec02 Merge pull request 'fix' (#41) from master into dev
Reviewed-on: #41
2025-06-08 11:38:38 +03:00
ad5a22e985 Merge pull request 'fix' (#40) from master into dev
Reviewed-on: #40
2025-06-08 11:05:33 +03:00
d288a8a883 Merge pull request 'fix' (#39) from master into dev
Reviewed-on: #39
2025-06-08 11:02:19 +03:00
78eeea9e08 Merge pull request 'fix' (#38) from master into dev
Reviewed-on: #38
2025-06-08 10:59:33 +03:00
1f7cef1f4b Merge pull request 'fix' (#37) from master into dev
Reviewed-on: #37
2025-06-07 13:24:10 +03:00
6cedf34b8e Merge pull request 'master' (#35) from master into dev
Reviewed-on: #35
2025-06-04 21:08:09 +03:00
df0af634d6 Merge pull request 'fix' (#31) from master into dev
Reviewed-on: #31
2025-06-04 02:34:37 +03:00
41072ac03f Merge pull request 'fix' (#30) from master into dev
Reviewed-on: #30
2025-06-03 22:58:47 +03:00
43191f99a9 Merge pull request 'fix' (#29) from master into dev
Reviewed-on: #29
2025-06-03 22:44:39 +03:00
41dea63243 Merge pull request 'fix' (#28) from master into dev
Reviewed-on: #28
2025-06-02 00:19:28 +03:00
ee9c363b56 Merge pull request 'fix' (#27) from master into dev
Reviewed-on: #27
2025-06-01 20:04:53 +03:00
1ad823a301 Merge pull request 'fix' (#26) from master into dev
Reviewed-on: #26
2025-06-01 19:58:41 +03:00
ded08985b5 Merge pull request 'fix' (#25) from master into dev
Reviewed-on: #25
2025-06-01 19:55:24 +03:00
cb847f8b8f Merge pull request 'fix' (#24) from master into dev
Reviewed-on: #24
2025-06-01 19:53:30 +03:00
a7b082dc7a Merge pull request 'master' (#23) from master into dev
Reviewed-on: #23
2025-06-01 19:51:42 +03:00
741eed066c Merge pull request 'fix' (#22) from master into dev
Reviewed-on: #22
2025-06-01 19:48:51 +03:00
6 changed files with 39 additions and 52 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -6,7 +6,9 @@ services:
image: mathwave/sprint-repo:certupdater image: mathwave/sprint-repo:certupdater
command: worker command: worker
environment: environment:
MINIO_HOST: "minio.develop.sprinthub.ru"
MINIO_SECRET_KEY: $MINIO_SECRET_KEY_DEV MINIO_SECRET_KEY: $MINIO_SECRET_KEY_DEV
MONGO_HOST: "mongo.develop.sprinthub.ru"
MONGO_PASSWORD: $MONGO_PASSWORD_DEV MONGO_PASSWORD: $MONGO_PASSWORD_DEV
STAGE: "development" STAGE: "development"
volumes: volumes:
@@ -14,8 +16,6 @@ services:
networks: networks:
- configurator - configurator
- queues-development - queues-development
- minio-development
- mongo-development
deploy: deploy:
mode: replicated mode: replicated
restart_policy: restart_policy:
@@ -31,7 +31,3 @@ networks:
external: true external: true
queues-development: queues-development:
external: true external: true
minio-development:
external: true
mongo-development:
external: true

View File

@@ -6,7 +6,9 @@ services:
image: mathwave/sprint-repo:certupdater image: mathwave/sprint-repo:certupdater
command: worker command: worker
environment: environment:
MINIO_HOST: "minio.sprinthub.ru"
MINIO_SECRET_KEY: $MINIO_SECRET_KEY_PROD MINIO_SECRET_KEY: $MINIO_SECRET_KEY_PROD
MONGO_HOST: "mongo.sprinthub.ru"
MONGO_PASSWORD: $MONGO_PASSWORD_PROD MONGO_PASSWORD: $MONGO_PASSWORD_PROD
STAGE: "production" STAGE: "production"
volumes: volumes:
@@ -14,8 +16,6 @@ services:
networks: networks:
- configurator - configurator
- queues - queues
- minio
- mongo
deploy: deploy:
mode: replicated mode: replicated
restart_policy: restart_policy:
@@ -31,7 +31,3 @@ networks:
external: true external: true
queues: queues:
external: true external: true
minio:
external: true
mongo:
external: true

View File

@@ -1,7 +1,7 @@
import os import os
from minio import Minio from minio import Minio
MINIO_HOST = "minio:9000" MINIO_HOST = os.getenv("MINIO_HOST", "localhost") + ":9000"
MINIO_ACCESS_KEY = os.getenv("MINIO_ACCESS_KEY", "serviceminioadmin") MINIO_ACCESS_KEY = os.getenv("MINIO_ACCESS_KEY", "serviceminioadmin")
MINIO_SECRET_KEY = os.getenv("MINIO_SECRET_KEY", "minioadmin") MINIO_SECRET_KEY = os.getenv("MINIO_SECRET_KEY", "minioadmin")

70
main.py
View File

@@ -104,47 +104,41 @@ def update_host(host: str) -> str | None:
return None return None
if __name__ == "__main__": while True:
while True: now = datetime.datetime.now()
now = datetime.datetime.now() mongo_hosts = mongo.hosts
mongo_hosts = mongo.hosts updated = False
hosts = get_hosts() for host in get_hosts():
print(f"got hosts {hosts}") if (
updated = False now + datetime.timedelta(days=14)
for host in hosts: > mongo_hosts.get(
if ( host, {"expire_time": datetime.datetime.fromtimestamp(1)}
now + datetime.timedelta(days=14) )["expire_time"]
> mongo_hosts.get( ):
host, {"expire_time": datetime.datetime.fromtimestamp(1)} success = update_host(host)
)["expire_time"] if success:
): send_notification(
success = update_host(host) f"host {host} was not updated with an error: {success}"
if success:
print(success)
send_notification(
f"host {host} was not updated with an error: {success}"
)
else:
mongo.update_date(host)
updated = True
send_notification(f"host {host} updated")
else:
print(f"Host {host} does not need to be updated")
if updated:
if os.getenv("STAGE") == "development":
container_id_run = call(
"echo $(docker ps -q -f name=infra-development_nginx)"
) )
else: else:
container_id_run = call("echo $(docker ps -q -f name=infra_nginx)") mongo.update_date(host)
updated = True
send_notification(f"host {host} updated")
if updated:
if os.getenv("STAGE") == "development":
container_id_run = call(
"echo $(docker ps -q -f name=infra-development_nginx)"
)
else:
container_id_run = call("echo $(docker ps -q -f name=infra_nginx)")
print(container_id_run.code, container_id_run.out, container_id_run.err) print(container_id_run.code, container_id_run.out, container_id_run.err)
command = f"docker exec {container_id_run.out.strip()} ./refre.sh" command = f"docker exec {container_id_run.out.strip()} ./refre.sh"
print(command) print(command)
restart = call(command) restart = call(command)
print(restart.code, restart.out, restart.err) print(restart.code, restart.out, restart.err)
send_notification(f"Balancer for {os.getenv("STAGE")} was restarted") send_notification(f"Balancer for {os.getenv("STAGE")} was restarted")
time.sleep(30) time.sleep(30)

View File

@@ -4,11 +4,12 @@ import os
MONGO_USER = os.getenv("MONGO_USER", "mongo") MONGO_USER = os.getenv("MONGO_USER", "mongo")
MONGO_PASSWORD = os.getenv("MONGO_PASSWORD", "password") MONGO_PASSWORD = os.getenv("MONGO_PASSWORD", "password")
MONGO_HOST = os.getenv("MONGO_HOST", "localhost")
class Mongo: class Mongo:
def __init__(self): def __init__(self):
url = f"mongodb://{MONGO_USER}:{MONGO_PASSWORD}@mongo:27017/" url = f"mongodb://{MONGO_USER}:{MONGO_PASSWORD}@{MONGO_HOST}:27017/"
self.client: pymongo.MongoClient = pymongo.MongoClient(url) self.client: pymongo.MongoClient = pymongo.MongoClient(url)
self.database = self.client.get_database("certupdater") self.database = self.client.get_database("certupdater")
self.hosts_collection.create_index([ self.hosts_collection.create_index([