Erreur exécution script faisant appel API OVHCloud

----------


Bonjour à toutes et à tous,

Mon nom de domaine est : ccgieres.fr

Et j'utilise l'offre : Hébergement web mutualisé

Je rencontre la problématique suivante / Je souhaiterais mettre en place : Je souhaiterai mettre en place un script en Python 3 qui récupère des informations sur mon compte OVH (état de la messagerie par exemple ) .

Ce script fonctionne correctement depuis une machine non hébergée chez OVH . Depuis le serveur OVH que cela soit une exécution locale (python3 script.py) ou bien depuis une appel CGI (cgi-bin/script.cgi) , j'obtiens de nombreux messages d'erreur lorsque je l’exécute en local dont le plus important me semble " ovh.exceptions.HTTPError: ('Low HTTP request failed error', ConnectionError(MaxRetryError("HTTPSConnectionPool(host='eu.api.ovh.com', port=443): Max retries exceeded with url: /1.0/auth/time (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))")))
"
ou distant "Internal Server Error
The server encountered an internal error or misconfiguration and …"

Je précise que ce script possède les bons droits d’exécution (chmod +x) .

Quels'un a t'il une idée d'ou peut provenir ces erreurs ? Pourquoi cette différence de comportement entre l'execution de même script depuis une autre machine mais pas depuis le serveur OVH ?

Merci d 'avance de vos réponses.


eu.api.ovh.com


Depuis le serveur web d'exécution cluster013 (j'insiste bien que c'est le serveur web, et non pas ssh ou cron) le host eu.api.ovh.com [141.95.186.223] sur le port 443 est bien accessible.

lorsque je l’exécute en local


Que voulez-vous dire par là ? Local chez OVH ou local à la maison ?

Bonsoir Fritz2cat

Ravi de vous retrouver :slight_smile:

Depuis mon serveur web cluster030 , eu.api.ovh.com est accessible sur le tcp/443 ( ssh eu.api.ovh.com -p 443
ssh: connect to host eu.api.ovh.com port 443: Connection refused ) …

Le script fonctionne en local (à la maison ou ailleurs mais depuis le serveur cluster030 .

J'ai vu qu'au niveau des options du compte OVH on avait la possibilité d'activer un mode développeur

, option non documentée . Une idée à quoi elle sert ?

Bonjour,


Depuis mon serveur web cluster030 , eu.api.ovh.com est accessible sur le tcp/443 ( ssh eu.api.ovh.com -p 443
ssh: connect to host eu.api.ovh.com port 443: Connection refused ) …

euh là vous essayez de faire du SSH sur le port 443 ?!?
Ça, c'est juste impossible.

Pouvez-vous préciser ce que vous avez fait, où et comment ? Avec des captures ? Des bouts de codes ?

Cordialement, janus57

Bonsoir Janus57

Merci de votre aide.

L'option -p 443 de ssh essaye de se connecter sur le port tcp/443. La connexion TCP a bien été établi mais elle met refusé (ce qui me semble normal) .

Voici un extrait de mon code :

# Instanciation OVH Client
client = ovh.Client(
endpoint='ovh-eu', # Endpoint of API OVH Europe (List of available endpoints)
application_key='k…', # Application Key
application_secret='s…', # Application Secret
consumer_key='k…', # Consumer Key
)

# Récuperation des propriétés de email
result = client.get('/hosting/web/fxtbmyb.cluster030.hosting.ovh.net/email')

# Affichage du resultat
result_str = json.dumps(result, indent=4)
print(result_str)

Bonjour,


L'option -p 443 de ssh essaye de se connecter sur le port tcp/443. La connexion TCP a bien été établi mais elle met refusé (ce qui me semble normal) .

bah normal, ssh c'est port 22 et pas 443 qui est du HTTPS


Voici un extrait de mon code :

Ce code vous l’exécuter bien via une page internet et surtout pas en SSH (comme sous-entendu par @Fritz2cat ) ?

Cordialement, janus57

Bonjour Janus57,

Je vous confirme qu'un ssh -p 443, permet de tester si le port tcp/443 est ouvert ou non. Depuis un serveur OVH mutualisé, c'est la même chose qu'un "curl telnet://eu.api.ovh.com:443 " . Essayez :wink:

Concernant le code que j' exécute , je le fais des deux méthodes, malheureusement avec un résultat similaire : via une page internet en utilisant CGI ou en local via ssh en CLI .

Je précise également que je n'ai rien trouvé d’intéressant dans les logs .

Cordialement

Bonjour,


Je vous confirme qu'un ssh -p 443, permet de tester si le port tcp/443 est ouvert ou non. Depuis un serveur OVH mutualisé, c'est la même chose qu'un "curl telnet://eu.api.ovh.com:443 " . Essayez :wink:

oui mais non si vous faite ça depuis l'environnement SSH c'est faux par le SSH est bridé chez OVH.
Bref, c'est pas un bon moyen de tester une ouverture de port et/ou un appel (pour ça c'est mieux un curl).


