INNER CODE UNIT · Python
pods
theonedev/onedev · server-product/helm/files/stop-servers.py:42
def pods():
return [pod for pod in api("GET", pods_path + "?" + selector)["items"]
if any(owner["uid"] == uid for owner in pod["metadata"].get("ownerReferences", []))]
def server_image(spec):
return next(container["image"] for container in spec["containers"]
if container["name"] == "onedevserver")
existing = pods()
if (server_image(statefulset["spec"]["template"]["spec"]) == image
and all(server_image(pod["spec"]) == image for pod in existing)):
print("OneDev image is unchanged; no upgrade shutdown required", flush=True)
return
print("Stopping all OneDev servers before upgrading the shared database", flush=True)
api("PATCH", base + "/scale", {"spec": {"replicas": 0}})
deadline = time.monotonic() + timeout
deleting = set()