API 4 - Methode für "Alle Clients eines Depots"

Antworten
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

API 4 - Methode für "Alle Clients eines Depots"

Beitrag von pandel »

Hi!

Gehe ich recht in der Annahme, dass, wenn ich sämtliche Clients eines Depots ermitteln will, bzw. wenn ich wissen möchte, welchem Depot ein Client angehört, ich folgenden Befehl verwenden muss

Code: Alles auswählen

opsi-admin -d method configState_getHashes '[]' '{"configId":"clientconfig.depot.id", "values":["<depot id>"]}'
,mit der richtigen ServerId statt <depot id>?

"Values" hat immer nur EINEN Wert, oder? Den des aktuellen Depots?...

EDIT: nö, natürlich nicht. Es gibt auch Clients, die haben diese ConfigId gar nicht und werden dann wohl offensichtlich dem Configserver als Depot zugerechnet. :cry: das verkompliziert die Sache...

Lieber Gruß
Holger
Kathrin
Beiträge: 62
Registriert: 23 Okt 2009, 08:16

Re: API 4 - Methode für "Alle Clients eines Depots"

Beitrag von Kathrin »

Hi,

das habe ich vor einiger Zeit auch gesucht und war zu dem Schluss gekommen, dass das nur mit

Code: Alles auswählen

opsi-admin -d "method getClients_listOfHashes [] "depotserver.bla.blub" [] [] [] [] [] [] []"
funktioniert, was aber keine API 4 Methode ist....

Ich schau aber auch nochmal nach, vlt hat sich mit 4.0.5 da was getan.

Gruß
Kathrin
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: API 4 - Methode für "Alle Clients eines Depots"

Beitrag von n.wenselowski »

Hallo zusammen,

wenn ich mich nicht irre, müsste das einfach mit der folgenden Backend-Erweiterungs-Methode funktionieren:

Code: Alles auswählen

def getDepotsWithClientIDs(self):
    from collections import defaultdict

    depotClientMapping = defaultdict(list)
    for mapping in self.configState_getClientToDepotserver():
        depotClientMapping[mapping['depotId']].append(mapping['clientId'])

    return depotClientMapping
Das liefert ein dict mit dem Depot als Key und einer Liste von ClientIDs als Value.


Gruß

Niko

Code: Alles auswählen

import OPSI
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

Re: API 4 - Methode für "Alle Clients eines Depots"

Beitrag von pandel »

Hey, danke!

Ich hab mein Problem zwar bereits anderweitig gelöst, aber die Frage taucht sicher wieder auf ;)

Lieber Gruß
Holger
Antworten