mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-01 07:27:35 +00:00
merge: with v3
This commit is contained in:
@@ -113,7 +113,7 @@ class UserCreation:
|
||||
"username": username,
|
||||
"password": password,
|
||||
"protocol": protocol,
|
||||
"auto_push": bool(int(auto_push)),
|
||||
"auto_push_account": bool(int(auto_push)),
|
||||
"login_mode": "auto"
|
||||
}
|
||||
users.append(info)
|
||||
|
@@ -12,7 +12,7 @@ sys.path.insert(0, APPS_DIR)
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "jumpserver.settings")
|
||||
django.setup()
|
||||
|
||||
from resources.assets import AssetsGenerator, NodesGenerator, SystemUsersGenerator, AdminUsersGenerator
|
||||
from resources.assets import AssetsGenerator, NodesGenerator, PlatformGenerator
|
||||
from resources.users import UserGroupGenerator, UserGenerator
|
||||
from resources.perms import AssetPermissionGenerator
|
||||
from resources.terminal import CommandGenerator, SessionGenerator
|
||||
@@ -20,9 +20,8 @@ from resources.terminal import CommandGenerator, SessionGenerator
|
||||
|
||||
resource_generator_mapper = {
|
||||
'asset': AssetsGenerator,
|
||||
'platform': PlatformGenerator,
|
||||
'node': NodesGenerator,
|
||||
'system_user': SystemUsersGenerator,
|
||||
'admin_user': AdminUsersGenerator,
|
||||
'user': UserGenerator,
|
||||
'user_group': UserGroupGenerator,
|
||||
'asset_permission': AssetPermissionGenerator,
|
||||
|
@@ -5,44 +5,7 @@ import forgery_py
|
||||
from .base import FakeDataGenerator
|
||||
|
||||
from assets.models import *
|
||||
|
||||
|
||||
class AdminUsersGenerator(FakeDataGenerator):
|
||||
resource = 'admin_user'
|
||||
|
||||
def do_generate(self, batch, batch_size):
|
||||
admin_users = []
|
||||
for i in batch:
|
||||
username = forgery_py.internet.user_name(True)
|
||||
password = forgery_py.basic.password()
|
||||
admin_users.append(AdminUser(
|
||||
name=username.title(),
|
||||
username=username,
|
||||
password=password,
|
||||
org_id=self.org.id,
|
||||
created_by='Fake',
|
||||
))
|
||||
AdminUser.objects.bulk_create(admin_users, ignore_conflicts=True)
|
||||
|
||||
|
||||
class SystemUsersGenerator(FakeDataGenerator):
|
||||
def do_generate(self, batch, batch_size):
|
||||
system_users = []
|
||||
protocols = list(dict(SystemUser.Protocol.choices).keys())
|
||||
for i in batch:
|
||||
username = forgery_py.internet.user_name(True)
|
||||
protocol = random.choice(protocols)
|
||||
name = username.title()
|
||||
name = f'{name}-{protocol}'
|
||||
system_users.append(SystemUser(
|
||||
name=name,
|
||||
username=username,
|
||||
password=forgery_py.basic.password(),
|
||||
protocol=protocol,
|
||||
org_id=self.org.id,
|
||||
created_by='Fake',
|
||||
))
|
||||
SystemUser.objects.bulk_create(system_users, ignore_conflicts=True)
|
||||
from assets.const import AllTypes
|
||||
|
||||
|
||||
class NodesGenerator(FakeDataGenerator):
|
||||
@@ -55,14 +18,37 @@ class NodesGenerator(FakeDataGenerator):
|
||||
parent.create_child()
|
||||
|
||||
|
||||
class AssetsGenerator(FakeDataGenerator):
|
||||
resource = 'asset'
|
||||
admin_user_ids: list
|
||||
node_ids: list
|
||||
class PlatformGenerator(FakeDataGenerator):
|
||||
resource = 'platform'
|
||||
category_type: dict
|
||||
categories: list
|
||||
|
||||
def pre_generate(self):
|
||||
self.category_type = dict(AllTypes.category_types())
|
||||
self.categories = list(self.category_type.keys())
|
||||
|
||||
def do_generate(self, batch, batch_size):
|
||||
platforms = []
|
||||
for i in batch:
|
||||
category = choice(self.categories)
|
||||
tp = choice(self.category_type[category].choices)
|
||||
data = {
|
||||
'name': forgery_py.name.company_name(),
|
||||
'category': category,
|
||||
'type': tp[0]
|
||||
}
|
||||
platforms.append(Platform(**data))
|
||||
Platform.objects.bulk_create(platforms, ignore_conflicts=True)
|
||||
|
||||
|
||||
class AssetsGenerator(FakeDataGenerator):
|
||||
resource = 'asset'
|
||||
node_ids: list
|
||||
platform_ids: list
|
||||
|
||||
def pre_generate(self):
|
||||
self.admin_user_ids = list(AdminUser.objects.all().values_list('id', flat=True))
|
||||
self.node_ids = list(Node.objects.all().values_list('id', flat=True))
|
||||
self.platform_ids = list(Platform.objects.all().values_list('id', flat=True))
|
||||
|
||||
def set_assets_nodes(self, assets):
|
||||
for asset in assets:
|
||||
@@ -78,8 +64,8 @@ class AssetsGenerator(FakeDataGenerator):
|
||||
hostname = f'{hostname}-{ip}'
|
||||
data = dict(
|
||||
ip=ip,
|
||||
hostname=hostname,
|
||||
admin_user_id=choice(self.admin_user_ids),
|
||||
name=hostname,
|
||||
platform_id=choice(self.platform_ids),
|
||||
created_by='Fake',
|
||||
org_id=self.org.id
|
||||
)
|
||||
|
@@ -19,7 +19,6 @@ class AssetPermissionGenerator(FakeDataGenerator):
|
||||
def pre_generate(self):
|
||||
self.node_ids = list(Node.objects.all().values_list('id', flat=True))
|
||||
self.asset_ids = list(Asset.objects.all().values_list('id', flat=True))
|
||||
self.system_user_ids = list(SystemUser.objects.all().values_list('id', flat=True))
|
||||
self.user_ids = list(User.objects.all().values_list('id', flat=True))
|
||||
self.user_group_ids = list(UserGroup.objects.all().values_list('id', flat=True))
|
||||
|
||||
@@ -47,12 +46,6 @@ class AssetPermissionGenerator(FakeDataGenerator):
|
||||
relation_name = 'node_id'
|
||||
self.set_relations(perms, through, relation_name, choices)
|
||||
|
||||
def set_system_users(self, perms):
|
||||
through = AssetPermission.system_users.through
|
||||
choices = self.system_user_ids
|
||||
relation_name = 'systemuser_id'
|
||||
self.set_relations(perms, through, relation_name, choices)
|
||||
|
||||
def set_relations(self, perms, through, relation_name, choices, choice_count=None):
|
||||
relations = []
|
||||
|
||||
@@ -79,4 +72,3 @@ class AssetPermissionGenerator(FakeDataGenerator):
|
||||
self.set_user_groups(created)
|
||||
self.set_assets(created)
|
||||
self.set_nodes(created)
|
||||
self.set_system_users(created)
|
||||
|
@@ -4,7 +4,6 @@ import forgery_py
|
||||
from .base import FakeDataGenerator
|
||||
|
||||
from users.models import *
|
||||
from orgs.models import OrganizationMember
|
||||
|
||||
|
||||
class UserGroupGenerator(FakeDataGenerator):
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
tasks:
|
||||
- name: 监测特权用户密码
|
||||
ping:
|
||||
ansible.builtin.ping:
|
||||
|
||||
- name: 更改用户密码
|
||||
user:
|
||||
@@ -19,5 +19,5 @@
|
||||
vars:
|
||||
- ansible_user: '{{ user1 }}'
|
||||
ansible_ssh_password: '{{ user1password }}'
|
||||
ping:
|
||||
ansible.builtin.ping:
|
||||
|
||||
|
@@ -28,7 +28,7 @@ def sync_node(src, target, cut=False):
|
||||
asset.save()
|
||||
new_asset = asset
|
||||
else:
|
||||
new_asset = get_object_or_none(Asset, hostname=asset.hostname, org_id=target.org_id)
|
||||
new_asset = get_object_or_none(Asset, hostname=asset.name, org_id=target.org_id)
|
||||
if new_asset is None:
|
||||
asset.id = None
|
||||
asset.org_id = target.org_id
|
||||
|
@@ -42,7 +42,7 @@ def migrate_system_role_binding(apps, schema_editor):
|
||||
role_bindings.append(role_binding)
|
||||
|
||||
role_binding_model.objects.bulk_create(role_bindings, ignore_conflicts=True)
|
||||
print("Create role binding: {}-{} using: {:.2f}s".format(
|
||||
print("\tCreate role binding: {}-{} using: {:.2f}s".format(
|
||||
count, count + len(users), time.time()-start
|
||||
))
|
||||
count += len(users)
|
||||
|
Reference in New Issue
Block a user