univention.management.console.modules.computerroom package

Contents

univention.management.console.modules.computerroom package#

univention.management.console.modules.computerroom.compare_dn(a, b)[source]#
univention.management.console.modules.computerroom.check_room_access(func)[source]#

Block access to session from other users

univention.management.console.modules.computerroom.reset_room_settings(room, hosts)[source]#
class univention.management.console.modules.computerroom.IPAddressSanitizer(**kwargs)[source]#

Bases: Sanitizer

class univention.management.console.modules.computerroom.PeriodSanitizer(regex_pattern: Pattern[str] | str | None = None, re_flags: int = 0, minimum: int | None = None, maximum: int | None = None, **kwargs: Any)[source]#

Bases: StringSanitizer

class univention.management.console.modules.computerroom.ComputerSanitizer(regex_pattern: Pattern[str] | str | None = None, re_flags: int = 0, minimum: int | None = None, maximum: int | None = None, **kwargs: Any)[source]#

Bases: StringSanitizer

instance = None#
class univention.management.console.modules.computerroom.ComputerRoomDNSanitizer(*args, **kwargs)[source]#

Bases: DNSanitizer

class univention.management.console.modules.computerroom.Plugin(computerroom, manager)[source]#

Bases: object

gettext_domain = 'ucs-school-umc-computerroom'#
property name#
button()[source]#
class univention.management.console.modules.computerroom.Instance(*args, **kwargs)[source]#

Bases: SchoolBaseModule

ATJOB_KEY = 'UMC-computerroom'#
prepare(request)[source]#

this function is invoked after the module process started.

init()[source]#

this function is invoked after the module process started.

destroy()[source]#

Remove lock file when UMC module exists

lessons(request)[source]#

Returns a list of school lessons. Lessons in the past are filtered out

internetrules(request)[source]#

Returns a list of available internet rules

room_acquire(request)[source]#

Acquires the specified computerroom

rooms(request)[source]#

Returns a list of all available rooms

guess_room(request)[source]#
query(request, ldap_user_read=None)[source]#

Searches for entries. This is not allowed if the room could not be acquired.

update(request, ldap_user_read=None)[source]#

Returns an update for the computers in the selected room. Just attributes that have changed since the last call will be included in the result

lock(request, *args, **kwargs)[source]#
screenshot(request, *args, **kwargs)[source]#
settings_get(request, *args, **kwargs)[source]#

Return the current settings for a room

finish_exam(request, *args, **kwargs)[source]#
start_exam(request)[source]#

Start an exam in the current room

settings_set(request)[source]#
reload_cups()[source]#
reset_smb_connections()[source]#
demo_start(request)[source]#
demo_stop(request, *args, **kwargs)[source]#
computer_state(request)[source]#
user_logout(request, *args, **kwargs)[source]#
plugins_load(request, *args, **kwargs)[source]#
plugins_execute(request, *args, **kwargs)[source]#

Subpackages#

Submodules#

univention.management.console.modules.computerroom.room_management module#

exception univention.management.console.modules.computerroom.room_management.ComputerRoomError[source]#

Bases: Exception

class univention.management.console.modules.computerroom.room_management.UserInfo(ldap_dn: str, username: str, isTeacher: bool | None = False, hide_screenshot: bool | None = False)[source]#

Bases: object

class univention.management.console.modules.computerroom.room_management.UserMap(user_regex: str)[source]#

Bases: dict

validate_userstr(userstr: str) str[source]#
class univention.management.console.modules.computerroom.room_management.LockableAttribute(initial_value: LV | None = None, locking: bool | None = True)[source]#

Bases: object

lock() None[source]#
unlock()[source]#
property current: LV#
property old: LV#
property isInitialized: bool#
property hasChanged: bool#
reset(inital_value: LV | None = None) None[source]#
set(value: LV, force: bool | None = False) None[source]#
class univention.management.console.modules.computerroom.room_management.ComputerRoomManager[source]#

Bases: dict

SCHOOL = None#
ROOM = None#
ROOM_DN = None#
VEYON_BACKEND = True#
static get_screenshot_dimension()[source]#
property room#
property roomDN#
property school#
property users#

Return a list of valid domain users who are logged into the computers

property veyon_backend: bool#
property veyon_client: VeyonClient#
ipAddresses(students_only=True)[source]#
property isDemoActive#
property demoServer#
property demoClients#
startDemo(demo_server, fullscreen=True)[source]#
stopDemo()[source]#
class univention.management.console.modules.computerroom.room_management.VeyonComputer[source]#

Bases: Thread

This constructor should always be called with keyword arguments. Arguments are:

group should be None; reserved for future extension when a ThreadGroup class is implemented.

target is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.

name is the thread name. By default, a unique name is constructed of the form “Thread-N” where N is a small decimal number.

args is a list or tuple of arguments for the target invocation. Defaults to ().

kwargs is a dictionary of keyword arguments for the target invocation. Defaults to {}.

If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.

run()[source]#

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

update_paused()[source]#
property update_interval#
property name: str | None#

A string used for identification purposes only.

It has no semantics. Multiple threads may be given the same name. The initial name is set by the constructor.

property user#
property state#
property teacher#
property isTeacher#
property description: str | None#
property configuration_ok#
property ipAddress#
property macAddress#
property objectType#
property hasChanged#
screenshot(size=None)[source]#
property hide_screenshot#
property flagsDict#
property dict#
property screenLock#
property inputLock#
property demoServer#
property demoClient#
update()[source]#
stop()[source]#
reset_state()[source]#
open()[source]#
close()[source]#
lockScreen(lock: bool) None[source]#
lockInput(lock: bool) None[source]#
startDemoServer(token: str) None[source]#
stopDemoServer()[source]#
startDemoClient(server, token, full_screen=False)[source]#
stopDemoClient()[source]#
powerOff()[source]#
powerOn()[source]#
restart()[source]#
logOut()[source]#

univention.management.console.modules.computerroom.wakeonlan module#

univention.management.console.modules.computerroom.wakeonlan.get_local_ip_addresses(blacklisted_interfaces: Iterable[str] | None = None, blacklisted_interface_prefixes: Iterable[str] | None = None) Set[str][source]#

Returns a list of local IPv4 addresses.

Parameters:
  • blacklisted_interfaces (None or Iterable[str]) – iterable that returns a list of interface names that shall be ignored

  • blacklisted_interface_prefixes (None or Iterable[str]) – iterable that returns a list of interface prefixes that shall be ignored

Returns:

list of IPv4 addresses

Return type:

Set[str]

univention.management.console.modules.computerroom.wakeonlan.send_wol_packet(mac_address: str, blacklisted_interfaces: Iterable[str] | None = None, blacklisted_interface_prefixes: Iterable[str] | None = None, target_broadcast_ips: Iterable[str] | None = ['255.255.255.255']) None[source]#

Sends a WakeOnLan packet to the specified MAC address via all interfaces (that are not blacklisted).

>>> send_wol_packet(
...   '12:34:56:78:9A:BC',
...   blacklisted_interfaces=['lo'],
...   blacklisted_interface_prefixes=['tun', 'docker'])
>>>
Parameters:
  • mac_address (str) – MAC address of the target host

  • blacklisted_interfaces (None or Iterable[str]) – iterable that returns a list of interface names that shall be ignored

  • blacklisted_interface_prefixes (None or Iterable[str]) – iterable that returns a list of interface prefixes that shall be ignored

  • target_broadcast_ips (None or Iterable[str]) – iterable that returns a list of target nets which are used for broadcasting