Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Python Client

Sie können auf die Longhorn-API mit Python-Binding zugreifen.

  1. Longhorn-Endpunkt abrufen

    Eine Möglichkeit, mit Longhorn zu kommunizieren, ist über den longhorn-frontend Dienst.

    Wenn Sie Ihr Automatisierungs-/Skript-Tool im selben Cluster ausführen, in dem Longhorn installiert ist, verbinden Sie sich mit dem Endpunkt http://longhorn-frontend.longhorn-system/v1

    Wenn Sie Ihr Automatisierungs-/Skript-Tool auf Ihrem lokalen Rechner ausführen, verwenden Sie kubectl port-forward, um den longhorn-frontend Dienst an localhost weiterzuleiten:

    kubectl port-forward services/longhorn-frontend 8080:http -n longhorn-system

    und verbinden Sie sich mit dem Endpunkt http://localhost:8080/v1

  2. Verwendung des Python-Clients

    Importieren Sie die Datei longhorn.py, die den Python-Client enthält, in Ihr Python-Skript und erstellen Sie einen Client vom Endpunkt:

     import longhorn
    
     # If automation/scripting tool is inside the same cluster in which Longhorn is installed
     longhorn_url = 'http://longhorn-frontend.longhorn-system/v1'
     # If forwarding `longhorn-frontend` service to localhost
     longhorn_url = 'http://localhost:8080/v1'
    
     client = longhorn.Client(url=longhorn_url)
    
     # Volume operations
     # List all volumes
     volumes = client.list_volume()
     # Get volume by NAME/ID
     testvol1 = client.by_id_volume(id="testvol1")
     # Attach TESTVOL1
     testvol1 = testvol1.attach(hostId="worker-1")
     # Detach TESTVOL1
     testvol1.detach()
     # Create a snapshot of TESTVOL1 with NAME
     snapshot1 = testvol1.snapshotCreate(name="snapshot1")
     # Create a backup from a snapshot NAME
     testvol1.snapshotBackup(name=snapshot1.name)
     # Update the number of replicas of TESTVOL1
     testvol1.updateReplicaCount(replicaCount=2)
     # Find more examples in Longhorn integration tests https://github.com/longhorn/longhorn-tests/tree/master/manager/integration/tests
    
     # Node operations
     # List all nodes
     nodes = client.list_node()
     # Get node by NAME/ID
     node1 = client.by_id_node(id="worker-1")
     # Disable scheduling for NODE1
     client.update(node1, allowScheduling=False)
     # Enable scheduling for NODE1
     client.update(node1, allowScheduling=True)
     # Find more examples in Longhorn integration tests https://github.com/longhorn/longhorn-tests/tree/master/manager/integration/tests
    
     # Setting operations
     # List all settings
     settings = client.list_setting()
     # Get setting by NAME/ID
     backupTargetsetting = client.by_id_setting(id="backup-target")
     # Update a setting
     backupTargetsetting = client.update(backupTargetsetting, value="s3://backupbucket@us-east-1/")
     # Find more examples in Longhorn integration tests https://github.com/longhorn/longhorn-tests/tree/master/manager/integration/tests