From Guillaume.COMTE at 3ds.com Tue Oct 6 15:38:42 2020 From: Guillaume.COMTE at 3ds.com (COMTE Guillaume) Date: Tue, 6 Oct 2020 15:38:42 +0000 Subject: [OpenStack-fr] requete sur l'API openstack en python Message-ID: <42addb29b64043b7816c682e1ae8d531@3ds.com> Bonjour à tous, Je me connect à l'API comme ceci : client = connection.Connection( project_id=creddict["project_id"], cloud=creddict["cloud"], region=creddict["region"], ak=creddict["access_key"], sk=creddict["secret_key"] ) Ensuite je fait un call à : Result = client.network.security_groups() Et la structure que je reçois est un générateur dont chaque éléments de ce type : For i in Result : Print(Result) L'affichage est le suivant : openstack.network.v2.security_group.SecurityGroup(id=XXX, name=SG_TEST, description=created on 2019/06/03 13:08:37.195 +0000, tenant_id=YYYY, security_group_rules=[{'id': ZZZZ', 'direction': 'ingress', 'protocol': 'tcp', 'ethertype': 'IPv4', 'description': '', 'remote_group_id': None, 'remote_ip_prefix': '0.0.0.0/0', 'tenant_id': 'TTTTT', 'port_range_max': 666, 'port_range_min': 666, 'security_group_id': GGGG', 'remote_address_group_id': None}, {'id': FFFFF', 'direction': 'egress', 'protocol': None, 'ethertype': 'IPv6', 'description': None, 'remote_group_id': None, 'remote_ip_prefix': None, 'tenant_id': 'AAAA', 'port_range_max': None, 'port_range_min': None, 'security_group_id': CCCCC', 'remote_address_group_id': None}, {'id': 'SSSSS', 'direction': 'egress', 'protocol': None, 'ethertype': 'IPv4', 'description': None, 'remote_group_id': None, 'remote_ip_prefix': None, 'tenant_id': 'LLLLL', 'port_range_max': None, 'port_range_min': None, 'security_group_id': 'FFFFFF', 'remote_address_group_id': None}], created_at=2019-06-03T13:08:38, updated_at=2019-06-03T13:08:38) Si je veux l'une des informations que je vois dans ce print, je suis « obligé » de fait le call par exemple : Result.description pour obtenir la description. Je voudrais en fait récupérer tout ce qu'il se trouve entre les parenthèses afin d'alimenter une liste. J'arrive pas à voir quelle astuce python me permettrait de faire ça, ni si j'utilise la bonne classe afin d'obtenir sous forme de liste les informations que je vois que je touche du doigt mais qui se trouve entre les parenthèses de openstack.network.v2.security_group.SecurityGroup Merci d'avance, Cordialement / Best Regards, Guillaume COMTE 3DEXPERIENCEforAll Office: +33 1 6162 5251 guillaume.comte at 3ds.com [3DS Logo] 3DS.COM Dassault Systèmes SE | 10, Rue Marcel Dassault, Paris Campus | 78140 Vélizy-Villacoublay | France Cordialement / Best Regards, Guillaume COMTE 3DEXPERIENCEforAll Office: +33 1 6162 5251 guillaume.comte at 3ds.com [3DS Logo] 3DS.COM Dassault Systèmes SE | 10, Rue Marcel Dassault, Paris Campus | 78140 Vélizy-Villacoublay | France This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged. If you are not one of the named recipients or have received this email in error, (i) you should not read, disclose, or copy it, (ii) please notify sender of your receipt by reply email and delete this email and all attachments, (iii) Dassault Systèmes does not accept or assume any liability or responsibility for any use of or reliance on this email. Please be informed that your personal data are processed according to our data privacy policy as described on our website. Should you have any questions related to personal data protection, please contact 3DS Data Protection Officer at 3DS.compliance-privacy at 3ds.com For other languages, go to https://www.3ds.com/terms/email-disclaimer -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image001.jpg Type: image/jpeg Taille: 949 octets Desc: image001.jpg URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image002.png Type: image/png Taille: 7915 octets Desc: image002.png URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image003.jpg Type: image/jpeg Taille: 954 octets Desc: image003.jpg URL: From tristan.letoullec at cnrs.fr Wed Oct 7 08:10:24 2020 From: tristan.letoullec at cnrs.fr (Tristan Le Toullec) Date: Wed, 7 Oct 2020 10:10:24 +0200 Subject: [OpenStack-fr] requete sur l'API openstack en python In-Reply-To: <42addb29b64043b7816c682e1ae8d531@3ds.com> References: <42addb29b64043b7816c682e1ae8d531@3ds.com> Message-ID: <8546c56f-cbb4-2b0a-977e-d38a70632e22@cnrs.fr> Bonjour Guillaume,     tu souhaites donc caster ton objet de type SecurityGroup vers un dictionnaire python. Tu dois pouvoir utiliser quelque chose comme cela (attention, non testé) : liste = [] for i in results:     liste.append(vars(i)) Ou bien sa forme contracté : liste = [ vars(i) for i in results ] Bonne journée, Tristan Le 06/10/2020 à 17:38, COMTE Guillaume a écrit : > > Bonjour à tous, > > Je me connect à l’API comme ceci : > > client = connection.Connection( > > project_id=creddict["project_id"], > >                 cloud=creddict[“cloud”], > >                 region=creddict["region"], > >                 ak=creddict["access_key"], > >                 sk=creddict["secret_key"] > > ) > > Ensuite je fait un call à : > > Result = client.network.security_groups() > > Et la structure que je reçois est un générateur dont chaque éléments > de ce type : > > For i in Result : > >     Print(Result) > > L’affichage est le suivant : > > openstack.network.v2.security_group.SecurityGroup(id=XXX, > name=SG_TEST, description=created on 2019/06/03 13:08:37.195 +0000, > tenant_id=YYYY, security_group_rules=[{'id': ZZZZ’, 'direction': > 'ingress', 'protocol': 'tcp', 'ethertype': 'IPv4', 'description': '', > 'remote_group_id': None, 'remote_ip_prefix': '0.0.0.0/0', 'tenant_id': > 'TTTTT', 'port_range_max': 666, 'port_range_min': 666, > 'security_group_id': GGGG', 'remote_address_group_id': None}, {'id': > FFFFF', 'direction': 'egress', 'protocol': None, 'ethertype': 'IPv6', > 'description': None, 'remote_group_id': None, 'remote_ip_prefix': > None, 'tenant_id': 'AAAA', 'port_range_max': None, 'port_range_min': > None, 'security_group_id': CCCCC', 'remote_address_group_id': None}, > {'id': ‘SSSSS', 'direction': 'egress', 'protocol': None, 'ethertype': > 'IPv4', 'description': None, 'remote_group_id': None, > 'remote_ip_prefix': None, 'tenant_id': 'LLLLL', 'port_range_max': > None, 'port_range_min': None, 'security_group_id': ‘FFFFFF’, > 'remote_address_group_id': None}], created_at=2019-06-03T13:08:38, > updated_at=2019-06-03T13:08:38) > > Si je veux l’une des informations que je vois dans ce print, je suis > « obligé » de fait le call par exemple : Result.description pour > obtenir la description. > > Je voudrais en fait récupérer tout ce qu’il se trouve entre les > parenthèses afin d’alimenter une liste. > > J’arrive pas à voir quelle astuce python me permettrait de faire ça, > ni si j’utilise la bonne classe afin d’obtenir sous forme de liste les > informations que je vois que je touche du doigt mais qui se trouve > entre les parenthèses de openstack.network.v2.security_group.SecurityGroup > > Merci d’avance, > > /Cordialement / Best Regards, / > > > Guillaume COMTE > > 3DEXPERIENCEforAll > > > > Office: +33 1 6162 5251 > guillaume.comte at 3ds.com > > > > > 3DS Logo > > > > *3DS.COM* > > > /Dassault Systèmes SE/| /10, Rue Marcel Dassault, Paris Campus/ | > /78140 Vélizy-Villacoublay/ | /France/ > > /Cordialement / Best Regards, / > > > Guillaume COMTE > > 3DEXPERIENCEforAll > > > > Office: +33 1 6162 5251 > guillaume.comte at 3ds.com > > > > > 3DS Logo > > > > *3DS.COM* > > > /Dassault Systèmes SE/| /10, Rue Marcel Dassault, Paris Campus/ | > /78140 Vélizy-Villacoublay/ | /France/ > > This email and any attachments are intended solely for the use of the > individual or entity to whom it is addressed and may be confidential > and/or privileged. > > If you are not one of the named recipients or have received this email > in error, > > (i) you should not read, disclose, or copy it, > > (ii) please notify sender of your receipt by reply email and delete > this email and all attachments, > > (iii) Dassault Systèmes does not accept or assume any liability or > responsibility for any use of or reliance on this email. > > > Please be informed that your personal data are processed according to > our data privacy policy as described on our website. Should you have > any questions related to personal data protection, please contact 3DS > Data Protection Officer at 3DS.compliance-privacy at 3ds.com > > > > For other languages, go to https://www.3ds.com/terms/email-disclaimer > > > _______________________________________________ > OpenStack-fr mailing list > OpenStack-fr at lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image001.jpg Type: image/jpeg Taille: 949 octets Desc: non disponible URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image002.png Type: image/png Taille: 7915 octets Desc: non disponible URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image003.jpg Type: image/jpeg Taille: 954 octets Desc: non disponible URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: tristan_letoullec.vcf Type: text/x-vcard Taille: 222 octets Desc: non disponible URL: