mirror of https://github.com/jumpserver/jumpserver
parent
42c35b0271
commit
a341b55f43
|
@ -0,0 +1,43 @@
|
|||
# Generated by Django 3.2.19 on 2023-06-05 06:28
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
# 历史问题一些资产没有关联到节点,这里将这些资产关联到默认节点
|
||||
def migrate_asset_add_default_node(apps, *args):
|
||||
node_model = apps.get_model('assets', 'Node')
|
||||
asset_model = apps.get_model('assets', 'Asset')
|
||||
m2m_model = asset_model.nodes.through
|
||||
assets = asset_model.objects.filter(nodes__isnull=True).only('id', 'org_id')
|
||||
org_assets_map = {}
|
||||
for asset in assets:
|
||||
org_assets_map.setdefault(str(asset.org_id), []).append(str(asset.id))
|
||||
|
||||
if not org_assets_map:
|
||||
return
|
||||
|
||||
m2m_objs = []
|
||||
for org_id, asset_ids in org_assets_map.items():
|
||||
default_node = node_model.objects.filter(parent_key='', org_id=org_id).first()
|
||||
if not default_node:
|
||||
continue
|
||||
m2m_objs.extend(
|
||||
[
|
||||
m2m_model(node=default_node, asset_id=asset_id)
|
||||
for asset_id in asset_ids
|
||||
]
|
||||
)
|
||||
if not m2m_objs:
|
||||
return
|
||||
|
||||
m2m_model.objects.bulk_create(m2m_objs)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('assets', '0118_auto_20230524_1647'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(migrate_asset_add_default_node),
|
||||
]
|
|
@ -17,8 +17,9 @@ logger = get_logger(__file__)
|
|||
@ensure_in_real_or_default_org
|
||||
def check_node_assets_amount():
|
||||
logger.info(f'Check node assets amount {current_org}')
|
||||
m2m_model = Asset.nodes.through
|
||||
nodes = list(Node.objects.all().only('id', 'key', 'assets_amount'))
|
||||
nodeid_assetid_pairs = list(Asset.nodes.through.objects.all().values_list('node_id', 'asset_id'))
|
||||
nodeid_assetid_pairs = list(m2m_model.objects.all().values_list('node_id', 'asset_id'))
|
||||
|
||||
nodekey_assetids_mapper = defaultdict(set)
|
||||
nodeid_nodekey_mapper = {}
|
||||
|
|
Loading…
Reference in New Issue