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 привіт (підключення, ім'я = 'світ'):
І NBSP; ... "" "Скажи привіт
І NBSP; ...
І NBSP; ... Введіть ім'я, якщо ви не мир.
І NBSP; ... "" "
І NBSP; ... connection.write ("Привіт!% S, приємно познайомитися Я. п"% назву)
і зареєструвати його:
І NBSP; >>> zc.monitor.register (привіт)
Коли ми реєструємо команду, ми можемо надати ім'я. Щоб переконатися в цьому, ми будемо зареєструйтеся привіт знову:
І NBSP; >>> zc.monitor.register (привіт, "привіт")
Тепер ми можемо дати команду привіт сервера:
І NBSP; >>> connection.test_input ('привіт п')
І NBSP; Привіт світ, приємно познайомитися я!
І NBSP; -> ЗАКРИТИ
Ми можемо передати ім'я:
І NBSP; >>> з'єднання = zc.ngi.testing.TextConnection ()
І NBSP; >>> сервер = zc.monitor.Server (з'єднання)
І NBSP; >>> connection.test_input ('привіт Джим п')
І NBSP; Привіт Джим, приємно познайомитися я!
І NBSP; -> ЗАКРИТИ
Сервер поставляється з декількома основними командами. Давайте зареєструвати їх, щоб ми могли бачити те, що вони роблять. Ми будемо використовувати simplfied інтерфейс реєстрації:
І NBSP; >>> zc.monitor.register_basics ()
Перший командної допомогу. Надання допомоги без введення, дає список доступних команд:
І NBSP; >>> з'єднання = zc.ngi.testing.TextConnection ()
І NBSP; >>> сервер = zc.monitor.Server (з'єднання)
І NBSP; >>> connection.test_input ('Help п')
і NBSP; підтримуваних команд:
І NBSP; привіт - Скажи привіт
І NBSP; допомога - Отримати допомогу про команди сервера
І NBSP; привіт - Скажи привіт
І NBSP; інтерактивний - Увімкніть інтерактивному режимі монітора
І NBSP; кинути - Вийти з монітора
І NBSP; -> ЗАКРИТИ
Ми можемо отримати докладну довідку, вказавши ім'я команди:
І NBSP; >>> з'єднання = zc.ngi.testing.TextConnection ()
І NBSP; >>> сервер = zc.monitor.Server (з'єднання)
І NBSP; >>> connection.test_input ('допомога допомога п')
І NBSP; Довідка про допомогу:
І NBSP;
І NBSP; Отримати довідку по командах сервера
І NBSP;
І NBSP; За замовчуванням, список команд і резюме друкується. Надати
І NBSP; ім'я команди, щоб отримати докладну документацію для команди.
І NBSP;
І NBSP; -> ЗАКРИТИ
І NBSP; >>> з'єднання = zc.ngi.testing.TextConnection ()
І NBSP; >>> сервер = zc.monitor.Server (з'єднання)
І NBSP; >>> connection.test_input ('допомогу привіт п')
І NBSP; Допомога для привет:
І NBSP;
І NBSP; привіт
І NBSP;
І NBSP; Вкажіть ім'я, якщо ви не мир.
І NBSP;
І NBSP; -> ЗАКРИТИ
Інтерактивна команда перемикає монітор в інтерактивному режимі. Як видно з вищевикладеного, монітор зазвичай відповідає на однієї команди, а потім закриває з'єднання. У «інтерактивному режимі», з'єднання не буде закрито, поки не використовується кинути команду. Це може бути корисно при доступі монітор за допомогою Telnet для діагностики.
І NBSP; >>> з'єднання = zc.ngi.testing.TextConnection ()
І NBSP; >>> сервер = zc.monitor.Server (з'єднання)
І NBSP; >>> connection.test_input ('інтерактивний п')
І 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 ('привіт п')
І NBSP; Привіт світ, приємно познайомитися я!
І NBSP; >>> connection.test_input (' п')
І NBSP; Привіт світ, приємно познайомитися я!
І NBSP; >>> connection.test_input ('привіт Джим п')
І NBSP; Привіт Джим, приємно познайомитися я!
І NBSP; >>> connection.test_input (' п')
І NBSP; Привіт Джим, приємно познайомитися я!
Тепер ми будемо використовувати вийти, щоб закрити з'єднання.
І NBSP; >>> connection.test_input ('кинути N')
І NBSP; До побачення.
І NBSP; -> ЗАКРИТИ
Нарешті, варто відзначити, що виключення будуть генерувати відслідковує на зв'язку.
І NBSP; >>> з'єднання = zc.ngi.testing.TextConnection ()
І NBSP; >>> сервер = zc.monitor.Server (з'єднання)
І NBSP; >>> connection.test_input ('привіт Джим 42 п') # doctest: + Многоточие
І NBSP; Traceback (останній виклик останнього):
І NBSP; ...
І NBSP; Помилка типу: привіт () приймає більше 2-х аргументів (3 наведені)
І NBSP;
І NBSP; -> ЗАКРИТИ
Командні цикли
Використання режиму "MORE", команди можуть сигналізувати, що вони хочуть, щоб претендувати на всю майбутню користувача введення. Ми реалізуємо дурний приклад, щоб продемонструвати, як це працює.
Ось команда, яка реалізує калькулятор.
І NBSP; >>> Запит = '.'
І NBSP; >>> Def Calc (електронні сполуки, * аргументи):
І NBSP; ... якщо аргументи і аргументи [0] == 'кинути':
І NBSP; ... повернутися zc.monitor.QUIT_MARKER
І NBSP; ...
І NBSP; ... якщо аргументів:
І NBSP; ... connection.write (вул. (Eval ('' приєднатися (аргументи))))
І NBSP; ... connection.write (' п')
І NBSP; ...
І NBSP; ... connection.write (Prompt)
І NBSP; ... повернутися zc.monitor.MORE_MARKER
Якщо ми реєструємо цю команду ...
І NBSP; >>> zc.monitor.register (Calc)
... Ми можемо викликати його, і ми отримуємо запрошення.
І NBSP; >>> з'єднання = zc.ngi.testing.TextConnection ()
І NBSP; >>> сервер = zc.monitor.Server (з'єднання)
І NBSP; >>> connection.test_input ('вапняно п')
І NBSP;.
Якщо ми потім дати йому більший внесок ми отримаємо результат плюс ще рядка.
І NBSP; >>> connection.test_input ('2 + 2 N')
І NBSP; 4
І NBSP;.
І NBSP; >>> connection.test_input ('4 * 2 п')
І 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 INFO
І 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 INFO
І 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; Правда
І 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 INFO
І 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 налагодження поведінку, але буде більш передбачуваним.

Що нового у версії 0.3.0:

  • Додана спрощений інтерфейс реєстрації
  • .

Вимоги

  • Python

Схожі програми

arpwatch NG
arpwatch NG

2 Jun 15

Air
Air

11 May 15

Zeitgeist Explorer
Zeitgeist Explorer

20 Feb 15

Інші програми розробника Jim Fulton

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

zc.resumelb
zc.resumelb

20 Feb 15

zc.monitor

Коментар не знайдено
додати коментар
Включіть картинки!