Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Cliente de Python

Puedes acceder a la API de Longhorn utilizando el binding de Python.

  1. Obtener el endpoint de Longhorn

    Una forma de comunicarte con Longhorn es a través del servicio longhorn-frontend.

    Si ejecutas tu herramienta de automatización/guion dentro del mismo clúster en el que está instalado Longhorn, conéctate al endpoint http://longhorn-frontend.longhorn-system/v1

    Si ejecutas tu herramienta de automatización/guion en tu máquina local, utiliza kubectl port-forward para redirigir el longhorn-frontend servicio a host local:

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

    y conéctate al endpoint http://localhost:8080/v1

  2. Usando el Cliente de Python

    Importa el archivo longhorn.py que contiene el cliente de Python en tu guion de Python y crea un cliente desde el endpoint:

     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