construit l'image paillasse-debian, crée le projet OpenStack et teste la console série
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
21c9de6d10
commit
44384847e5
8 changed files with 331 additions and 1 deletions
57
openstack/images/test-console-serie.py
Normal file
57
openstack/images/test-console-serie.py
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Test manuel de la console série Nova (étape 6 du déploiement).
|
||||
|
||||
Usage : python3 test-console-serie.py <url-ws> <commande-a-taper>
|
||||
"""
|
||||
import sys
|
||||
import time
|
||||
|
||||
import websocket
|
||||
|
||||
url = sys.argv[1]
|
||||
commande = sys.argv[2] if len(sys.argv) > 2 else "echo bonjour-syllabus"
|
||||
|
||||
ws = websocket.create_connection(url, subprotocols=["binary"], timeout=10)
|
||||
|
||||
|
||||
def lire(duree=3):
|
||||
fin = time.time() + duree
|
||||
sortie = b""
|
||||
while time.time() < fin:
|
||||
ws.settimeout(max(0.2, fin - time.time()))
|
||||
try:
|
||||
morceau = ws.recv()
|
||||
except websocket.WebSocketTimeoutException:
|
||||
break
|
||||
except websocket.WebSocketConnectionClosedException:
|
||||
print("[connexion fermée par le serveur]")
|
||||
break
|
||||
if isinstance(morceau, str):
|
||||
morceau = morceau.encode()
|
||||
if not morceau:
|
||||
break
|
||||
sortie += morceau
|
||||
return sortie
|
||||
|
||||
|
||||
print("=== lecture initiale (vide la file, y compris un essai précédent) ===")
|
||||
sys.stdout.buffer.write(lire(5))
|
||||
sys.stdout.flush()
|
||||
|
||||
print("\n=== connexion : eleve ===")
|
||||
ws.send_binary(b"eleve\r")
|
||||
sys.stdout.buffer.write(lire(2))
|
||||
sys.stdout.flush()
|
||||
|
||||
print("\n=== mot de passe ===")
|
||||
ws.send_binary(b"eleve\r")
|
||||
sys.stdout.buffer.write(lire(2))
|
||||
sys.stdout.flush()
|
||||
|
||||
print(f"\n=== envoi de la commande : {commande} ===")
|
||||
ws.send_binary((commande + "\r").encode())
|
||||
sys.stdout.buffer.write(lire(3))
|
||||
sys.stdout.flush()
|
||||
|
||||
ws.close()
|
||||
print("\n=== fin ===")
|
||||
Loading…
Add table
Add a link
Reference in a new issue