Package UDM extension modules

7.5. Package UDM extension modules#

For some purposes, for example for app installation, it is convenient to be able to deploy a new UDM module in the UCS domain from any system in the domain. For this purpose, a UDM module can be stored as a special type of UDM object. The module responsible for this type of objects is called settings/udm_module. As these objects are replicated throughout the UCS domain, the UCS servers listen for modifications on these objects and integrate them into the local UDM.

The commands to create the UDM module objects in UDM may be put into any join script (see Domain join). Like every UDM object a UDM module object can be created by using the UDM command line interface univention-directory-manager or its alias udm. UDM module objects can be stored anywhere in the LDAP directory, but the recommended location would be cn=udm_module,cn=univention, below the LDAP base. Since the join script creating the attribute may be called on multiple hosts, it is a good idea to add the --ignore_exists option, which suppresses the error exit code in case the object already exists in LDAP.

The module settings/udm_module requires several parameters. Since many of these are determined automatically by the ucs_registerLDAPExtension shell library function, it is recommended to use the shell library function to create these objects (see join.sh).

name (required)

Name of the UDM module, e.g. newapp/someobject.

data (required)

The actual UDM module data in bzip2 and base64 encoded format.

filename (required)

The filename the UDM module data should be written to by the listening servers. The filename may contain path elements and should conform to the name of the UDM module (e.g. newapp/someobject.py).

messagecatalog (optional)

Multi-valued property to supply message translation files (syntax: <language tag> <base64 encoded GNU message catalog>).

umcregistration (optional)

XML definition required to make the UDM module available though the Univention Management Console (base64 encoded XML)

icon (optional)

Multi-valued property to supply icons for the Univention Management Console (base64 encoded png, jpeg or svgz).

package (required)

Name of the Debian package which creates the object.

packageversion (required)

Version of the Debian package which creates the object. For object modifications the version number needs to increase unless the package name is modified as well.

appidentifier (optional)

The identifier of the app which creates the object. This is important to indicate that the object is required as long as the app is installed anywhere in the UCS domain. Defaults to string.

ucsversionstart (optional)

Minimal required UCS version. The UDM module is only activated by systems with a version higher than or equal to this.

ucsversionend (optional)

Maximal required UCS version. The UDM module is only activated by systems with a version lower than or equal to this. To specify validity for the whole 5.0-x release range a value like 5.0-99 may be used.

active (internal)

A boolean flag used internally by the Primary Directory Node to signal availability of the new UDM module on the Primary Directory Node (default: FALSE).