plone, xml-rpc, avoir le "title", "description" et "body"
5 réponses
Mihamina Rakotomandimby
Bonjour
Soit un Plone 2.5
Je souhaite transférer les objets de type "Document" (ou "Page") d'un
Plone à l'autre, mais via XML-RPC.
Il y a deux phases (dans mon processus):
- La lecture
- lister les objets
- stocker les champs (title, description, body)
- L'écriture
Pour l'ecriture, il y a deux document (presque les seuls) qui peuvent
m'aider et dont j'ai déjà tiré un script qui fonctionne.
http://www.zopelabs.com/cookbook/1109890980
http://plone.org/support/region/fr#nabble-td237977
Mon probleme est la lecture.
J'ai créé un Script (Python) via la ZMI dont le contenu est:
return context.objectIds()
J'accède à ce script via XML-RPC.
J'arrive ainsi à avoir dans une liste python des IDs des objets d'un
certain conteneur (le PATH du conteneur a été fourni au proxy).
Mais une fois mes IDs en main, je ne vois plus quoi en faire.
Créer un autre script qui prend un ID en parametre et y mettre
quelquechose comme:
elt={}
elt['title']=ID.getTitle()
elt['description']=ID.getDescription()
elt['body']=ID.getBody()
return elt
ou encore:
elt={}
elt['title']=context.ID.getTitle()
elt['description']=context.ID.getDescription()
elt['body']=context.ID.getBody()
return elt
Le souci est qu'ils considère ID comme une chaine et me dit (evidemment)
que "str" n'a pas de propriété getXXX.
Si j'arrive à avoir le title, la description et le body, j'aurais de
quoi transférer mes petits...
Auriez-vous des pistes?
J'ai bien vu ceci:
http://www.ifpeople.net/fairsource/courses/material/apiPlone_en
mais n'y ai rien trouvé qui m'aide...
Merci d'avance.
--
Huile Essentielle de Camphre http://www.huile-camphre.fr
Infogerance http://www.infogerance.us
(Serveurs, Postes de travail, Développement logiciel)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bruno Desthuilliers
Mihamina Rakotomandimby a écrit :
Bonjour Soit un Plone 2.5
Mauvais newsgroup alors... Il y a une ml Plone, et s'il me souvient bien une asso de développeurs Zope/Plone/CPS francophones.
Je souhaite transférer les objets de type "Document" (ou "Page") d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe quel format texte (json anyone ?) suffit ?
Il y a deux phases (dans mon processus): - La lecture - lister les objets - stocker les champs (title, description, body) - L'écriture
Pour l'ecriture, il y a deux document (presque les seuls) qui peuvent m'aider et dont j'ai déjà tiré un script qui fonctionne. http://www.zopelabs.com/cookbook/1109890980 http://plone.org/support/region/fr#nabble-td237977
Mon probleme est la lecture. J'ai créé un Script (Python) via la ZMI dont le contenu est: return context.objectIds() J'accède à ce script via XML-RPC. J'arrive ainsi à avoir dans une liste python des IDs des objets d'un certain conteneur (le PATH du conteneur a été fourni au proxy).
Mais une fois mes IDs en main, je ne vois plus quoi en faire. Créer un autre script qui prend un ID en parametre et y mettre quelquechose comme: elt={} elt['title']=ID.getTitle() elt['description']=ID.getDescription() elt['body']=ID.getBody() return elt
ou encore: elt={} elt['title']=context.ID.getTitle() elt['description']=context.ID.getDescription() elt['body']=context.ID.getBody() return elt
Le souci est qu'ils considère ID comme une chaine et me dit (evidemment) que "str" n'a pas de propriété getXXX.
<HS> En supposant que tu appelles ton script dans le contexte du conteneur:
Mauvais newsgroup alors... Il y a une ml Plone, et s'il me souvient bien
une asso de développeurs Zope/Plone/CPS francophones.
Je souhaite transférer les objets de type "Document" (ou "Page") d'un
Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe
quel format texte (json anyone ?) suffit ?
Il y a deux phases (dans mon processus):
- La lecture
- lister les objets
- stocker les champs (title, description, body)
- L'écriture
Pour l'ecriture, il y a deux document (presque les seuls) qui peuvent
m'aider et dont j'ai déjà tiré un script qui fonctionne.
http://www.zopelabs.com/cookbook/1109890980
http://plone.org/support/region/fr#nabble-td237977
Mon probleme est la lecture.
J'ai créé un Script (Python) via la ZMI dont le contenu est:
return context.objectIds()
J'accède à ce script via XML-RPC.
J'arrive ainsi à avoir dans une liste python des IDs des objets d'un
certain conteneur (le PATH du conteneur a été fourni au proxy).
Mais une fois mes IDs en main, je ne vois plus quoi en faire.
Créer un autre script qui prend un ID en parametre et y mettre
quelquechose comme:
elt={}
elt['title']=ID.getTitle()
elt['description']=ID.getDescription()
elt['body']=ID.getBody()
return elt
ou encore:
elt={}
elt['title']=context.ID.getTitle()
elt['description']=context.ID.getDescription()
elt['body']=context.ID.getBody()
return elt
Le souci est qu'ils considère ID comme une chaine et me dit (evidemment)
que "str" n'a pas de propriété getXXX.
<HS>
En supposant que tu appelles ton script dans le contexte du conteneur:
Mauvais newsgroup alors... Il y a une ml Plone, et s'il me souvient bien une asso de développeurs Zope/Plone/CPS francophones.
Je souhaite transférer les objets de type "Document" (ou "Page") d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe quel format texte (json anyone ?) suffit ?
Il y a deux phases (dans mon processus): - La lecture - lister les objets - stocker les champs (title, description, body) - L'écriture
Pour l'ecriture, il y a deux document (presque les seuls) qui peuvent m'aider et dont j'ai déjà tiré un script qui fonctionne. http://www.zopelabs.com/cookbook/1109890980 http://plone.org/support/region/fr#nabble-td237977
Mon probleme est la lecture. J'ai créé un Script (Python) via la ZMI dont le contenu est: return context.objectIds() J'accède à ce script via XML-RPC. J'arrive ainsi à avoir dans une liste python des IDs des objets d'un certain conteneur (le PATH du conteneur a été fourni au proxy).
Mais une fois mes IDs en main, je ne vois plus quoi en faire. Créer un autre script qui prend un ID en parametre et y mettre quelquechose comme: elt={} elt['title']=ID.getTitle() elt['description']=ID.getDescription() elt['body']=ID.getBody() return elt
ou encore: elt={} elt['title']=context.ID.getTitle() elt['description']=context.ID.getDescription() elt['body']=context.ID.getBody() return elt
Le souci est qu'ils considère ID comme une chaine et me dit (evidemment) que "str" n'a pas de propriété getXXX.
<HS> En supposant que tu appelles ton script dans le contexte du conteneur:
Je souhaite transférer les objets de type "Document" (ou "Page") d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe quel format texte (json anyone ?) suffit ?
Json? pour transferer des "document" plone d'un plone à l'autre?
Et qu'est-ce que tu va transférer avec XML-RPC ?
Mihamina Rakotomandimby (R12y)
Bruno Desthuilliers wrote:
Je souhaite transférer les objets de type "Document" (ou "Page") d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe quel format texte (json anyone ?) suffit ?
Json? pour transferer des "document" plone d'un plone à l'autre?
Et qu'est-ce que tu va transférer avec XML-RPC ?
Des "Document" (le type "Docuement" dans un Plone brut de fonderie). Un serveur dédié arrive à expiration et n'est pas renouvelable car l'offre commerciale n'est plus d'actualité et pas question pour l'hébergeur d'upgrader la config matérielle: il faut passer à un autre serveur. Le distribution (L'OS) n'est pas la même sur les deux serveurs, ni les version de Zope et Plone (Mais on reste dans des version suffisament proches) Je ne souhaite pas bêtement copier Data.fs. Donc, sur l'un ou l'autre des serveurs, je mets un script Python qui fait appel à XML-RPC et qui va pomper le contenu (du Plone) du premier serveur et va "l'injecter" dans le nouveau. Tout ne va pas être exactement comme avant dans un premier temps (date de création et autres broutilles) mais ce n'est pas important pour cette fois-ci.
Pour moi, vu les contraintes de la manoeuvre, XML-RPC est un bon moyen de faire. Mais evidemment, si il y a mieux: pourquoi pas?
Bruno Desthuilliers wrote:
Je souhaite transférer les objets de type "Document" (ou "Page")
d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http +
n'importe quel format texte (json anyone ?) suffit ?
Json? pour transferer des "document" plone d'un plone à l'autre?
Et qu'est-ce que tu va transférer avec XML-RPC ?
Des "Document" (le type "Docuement" dans un Plone brut de fonderie).
Un serveur dédié arrive à expiration et n'est pas renouvelable car
l'offre commerciale n'est plus d'actualité et pas question pour
l'hébergeur d'upgrader la config matérielle: il faut passer à un autre
serveur.
Le distribution (L'OS) n'est pas la même sur les deux serveurs, ni les
version de Zope et Plone (Mais on reste dans des version suffisament
proches)
Je ne souhaite pas bêtement copier Data.fs.
Donc, sur l'un ou l'autre des serveurs, je mets un script Python qui
fait appel à XML-RPC et qui va pomper le contenu (du Plone) du premier
serveur et va "l'injecter" dans le nouveau.
Tout ne va pas être exactement comme avant dans un premier temps (date
de création et autres broutilles) mais ce n'est pas important pour cette
fois-ci.
Pour moi, vu les contraintes de la manoeuvre, XML-RPC est un bon moyen
de faire.
Mais evidemment, si il y a mieux: pourquoi pas?
Je souhaite transférer les objets de type "Document" (ou "Page") d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe quel format texte (json anyone ?) suffit ?
Json? pour transferer des "document" plone d'un plone à l'autre?
Et qu'est-ce que tu va transférer avec XML-RPC ?
Des "Document" (le type "Docuement" dans un Plone brut de fonderie). Un serveur dédié arrive à expiration et n'est pas renouvelable car l'offre commerciale n'est plus d'actualité et pas question pour l'hébergeur d'upgrader la config matérielle: il faut passer à un autre serveur. Le distribution (L'OS) n'est pas la même sur les deux serveurs, ni les version de Zope et Plone (Mais on reste dans des version suffisament proches) Je ne souhaite pas bêtement copier Data.fs. Donc, sur l'un ou l'autre des serveurs, je mets un script Python qui fait appel à XML-RPC et qui va pomper le contenu (du Plone) du premier serveur et va "l'injecter" dans le nouveau. Tout ne va pas être exactement comme avant dans un premier temps (date de création et autres broutilles) mais ce n'est pas important pour cette fois-ci.
Pour moi, vu les contraintes de la manoeuvre, XML-RPC est un bon moyen de faire. Mais evidemment, si il y a mieux: pourquoi pas?
Bruno Desthuilliers
Mihamina Rakotomandimby (R12y) a écrit :
Bruno Desthuilliers wrote:
Je souhaite transférer les objets de type "Document" (ou "Page") d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe quel format texte (json anyone ?) suffit ?
Json? pour transferer des "document" plone d'un plone à l'autre?
Et qu'est-ce que tu va transférer avec XML-RPC ?
Des "Document"
Non. Ce que tu va transmettre, ce n'est pas l'objet lui-même, mais une représentation de l'objet sous forme textuelle.
(snip)
Donc, sur l'un ou l'autre des serveurs, je mets un script Python qui fait appel à XML-RPC
Ok, mais *pourquoi* XML-RPC ????
et qui va pomper le contenu (du Plone) du premier serveur et va "l'injecter" dans le nouveau.
>
Tout ne va pas être exactement comme avant dans un premier temps (date de création et autres broutilles) mais ce n'est pas important pour cette fois-ci.
Pour moi, vu les contraintes de la manoeuvre,
Lesquelles ? Je veux dire, outre le fait de ne pas pouvoir faire un bête dump du Data.fs ?
XML-RPC est un bon moyen de faire.
Soit quelque chose m'échappe totalement, soit on n'a pas la même définition de "bon moyen".
Mais evidemment, si il y a mieux: pourquoi pas?
Dans la mesure où, si je résume, le but de la manoeuvre est de permettre de peupler l'instance Plone du nouveau serveur à partir de l'ancien:
Sur l'ancien: une paire de script qui retournent respectivement un listing (en json) du contenu d'un objet (pour les dossiers et assimilés), soit un objet sérialisé (documents etc). En utilisant bien sûr l'acquisition pour exécuter ces scripts dans le contexte qui va bien...
Sur le nouveau: un script qui appelle les scripts sus-mentionnés sur l'ancien serveur (en partant de la racine), et mets à jour le nouveau à partir de la désérialisation du json retourné.
Dans la mesure où les objets plone répondent à des schémas bien déterminés et facilement instrospectibles (c'est français ça ???), je ne vois pas trop où est la difficulté a priori.
Mihamina Rakotomandimby (R12y) a écrit :
Bruno Desthuilliers wrote:
Je souhaite transférer les objets de type "Document" (ou "Page")
d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http +
n'importe quel format texte (json anyone ?) suffit ?
Json? pour transferer des "document" plone d'un plone à l'autre?
Et qu'est-ce que tu va transférer avec XML-RPC ?
Des "Document"
Non. Ce que tu va transmettre, ce n'est pas l'objet lui-même, mais une
représentation de l'objet sous forme textuelle.
(snip)
Donc, sur l'un ou l'autre des serveurs, je mets un script Python qui
fait appel à XML-RPC
Ok, mais *pourquoi* XML-RPC ????
et qui va pomper le contenu (du Plone) du premier
serveur et va "l'injecter" dans le nouveau.
>
Tout ne va pas être exactement comme avant dans un premier temps (date
de création et autres broutilles) mais ce n'est pas important pour cette
fois-ci.
Pour moi, vu les contraintes de la manoeuvre,
Lesquelles ? Je veux dire, outre le fait de ne pas pouvoir faire un bête
dump du Data.fs ?
XML-RPC est un bon moyen
de faire.
Soit quelque chose m'échappe totalement, soit on n'a pas la même
définition de "bon moyen".
Mais evidemment, si il y a mieux: pourquoi pas?
Dans la mesure où, si je résume, le but de la manoeuvre est de permettre
de peupler l'instance Plone du nouveau serveur à partir de l'ancien:
Sur l'ancien: une paire de script qui retournent respectivement un
listing (en json) du contenu d'un objet (pour les dossiers et
assimilés), soit un objet sérialisé (documents etc). En utilisant bien
sûr l'acquisition pour exécuter ces scripts dans le contexte qui va bien...
Sur le nouveau: un script qui appelle les scripts sus-mentionnés sur
l'ancien serveur (en partant de la racine), et mets à jour le nouveau à
partir de la désérialisation du json retourné.
Dans la mesure où les objets plone répondent à des schémas bien
déterminés et facilement instrospectibles (c'est français ça ???), je ne
vois pas trop où est la difficulté a priori.
Je souhaite transférer les objets de type "Document" (ou "Page") d'un Plone à l'autre, mais via XML-RPC.
Pourquoi donc utiliser une telle usine à gaz, alors que http + n'importe quel format texte (json anyone ?) suffit ?
Json? pour transferer des "document" plone d'un plone à l'autre?
Et qu'est-ce que tu va transférer avec XML-RPC ?
Des "Document"
Non. Ce que tu va transmettre, ce n'est pas l'objet lui-même, mais une représentation de l'objet sous forme textuelle.
(snip)
Donc, sur l'un ou l'autre des serveurs, je mets un script Python qui fait appel à XML-RPC
Ok, mais *pourquoi* XML-RPC ????
et qui va pomper le contenu (du Plone) du premier serveur et va "l'injecter" dans le nouveau.
>
Tout ne va pas être exactement comme avant dans un premier temps (date de création et autres broutilles) mais ce n'est pas important pour cette fois-ci.
Pour moi, vu les contraintes de la manoeuvre,
Lesquelles ? Je veux dire, outre le fait de ne pas pouvoir faire un bête dump du Data.fs ?
XML-RPC est un bon moyen de faire.
Soit quelque chose m'échappe totalement, soit on n'a pas la même définition de "bon moyen".
Mais evidemment, si il y a mieux: pourquoi pas?
Dans la mesure où, si je résume, le but de la manoeuvre est de permettre de peupler l'instance Plone du nouveau serveur à partir de l'ancien:
Sur l'ancien: une paire de script qui retournent respectivement un listing (en json) du contenu d'un objet (pour les dossiers et assimilés), soit un objet sérialisé (documents etc). En utilisant bien sûr l'acquisition pour exécuter ces scripts dans le contexte qui va bien...
Sur le nouveau: un script qui appelle les scripts sus-mentionnés sur l'ancien serveur (en partant de la racine), et mets à jour le nouveau à partir de la désérialisation du json retourné.
Dans la mesure où les objets plone répondent à des schémas bien déterminés et facilement instrospectibles (c'est français ça ???), je ne vois pas trop où est la difficulté a priori.