Skip to content

Commit 805c62c

Browse files
committed
chore(filer): add clean old filer
1 parent 679c08f commit 805c62c

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

rootfs/api/filer.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import uuid
2+
import logging
23
import requests
34
from django.conf import settings
45
from django.core.cache import cache
56
from requests.auth import HTTPBasicAuth
67

78
from .utils import random_string, get_session, CacheLock
89

10+
logger = logging.getLogger(__name__)
11+
912

1013
class FilerClient(object):
1114

@@ -16,6 +19,9 @@ def __init__(self, app_id, volume, scheduler):
1619
self.volume = volume
1720
self.scheduler = scheduler
1821

22+
def log(self, message, level=logging.INFO):
23+
logger.log(level, "[{}]: {}".format(self.app_id, message))
24+
1925
@property
2026
def server(self):
2127
lock_key = f"filer:lock:{self.app_id}:{self.volume.name}"
@@ -35,6 +41,7 @@ def cache_key(self):
3541
return f"filer:{self.app_id}:{self.volume.name}"
3642

3743
def get_server(self):
44+
self.clean() # clean old filer
3845
pod_name = f"drycc-filer-{uuid.uuid4().hex}"
3946
k8s_volume = {"name": self.volume.name}
4047
if self.volume.type == "csi":
@@ -59,6 +66,19 @@ def get_server(self):
5966
address = self.scheduler.pod.get(self.app_id, pod_name).json()["status"]["podIP"]
6067
return {"address": address, "username": username, "password": password}
6168

69+
def clean(self):
70+
response = self.scheduler.pod.get(
71+
self.app_id, labels={"app": self.app_id, "type": "filer"})
72+
if response.status_code != 200:
73+
self.log("clean up old filter errors")
74+
return False
75+
for item in response.json()["items"]:
76+
if item['status']['phase'] in ('Succeeded', 'Failed'):
77+
pod_name = item['metadata']['name']
78+
self.scheduler.pod.delete(self.app_id, pod_name)
79+
self.log("clean up old filter completed")
80+
return True
81+
6282
def health(self, server):
6383
try:
6484
return self.request(

0 commit comments

Comments
 (0)