From a11dfed0f0b0d8fddde8c0ffa182afd1a1841a0c Mon Sep 17 00:00:00 2001 From: jingrow Date: Sat, 9 Aug 2025 18:13:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=AE=9E=E4=BE=8B=E9=98=B2=E7=81=AB=E5=A2=99=E8=A7=84?= =?UTF-8?q?=E5=88=99=E7=9A=84api=E7=AB=AF=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jcloud/api/aliyun_server_light.py | 32 ++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/jcloud/api/aliyun_server_light.py b/jcloud/api/aliyun_server_light.py index 598b80d..9bc0e61 100644 --- a/jcloud/api/aliyun_server_light.py +++ b/jcloud/api/aliyun_server_light.py @@ -468,6 +468,22 @@ class AliyunLightServerManager: jingrow.log_error("获取防火墙规则列表失败", f"获取实例 {instance_id} 防火墙规则列表时发生错误: {str(e)}") 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 @@ -1694,4 +1710,18 @@ def get_aliyun_firewall_rules(instance_id, region_id='cn-shanghai'): except Exception as e: jingrow.log_error("获取防火墙规则列表失败", f"获取实例 {instance_id} 防火墙规则列表时发生错误: {str(e)}") - return {"success": False, "error": str(e), "message": "获取防火墙规则列表失败"} \ No newline at end of file + 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": "批量删除防火墙规则失败"} \ No newline at end of file