Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sssd_test_framework/roles/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def __init__(self, *args, **kwargs) -> None:
Methods for testing automount.
"""

self.local: LocalUsersUtils = LocalUsersUtils(self.host, self.fs)
self.local: LocalUsersUtils = LocalUsersUtils(self.host, self.fs, client=self)
"""
Managing local users and groups.
"""
Expand Down
68 changes: 44 additions & 24 deletions sssd_test_framework/roles/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
"GenericNetgroup",
"GenericNetgroupMember",
"GenericSudoRule",
"SudoRuleUserField",
"SudoRuleHostField",
"SudoRuleCommandField",
"SudoRuleRunAsUserField",
"SudoRuleRunAsGroupField",
"GenericAutomount",
"GenericAutomountMap",
"GenericAutomountKey",
Expand Down Expand Up @@ -1009,15 +1014,19 @@ class GenericNetgroupMember(object):
"""

def __init__(
self, *, host: str | None = None, user: ProtocolName | str | None = None, ng: ProtocolName | str | None = None
self,
*,
host: str | None = None,
user: GenericUser | ProtocolName | str | None = None,
ng: GenericNetgroup | ProtocolName | str | None = None,
) -> None:
"""
:param host: Host, defaults to None
:type host: str | None, optional
:param user: User, defaults to None
:type user: ProtocolName | str | None, optional
:type user: GenericUser | ProtocolName | str | None, optional
:param ng: Netgroup, defaults to None
:type ng: ProtocolName | str | None, optional
:type ng: GenericNetgroup | ProtocolName | str | None, optional
"""
self.host: str | None = host
"""Member host."""
Expand All @@ -1028,7 +1037,7 @@ def __init__(
self.netgroup: str | None = self._get_name(ng)
"""Member netgroup."""

def _get_name(self, item: ProtocolName | str | None = None) -> str | None:
def _get_name(self, item: GenericUser | GenericNetgroup | ProtocolName | str | None = None) -> str | None:
if item is None:
return None

Expand All @@ -1038,6 +1047,17 @@ def _get_name(self, item: ProtocolName | str | None = None) -> str | None:
return item


SudoRuleUserField = (
str | GenericUser | GenericGroup | ProtocolName | list[str | GenericUser | GenericGroup | ProtocolName] | None
)
SudoRuleHostField = str | ProtocolName | list[str | ProtocolName] | None
SudoRuleCommandField = str | ProtocolName | list[str | ProtocolName] | None
SudoRuleRunAsUserField = (
str | GenericUser | GenericGroup | ProtocolName | list[str | GenericUser | GenericGroup | ProtocolName] | None
)
SudoRuleRunAsGroupField = str | GenericGroup | ProtocolName | list[str | GenericGroup | ProtocolName] | None


class GenericSudoRule(ABC, BaseObject):
"""
Generic sudo rule management.
Expand All @@ -1055,30 +1075,30 @@ def name(self):
def add(
self,
*,
user: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None = None,
host: str | list[str] | None = None,
command: str | list[str] | None = None,
user: SudoRuleUserField = None,
host: SudoRuleHostField = None,
command: SudoRuleCommandField = None,
option: str | list[str] | None = None,
runasuser: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None = None,
runasgroup: str | GenericGroup | list[str | GenericGroup] | None = None,
runasuser: SudoRuleRunAsUserField = None,
runasgroup: SudoRuleRunAsGroupField = None,
order: int | None = None,
nopasswd: bool | None = None,
) -> GenericSudoRule:
"""
Create new sudo rule.

:param user: sudoUser attribute, defaults to None
:type user: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None, optional
:type user: SudoRuleUserField, optional
:param host: sudoHost attribute, defaults to None
:type host: str | list[str] | None, optional
:type host: SudoRuleHostField, optional
:param command: sudoCommand attribute, defaults to None
:type command: str | list[str] | None, optional
:type command: SudoRuleCommandField, optional
:param option: sudoOption attribute, defaults to None
:type option: str | list[str] | None, optional
:param runasuser: sudoRunAsUser attribute, defaults to None
:type runasuser: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None, optional
:type runasuser: SudoRuleRunAsUserField, optional
:param runasgroup: sudoRunAsGroup attribute, defaults to None
:type runasgroup: str | GenericGroup | list[str | GenericGroup] | None, optional
:type runasgroup: SudoRuleRunAsGroupField, optional
:param order: sudoOrder attribute, defaults to None
:type order: int | None, optional
:param nopasswd: If true, no authentication is required (NOPASSWD), defaults to None (no change)
Expand All @@ -1092,30 +1112,30 @@ def add(
def modify(
self,
*,
user: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None = None,
host: str | list[str] | None = None,
command: str | list[str] | None = None,
user: SudoRuleUserField = None,
host: SudoRuleHostField = None,
command: SudoRuleCommandField = None,
option: str | list[str] | None = None,
runasuser: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None = None,
runasgroup: str | GenericGroup | list[str | GenericGroup] | None = None,
runasuser: SudoRuleRunAsUserField = None,
runasgroup: SudoRuleRunAsGroupField = None,
order: int | None = None,
nopasswd: bool | None = None,
) -> GenericSudoRule:
"""
Create new sudo rule.

:param user: sudoUser attribute, defaults to None
:type user: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None, optional
:type user: SudoRuleUserField, optional
:param host: sudoHost attribute, defaults to None
:type host: str | list[str] | None, optional
:type host: SudoRuleHostField, optional
:param command: sudoCommand attribute, defaults to None
:type command: str | list[str] | None, optional
:type command: SudoRuleCommandField, optional
:param option: sudoOption attribute, defaults to None
:type option: str | list[str] | None, optional
:param runasuser: sudoRunAsUser attribute, defaults to None
:type runasuser: str | GenericUser | GenericGroup | list[str | GenericUser | GenericGroup] | None, optional
:type runasuser: SudoRuleRunAsUserField, optional
:param runasgroup: sudoRunAsGroup attribute, defaults to None
:type runasgroup: str | GenericGroup | list[str | GenericGroup] | None, optional
:type runasgroup: SudoRuleRunAsGroupField, optional
:param order: sudoOrder attribute, defaults to None
:type order: int | None, optional
:param nopasswd: If true, no authentication is required (NOPASSWD), defaults to None (no change)
Expand Down
Loading
Loading