新增获取实例防火墙规则的api端点
This commit is contained in:
parent
3ad079a238
commit
a2586fd36e
@ -453,6 +453,21 @@ 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 list_firewall_rules(self, instance_id, region_id='cn-shanghai'):
|
||||||
|
"""获取实例的防火墙规则列表"""
|
||||||
|
client = self._get_client(region_id)
|
||||||
|
try:
|
||||||
|
request = swas__open20200601_models.ListFirewallRulesRequest(
|
||||||
|
region_id=region_id,
|
||||||
|
instance_id=instance_id
|
||||||
|
)
|
||||||
|
runtime = util_models.RuntimeOptions()
|
||||||
|
response = client.list_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
|
||||||
@ -1659,4 +1674,24 @@ def create_aliyun_firewall_rule(instance_id, rule_protocol, port, remark=None, r
|
|||||||
|
|
||||||
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 get_aliyun_firewall_rules(instance_id, region_id='cn-shanghai'):
|
||||||
|
"""获取阿里云轻量应用服务器防火墙规则列表"""
|
||||||
|
try:
|
||||||
|
# 如果没有提供region_id,尝试从服务器记录中获取
|
||||||
|
if not region_id or region_id == 'cn-shanghai':
|
||||||
|
server = jingrow.get_pg("Jsite Server", {"instance_id": instance_id})
|
||||||
|
if server and server.region:
|
||||||
|
region_id = server.region
|
||||||
|
|
||||||
|
# 调用管理器获取防火墙规则列表
|
||||||
|
manager = _get_manager()
|
||||||
|
result = manager.list_firewall_rules(instance_id, region_id)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
jingrow.log_error("获取防火墙规则列表失败", f"获取实例 {instance_id} 防火墙规则列表时发生错误: {str(e)}")
|
||||||
|
return {"success": False, "error": str(e), "message": "获取防火墙规则列表失败"}
|
||||||
Loading…
x
Reference in New Issue
Block a user