zc.monitor

Software screenshot:
zc.monitor
Software detaljer:
Version: 0.3.1
Upload dato: 14 Apr 15
Udvikler: Jim Fulton
Licens: Gratis
Popularitet: 1

Rating: nan/5 (Total Votes: 0)

zc.monitor er en server, der giver en kommando-line interface til at anmode om forskellige stumper af information. & Nbsp; Serveren er zc.ngi baseret, så vi kan bruge zc.ngi test infrastruktur til at demonstrere det.
& Nbsp; >>> import zc.ngi.testing
& Nbsp; >>> import zc.monitor
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
Serveren understøtter en Extensible sæt af kommandoer. Det ser op kommandoer som navngivne zc.monitor.interfaces.IMonitorPlugin "forsyningsvirksomhedsdirektivet", som defineret af zope.component pakken.
For at se dette, vil vi skabe en hello plugin:
& Nbsp; >>> def hej (tilslutning, name = "verden"):
& Nbsp; ... "" "Hils
& Nbsp; ...
& Nbsp; ... Giv et navn, hvis du ikke er i verden.
& Nbsp; ... "" "
& Nbsp; ... connection.write ("! Hej% s, rart at møde ya n"% navn)
og registrere det:
& Nbsp; >>> zc.monitor.register (Hej)
Når vi registrerer en kommando, kan vi tilbyde et navn. For at se denne, vil vi registrere hej igen:
& Nbsp; >>> zc.monitor.register (hej, "hi")
Nu kan vi give goddag kommando til serveren:
& Nbsp; >>> connection.test_input (hi n ')
& Nbsp; Hej verden, rart at møde ya!
& Nbsp; -> LUK
Vi kan videregive et navn:
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
& Nbsp; >>> connection.test_input ('Hello Jim n')
& Nbsp; Hej Jim, rart at møde ya!
& Nbsp; -> LUK
Serveren leveres med et par grundlæggende kommandoer. Lad os registrere dem, så vi kan se, hvad de gør. Vi bruger den simplfied registrering interface:
& Nbsp; >>> zc.monitor.register_basics ()
Den første er den hjælp kommando. Give hjælp uden input, giver en liste over tilgængelige kommandoer:
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
& Nbsp; >>> connection.test_input ("hjælp n ')
& nbsp; understøttede kommandoer:
& Nbsp; hej - Sig goddag
& Nbsp; Hjælp - Få hjælp om server kommandoer
& Nbsp; hi - Sig goddag
& Nbsp; interaktiv - Slå skærmens interaktiv tilstand
& Nbsp; quit - Quit skærmen
& Nbsp; -> LUK
Vi kan få detaljeret hjælp ved at angive en kommando navn:
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
& Nbsp; >>> connection.test_input ("Hjælp Hjælp n ')
& Nbsp; Hjælp til hjælp:
& Nbsp;
& Nbsp; Få hjælp om server kommandoer
& Nbsp;
& Nbsp; Som standard udskrives en liste over kommandoer og resuméer. Giv
& Nbsp; en kommando navn for at få detaljeret dokumentation for en kommando.
& Nbsp;
& Nbsp; -> LUK
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
& Nbsp; >>> connection.test_input ("hjælp hej n ')
& Nbsp; Hjælp til goddag:
& Nbsp;
& Nbsp; Sig goddag
& Nbsp;
& Nbsp; Angiv et navn, hvis du ikke er i verden.
& Nbsp;
& Nbsp; -> LUK
Den interaktive kommando skifter skærmen i interaktiv tilstand. Som det ses ovenfor, monitoren normalt reagerer på en enkelt kommando, og derefter lukker forbindelsen. I "interaktiv tilstand", er forbindelsen ikke lukket, indtil Afslut kommandoen bruges. Dette kan være nyttigt ved adgang til skærm via telnet til diagnose.
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
& Nbsp; >>> connection.test_input ("interaktiv n ')
& Nbsp; interaktiv tilstand på. Brug "quit" for at afslutte.
& Nbsp; >>> connection.test_input ('hjælpe interaktiv n')
& Nbsp; Hjælp til interaktiv:
& Nbsp;
& Nbsp; Slå skærmens interaktiv tilstand
& Nbsp;
& Nbsp; Normalt monitoren frigiver forbindelsen efter en enkelt kommando.
& Nbsp; Ved at deltage i interaktiv tilstand, vil monitoren ikke afbryde forbindelsen
& Nbsp; indtil du indtaster "quit" kommando.
& Nbsp;
& Nbsp; i interaktiv tilstand, en tom linje gentager den sidste kommando.
& Nbsp;
& Nbsp; >>> connection.test_input ('hjælpe afslutte n')
& Nbsp; Hjælp til holde op:
& Nbsp;
& Nbsp; Afslut skærmen
& Nbsp;
& Nbsp; Det er kun virkelig nyttige i interaktiv tilstand (se "interaktiv"
& Nbsp; kommando).
& Nbsp;
Bemærk, at resultatet af kommandoerne ikke ender med "-> LUK", hvilket ville have indikeret en lukket forbindelse.
Bemærk også, at den interaktive tilstand giver dig mulighed for at gentage kommandoer.
& Nbsp; >>> connection.test_input ("hello n ')
& Nbsp; Hej verden, rart at møde ya!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hej verden, rart at møde ya!
& Nbsp; >>> connection.test_input ('Hello Jim n')
& Nbsp; Hej Jim, rart at møde ya!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hej Jim, rart at møde ya!
Nu vil vi bruge Afslut for at lukke forbindelsen.
& Nbsp; >>> connection.test_input ("Afslut n ')
& Nbsp; Farvel.
& Nbsp; -> LUK
Endelig er det værd at bemærke, at undtagelser vil generere en tilbagesporingstabel på forbindelsen.
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
& Nbsp; >>> connection.test_input ('Hello Jim 42 n') # doctest: + ellipse
& Nbsp; Tilbagesporing (seneste opkald sidste):
& Nbsp; ...
& Nbsp; TypeError: hej () tager højst 2 argumenter (3 givet)
& Nbsp;
& Nbsp; -> LUK
Command sløjfer
Brug af "mere" mode, kan kommandoer signalere, at de ønsker at kræve al fremtidig brugerinput. Vi vil gennemføre en fjollet eksempel at vise, hvordan det fungerer.
Her er en kommando, der implementerer en lommeregner.
& Nbsp; ".« >>> PROMPT =
& Nbsp; >>> def Calc (tilslutning, * args):
& Nbsp; ... hvis args og args [0] == 'Afslut':
& Nbsp; ... tilbage zc.monitor.QUIT_MARKER
& Nbsp; ...
& Nbsp; ... hvis args:
& Nbsp; ... connection.write (str. (Eval ('' deltage (args))))
& Nbsp; ... connection.write (' n')
& Nbsp; ...
& Nbsp; ... connection.write (PROMPT)
& Nbsp; ... tilbage zc.monitor.MORE_MARKER
Hvis vi registrere denne kommando ...
& Nbsp; >>> zc.monitor.register (calc)
... Vi kan påberåbe sig det, og vi får en prompt.
& Nbsp; >>> forbindelse = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (forbindelse)
& Nbsp; >>> connection.test_input ("calc n ')
& Nbsp ;.
Hvis vi så give det mere input får vi resultatet plus en anden prompt.
& Nbsp; >>> connection.test_input (2 + 2 n ')
& Nbsp; 4
& Nbsp ;.
& Nbsp; >>> connection.test_input (4 * 2 n ')
& Nbsp; 8
& Nbsp ;.
Når vi er færdige, vi kan fortælle lommeregneren at lade os gå.
& Nbsp; >>> connection.test_input ("Afslut n ')
& Nbsp; -> LUK
Start server
& Nbsp; >>> import tid
& Nbsp; >>> import zope.testing.loggingsupport, logning
& Nbsp; >>> loghandler = zope.testing.loggingsupport.InstalledHandler (
& Nbsp; ... Ingen, niveau = 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 = Ingen
& 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 = Ingen
& Nbsp; >>> time.sleep (0,1)
Bind til port 0:
& Nbsp; >>> adr = zc.monitor.start (0)
& Nbsp; >>> adr == zc.monitor.last_listener.address
& Nbsp; Sand
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Ingen
& Nbsp; >>> time.sleep (0,1)
Forsøger at binde til en havn i brug:
& 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 at lytte på ("127.0.0.1", 9644)
& Nbsp; root ADVARSEL
& Nbsp; ikke kan starte zc.monitor server fordi adressen ("127.0.0.1", 9644) er i brug.
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Ingen
& Nbsp; >>> time.sleep (0,1)
& Nbsp; >>> loghandler.uninstall ()

Hvad er nyt i denne udgivelse:

  • Når binding skærmen til en Unix-domæne socket, fjerne en eksisterende sokkel på samme vej, så det binder lykkes. Dette kan påvirke eksisterende anvendelse med hensyn til zopectl debug adfærd, men vil være mere forudsigelig.

Hvad er nyt i version 0.3.0:

  • Tilføjet en forenklet registrering grænseflade
  • .

Krav :

  • Python

Lignende software

check_ssl_cert
check_ssl_cert

27 Sep 15

lm_sensors
lm_sensors

28 Sep 15

ViperDB
ViperDB

3 Jun 15

arpwatch NG
arpwatch NG

2 Jun 15

Andre software developer Jim Fulton

zc.resumelb
zc.resumelb

20 Feb 15

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

Kommentarer til zc.monitor

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!