From 44a1f70da9df3f90d80213d097c1c7d7fab2dd80 Mon Sep 17 00:00:00 2001 From: Shay Nehmad Date: Thu, 3 Oct 2019 15:20:50 +0300 Subject: [PATCH] Fixed circular imports --- .../actions/communicate_as_new_user.py | 3 +- .../infection_monkey/utils/auto_new_user.py | 28 ------------------- .../utils/auto_new_user_factory.py | 21 ++++++++++++++ .../infection_monkey/utils/new_user_error.py | 2 ++ .../infection_monkey/utils/windows/users.py | 3 +- 5 files changed, 27 insertions(+), 30 deletions(-) create mode 100644 monkey/infection_monkey/utils/auto_new_user_factory.py create mode 100644 monkey/infection_monkey/utils/new_user_error.py diff --git a/monkey/infection_monkey/post_breach/actions/communicate_as_new_user.py b/monkey/infection_monkey/post_breach/actions/communicate_as_new_user.py index 057f23ccb..7658f5a94 100644 --- a/monkey/infection_monkey/post_breach/actions/communicate_as_new_user.py +++ b/monkey/infection_monkey/post_breach/actions/communicate_as_new_user.py @@ -4,7 +4,8 @@ import random import string import subprocess -from infection_monkey.utils.auto_new_user import NewUserError, create_auto_new_user +from infection_monkey.utils.new_user_error import NewUserError +from infection_monkey.utils.auto_new_user_factory import create_auto_new_user from common.data.post_breach_consts import POST_BREACH_COMMUNICATE_AS_NEW_USER from infection_monkey.post_breach.pba import PBA from infection_monkey.telemetry.post_breach_telem import PostBreachTelem diff --git a/monkey/infection_monkey/utils/auto_new_user.py b/monkey/infection_monkey/utils/auto_new_user.py index 492c8cf9d..e8e42b309 100644 --- a/monkey/infection_monkey/utils/auto_new_user.py +++ b/monkey/infection_monkey/utils/auto_new_user.py @@ -1,17 +1,9 @@ import logging import abc -from infection_monkey.utils.environment import is_windows_os -from infection_monkey.utils.linux.users import AutoNewLinuxUser -from infection_monkey.utils.windows.users import AutoNewWindowsUser - logger = logging.getLogger(__name__) -class NewUserError(Exception): - pass - - class AutoNewUser: """ RAII object to use for creating and using a new user. Use with `with`. @@ -40,23 +32,3 @@ class AutoNewUser: @abc.abstractmethod def __exit__(self, exc_type, exc_val, exc_tb): raise NotImplementedError() - - -def create_auto_new_user(username, password, is_windows=is_windows_os()): - """ - Factory method for creating an AutoNewUser. See AutoNewUser's documentation for more information. - Example usage: - with create_auto_new_user(username, PASSWORD) as new_user: - ... - :param username: The username of the new user. - :param password: The password of the new user. - :param is_windows: If True, a new Windows user is created. Otherwise, a Linux user is created. Leave blank for - automatic detection. - :return: The new AutoNewUser object - use with a `with` scope. - """ - if is_windows: - return AutoNewWindowsUser(username, password) - else: - return AutoNewLinuxUser(username, password) - - diff --git a/monkey/infection_monkey/utils/auto_new_user_factory.py b/monkey/infection_monkey/utils/auto_new_user_factory.py new file mode 100644 index 000000000..898226d46 --- /dev/null +++ b/monkey/infection_monkey/utils/auto_new_user_factory.py @@ -0,0 +1,21 @@ +from infection_monkey.utils.environment import is_windows_os +from infection_monkey.utils.linux.users import AutoNewLinuxUser +from infection_monkey.utils.windows.users import AutoNewWindowsUser + + +def create_auto_new_user(username, password, is_windows=is_windows_os()): + """ + Factory method for creating an AutoNewUser. See AutoNewUser's documentation for more information. + Example usage: + with create_auto_new_user(username, PASSWORD) as new_user: + ... + :param username: The username of the new user. + :param password: The password of the new user. + :param is_windows: If True, a new Windows user is created. Otherwise, a Linux user is created. Leave blank for + automatic detection. + :return: The new AutoNewUser object - use with a `with` scope. + """ + if is_windows: + return AutoNewWindowsUser(username, password) + else: + return AutoNewLinuxUser(username, password) diff --git a/monkey/infection_monkey/utils/new_user_error.py b/monkey/infection_monkey/utils/new_user_error.py new file mode 100644 index 000000000..8fe44d7bc --- /dev/null +++ b/monkey/infection_monkey/utils/new_user_error.py @@ -0,0 +1,2 @@ +class NewUserError(Exception): + pass diff --git a/monkey/infection_monkey/utils/windows/users.py b/monkey/infection_monkey/utils/windows/users.py index 850774977..6193da60e 100644 --- a/monkey/infection_monkey/utils/windows/users.py +++ b/monkey/infection_monkey/utils/windows/users.py @@ -1,6 +1,7 @@ import subprocess -from infection_monkey.utils.auto_new_user import AutoNewUser, NewUserError +from infection_monkey.utils.auto_new_user import AutoNewUser +from infection_monkey.utils.new_user_error import NewUserError ACTIVE_NO_NET_USER = '/ACTIVE:NO'