zc.monitor

Software skärmdump:
zc.monitor
Mjukvaruinformation:
Version: 0.3.1
Ladda upp dagen: 14 Apr 15
Utvecklare: Jim Fulton
Licens: Gratis
Popularitet: 59

Rating: nan/5 (Total Votes: 0)

zc.monitor är en server som tillhandahåller ett kommandoradsgränssnitt för att begära olika bitar av information. & Nbsp; Servern är zc.ngi baserad, så att vi kan använda zc.ngi testning infrastrukturen att visa den.
& Nbsp; >>> import zc.ngi.testing
& Nbsp; >>> import zc.monitor
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
Servern stödjer en utbyggbar uppsättning kommandon. Det ser upp kommandon som heter zc.monitor.interfaces.IMonitorPlugin "verktyg", enligt definitionen i zope.component paketet.
För att se detta, kommer vi skapa ett hej plugin:
& Nbsp; >>> def hello (anslutning, name = 'världen'):
& Nbsp; ... "" "Säg hej
& Nbsp; ...
& Nbsp; ... Ge ett namn om du inte är i världen.
& Nbsp; ... "" "
& Nbsp; ... connection.write ("Hej% s, trevligt att träffa ya n"% name)
och registrera den:
& Nbsp; >>> zc.monitor.register (hello)
När vi registrerar ett kommando, kan vi erbjuda ett namn. För att se det här, vi ska registrera hej igen:
& Nbsp; >>> zc.monitor.register (hej, 'hej')
Nu kan vi ge hello kommandot till servern:
& Nbsp; >>> connection.test_input ("hej n ')
& Nbsp; Hej världen, trevligt att träffa ya!
& Nbsp; -> STÄNG
Vi kan passera ett namn:
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
& Nbsp; >>> connection.test_input ("Hej Jim n ')
& Nbsp; Hej Jim, trevligt att träffa ya!
& Nbsp; -> STÄNG
Servern kommer med några grundläggande kommandon. Låt oss registrera dem så att vi kan se vad de gör. Vi kommer att använda simplfied registreringsgränssnitt:
& Nbsp; >>> zc.monitor.register_basics ()
Den första är kommandot help. Ge hjälp utan input, ger en lista över tillgängliga kommandon:
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
& Nbsp; >>> connection.test_input ("help n ')
& nbsp; stöds kommandon:
& Nbsp; hello - Säg hej
& Nbsp; hjälp - Få hjälp om serverkommandon
& Nbsp; hi - Säg hej
& Nbsp; interaktiv - Slå på monitorns interaktivt läge
& Nbsp; quit - Avsluta skärmen
& Nbsp; -> STÄNG
Vi kan få detaljerad hjälp genom att ange ett kommando namn:
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
& Nbsp; >>> connection.test_input ("help help n ')
& Nbsp; Hjälp om hjälp:
& Nbsp;
& Nbsp; Få hjälp om serverkommandon
& Nbsp;
& Nbsp; Som standard är en lista över kommandon och sammanfattningar tryckt. Ge
& Nbsp; ett kommandonamn för att få detaljerad dokumentation för ett kommando.
& Nbsp;
& Nbsp; -> STÄNG
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
& Nbsp; >>> connection.test_input ("Hjälp Hej n ')
& Nbsp; Hjälp för hello:
& Nbsp;
& Nbsp; Säg hej
& Nbsp;
& Nbsp; Ange ett namn om du inte är i världen.
& Nbsp;
& Nbsp; -> STÄNG
Den interaktiva kommandot växlar skärmen i interaktivt läge. Som framgår ovan, monitorn svarar oftast till ett enda kommando och sedan stänger förbindelsen. I "interaktivt läge", är sambandet inte stängd tills avsluta kommandot används. Detta kan vara användbart vid åtkomst monitorn via telnet för diagnostik.
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
& Nbsp; >>> connection.test_input ("interaktiva n ')
& Nbsp; interaktiva läget på. Använd "quit" För att avsluta.
& Nbsp; >>> connection.test_input ("hjälpa interaktiva n ')
& Nbsp; Hjälp för interaktiv:
& Nbsp;
& Nbsp; Aktivera monitorns interaktivt läge
& Nbsp;
& Nbsp; Normalt släpper monitorn anslutningen efter ett enda kommando.
& Nbsp; Genom att delta i interaktivt läge, skärmen kommer inte avsluta anslutningen
& Nbsp; tills du anger "quit" kommandot.
& Nbsp;
& Nbsp; I interaktivt läge, en tom rad upprepar det senaste kommandot.
& Nbsp;
& Nbsp; >>> connection.test_input ("bidra avsluta n ')
& Nbsp; Hjälp för sluta:
& Nbsp;
& Nbsp; Avsluta monitorn
& Nbsp;
& Nbsp; Det är bara är verkligen användbart i interaktivt läge (se "interaktiva"
& Nbsp; kommando).
& Nbsp;
Observera att resultatet av kommandona inte slutade med "-> CLOSE", som skulle ha indikerat en sluten förbindelse.
Lägg också märke till att den interaktiva läget kan du upprepa kommandon.
& Nbsp; >>> connection.test_input ("Hej n ')
& Nbsp; Hej världen, trevligt att träffa ya!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hej världen, trevligt att träffa ya!
& Nbsp; >>> connection.test_input ("Hej Jim n ')
& Nbsp; Hej Jim, trevligt att träffa ya!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hej Jim, trevligt att träffa ya!
Nu kommer vi att använda quit för att avsluta anslutningen.
& Nbsp; >>> connection.test_input ("quit n ')
& Nbsp; Adjö.
& Nbsp; -> STÄNG
Slutligen är det värt att notera att undantagen kommer att generera ett uppföljnings på anslutningen.
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
& Nbsp; >>> connection.test_input ("Hej Jim 42 n ') # doctest: + ELLIPS
& Nbsp; återsöknings (senaste samtal sist):
& Nbsp; ...
& Nbsp; Typfel: hello () tar högst 2 argument (3 ges)
& Nbsp;
& Nbsp; -> STÄNG
Kommando slingor
Använda "MER" -läge, kan kommandon signalerar att de vill göra anspråk all framtida användarinmatning. Vi ska genomföra en dum exempel för att visa hur det fungerar.
Här är ett kommando som implementerar en miniräknare.
& Nbsp; '.' >>> PROMPT =
& Nbsp; >>> def calc (anslutning, * args):
& Nbsp; ... om args och args [0] == "quit":
& Nbsp; ... tillbaka zc.monitor.QUIT_MARKER
& Nbsp; ...
& Nbsp; ... om args:
& Nbsp; ... connection.write (. Str (eval ('' join (args))))
& Nbsp; ... connection.write (' n')
& Nbsp; ...
& Nbsp; ... connection.write (PROMPT)
& Nbsp; ... tillbaka zc.monitor.MORE_MARKER
Om vi ​​registrerar detta kommando ...
& Nbsp; >>> zc.monitor.register (calc)
... Kan vi åberopa det och vi får en prompt.
& Nbsp; >>> anslutning = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (anslutning)
& Nbsp; >>> connection.test_input ("calc n ')
& Nbsp ;.
Om vi ​​sedan ge den mer input vi får resultatet plus ett annat prompt.
& Nbsp; >>> connection.test_input ("2 + 2 n ')
& Nbsp; 4
& Nbsp ;.
& Nbsp; >>> connection.test_input ("4 * 2 n ')
& Nbsp; 8
& Nbsp ;.
När vi är klara kan vi berätta räknaren att låta oss gå.
& Nbsp; >>> connection.test_input ("quit n ')
& Nbsp; -> STÄNG
Starta server
& Nbsp; >>> importtiden
& Nbsp; >>> import zope.testing.loggingsupport, loggning
& Nbsp; >>> loghandler = zope.testing.loggingsupport.InstalledHandler (
& Nbsp; ... Ingen, nivå = logging.INFO)
& Nbsp; >>> zc.monitor.start (9644)
& Nbsp; ('', 9644)
& Nbsp; >>> utskrifts loghandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; lyssna 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; >>> utskrifts loghandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; lyssna på ("127.0.0.1", 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = None
& Nbsp; >>> time.sleep (0,1)
Bind till port 0:
& Nbsp; >>> addr = 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)
Att försöka binda till en hamn 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; Falskt
& Nbsp; >>> utskrifts loghandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; lyssna på ("127.0.0.1", 9644)
& Nbsp; zc.ngi.async.server VARNING
& Nbsp; oförmögen att lyssna på ("127.0.0.1", 9644)
& Nbsp; root VARNING
& Nbsp; inte kan starta zc.monitor server eftersom adressen ("127.0.0.1", 9644) är i bruk.
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = None
& Nbsp; >>> time.sleep (0,1)
& Nbsp; >>> loghandler.uninstall ()

Vad är nytt i den här versionen:

  • När bindande skärmen till en Unix-domänuttaget, ta bort en befintlig sockel på samma väg så bind är framgångsrik. Detta kan påverka befintlig användning med avseende på zopectl felsöka beteende, men kommer att vara mer förutsägbart.

Vad är nytt i version 0.3.0:

  • Lade till en förenklad registreringsgränssnitt
  • .

Krav :

  • Python

Liknande mjukvara

Yong
Yong

3 Jun 15

gocept.thermosnake
gocept.thermosnake

12 May 15

mon
mon

3 Jun 15

Annan programvara för utvecklare Jim Fulton

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

zc.resumelb
zc.resumelb

20 Feb 15

Kommentarer till zc.monitor

Kommentarer hittades inte
Kommentar
Slå på bilder!