# config terminal
(config)# interface ge1/1
(ge1/1)# shutdown
(ge1/1)# exit
(config)# exit
#
# config terminal
(config)# interface ge1/1
(ge1/1)# shutdown
(ge1/1)# exit
(config)# exit
#
# config terminal
(config)# interface ge1/1
(ge1/1)# no shutdown
(ge1/1)# exit
(config)# exit
#
# config terminal
(config)# interface ge1/1
(ge1/1)# shutdown
(ge1/1)# no shutdown
(ge1/1)# exit
(config)# exit
#
위와 같은 상황 처럼
비효율적으로 모드를 이동하여 소요시간이 오래 걸리게됨.
1차 방법 문제점 중에 명령 입력 전/후 모드 이동 문제가 있었다.
효율적으로 모드 이동을 하도록 접근이 필요했다.
규칙을 만들었다.
기준이 되는 모드가 있다.
기준이 되는 모드에서
명령을 입력하여
모드를 이동하고
다시 기준이되는 모드로 돌아와야된다.
순서 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
명령 | config terminal | interface ge1/1 | exit | end | |
모드 위치 | 기준 모드 (enable) | config | iface ge1/1 | config | 기준모드 (enable) |
모드에 대한 정의
와 모드로 이동하는 명령어
, 기준모드로 돌아가는 명령들
이 정의되어있다.
Class ModeBase(object):
def 모드명1(self):
return (
모드를_이동하기_위한_명령어들,
모드명들,
기준모드로_돌아가는_명령어들
)
def 모드명2(self):
return (
모드를_이동하기_위한_명령어들,
모드명들,
기준모드로_돌아가는_명령어들
)
Class ModeClass1(ModeBase):
def 모드명3(self):
return (
모드를_이동하기_위한_명령어들,
모드명들,
기준모드로_돌아가는_명령어들
)
모드_별칭_이름_1 = ModeClass1()
Class 기능1SubFeatureClass1(FeatureCommon):
def __init__(self):
self._모드 = 모드_별칭_이름_1
def 명령1(self, 필요한_데이터):
메세지.CLI = 메세지_CLI(self._모드.모드1, 필요한_데이터)
return 메세지
def 명령2(self, 필요한_데이터):
메세지.CLI = 메세지_CLI(self._모드.모드2, 필요한_데이터)
return 메세지
def 명령3(self, 필요한_데이터):
메세지.CLI = 메세지_CLI(self._모드.모드3, 필요한_데이터)
return 메세지
# config terminal
(config)# interface ge1/1
(ge1/1)# shutdown
(ge1/1)# no shutdown
(ge1/1)# exit
(config)# end
#
# config terminal
(config)# 모드1_이동_명령어
(config-모드1)# 모드2_이동_명령어
(config-모드1-모드2)# 명령1
(config-모드1-모드2)# 명령2
(config-모드1-모드2)# exit
(config-모드1)# 명령3
(config)# 명령4
(config)# end
#