zc.monitor

소프트웨어 스크린 샷:
zc.monitor
소프트웨어 정보:
버전: 0.3.1
업로드 날짜: 14 Apr 15
개발자: Jim Fulton
라이센스: 무료
인기: 1

Rating: nan/5 (Total Votes: 0)

. 서버가 zc.ngi 기반이기 때문에, 우리는 그것을 보여주기 위해 zc.ngi 테스트 인프라를 사용할 수 있습니다

zc.monitor은 정보 & NBSP 다양한 비트를 요청하기 위해 명령 줄 인터페이스를 제공하는 서버입니다.
& NBSP; >>> 수입 zc.ngi.testing
& NBSP; >>> 수입 zc.monitor
& NBSP; >>> 연결 = zc.ngi.testing.TextConnection ()
& NBSP; >>> 서버 = zc.monitor.Server (연결)
서버는 명령의 확장 세트를 지원합니다. zope.component 패키지에 정의 된대로 그것은, 이름 zc.monitor.interfaces.IMonitorPlugin "유틸리티"로 명령을 찾습니다.
이를 확인하기 위해, 우리는 헬로 플러그인을 만들 것이다 :
& NBSP; >>> 데프 안녕하세요 (연결, 이름 = '세계') :
& NBSP; ... "" "인사
& NBSP; ...
& NBSP; ... 당신이 세상하지 않으면 이름을 제공합니다.
& NBSP; ... "" "
& NBSP; ... connection.write ( "! 안녕 %의, 나중에 만나서 반갑습니다 n"% 이름)
하고 등록 :
& NBSP; >>> zc.monitor.register (안녕하세요)
우리는 명령을 등록 할 때, 우리는 이름을 제공 할 수 있습니다. 이를 확인하기 위해, 우리는 다시 인사 등록합니다 :
& NBSP; >>> zc.monitor.register (안녕하세요 '안녕하세요')
이제 우리는 서버에 인사 명령을 제공 할 수 있습니다 :
& NBSP; >>> connection.test_input ( ' 안녕 N')
& NBSP; 안녕하세요 세계, 나중에 만나서 반갑습니다!
& NBSP; -> CLOSE
우리는 이름을 전달할 수 있습니다 :
& NBSP; >>> 연결 = zc.ngi.testing.TextConnection ()
& NBSP; >>> 서버 = zc.monitor.Server (연결)
& NBSP; >>> connection.test_input ( '안녕하세요 짐 n')
& NBSP; 안녕 짐, 나중에 만나서 반갑습니다!
& NBSP; -> CLOSE
서버는 몇 가지 기본 명령어와 함께 제공됩니다. 우리는 그들이 무엇을 볼 수 있도록의이이를 ​​등록 할 수 있습니다. 우리는 simplfied 등록 인터페이스를 사용합니다 :
& NBSP; >>> zc.monitor.register_basics ()
첫 번째는 도움말 명령입니다. 사용 가능한 명령 목록은 입력없이 도움을 준다주기 :
& NBSP; >>> 연결 = zc.ngi.testing.TextConnection ()
& NBSP; >>> 서버 = zc.monitor.Server (연결)
& NBSP; >>> connection.test_input ( '도움말 없음')
& NBSP; 지원 명령 :
& NBSP; 안녕하세요 - 인사
& NBSP; 도움말 - 서버 명령에 대한 지원을받을 수
인사 - 안녕하세요; & NBSP
& NBSP; 대화 형 - 모니터의 대화 형 모드 켜기
& NBSP; 종료 - 모니터를 종료
& NBSP; -> CLOSE
우리는 명령 이름을 지정하여 자세한 도움을받을 수 있습니다 :
& NBSP; >>> 연결 = zc.ngi.testing.TextConnection ()
& NBSP; >>> 서버 = zc.monitor.Server (연결)
& NBSP; >>> connection.test_input ( '도움말 도움말 없음')
& NBSP; 도움을 도움말 :
& NBSP;
& NBSP; 서버 명령에 대한 지원을받을 수
& NBSP;
& NBSP; 기본적으로 명령과 요약의 목록이 출력됩니다. 제공
& NBSP; 명령 이름은 명령에 대한 자세한 설명서를 얻을 수 있습니다.
& NBSP;
& NBSP; -> CLOSE
& NBSP; >>> 연결 = zc.ngi.testing.TextConnection ()
& NBSP; >>> 서버 = zc.monitor.Server (연결)
& NBSP; >>> connection.test_input ( '도움말 안녕하세요 없음')
& NBSP; 안녕하세요 도움말 :
& NBSP;
& NBSP; 인사
& NBSP;
& NBSP; 당신이 세상하지 않으면 이름을 제공합니다.
& NBSP;
& NBSP; -> CLOSE
대화 형 명령은 대화 형 모드로 모니터를 전환합니다. 전술 한 바와 같이, 모니터는 일반적으로 하나의 명령에 응답하고 연결을 닫는다. 종료 명령이 사용될 때까지 "대화 형 모드"에서 연결이 닫혀 있지 않습니다. 진단 텔넷을 통한 모니터 접근 할 때 유용 할 수있다.
& 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;
닫힌 연결을 나타낼 것 - "> CLOSE"명령의 결과로 끝나지 않았 음을 알 수 있습니다.
또한 대화 형 모드를 사용하면이 명령을 반복 할 수 있음을 알 수 있습니다.
& NBSP; >>> connection.test_input ( '안녕하세요 없음')
& 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; -> CLOSE
마지막으로, 예외가 연결에 대한 역 추적을 생성 할 것을 주목할 가치가있다.
& NBSP; >>> 연결 = zc.ngi.testing.TextConnection ()
& NBSP; >>> 서버 = zc.monitor.Server (연결)
& NBSP; >>> connection.test_input ( '안녕하세요 짐 (42) n') # 1 doctest가 : + 줄임표
& NBSP; 역 추적 (가장 최근 통화 마지막) :
& NBSP; ...
& NBSP; 형식 오류 :) (안녕하세요 걸리는 대부분의 2 인자 (3 주어진)에서
& NBSP;
& NBSP; -> CLOSE
명령 루프
"추가"모드를 사용하여 명령은 앞으로 모든 사용자 입력을 주장 할 것을 통지 할 수 있습니다. 우리는 그것이 작동하는 방법을 설명하는 바보 같은 예를 구현합니다.
다음은 계산기를 구현하는 명령입니다.
& NBSP; '.'>>> PROMPT =
& NBSP; >>> 데프 CALC (연결, * 인수)
& NBSP; ... 인수 및 인수 [0] == '종료'경우 :
& NBSP; ... zc.monitor.QUIT_MARKER를 반환
& NBSP; ...
& NBSP; ... 인수하는 경우 :
& NBSP; ... connection.write (. STR (평가 ( ''참여 (인수))))
& NBSP; ... connection.write ( ' n')이다
& 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 ( '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; -> CLOSE
서버를 시작합니다
& 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 정보
& 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 정보
& 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 트루 (True)
& 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 정보
& NBSP;에 듣고 ( '127.0.0.1'을, 9644)
& NBSP; zc.ngi.async.server 경고
& NBSP;에서 수신 할 수 없습니다 ( '127.0.0.1', 9644)
& NBSP; 루트 경고
& NBSP; 주소 ( '127.0.0.1', 9644)이 사용하기 때문에 없습니다 zc.monitor 서버를 시작합니다.
& NBSP; >>> zc.monitor.last_listener.close ()
& NBSP; >>> zc.monitor.last_listener = 없음
& NBSP; >>> time.sleep (0.1)
& NBSP; >>> loghandler.uninstall ()

이 릴리스의 새로운 기능입니다 : 유닉스 도메인 소켓에 모니터를 결합 할 때

이 같은 경로에 기존의 소켓을 제거 그래서 바인드 성공합니다. 이 zopectl 디버그 행동에 대한 기존의 사용에 영향을 미칠 수 있지만, 예측됩니다.

이 버전 0.3.0의 새로운 기능 :

이 단순화 된 등록 인터페이스를 추가했습니다.

이 요구 사항 :

이 파이썬

유사한 소프트웨어

개발자의 기타 소프트웨어 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

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!