MCPcopy
hub / github.com/jumpserver/jumpserver / sync_node

Function sync_node

utils/sync_node.py:21–43  ·  view source on GitHub ↗
(src, target, cut=False)

Source from the content-addressed store, hash-verified

19target_node = Node.objects.get(key="2:1")
20
21def sync_node(src, target, cut=False):
22 assets = src.get_assets()
23 # 同步本节点资产
24 for asset in assets:
25 if cut:
26 src.assets.remove(asset)
27 asset.org_id = target.org_id
28 asset.save()
29 new_asset = asset
30 else:
31 new_asset = get_object_or_none(Asset, hostname=asset.name, org_id=target.org_id)
32 if new_asset is None:
33 asset.id = None
34 asset.org_id = target.org_id
35 asset.save()
36 new_asset = asset
37 target.assets.add(new_asset)
38 # 同步子节点资产
39 for child in src.get_children():
40 node_new = target.create_child(child.value)
41 node_new.org_id = target.org_id
42 node_new.save()
43 sync_node(child, node_new)
44
45if __name__ == '__main__':
46 with transaction.atomic():

Callers 1

sync_node.pyFile · 0.85

Calls 7

get_object_or_noneFunction · 0.90
addMethod · 0.80
get_childrenMethod · 0.80
create_childMethod · 0.80
get_assetsMethod · 0.45
removeMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected