refs #1482 - Modify Paramiko SSH Client parameters #21

Merged
ggil merged 1 commits from add_python_scripts into main 2025-02-11 10:34:28 +01:00
5 changed files with 12 additions and 15 deletions

View File

@ -391,7 +391,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d
Se exportará una imagen del repositorio local a un repositorio remoto.
Se puede hacer con el script "**exportImage.py**", que debe ser llamado por el endpoint.
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, la IP o hostname del repositorio remoto como segundo parámetro, y el usuario remoto como tercer parámetro. El primer parámetro se obtiene en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), pero la IP del repositorio remoto y el usuario remoto deben enviarse desde ogCore (en el JSON).
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, la IP o hostname del repositorio remoto como segundo parámetro, y el usuario remoto como tercer parámetro. El primer parámetro se obtiene en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), pero la IP del repositorio remoto y el usuario remoto deben enviarse en el JSON.
**NOTA2**: Este endpoint puede tardar mucho tiempo, pero no lo hemos hecho asíncrono (porque no es llamado desde el portal), por lo que siempre informará del resultado final de la ejecución (a diferencia del endpoint "Importar una Imagen"), pero dependiendo del tamaño de la imagen, puede tardar bastante.
**NOTA3**: Este endpoint no genera el archivo ".torrent", ni comprueba si la exportación se ha realizado correctamente, por lo que posteriormente se debe llamar al endpoint "Crear archivos auxiliares" (para crear el archivo ".torrent" y actualizar el repositorio) y al endpoint "Chequear integridad de Imagen", ambos desde el equipo destino. No es realmente necesario llamar a este último endpoint, pero si recomendado.

View File

@ -349,7 +349,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d
Se exportará una imagen del repositorio local a un repositorio remoto.
Se puede hacer con el script "**exportImage.py**", que debe ser llamado por el endpoint.
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, la IP o hostname del repositorio remoto como segundo parámetro, y el usuario remoto como tercer parámetro. El primer parámetro se obtiene en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), pero la IP del repositorio remoto y el usuario remoto deben enviarse desde ogCore (en el JSON).
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, la IP o hostname del repositorio remoto como segundo parámetro, y el usuario remoto como tercer parámetro. El primer parámetro se obtiene en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), pero la IP del repositorio remoto y el usuario remoto deben enviarse en el JSON.
**NOTA2**: Este endpoint puede tardar mucho tiempo, pero no lo hemos hecho asíncrono (porque no es llamado desde el portal), por lo que siempre informará del resultado final de la ejecución (a diferencia del endpoint "Importar una Imagen"), pero dependiendo del tamaño de la imagen, puede tardar bastante.
**NOTA3**: Este endpoint no genera el archivo ".torrent", ni comprueba si la exportación se ha realizado correctamente, por lo que posteriormente se debe llamar al endpoint "Crear archivos auxiliares" (para crear el archivo ".torrent" y actualizar el repositorio) y al endpoint "Chequear integridad de Imagen", ambos desde el equipo destino. No es realmente necesario llamar a este último endpoint, pero si recomendado.

View File

@ -185,9 +185,8 @@ def check_remote_connection(remote_ip, remote_user):
# Establecemos la política por defecto para localizar la llave del host localmente:
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Conectamos con el equipo remoto por SSH:
ssh_client.connect(remote_ip, 22, remote_user) # Así se hace con claves
#ssh_client.connect(remote_ip, 22, remote_user, 'opengnsys') # Así se haría con password
# Conectamos con el equipo remoto por SSH (con claves):
ssh_client.connect(hostname=remote_ip, port=22, username=remote_user, passphrase='')
# Iniciamos un cliente SFTP:
sftp_client = ssh_client.open_sftp()
@ -223,9 +222,9 @@ def check_remote_image(remote_ip, remote_user, image_file_path):
# Establecemos la política por defecto para localizar la llave del host localmente:
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Conectamos con el equipo remoto por SSH:
ssh_client.connect(remote_ip, 22, remote_user) # Así se hace con claves
#ssh_client.connect(remote_ip, 22, remote_user, 'opengnsys') # Así se haría con password
# Conectamos con el equipo remoto por SSH (con claves):
ssh_client.connect(hostname=remote_ip, port=22, username=remote_user, passphrase='')
# Iniciamos un cliente SFTP:
sftp_client = ssh_client.open_sftp()
@ -322,9 +321,9 @@ def check_lock_remote(image_file_path, remote_host, remote_user, job_id):
# Establecemos la política por defecto para localizar la llave del host localmente:
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Conectamos con el equipo remoto por SSH:
ssh_client.connect(remote_host, 22, remote_user) # Así se hace con claves
#ssh_client.connect(remote_host, 22, remote_user, 'opengnsys') # Así se haría con password
# Conectamos con el equipo remoto por SSH (con claves):
ssh_client.connect(hostname=remote_ip, port=22, username=remote_user, passphrase='')
# Iniciamos un cliente SFTP:
sftp_client = ssh_client.open_sftp()

View File

@ -120,8 +120,7 @@ def export_image(file_path, remote_host, remote_user):
# Intentamos conectar con el equipo remoto por SSH, e iniciar un cliente SFTP,
try: # y en caso de fallar devolvemos un error y salimos del script:
ssh_client.connect(remote_host, 22, remote_user) # Así se hace con claves
#ssh_client.connect(remote_host, 22, remote_user, 'opengnsys') # Así se haría con password
ssh_client.connect(hostname=remote_host, port=22, username=remote_user, passphrase='')
sftp_client = ssh_client.open_sftp()
except Exception as error_description:
journal.send(f"exportImage.py: Connection exception: {error_description}", PRIORITY=journal.LOG_ERR, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG")

View File

@ -123,8 +123,7 @@ def import_image(file_path, remote_host, remote_user):
# Intentamos conectar con el equipo remoto por SSH, e iniciar un cliente SFTP,
try: # y en caso de fallar devolvemos un error y salimos del script:
ssh_client.connect(remote_host, 22, remote_user) # Así se hace con claves
#ssh_client.connect(remote_host, 22, remote_user, 'opengnsys') # Así se haría con password
ssh_client.connect(hostname=remote_host, port=22, username=remote_user, passphrase='')
sftp_client = ssh_client.open_sftp()
except Exception as error_description:
journal.send(f"importImage.py: Connection exception: {error_description}", PRIORITY=journal.LOG_ERR, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG")