Junos PyEZ 애플리케이션에서 인라인 또는 외부 테이블과 뷰 로드
요약 사전 정의된 테이블이나 인라인 또는 외부 사용자 지정 테이블을 Junos PyEZ 애플리케이션으로 가져옵니다.
Junos PyEZ 테이블 및 뷰는 Junos 디바이스를 구성하거나 운영 명령 출력 또는 구성 데이터에서 특정 정보를 추출하는 간단하고 효율적인 방법을 제공합니다. Junos PyEZ는 애플리케이션에서 사용할 수 있는 사전 정의된 운영 테이블 및 뷰 세트를 제공하거나, 사용자 지정 운영 또는 구성 테이블 및 뷰를 생성할 수도 있습니다.
Python 애플리케이션에서 직접 빠른 인라인 테이블 및 뷰를 여러 줄 문자열로 만들거나, 외부 파일에 하나 이상의 테이블 및 뷰 정의를 만들고 테이블을 Python 애플리케이션으로 가져올 수 있습니다. 인라인 테이블 및 뷰는 사용하기가 더 간단하지만 외부 파일을 사용하면 재사용 가능한 중앙 라이브러리를 만들 수 있습니다.
Python 애플리케이션에서 Junos PyEZ의 사전 정의된 테이블 및 뷰를 사용하려면 테이블을 애플리케이션으로 가져와야 합니다. 사용자 지정 테이블 및 뷰를 사용하려면 테이블 및 뷰 정의를 만든 다음, 정의가 모듈 내부 또는 외부에 있는지 여부에 따라 정의를 응용 프로그램으로 로드하거나 가져와야 합니다. 다음 섹션에서는 모듈의 내부 및 외부에 있는 테이블 및 뷰에 대한 이 프로세스를 간략하게 설명합니다.
Junos PyEZ의 사전 정의된 테이블 및 뷰 가져오기
Junos PyEZ jnpr.junos.op 모듈 및 jnpr.junos.command 모듈은 몇 가지 일반적인 운영 RPC 및 명령에 대해 사전 정의된 테이블 및 뷰 정의를 제공합니다. Python 애플리케이션에서 Junos PyEZ의 사전 정의된 테이블 및 뷰를 사용하려면 애플리케이션에 적절한 import 문을 포함해야 합니다. Junos PyEZ Device 클래스 가져오기와 함께 필요한 테이블도 가져와야 합니다.
다음 예제에서는 모듈에서 사전 정의된 운영 테이블 EthPortTable을 가져옵니다.jnpr.junos.op.ethport
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
테이블 및 뷰 정의를 가져온 후 테이블 및 뷰 사용에 설명된 대로 사용할 수 있습니다. 다음 예제에서는 테이블에 정의된 RPC에 대한 데이터를 검색한 다음 인터페이스 이름과 작동 상태를 출력합니다.
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
with Device(host='router1.example.net') as dev:
eth = EthPortTable(dev)
eth.get()
for item in eth:
print ("{}: {}".format(item.name, item.oper))
Junos PyEZ의 사전 정의된 테이블 및 뷰에 대한 자세한 내용은 사전 정의된 Junos PyEZ 운영 테이블(구조화된 출력)을 참조하십시오.
인라인 테이블 및 뷰 로드Load Inline Tables and Views
Junos PyEZ 애플리케이션에서 사용자 지정 인라인 테이블 및 뷰를 생성, 로드 및 사용하려면:
테이블 및 뷰 정의가 로드된 후에는 모듈에서 인라인 또는 외부 테이블을 사용하는 방법에 차이가 없습니다. 자세한 내용은 테이블 및 뷰 사용을 참조하십시오.
외부 테이블 및 뷰 가져오기Import External Tables and Views
외부 테이블 및 뷰 정의는 Junos PyEZ 애플리케이션 외부에 있는 파일에 배치됩니다. 외부 사용자 지정 테이블 및 뷰를 생성하고 Junos PyEZ 애플리케이션으로 가져오려면 다음을 수행합니다.
테이블 및 뷰 정의가 로드된 후에는 모듈에서 인라인 또는 외부 테이블을 사용하는 방법에 차이가 없습니다. 자세한 내용은 테이블 및 뷰 사용을 참조하십시오.
테이블 및 뷰 사용
테이블 및 뷰 정의를 로드하거나 가져온 후 미리 정의된 테이블, 사용자 지정 인라인 또는 사용자 지정 외부 테이블을 동일한 방식으로 사용할 수 있습니다.
테이블을 사용하려면 다음을 수행합니다.
다음 예에서는 사용자 지정 외부 Table을 UserTable가져옵니다. 응용 프로그램은 디바이스에 연결하고 테이블의 get() 메서드를 호출하여 계층 수준에서 개체를 [edit system login] 검색합니다user. 그런 다음 애플리케이션은 각 사용자 이름과 해당 로그인 클래스를 인쇄합니다.
from jnpr.junos import Device
from myTables.ConfigTables import UserTable
with Device(host='router.example.com') as dev:
users = UserTable(dev)
users.get()
for account in users:
print("Username is {}\nUser class is {}".format(account.username, account.userclass))
Junos PyEZ 테이블 사용에 대한 자세한 내용은 다음 주제를 참조하십시오.