更新代码

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

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from typing import List from typing import List
import logging
from sqlalchemy import Column, Integer, String, DateTime, func, text from sqlalchemy import Column, Integer, String, DateTime, func, text
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
@ -58,6 +58,22 @@ class EnterpriseBusiModelNodeDeviceRepository(object):
session.bulk_insert_mappings(EnterpriseBusiModelNodeDevice, records) session.bulk_insert_mappings(EnterpriseBusiModelNodeDevice, records)
session.commit() 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: def check_deployed(self, node_id: int, busi_model_id: int) -> int:
with get_session() as session: with get_session() as session:
count = ( count = (
@ -70,7 +86,7 @@ class EnterpriseBusiModelNodeDeviceRepository(object):
) )
return 1 if count > 0 else 0 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: with get_session() as session:
sql = text( sql = text(
"select device_id from enterprise_busi_model_node_device where node_id=:node_id and busi_model_id=:busi_model_id" "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_mode_node_device = (
DB_BusiModelNodeDevice.EnterpriseBusiModelNodeDeviceRepository() 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])) device_ids = list(set([item["device_id"] for item in device_ids]))
db_device = DB_Device.EnterpriseDeviceRepository() db_device = DB_Device.EnterpriseDeviceRepository()
devices = db_device.get_devices(device_ids) devices = db_device.get_devices(device_ids)
@ -336,6 +336,8 @@ class BusimodelDeployHandler(APIHandler):
device_ids = self.get_escaped_argument("device_ids", "") device_ids = self.get_escaped_argument("device_ids", "")
if not node_id or not busi_model_id: if not node_id or not busi_model_id:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "参数错误") raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "参数错误")
if not device_ids:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "设备不能为空")
db_node = DB_Node.EnterpriseNodeRepository() db_node = DB_Node.EnterpriseNodeRepository()
node = db_node.get_node_by_id(node_id) node = db_node.get_node_by_id(node_id)
if not node: if not node:
@ -350,9 +352,11 @@ class BusimodelDeployHandler(APIHandler):
if not entity_suid_row: if not entity_suid_row:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "企业节点不存在") raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "企业节点不存在")
db_device = DB_Device.EnterpriseDeviceRepository()
records = [] records = []
for device_id in device_ids.split(","): 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: if not device:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "设备不存在") raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "设备不存在")
@ -368,8 +372,11 @@ class BusimodelDeployHandler(APIHandler):
"device_suid": device["suid"], "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() self.finish()

Loading…
Cancel
Save