jumpserver/utils/generate_fake_data/generate.py

62 lines
1.8 KiB
Python
Raw Normal View History

#!/usr/bin/env python
#
2023-02-07 08:21:26 +00:00
import argparse
import os
import sys
2023-02-07 08:21:26 +00:00
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()
2022-08-22 07:23:28 +00:00
from resources.assets import AssetsGenerator, NodesGenerator, PlatformGenerator
from resources.users import UserGroupGenerator, UserGenerator
from resources.perms import AssetPermissionGenerator
2022-05-30 08:01:57 +00:00
from resources.terminal import CommandGenerator, SessionGenerator
resource_generator_mapper = {
'asset': AssetsGenerator,
2022-08-22 07:23:28 +00:00
'platform': PlatformGenerator,
'node': NodesGenerator,
'user': UserGenerator,
'user_group': UserGroupGenerator,
'asset_permission': AssetPermissionGenerator,
'command': CommandGenerator,
2023-02-07 08:21:26 +00:00
'session': SessionGenerator,
'all': None
# 'stat': StatGenerator
}
def main():
parser = argparse.ArgumentParser(description='Generate fake data')
parser.add_argument(
'resource', type=str,
choices=resource_generator_mapper.keys(),
2023-02-07 08:21:26 +00:00
default='all',
help="resource to generate"
)
2023-02-13 12:04:17 +00:00
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
2023-02-07 08:21:26 +00:00
generator_cls = []
if resource == 'all':
generator_cls = resource_generator_mapper.values()
else:
2023-02-09 12:48:25 +00:00
generator_cls.append(resource_generator_mapper[resource])
2023-02-07 08:21:26 +00:00
for _cls in generator_cls:
generator = _cls(org_id=org_id, batch_size=batch_size)
generator.generate(count)
if __name__ == '__main__':
main()