|
|
|
#!/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()
|