mirror of https://github.com/jumpserver/jumpserver
ibuler
1 year ago
committed by
Jiangjie.Bai
4 changed files with 60 additions and 4 deletions
@ -0,0 +1,37 @@
|
||||
import os |
||||
import sys |
||||
|
||||
import django |
||||
|
||||
if os.path.exists('../apps'): |
||||
sys.path.insert(0, '../apps') |
||||
elif os.path.exists('./apps'): |
||||
sys.path.insert(0, './apps') |
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "jumpserver.settings") |
||||
django.setup() |
||||
|
||||
from assets.models import Asset as asset_model, Host as host_model, Device as device_model |
||||
from orgs.models import Organization |
||||
|
||||
|
||||
def clean_host(): |
||||
root = Organization.root() |
||||
root.change_to() |
||||
|
||||
devices = host_model.objects.filter(platform__category='device') |
||||
assets = asset_model.objects.filter(id__in=devices.values_list('asset_ptr_id', flat=True)) |
||||
assets_map = {asset.id: asset for asset in assets} |
||||
|
||||
for host in devices: |
||||
asset = assets_map.get(host.asset_ptr_id) |
||||
if not asset: |
||||
continue |
||||
device = device_model(asset_ptr_id=asset.id) |
||||
device.__dict__.update(asset.__dict__) |
||||
device.save() |
||||
host.delete(keep_parents=True) |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
clean_host() |
Loading…
Reference in new issue