更新代码

main
周平 11 months ago
parent 1bb705c5c4
commit 469b04438c

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from typing import List
import logging
from sqlalchemy import Column, Integer, String, DateTime, func, text
from sqlalchemy.ext.declarative import declarative_base
@ -58,6 +58,22 @@ class EnterpriseBusiModelNodeDeviceRepository(object):
session.bulk_insert_mappings(EnterpriseBusiModelNodeDevice, records)
session.commit()
def delete_by_busi_model_and_node(self, node_id: int, busi_model_id: int) -> bool:
try:
with get_session() as session:
sql = text(
"delete from enterprise_busi_model_node_device where node_id=:node_id and busi_model_id=:busi_model_id"
)
session.execute(
sql, {"node_id": node_id, "busi_model_id": busi_model_id}
)
session.commit()
except Exception as e:
logging.info("delete_by_busi_model_and_node error: %s", e)
return False
return True
def check_deployed(self, node_id: int, busi_model_id: int) -> int:
with get_session() as session:
count = (
@ -70,7 +86,7 @@ class EnterpriseBusiModelNodeDeviceRepository(object):
)
return 1 if count > 0 else 0
def get_device_id(self, node_id: int, busi_model_id: int) -> int | None:
def get_device_ids(self, node_id: int, busi_model_id: int) -> int | None:
with get_session() as session:
sql = text(
"select device_id from enterprise_busi_model_node_device where node_id=:node_id and busi_model_id=:busi_model_id"

@ -299,7 +299,7 @@ class BusimodelInfoHandler(APIHandler):
db_mode_node_device = (
DB_BusiModelNodeDevice.EnterpriseBusiModelNodeDeviceRepository()
)
device_ids = db_mode_node_device.get_device_id(node_id, busi_model_id)
device_ids = db_mode_node_device.get_device_ids(node_id, busi_model_id)
device_ids = list(set([item["device_id"] for item in device_ids]))
db_device = DB_Device.EnterpriseDeviceRepository()
devices = db_device.get_devices(device_ids)
@ -336,6 +336,8 @@ class BusimodelDeployHandler(APIHandler):
device_ids = self.get_escaped_argument("device_ids", "")
if not node_id or not busi_model_id:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "参数错误")
if not device_ids:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "设备不能为空")
db_node = DB_Node.EnterpriseNodeRepository()
node = db_node.get_node_by_id(node_id)
if not node:
@ -350,9 +352,11 @@ class BusimodelDeployHandler(APIHandler):
if not entity_suid_row:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "企业节点不存在")
db_device = DB_Device.EnterpriseDeviceRepository()
records = []
for device_id in device_ids.split(","):
device = DB_Device.EnterpriseDeviceRepository().get_device(int(device_id))
device = db_device.get_device(int(device_id))
if not device:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "设备不存在")
@ -368,8 +372,11 @@ class BusimodelDeployHandler(APIHandler):
"device_suid": device["suid"],
}
)
DB_BusiModelNodeDevice.EnterpriseBusiModelNodeDeviceRepository().batch_insert_record(
records
db_busi_model_node_device = (
DB_BusiModelNodeDevice.EnterpriseBusiModelNodeDeviceRepository()
)
db_busi_model_node_device.delete_by_busi_model_and_node(node_id, busi_model_id)
db_busi_model_node_device.batch_insert_record(records)
self.finish()

Loading…
Cancel
Save