57 lines
No EOL
1.2 KiB
Python
57 lines
No EOL
1.2 KiB
Python
import socket
|
|
from linuxmusterLinuxclient7 import logging, ldapHelper, realm, localUserHelper
|
|
|
|
def hostname():
|
|
"""
|
|
Get the hostname of the computer
|
|
|
|
:return: The hostname
|
|
:rtype: str
|
|
"""
|
|
return socket.gethostname().split('.', 1)[0]
|
|
|
|
def krbHostName():
|
|
"""
|
|
Get the krb hostname, eg. `COMPUTER01$`
|
|
|
|
:return: The krb hostname
|
|
:rtype: str
|
|
"""
|
|
return hostname().upper() + "$"
|
|
|
|
def readAttributes():
|
|
"""
|
|
Read all ldap attributes of the cumputer
|
|
|
|
:return: Tuple (success, dict of attributes)
|
|
:rtype: tuple
|
|
"""
|
|
return ldapHelper.searchOne("(sAMAccountName={}$)".format(hostname()))
|
|
|
|
def isInGroup(groupName):
|
|
"""
|
|
Check if the computer is part of an ldap group
|
|
|
|
:param groupName: The name of the group to check
|
|
:type grouName: str
|
|
:return: True or False
|
|
:rtype: bool
|
|
"""
|
|
rc, groups = localUserHelper.getGroupsOfLocalUser(krbHostName())
|
|
if not rc:
|
|
return False
|
|
|
|
return groupName in groups
|
|
|
|
def isInAD():
|
|
"""
|
|
Check if the computer is joined to an AD
|
|
|
|
:return: True or False
|
|
:rtype: bool
|
|
"""
|
|
rc, groups = localUserHelper.getGroupsOfLocalUser(krbHostName())
|
|
if not rc:
|
|
return False
|
|
|
|
return "domain computers" in groups |