v0.0.9 | Add Load Balancer API
All checks were successful
Build And Test / build-and-push (push) Successful in 53s
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:
61
nhn/tasks.py
61
nhn/tasks.py
@ -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
|
||||
|
||||
Reference in New Issue
Block a user