zc.monitor

Skjermbilde programvare:
zc.monitor
Prog.varedetaljer:
Versjon: 0.3.1
Last opp dato: 14 Apr 15
Utvikler: Jim Fulton
Lisens: Gratis
Popularitet: 1

Rating: nan/5 (Total Votes: 0)

zc.monitor er en server som gir et kommandolinjegrensesnitt for å be om ulike biter av informasjon. & Nbsp; Serveren er zc.ngi basert, slik at vi kan bruke zc.ngi testing infrastruktur for å demonstrere det.
& Nbsp; >>> import zc.ngi.testing
& Nbsp; >>> import zc.monitor
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
Serveren støtter en utvidbar sett med kommandoer. Det ser opp kommandoer som heter zc.monitor.interfaces.IMonitorPlugin "utilities", som definert av zope.component pakken.
For å se dette, vil vi lage en hei plugin:
& Nbsp; >>> def hallo (tilkobling, name = "verden"):
& Nbsp; ... "" "Si hei
& Nbsp; ...
& Nbsp; ... Gi et navn hvis du ikke er i verden.
& Nbsp; ... "" "
& Nbsp; ... connection.write ("Hei% s, hyggelig å møte ya n"% name)
og registrere det:
& Nbsp; >>> zc.monitor.register (hallo)
Når vi registrere en kommando, kan vi gi et navn. For å se dette, vil vi registrere hei igjen:
& Nbsp; >>> zc.monitor.register (hallo, "Hei")
Nå kan vi gi hallo kommando til serveren:
& Nbsp; >>> connection.test_input ('hi n')
& Nbsp; Hei verden, hyggelig å møte ya!
& Nbsp; -> CLOSE
Vi kan passere et navn:
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
& Nbsp; >>> connection.test_input ('Hei Jim n')
& Nbsp; Hei Jim, hyggelig å møte ya!
& Nbsp; -> CLOSE
Serveren kommer med noen grunnleggende kommandoer. La oss registrere dem slik at vi kan se hva de gjør. Vi vil bruke den simplfied registrering grensesnitt:
& Nbsp; >>> zc.monitor.register_basics ()
Den første er kommandoen for hjelp. Gi hjelp uten input, gir en liste over tilgjengelige kommandoer:
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
& Nbsp; >>> connection.test_input ('help n')
& nbsp; Støttet kommandoer:
& Nbsp; hallo - Si hei
& Nbsp; hjelp - Få hjelp om serverkommandoer
& Nbsp; hi - Si hei
& Nbsp; interaktiv - Slå på monitoren interaktiv modus
& Nbsp; slutte - Avslutt skjermen
& Nbsp; -> CLOSE
Vi kan få detaljert hjelp ved å angi en kommando navn:
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
& Nbsp; >>> connection.test_input ('hjelp hjelp n')
& Nbsp; Hjelp til hjelp:
& Nbsp;
& Nbsp; Få hjelp om serverkommandoer
& Nbsp;
& Nbsp; Som standard er en liste over kommandoer og sammendrag skrevet ut. Gi
& Nbsp; et kommandonavn for å få detaljert dokumentasjon for en kommando.
& Nbsp;
& Nbsp; -> CLOSE
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
& Nbsp; >>> connection.test_input ('help hallo n')
& Nbsp; Hjelp for hallo:
& Nbsp;
& Nbsp; Si hei
& Nbsp;
& Nbsp; Gi et navn hvis du ikke er i verden.
& Nbsp;
& Nbsp; -> CLOSE
Den interaktive kommandoen slår skjermen i interaktiv modus. Som vist ovenfor, kan skjermen svarer vanligvis til en enkelt kommando, og lukker deretter forbindelsen. I "interaktiv modus", blir forbindelsen ikke stengt inntil slutte kommandoen brukes. Dette kan være nyttig når du får tilgang til skjermen via telnet for diagnostikk.
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
& Nbsp; >>> connection.test_input ('interaktiv n')
& Nbsp; Interaktiv modus på. Bruk "slutte" å avslutte.
& Nbsp; >>> connection.test_input ('hjelpe interaktiv n')
& Nbsp; Hjelp for interaktiv:
& Nbsp;
& Nbsp; Slå på monitoren interaktiv modus
& Nbsp;
& Nbsp; Normalt utgivelser skjermen forbindelsen etter en enkelt kommando.
& Nbsp; Ved å delta i interaktiv modus, skjermen vil ikke avslutte tilkoblingen
& Nbsp; før du angir "slutte" kommandoen.
& Nbsp;
& Nbsp; I interaktiv modus, gjentar en tom linje den siste kommandoen.
& Nbsp;
& Nbsp; >>> connection.test_input ('hjelpe slutte n')
& Nbsp; Hjelp til å avslutte:
& Nbsp;
& Nbsp; Avslutt skjermen
& Nbsp;
& Nbsp; Dette er bare veldig nyttig i interaktiv modus (se "interaktiv"
& Nbsp; kommando).
& Nbsp;
Legg merke til at resultatet av kommandoene sluttet ikke med "-> CLOSE", som ville ha indikert en lukket tilkobling.
Legg også merke til at den interaktiv modus kan du gjenta kommandoer.
& Nbsp; >>> connection.test_input ('Hei n')
& Nbsp; Hei verden, hyggelig å møte ya!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hei verden, hyggelig å møte ya!
& Nbsp; >>> connection.test_input ('Hei Jim n')
& Nbsp; Hei Jim, hyggelig å møte ya!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hei Jim, hyggelig å møte ya!
Nå vil vi bruke slutte å lukke tilkoblingen.
& Nbsp; >>> connection.test_input ('slutte n')
& Nbsp; farvel.
& Nbsp; -> CLOSE
Til slutt er det verdt å merke seg at unntakene vil generere en traceback på tilkoblingen.
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
& Nbsp; >>> connection.test_input ('Hei Jim 42 n') # doctest: + ellipse
& Nbsp; Traceback (siste samtale sist):
& Nbsp; ...
& Nbsp; Feiltype: hallo () tar på de fleste to argumenter (3 gitt)
& Nbsp;
& Nbsp; -> CLOSE
Kommando sløyfer
Bruke "MORE" -modus, kan kommandoer signaliserer at de ønsker å kreve alle fremtidige brukerundersøkelser. Vi vil gjennomføre en dum eksempel for å vise hvordan det fungerer.
Her er en kommando som implementerer en kalkulator.
& Nbsp; '.' >>> PROMPT =
& Nbsp; >>> def calc (tilkobling, * args):
& Nbsp; ... hvis args og args [0] == 'slutte':
& Nbsp; ... tilbake zc.monitor.QUIT_MARKER
& Nbsp; ...
& Nbsp; ... hvis args:
& Nbsp; ... connection.write (. Str (eval ('' bli med (args))))
& Nbsp; ... connection.write (' n')
& Nbsp; ...
& Nbsp; ... connection.write (spørsmål)
& Nbsp; ... tilbake zc.monitor.MORE_MARKER
Hvis vi registrerer denne kommandoen ...
& Nbsp; >>> zc.monitor.register (calc)
... Vi kan starte den, og vi får en melding.
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (tilkobling)
& Nbsp; >>> connection.test_input («calc n ')
& Nbsp ;.
Hvis vi deretter gi den mer innspill vi får resultatet pluss et annet spørsmål.
& Nbsp; >>> connection.test_input ('2 + 2 n')
& Nbsp; 4
& Nbsp ;.
& Nbsp; >>> connection.test_input ('4 * 2 n')
& Nbsp; åtte
& Nbsp ;.
Når vi er ferdig kan vi fortelle kalkulatoren til å la oss gå.
& Nbsp; >>> connection.test_input ('slutte n')
& Nbsp; -> CLOSE
Starte serveren
& Nbsp; >>> import tid
& Nbsp; >>> import zope.testing.loggingsupport, logging
& Nbsp; >>> loghandler = zope.testing.loggingsupport.InstalledHandler (
& Nbsp; ... Ingen, nivå = logging.INFO)
& Nbsp; >>> zc.monitor.start (9644)
& Nbsp; ('', 9644)
& Nbsp; >>> print loghandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; lytter på ('', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = None
& 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; lytter på ('127.0.0.1', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = None
& Nbsp; >>> time.sleep (0,1)
Binde seg til port 0:
& Nbsp; >>> adr = zc.monitor.start (0)
& Nbsp; >>> adr == zc.monitor.last_listener.address
& Nbsp; Sann
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = None
& Nbsp; >>> time.sleep (0,1)
Prøver å binde til en port i bruk:
& 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; lytter på ('127.0.0.1', 9644)
& Nbsp; zc.ngi.async.server ADVARSEL
& Nbsp; i stand til å høre på ('127.0.0.1', 9644)
& Nbsp; rot ADVARSEL
& Nbsp; ikke kan starte zc.monitor serveren fordi adressen ('127.0.0.1', 9644) er i bruk.
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = None
& Nbsp; >>> time.sleep (0,1)
& Nbsp; >>> loghandler.uninstall ()

Hva er nytt i denne utgaven:

  • Når bindende skjermen til en Unix-domene socket, fjerne en eksisterende stikkontakt på samme bane så bind er vellykket. Dette kan påvirke eksisterende bruk med hensyn til zopectl debug oppførsel, men vil være mer forutsigbar.

Hva er nytt i versjon 0.3.0:

  • Lagt til en forenklet registrering grensesnitt
  • .

Krav :

  • Python

Lignende programvare

sinfo
sinfo

14 Apr 15

check_dir
check_dir

11 May 15

mon
mon

3 Jun 15

imsniff
imsniff

3 Jun 15

Annen programvare fra utvikleren Jim Fulton

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.resumelb
zc.resumelb

20 Feb 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

Kommentarer til zc.monitor

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!