반응형
Rackspace Nova Client 를 사용하여 API 서버에 호출하는 경로
1. novaclient/shell.main() 이 entry point 임
2. novaclient/v1_1/shell.do_boot() 를 호출
- instance 생성시에 "nova boot ....." 처럼 호출하면 "do_" 를 붙힌 메소드가 호출된다.
3. novaclient/v1_1/client.py 를 이용하여 novaclient/v1_1/servers.ServerManager.create() 를 호출
- novaclient/v1_1/servers.ServerManager 는 novaclient/v1_1/base.BootingManagerWithFind 를
상속받았으므로 self._boot() 를 호출하면 novaclient/v1_1/base.BootingManagerWithFind._boot() 가 호출됨
- novaclient/v1_1/base.BootingManagerWithFind._boot() 에서 self._create() 가 호출되면
상속받은 novaclient/v1_1/base.ManagerWithFind 에서 찾고 여기에 없으므로 그 위의 클래스인
novaclient/v1_1/base.Manager._create() 를 호출
4. novaclient/client.post() -> novaclient/client.request() 를 호출하여 HTTP Request 를 던진다.
- standard out 으로 print 하려면 환경변수에 NOVACLIENT_DEBUG 를 추가하면 된다.
[파일 호출 순서]
novaclient/shell.py -> novaclient/v1_1/shell.py -> novaclient/v1_1/client.py -> novaclient/v1_1/servers.py
-> novaclient/v1_1/base.py -> novaclient/base.py -> novaclient/client.py
1. novaclient/shell.main() 이 entry point 임
2. novaclient/v1_1/shell.do_boot() 를 호출
- instance 생성시에 "nova boot ....." 처럼 호출하면 "do_" 를 붙힌 메소드가 호출된다.
3. novaclient/v1_1/client.py 를 이용하여 novaclient/v1_1/servers.ServerManager.create() 를 호출
- novaclient/v1_1/servers.ServerManager 는 novaclient/v1_1/base.BootingManagerWithFind 를
상속받았으므로 self._boot() 를 호출하면 novaclient/v1_1/base.BootingManagerWithFind._boot() 가 호출됨
- novaclient/v1_1/base.BootingManagerWithFind._boot() 에서 self._create() 가 호출되면
상속받은 novaclient/v1_1/base.ManagerWithFind 에서 찾고 여기에 없으므로 그 위의 클래스인
novaclient/v1_1/base.Manager._create() 를 호출
4. novaclient/client.post() -> novaclient/client.request() 를 호출하여 HTTP Request 를 던진다.
- standard out 으로 print 하려면 환경변수에 NOVACLIENT_DEBUG 를 추가하면 된다.
[파일 호출 순서]
novaclient/shell.py -> novaclient/v1_1/shell.py -> novaclient/v1_1/client.py -> novaclient/v1_1/servers.py
-> novaclient/v1_1/base.py -> novaclient/base.py -> novaclient/client.py
반응형