v0.0.9 | Add Load Balancer API
All checks were successful
Build And Test / build-and-push (push) Successful in 53s

- 로드밸런서 CRUD API 추가
- 리스너, 풀, 멤버, 헬스 모니터 API 추가
- L7 정책/룰, IP ACL 그룹/타깃 API 추가
- 쿼타 조회 API 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-16 11:14:03 +09:00
parent 57526a0f13
commit 7136e76d63
9 changed files with 2658 additions and 1 deletions

View File

@ -396,3 +396,64 @@ def delete_storage_container_async(region, token, storage_account, container_nam
)
return task
# ==================== Load Balancer 비동기 작업 ====================
def create_loadbalancer_async(region, token, lb_data):
"""
로드밸런서 비동기 생성
Args:
region: 리전
token: API 토큰
lb_data: 로드밸런서 생성 데이터 (dict)
Returns:
AsyncTask: 생성된 작업 객체
"""
from .models import AsyncTask
from .packages.loadbalancer import ApiLoadBalancer
task = AsyncTask.objects.create(
task_type=AsyncTask.TaskType.LB_CREATE,
request_data=lb_data,
resource_name=lb_data.get("name", ""),
)
api = ApiLoadBalancer(region, token)
execute_async_task(
task_id=task.id,
task_func=api.create_loadbalancer,
vip_subnet_id=lb_data["vip_subnet_id"],
name=lb_data.get("name"),
description=lb_data.get("description"),
vip_address=lb_data.get("vip_address"),
admin_state_up=lb_data.get("admin_state_up", True),
loadbalancer_type=lb_data.get("loadbalancer_type", "shared"),
)
return task
def delete_loadbalancer_async(region, token, loadbalancer_id, loadbalancer_name=""):
"""로드밸런서 비동기 삭제"""
from .models import AsyncTask
from .packages.loadbalancer import ApiLoadBalancer
task = AsyncTask.objects.create(
task_type=AsyncTask.TaskType.LB_DELETE,
request_data={"loadbalancer_id": loadbalancer_id},
resource_name=loadbalancer_name,
resource_id=loadbalancer_id,
)
api = ApiLoadBalancer(region, token)
execute_async_task(
task_id=task.id,
task_func=api.delete_loadbalancer,
loadbalancer_id=loadbalancer_id,
)
return task