mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.9 KiB
64 lines
1.9 KiB
#!/usr/bin/env python |
|
# |
|
import argparse |
|
import os |
|
import sys |
|
|
|
import django |
|
|
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
|
APPS_DIR = os.path.join(BASE_DIR, 'apps') |
|
sys.path.insert(0, APPS_DIR) |
|
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "jumpserver.settings") |
|
django.setup() |
|
|
|
from resources.assets import AssetsGenerator, NodesGenerator, PlatformGenerator |
|
from resources.users import UserGroupGenerator, UserGenerator |
|
from resources.perms import AssetPermissionGenerator |
|
from resources.terminal import CommandGenerator, SessionGenerator |
|
from resources.accounts import AccountGenerator |
|
|
|
resource_generator_mapper = { |
|
'asset': AssetsGenerator, |
|
'platform': PlatformGenerator, |
|
'node': NodesGenerator, |
|
'user': UserGenerator, |
|
'user_group': UserGroupGenerator, |
|
'asset_permission': AssetPermissionGenerator, |
|
'command': CommandGenerator, |
|
'session': SessionGenerator, |
|
'account': AccountGenerator, |
|
'all': None |
|
# 'stat': StatGenerator |
|
} |
|
|
|
|
|
def main(): |
|
parser = argparse.ArgumentParser(description='Generate fake data') |
|
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=1000) |
|
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 |
|
resource = resource.lower().rstrip('s') |
|
|
|
generator_cls = [] |
|
if resource == 'all': |
|
generator_cls = resource_generator_mapper.values() |
|
else: |
|
generator_cls.append(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__': |
|
main()
|
|
|