C'est exactement ce que je viens de faire ... et cela marche !!!

Merci de votre aide

Cordialement

Pierre Bernardin

-----Message d'origine-----
De : Cédric MARFIL [mailto:[EMAIL PROTECTED]
Envoyé : lundi 25 juillet 2005 12:18
À : BERNARDIN Pierre
Cc : Liste Nuxeo (E-mail)
Objet : RE: [CPS-users-fr] Script Python / Windows


Avez vous publié votre skin dans un répertoire skins d'un de vos produits ?
Pour le savoir, trouvez-vous cette skin dans le folder 
portal/portal_skins/nomDuRepertoireDePublicationDeLaSkin/ dans la ZMI ?
Si oui, pouvez vous appeler cette skin depuis le site ? 
(http://www.monserveur.fr/monInstance/nomDuRepertoireDePublicationDeLaSkin/maSkin)
 ?


Cédric Marfil
Unilog IT Services NRD
Marcq en Baroeul
Tél : 03.59.56.60.25
Mail : [EMAIL PROTECTED]

-----Message d'origine-----
De : BERNARDIN Pierre [mailto:[EMAIL PROTECTED]
Envoyé : lundi 25 juillet 2005 10:50
À : [EMAIL PROTECTED]
Objet : RE: [CPS-users-fr] Script Python / Windows

Merci pour l'info mais en testant, "context" n'est pas reconnu.

Que faire ?

Merci

Pierre Bernardin

-----Message d'origine-----
De : Cédric MARFIL [mailto:[EMAIL PROTECTED]
Envoyé : lundi 25 juillet 2005 09:21
À : BERNARDIN Pierre
Cc : Liste Nuxeo (E-mail)
Objet : RE: [CPS-users-fr] Script Python / Windows


Bonjour,

Pour pouvoir planifier l'exécution d'un script Python, il faut tout d'abord 
créer un script qui va se connecter à ton application Web (" batchXXX.py ") :

#Les variables username et password sont celles qui seront utilisées pour
# que le batch se connecte à l'application afin d'exécuter le script
username="uuuuuuuu"
password="pppppppp"

#La variable zope reprend l'URL de connexion au site pour lequel vous
# souhaitez configurer un batch planifie
zope="http://www.monserveur.fr/moninstance";

#Import des library nécessaires
import sys, urllib


#Classe NoGUI_URLopener qui dérive de la classe FancyURLopener et qui
# permet d'imposer le login et le mot de passe saisis ci-dessus à la
# connexion à l'application
class NoGUI_URLopener(urllib.FancyURLopener):
   def __init__(self, username, password, *args):
      apply(urllib.FancyURLopener.__init__, (self,) + args)

      self.username = username
      self.password = password
      self.asked = 0

   def prompt_user_passwd(self, host, realm):
      if self.asked:
         raise "Unauthorised"
      else:
         self.asked = 1
         return self.username, self.password


#Création de l'utilisateur se connectant à l'application à l'aide de la
# classe définie ci-dessus
urllib._urlopener = NoGUI_URLopener(username, password)
#Lancement du batch (script disponible dans une skin publiée dans l'application
urllib.urlretrieve("%s/maSkin" % (zope))


Ensuite, dans la skins (" maSkins.pt "), on effectue l'opération souhaitée ou 
on appelle un méthode sur un Tool qui fait l'action :

##parameters=REQUEST=None

from zLOG import LOG, DEBUG

portal = context.portal_url.getPortalObject()

#archivage des docs dans les sections
sections = portal['sections']
objects = sections.objectItems()
context.portal_workflow.classExpiredDocs(objects,'sections')

Enfin, on peut planifier l'exécution :

Sous Linux, ajouter cette ligne dans le fichier /etc/crontab:
50 0 * * * root python234 
/usr/local/zope271b2_lot0/Products/produit1/ssProduit1/batchXXX.py
# Cette ligne permet de planifier l'exécution du script batchXXX.py
#  par l'exécutable python /bin/python234 sous l'identité root, tous les
#  jours à 00h50 (minutes(0-59) heures(0-23) jour-du-mois(0-31) mois(0-12) 
jour-de-semaine(0-7))

Sous Windows, créer une tâche planifiée qui lancera le script suivant :
"C:\Program Files\Zope-2.7.2-0\bin\python.exe 
C:\Zope-Instance\Products\produit1\ssProduit1\batchXXX.py"


Bon courage

Cordialement


Cédric Marfil
Unilog IT Services NRD
Marcq en Baroeul
Tél : 03.59.56.60.25
Mail : [EMAIL PROTECTED]

-----Message d'origine-----
De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] la part de BERNARDIN Pierre
Envoyé : dimanche 24 juillet 2005 12:02
À : [email protected]
Objet : [CPS-users-fr] Script Python / Windows

Bonjour

  Sur mon site (Zope 2.7.0, Python 2.3, CPS3), je souhaite récupérer tous les 
titres des publications depuis une semaine.

  La solution : un script python lancé à l'aide d'un scheduler

  Mais :
     Quels schedulers utiliser (Windows, Linux (cron?)) ?
     Où installer le script ?
     Comment se connecte t-il à la zodb ?
     Et si il y a plusieurs instances sur le serveur ?
     Exemples de scripts ?

Merci d'avance

> Pierre BERNARDIN
>

_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à