Zum Hauptinhalt gehen

Python-Client

Version von Python

Der BlueMind Python Client unterstützt Python 2.7 oder die aktuelle Version von Python 3. Wir empfehlen die Verwendung von Python 3 für alle neuen Projekte.

Installation

Der Python-Client wird über Pip installiert, wenn möglich in einer virtuellen Umgebung (virtualenv oder venv), um das System nicht zu stören:

aptitude install python-pip pip install --upgrade setuptools pip install netbluemind5


:::tip[Client-Version]

Die Versionsgeschichte kann auf der Website des Python Package Index eingesehen werden: https://pypi.org/project/netbluemind5/#history

::::

## Verwendung

### Authentifizierung

Der Client wird mit der Klasse BMClient initialisiert:

```bash
from netbluemind.python.client import BMClient

# BEGIN CONF
URL="http://localhost:8090/api"
# END CONF

f = open('/etc/bm/bm-core.tok', 'r')
KEY = f.readline()
f.close()

client = BMClient(URL, KEY)
  • URL : definiert die URL zum BlueMind Server; von außen wird die URL https://bluemind.domain.net/api sein.
  • KEY : entspricht dem Passwort oder Token des Admin0 ; in diesem Beispiel wird das Admin0-Token auf dem Server verwendet, um erweiterte Rechte auf API-Ebene zu haben. Es ist möglich, sich als Benutzer zu authentifizieren mit:
    from netbluemind.python.client import BMClient

    # BEGIN CONF
    URL="http://localhost:8090/api"
    # END CONF

    client = BMClient(URL)
    client.login('login@domain.net', 'password')
Es ist auch möglich, den API-Schlüssel eines Benutzers anstelle seines Passworts zu verwenden.

Nutzung

BMClient

Die Klasse BMClient ist ein Helper, der auch den Zugriff auf verschiedene Klassen ermöglicht, um Benutzer, Gruppen usw. zu manipulieren. :

from netbluemind.python.client import BMClient

# BEGIN CONF
URL="http://localhost:8090/api"
# END CONF

client = BMClient(URL)
client.login("login@domain.net", "password")
print client.apiKey

iUser = client.users("domain.net")
user = iUser.byEmail("login@domain.net")
print user.value.login

Benutzer

iUser (Instanz von IUser) ermöglicht den Zugriff auf alle Informationen eines Benutzers (Passwort, Foto, Kontakt, Archivstatus usw.) und deren Änderung. Die verschiedenen Methoden geben eine Instanz eines Objekts ItemValue zurück, die den Zugriff auf das betreffende Objekt über das Attribut value ermöglicht.

Domains

Es ist möglich, Domänen zu erstellen oder zu ändern, indem man die IDomains-Schnittstelle verwendet. Bei der Erstellung einer Domain ist es wichtig, dass die Domain-ID der Name der Domain ist; die Erstellung erfolgt folgendermaßen:

domain = Domain()
domain.name = "local.lan"
domain.label = "local.lan"
domain.description = "Domain of " + "local.lan"
domain.properties = {}
# global muss immer auf False gesetzt sein
domain.global_ = False
# ermöglicht es, die Aliasnamen der Domain zu definieren
domain.aliases = []

idomains.create("local.lan", domain)

Sie können die Parameterkonfiguration für die Plugins ImportLDAP und ImportAD mit dem Attribut properties festlegen. Beispiel mit einem LDAP :

properties = dict()
properties['import_ldap_hostname'] = 'ldap.local'
properties['import_ldap_password'] = 'ldap-?password'
properties['import_ldap_user_filter'] = '(mail=\*)'
properties['import_ldap_accept_certificate'] = True
properties['import_ldap_ext_id_attribute'] = 'entryUUID'
properties['import_ldap_relay_mailbox_group']] = ''
properties['import_ldap_enabled'] = True
properties['import_ldap_group_filter'] = '(objectClass=posixGroup)'
properties['import_ldap_protocol'] = 'tls'
properties['import_ldap_base_dn'] = 'dc=lan,dc=local'
properties['import_ldap_login_dn'] = 'uid=admin,cn=users,cn=accounts,dc=lan,dc=local'
properties['lang'] = 'de'
properties['im_public_auth'] = True # allow Instant messaging for all users
properties['domain_max_users'] = None
properties['mail_routing_relay'] = ''
properties['mailbox_max_user_quota'] = '0'
properties['mailbox_default_user_quota'] = '0' properties['mailbox_default_user_quota'] = '0' properties['mailbox_default_user_quota'] = '0'
properties['mailbox_max_publicfolder_quota'] = '0'
properties['mailbox_default_publicfolder_quota'] = '0'
properties['filehosting_max_filesize'] = '0'. '0'
properties['filehosting_retention'] = '365'
properties['mail_autoDetachmentLimit'] = '0'
properties['mail_forward_unknown_to_relay'] = False

Import AD

Für den Import von Active Directory einfach ldap durch ad ersetzen.

Beispiele

Viele Beispiele für Möglichkeiten finden Sie im BlueMind Repository: https://gitlab.bluemind.net/bluemind-public/bluemind-samples/-/tree/master/python-api-examples

Starten eines Backups

client = BMClient(URL, KEY)
idataprotect = client.instance(IDataProtect)

taskRef = idataprotect.saveAll()
status = client.waitTask(taskRef)
print "\nBackup done with status [" + status.state.value + "]".