新增批量删除实例防火墙规则的api端点

This commit is contained in:
jingrow 2025-08-09 18:13:16 +08:00
parent a2586fd36e
commit a11dfed0f0

View File

@ -468,6 +468,22 @@ class AliyunLightServerManager:
jingrow.log_error("获取防火墙规则列表失败", f"获取实例 {instance_id} 防火墙规则列表时发生错误: {str(e)}") jingrow.log_error("获取防火墙规则列表失败", f"获取实例 {instance_id} 防火墙规则列表时发生错误: {str(e)}")
return {'success': False, 'error': str(e), 'message': '获取防火墙规则列表失败'} return {'success': False, 'error': str(e), 'message': '获取防火墙规则列表失败'}
def delete_firewall_rules(self, instance_id, rule_ids, region_id='cn-shanghai'):
"""批量删除实例的防火墙规则"""
client = self._get_client(region_id)
try:
request = swas__open20200601_models.DeleteFirewallRulesRequest(
region_id=region_id,
instance_id=instance_id,
rule_ids=rule_ids
)
runtime = util_models.RuntimeOptions()
response = client.delete_firewall_rules_with_options(request, runtime)
return {'success': True, 'data': self._convert_response_to_dict(response.body), 'message': '批量删除防火墙规则成功'}
except Exception as e:
jingrow.log_error("批量删除防火墙规则失败", f"删除实例 {instance_id} 防火墙规则时发生错误: {str(e)}")
return {'success': False, 'error': str(e), 'message': '批量删除防火墙规则失败'}
# 全局管理器实例 # 全局管理器实例
_aliyun_manager = None _aliyun_manager = None
@ -1694,4 +1710,18 @@ def get_aliyun_firewall_rules(instance_id, region_id='cn-shanghai'):
except Exception as e: except Exception as e:
jingrow.log_error("获取防火墙规则列表失败", f"获取实例 {instance_id} 防火墙规则列表时发生错误: {str(e)}") jingrow.log_error("获取防火墙规则列表失败", f"获取实例 {instance_id} 防火墙规则列表时发生错误: {str(e)}")
return {"success": False, "error": str(e), "message": "获取防火墙规则列表失败"} return {"success": False, "error": str(e), "message": "获取防火墙规则列表失败"}
@jingrow.whitelist()
def delete_aliyun_firewall_rules(instance_id, rule_ids, region_id='cn-shanghai'):
"""批量删除阿里云轻量应用服务器防火墙规则"""
try:
# 调用管理器批量删除防火墙规则
manager = _get_manager()
result = manager.delete_firewall_rules(instance_id, rule_ids, region_id)
return result
except Exception as e:
jingrow.log_error("批量删除防火墙规则失败", f"删除实例 {instance_id} 防火墙规则时发生错误: {str(e)}")
return {"success": False, "error": str(e), "message": "批量删除防火墙规则失败"}