mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-13 13:59:17 +00:00
perf: 优化 api sql 查询
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
|
||||
import django
|
||||
import argparse
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
APPS_DIR = os.path.join(BASE_DIR, 'apps')
|
||||
@@ -17,7 +18,6 @@ from resources.users import UserGroupGenerator, UserGenerator
|
||||
from resources.perms import AssetPermissionGenerator
|
||||
from resources.terminal import CommandGenerator, SessionGenerator
|
||||
|
||||
|
||||
resource_generator_mapper = {
|
||||
'asset': AssetsGenerator,
|
||||
'platform': PlatformGenerator,
|
||||
@@ -26,7 +26,8 @@ resource_generator_mapper = {
|
||||
'user_group': UserGroupGenerator,
|
||||
'asset_permission': AssetPermissionGenerator,
|
||||
'command': CommandGenerator,
|
||||
'session': SessionGenerator
|
||||
'session': SessionGenerator,
|
||||
'all': None
|
||||
# 'stat': StatGenerator
|
||||
}
|
||||
|
||||
@@ -36,16 +37,24 @@ def main():
|
||||
parser.add_argument(
|
||||
'resource', type=str,
|
||||
choices=resource_generator_mapper.keys(),
|
||||
default='all',
|
||||
help="resource to generate"
|
||||
)
|
||||
parser.add_argument('-c', '--count', type=int, default=100)
|
||||
parser.add_argument('-c', '--count', type=int, default=10000)
|
||||
parser.add_argument('-b', '--batch_size', type=int, default=100)
|
||||
parser.add_argument('-o', '--org', type=str, default='')
|
||||
args = parser.parse_args()
|
||||
resource, count, batch_size, org_id = args.resource, args.count, args.batch_size, args.org
|
||||
generator_cls = resource_generator_mapper[resource]
|
||||
generator = generator_cls(org_id=org_id, batch_size=batch_size)
|
||||
generator.generate(count)
|
||||
|
||||
generator_cls = []
|
||||
if resource == 'all':
|
||||
generator_cls = resource_generator_mapper.values()
|
||||
else:
|
||||
generator_cls.push(resource_generator_mapper[resource])
|
||||
|
||||
for _cls in generator_cls:
|
||||
generator = _cls(org_id=org_id, batch_size=batch_size)
|
||||
generator.generate(count)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@@ -1,11 +1,11 @@
|
||||
from random import choice
|
||||
import random
|
||||
from random import choice
|
||||
|
||||
import forgery_py
|
||||
|
||||
from .base import FakeDataGenerator
|
||||
|
||||
from assets.models import *
|
||||
from assets.const import AllTypes
|
||||
from assets.models import *
|
||||
from .base import FakeDataGenerator
|
||||
|
||||
|
||||
class NodesGenerator(FakeDataGenerator):
|
||||
@@ -59,11 +59,11 @@ class AssetsGenerator(FakeDataGenerator):
|
||||
assets = []
|
||||
|
||||
for i in batch:
|
||||
ip = forgery_py.internet.ip_v4()
|
||||
address = forgery_py.internet.ip_v4()
|
||||
hostname = forgery_py.email.address().replace('@', '.')
|
||||
hostname = f'{hostname}-{ip}'
|
||||
hostname = f'{hostname}-{address}'
|
||||
data = dict(
|
||||
ip=ip,
|
||||
address=address,
|
||||
name=hostname,
|
||||
platform_id=choice(self.platform_ids),
|
||||
created_by='Fake',
|
||||
|
Reference in New Issue
Block a user