zc.monitor

Screenshot Λογισμικό:
zc.monitor
Στοιχεία Λογισμικού:
Εκδοχή: 0.3.1
Ανεβάστε ημερομηνία: 14 Apr 15
Προγραμματιστής: Jim Fulton
Άδεια: Δωρεάν
Δημοτικότητα: 1

Rating: nan/5 (Total Votes: 0)

zc.monitor είναι ένας server που παρέχει μια διεπαφή γραμμής εντολών για να ζητήσουν διάφορα κομμάτια των πληροφοριών & nbsp?. Ο διακομιστής είναι zc.ngi βάση, έτσι μπορούμε να χρησιμοποιήσουμε την υποδομή δοκιμών zc.ngi να το αποδείξει.
& Nbsp? >>> Zc.ngi.testing εισαγωγής
& Nbsp? >>> Zc.monitor εισαγωγής
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
Ο διακομιστής υποστηρίζει ένα επεκτάσιμο σύνολο εντολών. Μοιάζει τις εντολές, όπως το όνομα zc.monitor.interfaces.IMonitorPlugin "κοινής ωφελείας", όπως ορίζεται από το πακέτο zope.component.
Για να δείτε αυτό, θα δημιουργήσουμε ένα plugin γεια:
& Nbsp? >>> Def γεια (σύνδεση, όνομα = «κόσμο»):
& Nbsp? ... "" "Υποδεχτείτε
& Nbsp? ...
& Nbsp? ... Δώστε ένα όνομα, αν δεν είστε ο κόσμος.
& Nbsp? ... "" "
& Nbsp? ... Connection.write ("Γεια% s, ωραίο να ανταποκριθεί ya n" όνομα%)
και να εγγραφείτε:
& Nbsp? >>> Zc.monitor.register (γεια)
Όταν καταχωρούμε μια εντολή, μπορούμε να παρέχουμε ένα όνομα. Για να δείτε αυτό, θα εγγραφούν Γεια σας και πάλι:
& Nbsp? >>> Zc.monitor.register (γειά σου, «γεια»)
Τώρα μπορούμε να δώσουμε την εντολή γεια στο διακομιστή:
& Nbsp? >>> Connection.test_input («γεια n ')
& Nbsp? Γεια σου κόσμο, ωραίο να ανταποκριθεί ya!
& Nbsp? -> Κλείσιμο
Μπορούμε να περάσει ένα όνομα:
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
& Nbsp? >>> Connection.test_input («γεια σου Jim n ')
& Nbsp? Γεια σου Jim, ωραίο να ανταποκριθεί ya!
& Nbsp? -> Κλείσιμο
Ο διακομιστής έρχεται με μερικές βασικές εντολές. Ας τους μητρώο, ώστε να μπορούμε να δούμε τι κάνουν. Θα χρησιμοποιήσουμε το simplfied διεπαφή εγγραφής:
& Nbsp? >>> Zc.monitor.register_basics ()
Η πρώτη είναι η εντολή βοήθεια. Δίνοντας βοήθεια χωρίς είσοδο, δίνει μια λίστα με τις διαθέσιμες εντολές:
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
& Nbsp? >>> Connection.test_input («βοήθεια n ')
& Nbsp? Υποστηριζόμενες εντολές:
& Nbsp? Γεια - Υποδεχτείτε
& Nbsp? Βοήθεια - Ζητήστε βοήθεια σχετικά με τις εντολές του server
& Nbsp? Hi - Υποδεχτείτε
& Nbsp? Διαδραστικό - Ενεργοποιήστε τη διαδραστική λειτουργία οθόνης
& Nbsp? Εγκαταλείψει - Κλείστε την οθόνη
& Nbsp? -> Κλείσιμο
Μπορούμε να πάρουμε αναλυτική βοήθεια, καθορίζοντας ένα όνομα εντολής:
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
& Nbsp? >>> Connection.test_input («Βοήθεια n ')
& Nbsp? Βοήθεια για βοήθεια:
& Nbsp?
& Nbsp? Ζητήστε βοήθεια σχετικά με τις εντολές του server
& Nbsp?
& Nbsp? Από προεπιλογή, η λίστα των εντολών και περιλήψεις εκτυπώνεται. Παροχή
& Nbsp? Ένα όνομα εντολής για να πάρει λεπτομερή τεκμηρίωση για μια εντολή.
& Nbsp?
& Nbsp? -> Κλείσιμο
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
& Nbsp? >>> Connection.test_input («βοήθεια γεια n ')
& Nbsp? Βοήθεια για Γεια σας:
& Nbsp?
& Nbsp? Υποδεχτείτε
& Nbsp?
& Nbsp? Δώστε ένα όνομα, αν δεν είστε ο κόσμος.
& Nbsp?
& Nbsp? -> Κλείσιμο
Το διαδραστικό εντολή αλλάζει την οθόνη σε διαδραστική λειτουργία. Όπως είδαμε παραπάνω, η οθόνη συνήθως ανταποκρίνεται σε μία μόνο εντολή και, στη συνέχεια, κλείνει τη σύνδεση. Στο "διαδραστική λειτουργία", η σύνδεση δεν είναι κλειστό μέχρι χρησιμοποιείται η εντολή εγκαταλείψει. Αυτό μπορεί να είναι χρήσιμο όταν γίνεται πρόσβαση στην οθόνη μέσω telnet για τη διάγνωση.
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
& Nbsp? >>> Connection.test_input («διαδραστική n ')
& Nbsp? Λειτουργία Διαδραστική. Χρησιμοποιήστε το "κόψει" για έξοδο.
& Nbsp? >>> Connection.test_input («βοηθήσει διαδραστικό n ')
& Nbsp? Βοήθεια για διαδραστική:
& Nbsp?
& Nbsp? Ενεργοποιήστε τη διαδραστική λειτουργία οθόνης
& Nbsp?
& Nbsp? Κανονικά, η οθόνη απελευθερώνει τη σύνδεση μετά από μία μόνο εντολή.
& Nbsp? Με την εισαγωγή στην διαδραστική λειτουργία, η οθόνη δεν θα τερματίσετε τη σύνδεση
& Nbsp? Μέχρι να εισάγετε το "κόψει" εντολή.
& Nbsp?
& Nbsp? Στη διαδραστική λειτουργία, ένα άδειο γραμμή επαναλαμβάνει την τελευταία εντολή.
& Nbsp?
& Nbsp? >>> Connection.test_input («βοηθήσει σταματήσουν n ')
& Nbsp? Βοήθεια για έξοδο:
& Nbsp?
& Nbsp? Κλείστε την οθόνη
& Nbsp?
& Nbsp? Αυτό είναι μόνο πραγματικά χρήσιμο σε αλληλεπιδραστική λειτουργία (δείτε το "διαδραστικό"
& Nbsp? Εντολή).
& Nbsp?
Παρατηρήστε ότι το αποτέλεσμα των εντολών του δεν τελειώνει με "-> Κλείσιμο", το οποίο υποδεικνύει μια κλειστή σύνδεση.
Παρατηρούμε, επίσης, ότι η διαδραστική λειτουργία σας επιτρέπει να επαναλάβετε τις εντολές.
& Nbsp? >>> Connection.test_input ('Hello n')
& Nbsp? Γεια σου κόσμο, ωραίο να ανταποκριθεί ya!
& Nbsp? >>> Connection.test_input (' n')
& Nbsp? Γεια σου κόσμο, ωραίο να ανταποκριθεί ya!
& Nbsp? >>> Connection.test_input («γεια σου Jim n ')
& Nbsp? Γεια σου Jim, ωραίο να ανταποκριθεί ya!
& Nbsp? >>> Connection.test_input (' n')
& Nbsp? Γεια σου Jim, ωραίο να ανταποκριθεί ya!
Τώρα θα χρησιμοποιήσουμε σταματήσουν να κλείσετε τη σύνδεση.
& Nbsp? >>> Connection.test_input («κόψει n ')
& Nbsp? Αντίο.
& Nbsp? -> Κλείσιμο
Τέλος, αξίζει να σημειωθεί ότι οι εξαιρέσεις θα δημιουργήσει ένα traceback στη σύνδεση.
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
& Nbsp? >>> Connection.test_input («γεια σου Jim 42 n ') # doctest: + ελλειπτικό
& Nbsp? Traceback (πιο πρόσφατη κλήση τελευταία):
& Nbsp? ...
& Nbsp? TypeError: Γεια σας () λαμβάνει χώρα σε (δεδομένης 3) το πολύ 2 επιχειρήματα
& Nbsp?
& Nbsp? -> Κλείσιμο
Βρόχους Εντολή
Χρησιμοποιώντας το "περισσότερο" λειτουργία, οι εντολές μπορεί να σηματοδοτήσει ότι θέλουν να διεκδικήσουν όλες τις μελλοντικές εισόδου του χρήστη. Θα εφαρμόσει ένα ανόητο παράδειγμα για να δείξει πώς λειτουργεί.
Αυτή είναι μια εντολή που υλοποιεί μια αριθμομηχανή.
& Nbsp? '. »>>> ΑΜΕΣΗ =
& Nbsp? >>> Def calc (σύνδεση, * args):
& Nbsp? ... Αν args και args [0] == «κόψει»:
& Nbsp? ... Επιστροφή zc.monitor.QUIT_MARKER
& Nbsp? ...
& Nbsp? ... Αν args:
& Nbsp? ... Connection.write (. Οδού (eval ('' join (args))))
& Nbsp? ... Connection.write (' n')
& Nbsp? ...
& Nbsp? ... Connection.write (ΑΜΕΣΗ)
& Nbsp? ... Επιστροφή zc.monitor.MORE_MARKER
Αν εγγραφείτε αυτήν την εντολή ...
& Nbsp? >>> Zc.monitor.register (Calc)
... Μπορούμε να το επικαλεστεί και θα πάρετε μια προτροπή.
& Nbsp? >>> Σύνδεση = zc.ngi.testing.TextConnection ()
& Nbsp? >>> Εξυπηρετητή = zc.monitor.Server (σύνδεση)
& Nbsp? >>> Connection.test_input («υπολογ n ')
& Nbsp ;.
Αν στη συνέχεια να του δώσει περισσότερα στοιχεία παίρνουμε το αποτέλεσμα συν μια άλλη εντολή.
& Nbsp? >>> Connection.test_input («2 + 2 n ')
& Nbsp? 4
& Nbsp ;.
& Nbsp? >>> Connection.test_input (4 * 2 n ')
& Nbsp? 8
& Nbsp ;.
Μόλις τελειώσετε μπορούμε να πούμε την αριθμομηχανή για να μας αφήσουν να φύγουμε.
& Nbsp? >>> Connection.test_input («κόψει n ')
& Nbsp? -> Κλείσιμο
Ξεκινήστε το διακομιστή
& Nbsp? >>> Χρόνο εισαγωγής
& Nbsp? >>> Zope.testing.loggingsupport εισαγωγής, υλοτομία
& Nbsp? >>> Loghandler = zope.testing.loggingsupport.InstalledHandler (
& Nbsp? ... Κανένας, το επίπεδο = logging.INFO)
& Nbsp? >>> Zc.monitor.start (9644)
& Nbsp? ('', 9644)
& Nbsp? >>> Loghandler εκτύπωσης
& Nbsp? ΠΛΗΡΟΦΟΡΙΕΣ zc.ngi.async.server
& Nbsp? Ακούει στο ('', 9644)
& Nbsp? >>> Zc.monitor.last_listener.close ()
& Nbsp? >>> Zc.monitor.last_listener = Κανένας
& Nbsp? >>> Time.sleep (0.1)
& Nbsp? >>> Loghandler.clear ()
& Nbsp? >>> Zc.monitor.start ((«127.0.0.1», 9644))
& Nbsp? («127.0.0.1», 9644)
& Nbsp? >>> Loghandler εκτύπωσης
& Nbsp? ΠΛΗΡΟΦΟΡΙΕΣ zc.ngi.async.server
& Nbsp? Ακούει στο («127.0.0.1», 9644)
& Nbsp? >>> Zc.monitor.last_listener.close ()
& Nbsp? >>> Zc.monitor.last_listener = Κανένας
& Nbsp? >>> Time.sleep (0.1)
Δέστε στη θύρα 0:
& Nbsp? >>> Διευθ = zc.monitor.start (0)
& Nbsp? >>> Διευθ == zc.monitor.last_listener.address
& Nbsp? True
& Nbsp? >>> Zc.monitor.last_listener.close ()
& Nbsp? >>> Zc.monitor.last_listener = Κανένας
& Nbsp? >>> Time.sleep (0.1)
Προσπαθώντας να επανασυνδέεται σε μια θύρα κατά τη χρήση:
& 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? Λάθος
& Nbsp? >>> Loghandler εκτύπωσης
& Nbsp? ΠΛΗΡΟΦΟΡΙΕΣ zc.ngi.async.server
& Nbsp? Ακούει στο («127.0.0.1», 9644)
& Nbsp? Zc.ngi.async.server ΠΡΟΕΙΔΟΠΟΙΗΣΗ
& Nbsp? Αδυνατεί να ακούσουν για («127.0.0.1», 9644)
& Nbsp? Ρίζα ΠΡΟΕΙΔΟΠΟΙΗΣΗ
& Nbsp? Σε θέση να ξεκινήσει το διακομιστή zc.monitor επειδή η διεύθυνση («127.0.0.1», 9644) είναι σε χρήση.
& Nbsp? >>> Zc.monitor.last_listener.close ()
& Nbsp? >>> Zc.monitor.last_listener = Κανένας
& Nbsp? >>> Time.sleep (0.1)
& Nbsp? >>> Loghandler.uninstall ()

Τι είναι καινούργιο σε αυτήν την έκδοση:

  • Όταν συνδέεται την οθόνη σε ένα Υποδοχή σε Unix τομέα, να καταργήσετε μια υπάρχουσα υποδοχή στο ίδιο μονοπάτι μέχρι το δέσιμο είναι επιτυχής. Αυτό μπορεί να επηρεάσει την τρέχουσα χρήση σε σχέση με zopectl debug συμπεριφορά, αλλά θα είναι πιο προβλέψιμη.

Τι είναι καινούργιο στην έκδοση 0.3.0:

  • Προστέθηκε μια απλοποιημένη διεπαφή εγγραφής
  • .

Απαιτήσεις :

  • Python

Παρόμοια λογισμικά

WMtemp
WMtemp

3 Jun 15

spy
spy

14 Apr 15

Air
Air

11 May 15

GKrellM Volume
GKrellM Volume

3 Jun 15

Άλλο λογισμικό του προγραμματιστή Jim Fulton

zc.resumelb
zc.resumelb

20 Feb 15

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

Σχόλια για zc.monitor

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!