Seite 1 von 1

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

Verfasst: 05 Dez 2014, 11:51
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

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

Verfasst: 05 Dez 2014, 13:40
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

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

Verfasst: 08 Dez 2014, 16:18
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

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

Verfasst: 08 Dez 2014, 18:46
von pandel
Hey, danke!

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

Lieber Gruß
Holger