mirror of https://github.com/jumpserver/jumpserver
perf: push account secret
parent
c70d7f709f
commit
376a9d74e8
|
@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _
|
||||||
from accounts.automations.methods import platform_automation_methods
|
from accounts.automations.methods import platform_automation_methods
|
||||||
from accounts.const import SSHKeyStrategy, SecretStrategy, SecretType, ChangeSecretRecordStatusChoice
|
from accounts.const import SSHKeyStrategy, SecretStrategy, SecretType, ChangeSecretRecordStatusChoice
|
||||||
from accounts.models import BaseAccountQuerySet
|
from accounts.models import BaseAccountQuerySet
|
||||||
|
from accounts.utils import SecretGenerator
|
||||||
from assets.automations.base.manager import BasePlaybookManager
|
from assets.automations.base.manager import BasePlaybookManager
|
||||||
from assets.const import HostTypes
|
from assets.const import HostTypes
|
||||||
from common.db.utils import safe_db_connection
|
from common.db.utils import safe_db_connection
|
||||||
|
@ -51,6 +52,17 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager):
|
||||||
kwargs['regexp'] = '.*{}$'.format(secret.split()[2].strip())
|
kwargs['regexp'] = '.*{}$'.format(secret.split()[2].strip())
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
|
def get_secret(self, account):
|
||||||
|
if self.secret_strategy == SecretStrategy.custom:
|
||||||
|
new_secret = self.execution.snapshot['secret']
|
||||||
|
else:
|
||||||
|
generator = SecretGenerator(
|
||||||
|
self.secret_strategy, self.secret_type,
|
||||||
|
self.execution.snapshot.get('password_rules')
|
||||||
|
)
|
||||||
|
new_secret = generator.get_secret()
|
||||||
|
return new_secret
|
||||||
|
|
||||||
def get_accounts(self, privilege_account) -> BaseAccountQuerySet | None:
|
def get_accounts(self, privilege_account) -> BaseAccountQuerySet | None:
|
||||||
if not privilege_account:
|
if not privilege_account:
|
||||||
print('Not privilege account')
|
print('Not privilege account')
|
||||||
|
|
|
@ -15,7 +15,6 @@ from common.utils import get_logger
|
||||||
from common.utils.file import encrypt_and_compress_zip_file
|
from common.utils.file import encrypt_and_compress_zip_file
|
||||||
from common.utils.timezone import local_now_filename
|
from common.utils.timezone import local_now_filename
|
||||||
from ..base.manager import BaseChangeSecretPushManager
|
from ..base.manager import BaseChangeSecretPushManager
|
||||||
from ...utils import SecretGenerator
|
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
@ -27,17 +26,6 @@ class ChangeSecretManager(BaseChangeSecretPushManager):
|
||||||
def method_type(cls):
|
def method_type(cls):
|
||||||
return AutomationTypes.change_secret
|
return AutomationTypes.change_secret
|
||||||
|
|
||||||
def get_secret(self, account):
|
|
||||||
if self.secret_strategy == SecretStrategy.custom:
|
|
||||||
new_secret = self.execution.snapshot['secret']
|
|
||||||
else:
|
|
||||||
generator = SecretGenerator(
|
|
||||||
self.secret_strategy, self.secret_type,
|
|
||||||
self.execution.snapshot.get('password_rules')
|
|
||||||
)
|
|
||||||
new_secret = generator.get_secret()
|
|
||||||
return new_secret
|
|
||||||
|
|
||||||
def gen_account_inventory(self, account, asset, h, path_dir):
|
def gen_account_inventory(self, account, asset, h, path_dir):
|
||||||
record = self.get_or_create_record(asset, account, h['name'])
|
record = self.get_or_create_record(asset, account, h['name'])
|
||||||
new_secret, private_key_path = self.handle_ssh_secret(account.secret_type, record.new_secret, path_dir)
|
new_secret, private_key_path = self.handle_ssh_secret(account.secret_type, record.new_secret, path_dir)
|
||||||
|
|
|
@ -21,7 +21,10 @@ class PushAccountManager(BaseChangeSecretPushManager):
|
||||||
return AutomationTypes.push_account
|
return AutomationTypes.push_account
|
||||||
|
|
||||||
def get_secret(self, account):
|
def get_secret(self, account):
|
||||||
return account.secret
|
secret = account.secret
|
||||||
|
if not secret:
|
||||||
|
secret = super().get_secret(account)
|
||||||
|
return secret
|
||||||
|
|
||||||
def gen_account_inventory(self, account, asset, h, path_dir):
|
def gen_account_inventory(self, account, asset, h, path_dir):
|
||||||
secret = self.get_secret(account)
|
secret = self.get_secret(account)
|
||||||
|
|
Loading…
Reference in New Issue