mirror of https://github.com/jumpserver/jumpserver
parent
e3e727f972
commit
64e48712a5
|
@ -1,8 +1,7 @@
|
|||
# Generated by Django 3.2.12 on 2022-07-11 06:13
|
||||
|
||||
import time
|
||||
from django.db import migrations, models
|
||||
from assets.models import Platform
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def migrate_asset_accounts(apps, schema_editor):
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# Generated by Django 3.2.14 on 2022-08-11 07:11
|
||||
import assets.models.platform
|
||||
import django.db.models
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@ def _create_account_obj(secret, secret_type, gateway, asset, account_model):
|
|||
|
||||
def migrate_gateway_to_asset(apps, schema_editor):
|
||||
db_alias = schema_editor.connection.alias
|
||||
node_model = apps.get_model('assets', 'Node')
|
||||
org_model = apps.get_model('orgs', 'Organization')
|
||||
gateway_model = apps.get_model('assets', 'Gateway')
|
||||
platform_model = apps.get_model('assets', 'Platform')
|
||||
gateway_platform = platform_model.objects.using(db_alias).get(name=GATEWAY_NAME)
|
||||
|
@ -28,6 +30,16 @@ def migrate_gateway_to_asset(apps, schema_editor):
|
|||
asset_model = apps.get_model('assets', 'Asset')
|
||||
protocol_model = apps.get_model('assets', 'Protocol')
|
||||
gateways = gateway_model.objects.all()
|
||||
|
||||
org_ids = gateways.order_by('org_id').values_list('org_id', flat=True).distinct()
|
||||
node_dict = {}
|
||||
for org_id in org_ids:
|
||||
org = org_model.objects.using(db_alias).filter(id=org_id).first()
|
||||
node = node_model.objects.using(db_alias).filter(
|
||||
org_id=org_id, value=org.name, full_value=f'/{org.name}'
|
||||
).first()
|
||||
node_dict[org_id] = node
|
||||
|
||||
for gateway in gateways:
|
||||
comment = gateway.comment if gateway.comment else ''
|
||||
data = {
|
||||
|
@ -40,6 +52,8 @@ def migrate_gateway_to_asset(apps, schema_editor):
|
|||
'platform': gateway_platform,
|
||||
}
|
||||
asset = asset_model.objects.using(db_alias).create(**data)
|
||||
node = node_dict.get(str(gateway.org_id))
|
||||
asset.nodes.set([node])
|
||||
asset_dict[gateway.id] = asset
|
||||
protocol_model.objects.using(db_alias).create(name='ssh', port=gateway.port, asset=asset)
|
||||
hosts = [host_model(asset_ptr=asset) for asset in asset_dict.values()]
|
||||
|
|
Loading…
Reference in New Issue