via une page internet en utilisant CGI

et si vous essayez via un script PHP ?

Perso cela fonctionne bien avec un curl pour obtenir la liste.
Testé via cluster021 :
<br />HTTP/1.1 200 OK<br />server: nginx<br />date: Sun, 22 Oct 2023 17:14:29 GMT<br />content-type: application/json; charset&#61;utf-8<br />transfer-encoding: chunked<br />vary: Accept-Encoding<br />access-control-allow-headers: X-Ovh-Timestamp, X-Ovh-Consumer, X-Ovh-Application, X-Ovh-Signature, X-Ovh-Session, Authorization, Content-Type<br />access-control-allow-methods: GET<br />access-control-allow-origin: *<br />access-control-expose-headers: X-Pagination-Cursor-Next, X-Ovh-Queryid<br />cache-control: no-cache, no-store<br />x-ovh-queryid: EU.ext-2.65355875.49999.4a42e3f02dd15a242f0239feffd5c08d<br />x-xss-protection: 1; mode&#61;block<br />x-content-type-options: nosniff<br />x-frame-options: DENY<br />x-iplb-request-id: 5B86F8F5:8A30_8D5FBADF:01BB_65355875_12CAF25D:289B7<br />x-iplb-instance: 47055<br /><br />{&#34;apis&#34;:[{&#34;path&#34;:&#34;/allDom&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/auth&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/cdn/dedicated&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/cloud&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/cluster/hadoop&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/connectivity&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/contact&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dbaas/logs&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dedicated/ceph&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dedicated/housing&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dedicated/installationTemplate&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dedicated/nas&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dedicated/nasha&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dedicated/server&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/dedicatedCloud&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/domain&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/email/domain&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/email/exchange&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/email/mxplan&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/email/pro&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/freefax&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/horizonView&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/hosting/privateDatabase&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/hosting/web&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/ip&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/ipLoadbalancing&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/cloudLinux&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/cpanel&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/directadmin&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/office&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/officePrepaid&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/plesk&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/redhat&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/sqlserver&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/virtuozzo&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/windows&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/license/worklight&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/me&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/metrics&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/msServices&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/newAccount&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/nutanix&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/order&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/overTheBox&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/ovhCloudConnect&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/pack/siptrunk&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/pack/xdsl&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/partner&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/partners&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/price&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/products&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/saas/csp2&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/secret&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/service&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/services&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/sms&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/ssl&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/sslGateway&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/stack/mis&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/startup&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/storage&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/store&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/supply/mondialRelay&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/support&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/telephony&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/veeam/veeamEnterprise&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/veeamCloudConnect&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/vip&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/vps&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/vrack&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/webPaaS&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;},{&#34;path&#34;:&#34;/xdsl&#34;,&#34;schema&#34;:&#34;{path}.{format}&#34;,&#34;format&#34;:[&#34;json&#34;,&#34;yaml&#34;],&#34;description&#34;:&#34;&#34;}],&#34;basePath&#34;:&#34;<a href="https://eu.api.ovh.com/1.0" target="_blank" rel="nofollow noopener">https://eu.api.ovh.com/1.0</a>&#34;}<br />

Cordialement, janus57

Janus57,

Merci de l'information concernant le ssh "bridé" d'OVH .
Bien qu'étant plus Python, je vais en effet essayer de passer par un script PHP .

Bonne soirée