zc.monitor

צילום מסך תוכנה:
zc.monitor
פרטי תוכנה:
גרסה: 0.3.1
טען תאריך: 14 Apr 15
מפתחים: Jim Fulton
רשיון: ללא תשלום
פופולריות: 1

Rating: nan/5 (Total Votes: 0)

zc.monitor הוא שרת שמספק ממשק שורת הפקודה כדי לבקש פיסות מידע שונות & 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.
כדי לראות זאת, אנו ניצור תוסף שלום:
& Nbsp; >>> def שלום (חיבור, name = 'עולם'):
& Nbsp; ... "" "תגיד שלום
& Nbsp; ...
& Nbsp; ... ספק שם אם אתה לא העולם.
& Nbsp; ... "" "
& Nbsp; ... connection.write ("! Hi% s, נחמד לפגוש אותך n" שם%)
ולרשום אותו:
& Nbsp; >>> zc.monitor.register (שלום)
כאשר אנו לרשום פקודה, אנו יכולים לספק שם. כדי לראות זאת, אנו לרשום שלום שוב:
& Nbsp; >>> zc.monitor.register (שלום, 'היי')
עכשיו אנחנו יכולים לתת את פקודת שלום לשרת:
& Nbsp; >>> connection.test_input ("היי n ')
& Nbsp; עולם היי, נחמד לפגוש אותך!
& Nbsp; -> סגור
אנחנו יכולים לעבור שם:
& Nbsp; >>> חיבור = zc.ngi.testing.TextConnection ()
& Nbsp; >>> שרת = zc.monitor.Server (חיבור)
& Nbsp; >>> connection.test_input ('שלום ג'ים n')
& Nbsp; היי ג'ים, נחמד לפגוש אותך!
& Nbsp; -> סגור
השרת מגיע עם כמה פקודות בסיסיות. בואו לרשום אותם כדי שנוכל לראות מה הם עושים. אנו נשתמש בממשק רישום simplfied:
& Nbsp; >>> zc.monitor.register_basics ()
הראשון הוא את פקודת העזרה. מתן עזרה ללא קלט, נותן רשימה של פקודות זמינות:
& Nbsp; >>> חיבור = zc.ngi.testing.TextConnection ()
& Nbsp; >>> שרת = zc.monitor.Server (חיבור)
& Nbsp; >>> connection.test_input (' n עזרה')
& Nbsp; פקודות נתמכות:
& Nbsp; שלום - Say hello
& Nbsp; עזרה - קבל עזרה על פקודות שרת
& Nbsp; היי - Say hello
& Nbsp; אינטראקטיבי - הפעל מצב האינטראקטיבי של הצג
& Nbsp; להפסיק - צא הצג
& Nbsp; -> סגור
אנחנו יכולים לקבל עזרה מפורטת על ידי ציון שם הפקודה:
& Nbsp; >>> חיבור = zc.ngi.testing.TextConnection ()
& Nbsp; >>> שרת = zc.monitor.Server (חיבור)
& Nbsp; >>> connection.test_input ('n עזרה העזרה ')
& Nbsp; עזרה לעזרה:
& Nbsp;
& Nbsp; קבל עזרה על פקודות שרת
& 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 ('שלום n ')
& Nbsp; עולם היי, נחמד לפגוש אותך!
& Nbsp; >>> connection.test_input ('n ')
& Nbsp; עולם היי, נחמד לפגוש אותך!
& Nbsp; >>> connection.test_input ('שלום ג'ים n')
& Nbsp; היי ג'ים, נחמד לפגוש אותך!
& Nbsp; >>> connection.test_input ('n ')
& Nbsp; היי ג'ים, נחמד לפגוש אותך!
עכשיו נשתמש להפסיק כדי לסגור את החיבור.
& Nbsp; >>> connection.test_input ("להפסיק n ')
& Nbsp; להתראות.
& Nbsp; -> סגור
לבסוף, ראוי לציין כי חריגים יפיקו traceback על הקשר.
& Nbsp; >>> חיבור = zc.ngi.testing.TextConnection ()
& Nbsp; >>> שרת = zc.monitor.Server (חיבור)
& Nbsp; >>> connection.test_input ('שלום ג'ים 42 n') # doctest: + שלוש נקודות
& Nbsp; Traceback (השיחה האחרונה שעברה):
& Nbsp; ...
& Nbsp; TypeError: hello () לוקח לכל היותר 2 טיעונים (3 נתון)
& Nbsp;
& Nbsp; -> סגור
לולאות פיקוד
שימוש במצב "יותר", פקודות יכולות לאותת שהם רוצים לתבוע את כל קלט משתמש העתיד. אנחנו ליישם דוגמא טיפשית כדי להדגים כיצד זה עובד.
הנה פקודה המיישמת מחשבון.
& Nbsp; "." >>> PROMPT =
& Nbsp; >>> def calc (חיבור, * args):
& Nbsp; ... אם args וargs [0] == 'להפסיק':
& Nbsp; ... לחזור zc.monitor.QUIT_MARKER
& Nbsp; ...
& Nbsp; ... אם args:
& Nbsp; ... connection.write (. Str (eval ('' להצטרף (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 calc')
& 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; INFO 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; INFO 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; >>> addr = zc.monitor.start (0)
& Nbsp; >>> addr == zc.monitor.last_listener.address
& Nbsp; נכון
& 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; False
& Nbsp; >>> loghandler הדפסה
& Nbsp; INFO 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 ()

מה חדש בהודעה זו:

  • כאשר מחייבים את הצג ל שקע יוניקס-תחום, להסיר שקע קיים באותה הדרך כל כך נקשרים הוא מוצלח. זה עשוי להשפיע על שימוש הקיים ביחס לzopectl debug התנהגות, אבל יהיה יותר לחיזוי.

מה חדש בגרסת 0.3.0:

  • הוספת ממשק רישום פשוטה יותר
  • .

דרישות :

  • Python

תוכנה דומה

SqStat
SqStat

2 Jun 15

mon
mon

3 Jun 15

unified2
unified2

20 Feb 15

תוכנות אחרות של יזם Jim Fulton

zc.resumelb
zc.resumelb

20 Feb 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

zc.zope3recipes
zc.zope3recipes

14 Apr 15

תגובות ל zc.monitor

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!