perf: 修改 models

pull/8873/head
ibuler 2 years ago
parent 1d1b252e58
commit a86d5c1456

@ -9,19 +9,16 @@ def migrate_to_host(apps, schema_editor):
host_model = apps.get_model("assets", 'Host')
db_alias = schema_editor.connection.alias
created = 0
count = 0
batch_size = 1000
while True:
start = created
end = created + batch_size
assets = asset_model.objects.using(db_alias).all()[start:end]
assets = asset_model.objects.using(db_alias).all()[count:count+batch_size]
if not assets:
break
count += len(assets)
hosts = [host_model(asset_ptr=asset) for asset in assets]
host_model.objects.using(db_alias).bulk_create(hosts, ignore_conflicts=True)
created += len(hosts)
def migrate_hardware_info(apps, *args):
@ -36,15 +33,14 @@ def migrate_hardware_info(apps, *args):
]
while True:
start = count
end = count + batch_size
assets = asset_model.objects.all()[start:end]
assets = asset_model.objects.all()[count:count+batch_size]
if not assets:
break
count += len(assets)
updated = []
for asset in assets:
info = {getattr(asset, field) for field in hardware_fields if getattr(asset, field)}
info = {field: getattr(asset, field) for field in hardware_fields if getattr(asset, field)}
if not info:
continue
asset.info = info

@ -39,7 +39,6 @@ class Migration(migrations.Migration):
('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
('asset', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='assets.asset', verbose_name='Asset')),
('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
('su_from', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='assets.account', verbose_name='Su from')),
],
options={
'verbose_name': 'historical Account',
@ -67,7 +66,6 @@ class Migration(migrations.Migration):
('privileged', models.BooleanField(default=False, verbose_name='Privileged')),
('version', models.IntegerField(default=0, verbose_name='Version')),
('asset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='accounts', to='assets.asset', verbose_name='Asset')),
('su_from', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='su_to', to='assets.account', verbose_name='Su from')),
],
options={
'verbose_name': 'Account',
@ -75,4 +73,14 @@ class Migration(migrations.Migration):
'unique_together': {('username', 'asset'), ('name', 'asset')},
},
),
migrations.AddField(
model_name='account',
name='su_from',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='su_to', to='assets.account', verbose_name='Su from'),
),
migrations.AddField(
model_name='historicalaccount',
name='su_from',
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='assets.account', verbose_name='Su from'),
),
]

@ -36,9 +36,20 @@ def update_internal_platforms(platform_model):
'change_password_method': 'change_password_aix',
},
{'name': 'Windows', 'category': 'host', 'type': 'windows'},
{'name': 'Windows-TLS', 'category': 'host', 'type': 'windows'},
{'name': 'Windows-RDP', 'category': 'host', 'type': 'windows'},
{
'name': 'Windows-TLS', 'category': 'host', 'type': 'windows',
'protocols': [
{'name': 'rdp', 'port': 3389, 'setting': {'security': 'tls'}},
{'name': 'ssh', 'port': 22},
]
},
{
'name': 'Windows-RDP', 'category': 'host', 'type': 'windows',
'protocols': [
{'name': 'rdp', 'port': 3389, 'setting': {'security': 'rdp'}},
{'name': 'ssh', 'port': 22},
]
},
# 数据库
{'name': 'MySQL', 'category': 'database', 'type': 'mysql'},
{'name': 'PostgreSQL', 'category': 'database', 'type': 'postgresql'},
@ -48,10 +59,10 @@ def update_internal_platforms(platform_model):
{'name': 'Redis', 'category': 'database', 'type': 'redis'},
# 网络设备
{'name': 'Generic', 'category': 'networking', 'type': 'general'},
{'name': 'Huawei', 'category': 'networking', 'type': 'general'},
{'name': 'Cisco', 'category': 'networking', 'type': 'general'},
{'name': 'H3C', 'category': 'networking', 'type': 'general'},
{'name': 'Generic', 'category': 'networking', 'type': 'general', 'brand': 'other'},
{'name': 'Huawei', 'category': 'networking', 'type': 'general', 'brand': 'huawei'},
{'name': 'Cisco', 'category': 'networking', 'type': 'general', 'brand': 'cisco'},
{'name': 'H3C', 'category': 'networking', 'type': 'general', 'brand': 'h3c'},
# Web

@ -2,7 +2,7 @@
vars:
connection_type: ssh
password:
value: {{ password}}
value: {{ password }}
public_key:
value: {{ jms_key }}
exclusive: {{ exclusive }}

Loading…
Cancel
Save