zc.monitor

Logiciel capture d'écran:
zc.monitor
Détails logiciels:
Version: 0.3.1
Date de transfert: 14 Apr 15
Développeur: Jim Fulton
Licence: Gratuit
Popularité: 1

Rating: nan/5 (Total Votes: 0)

zc.monitor est un serveur qui fournit une interface de ligne de commande pour demander divers bits d'information & nbsp;. Le serveur est zc.ngi base, afin que nous puissions utiliser l'infrastructure de test de zc.ngi de le démontrer.
& Nbsp; >>> zc.ngi.testing d'importation
& Nbsp; >>> zc.monitor d'importation
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
Le serveur prend en charge un ensemble extensible de commandes. Il lève les yeux commandes que nommés "utilities" zc.monitor.interfaces.IMonitorPlugin, tel que défini par le paquet zope.component.
Pour le voir, nous allons créer un plugin bonjour:
& Nbsp; >>> def bonjour (connexion, nom = «monde»):
& Nbsp; ... "" "Dites bonjour
& Nbsp; ...
& Nbsp; ... Donnez un nom si vous n'êtes pas du monde.
& Nbsp; ... "" "
& Nbsp; ... connection.write ("! Salut% s, agréable à répondre ya n"% nom)
et l'enregistrer:
& Nbsp; >>> zc.monitor.register (bonjour)
Lorsque nous enregistrons une commande, nous pouvons fournir un nom. Pour le voir, nous allons inscrire Bonjour à nouveau:
& Nbsp; >>> zc.monitor.register (bonjour, 'salut')
Maintenant, nous pouvons donner le commandement de bonjour au serveur:
& Nbsp; >>> connection.test_input ('salut n')
& Nbsp; monde Salut, beau de te rencontrer!
& Nbsp; -> FERMER
Nous pouvons adopter un nom:
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
& Nbsp; >>> connection.test_input ('bonjour Jim n')
& Nbsp; Salut Jim, agréable de te rencontrer!
& Nbsp; -> FERMER
Le serveur est livré avec quelques commandes de base. Disons les enregistrer afin que nous puissions voir ce qu'ils font. Nous allons utiliser l'interface d'enregistrement SIMPLIFIÉE:
& Nbsp; >>> zc.monitor.register_basics ()
Le premier est la commande d'aide. Donner de l'aide sans entrée, donne une liste des commandes disponibles:
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
& Nbsp; >>> connection.test_input ('aide n')
& nbsp; en charge les commandes:
& Nbsp; bonjour - Dites bonjour
& Nbsp; aide - Obtenez de l'aide sur les commandes de serveur
& Nbsp; salut - Dites bonjour
& Nbsp; interactive - Activer le mode interactif de moniteur
& Nbsp; quit - Quitter le moniteur
& Nbsp; -> FERMER
Nous pouvons obtenir une aide détaillée en spécifiant un nom de commande:
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
& Nbsp; >>> connection.test_input ('aide aide n')
& Nbsp; Aide à l'aide:
& Nbsp;
& Nbsp; Obtenez de l'aide sur les commandes de serveur
& Nbsp;
& Nbsp; Par défaut, la liste des commandes et des résumés est imprimé. Fournir
& Nbsp; un nom de commande pour obtenir une documentation détaillée pour une commande.
& Nbsp;
& Nbsp; -> FERMER
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
& Nbsp; >>> connection.test_input ('aide bonjour n')
& Nbsp; Aide pour bonjour:
& Nbsp;
& Nbsp; Dites bonjour
& Nbsp;
& Nbsp; Fournir un nom si vous n'êtes pas du monde.
& Nbsp;
& Nbsp; -> FERMER
La commande interactive bascule le moniteur en mode interactif. Comme on le voit ci-dessus, l'écran répond habituellement à une seule commande, puis ferme la connexion. En "mode interactif", la connexion ne est pas fermée jusqu'à ce que la commande quit est utilisé. Cela peut être utile lors de l'accès au moniteur via telnet pour le diagnostic.
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
& Nbsp; >>> connection.test_input («interactif n ')
& Nbsp; Le mode interactif sur. Utilisez «Quitter» pour sortir.
& Nbsp; >>> connection.test_input ('aider interactive n')
& Nbsp; Aide pour interactive:
& Nbsp;
& Nbsp; Activer le mode interactif de moniteur
& Nbsp;
& Nbsp; Normalement, le moniteur libère la connexion après une seule commande.
& Nbsp; En entrant le mode interactif, le moniteur ne sera pas fin à la connexion
& Nbsp; jusqu'à ce que vous entrez la commande "quit".
& Nbsp;
& Nbsp; En mode interactif, une ligne vide répète la dernière commande.
& Nbsp;
& Nbsp; >>> connection.test_input ('aider à arrêter n')
& Nbsp; l'aide pour cesser de fumer:
& Nbsp;
& Nbsp; Quitter le moniteur
& Nbsp;
& Nbsp; Ce ne est vraiment utile en mode interactif (voir le "interactive"
& Nbsp; commande).
& Nbsp;
Notez que le résultat des commandes ne se termine pas par "-> CLOSE", qui aurait indiqué une connexion fermée.
Notez également que le mode interactif vous permet de répéter les commandes.
& Nbsp; >>> connection.test_input ('bonjour n')
& Nbsp; monde Salut, beau de te rencontrer!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; monde Salut, beau de te rencontrer!
& Nbsp; >>> connection.test_input ('bonjour Jim n')
& Nbsp; Salut Jim, agréable de te rencontrer!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Salut Jim, agréable de te rencontrer!
Maintenant, nous allons utiliser quit pour fermer la connexion.
& Nbsp; >>> connection.test_input ('quitter n')
& Nbsp; Au revoir.
& Nbsp; -> FERMER
Enfin, il est intéressant de noter que les exceptions vont générer une trace sur la connexion.
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
& Nbsp; >>> connection.test_input ('bonjour Jim 42 n') # doctest: + ELLIPSIS
& Nbsp; d'enquête (appel le plus récent dernière):
& Nbsp; ...
& Nbsp; TypeError: bonjour () prend dans la plupart des deux arguments (3 donnés)
& Nbsp;
& Nbsp; -> FERMER
boucles de commande
En utilisant le mode "Plus", les commandes peuvent signaler qu'ils veulent réclamer la totalité future entrée de l'utilisateur. Nous allons mettre en œuvre un exemple stupide de montrer comment cela fonctionne.
Voici une commande qui met en œuvre une calculatrice.
& Nbsp; ». '>>> PROMPT =
& Nbsp; >>> def Calc (connexion, * args):
& Nbsp; ... si args et args [0] == 'quitter':
& Nbsp; ... revenir zc.monitor.QUIT_MARKER
& Nbsp; ...
& Nbsp; ... si args:
& Nbsp; ... connection.write (. Str (eval ('' join (args))))
& Nbsp; ... connection.write (' n')
& Nbsp; ...
& Nbsp; ... connection.write (PROMPT)
& Nbsp; ... revenir zc.monitor.MORE_MARKER
Si nous enregistrons cette commande ...
& Nbsp; >>> zc.monitor.register (calc)
... Nous pouvons l'invoquer et nous obtenons une invite.
& Nbsp; >>> connexion = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (connexion)
& Nbsp; >>> connection.test_input ('calc n')
& Nbsp ;.
Si nous donnons ensuite plus entrée nous obtenons le résultat plus un autre invite.
& Nbsp; >>> connection.test_input («2 + 2 n ')
& Nbsp; 4
& Nbsp ;.
& Nbsp; >>> connection.test_input ('4 * 2 n')
& Nbsp; 8
& Nbsp ;.
Une fois que nous aurons terminé, nous pouvons dire la calculatrice de nous laisser aller.
& Nbsp; >>> connection.test_input ('quitter n')
& Nbsp; -> FERMER
Démarrer le serveur
& Nbsp; >>> temps d'importation
& Nbsp; >>> zope.testing.loggingsupport d'importation, l'exploitation forestière
& Nbsp; >>> LogHandler = zope.testing.loggingsupport.InstalledHandler (
& Nbsp; ... Aucun, level = logging.INFO)
& Nbsp; >>> zc.monitor.start (9644)
& Nbsp; ('', 9644)
& Nbsp; >>> print LogHandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; l'écoute sur ('', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Aucun
& Nbsp; >>> time.sleep (0,1)
& Nbsp; >>> loghandler.clear ()
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; ("127.0.0.1", 9644)
& Nbsp; >>> print LogHandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; l'écoute sur ('127.0.0.1', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Aucun
& Nbsp; >>> time.sleep (0,1)
Lier au port 0:
& Nbsp; >>> addr = zc.monitor.start (0)
& Nbsp; >>> addr == zc.monitor.last_listener.address
& Nbsp; Vrai
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Aucun
& Nbsp; >>> time.sleep (0,1)
Essayer de relier au port en cours d'utilisation:
& Nbsp; >>> loghandler.clear ()
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; ("127.0.0.1", 9644)
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; False
& Nbsp; >>> print LogHandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; l'écoute sur ('127.0.0.1', 9644)
& Nbsp; zc.ngi.async.server AVERTISSEMENT
& Nbsp; l'impossibilité d'écouter sur ('127.0.0.1', 9644)
& Nbsp; racine AVERTISSEMENT
& Nbsp; incapable de démarrer le serveur de zc.monitor parce que l'adresse ("127.0.0.1", 9644) est en cours d'utilisation.
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Aucun
& Nbsp; >>> time.sleep (0,1)
& Nbsp; >>> loghandler.uninstall ()

Ce qui est nouveau dans cette version:

  • Lors de la liaison le moniteur à un socket de domaine Unix, supprimer une prise existante dans le même chemin pour la liaison est réussie. Cela peut affecter l'usage existant par rapport à zopectl comportement de débogage, mais sera plus prévisible.

Quoi de neuf dans la version 0.3.0:

  • Ajout d'une interface d'enregistrement simplifiée
  • .

Exigences :

  • Python

Logiciel similaire

D'autres logiciels de développeur Jim Fulton

zc.resumelb
zc.resumelb

20 Feb 15

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

Commentaires à zc.monitor

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!