"""Поднимать серверы под нагрузку и гасить, когда она спала. Тарификация идёт от часа, поэтому есть смысл держать машину не меньше часа и не поднимать её ради пары минут работы. """ import time from regcloud_api import RegCloud api = RegCloud() POOL_NAME = "worker-" SIZE = "c4-m8-d120-hp" REGION = "openstack-msk1" def workers(): return [s for s in api.list() if s["name"].startswith(POOL_NAME)] def scale_to(count: int): now = workers() while len(now) < count: n = len(now) + 1 srv = api.create(size=SIZE, image="ubuntu-24-04-amd64", name=f"{POOL_NAME}{n:02d}", region=REGION) print("поднял", srv["id"]) now = workers() while len(now) > count: victim = now[-1] api.destroy(victim["id"]) print("погасил", victim["id"]) now = workers() if __name__ == "__main__": scale_to(2) time.sleep(5) print("сейчас работает:", len(workers()))