讀古今文學網 > OpenStack系統架構設計實戰 > 3.8.4 cinderclient部分創建流程 >

3.8.4 cinderclient部分創建流程

1.cinderclient部分的創建卷流程

1)cinderclient.shell:main(調用OpenStackCinderShell().main)。

2)cinderclient.shell:OpenStackCinderShell.main(對命令行參數進行解析等一系列操作;方法main的最後一句args.func(self.cs,args)解析之後為do_create)。

3)cinderclient.v1.shell:do_create或cinderclient.v2.shell:do_create(調用cs.volumes.create)。

4)cinderclient.v1.volumes:VolumeManager.create或cinderclient.v2.volumes:Volume Manager.create(對body進行賦值,最後調用self._create)。

5)cinderclient.base:Manager._create(通過self.api.client.post把URL和body內容傳遞下去)。

6)cinderclient.client:HTTPClient.post(調用self._cs_request,在_cs_request中又調用self.request)。

7)cinderclient.client:HTTPClient.request(調用requests.request,requests庫遵循HTTP協議,實現了訪問遠程服務器並等待響應的功能)。

2.cinderclient部分的快照創建流程

1)cinderclient.shell:main(調用OpenStackCinderShell().main)。

2)cinderclient.shell:OpenStackCinderShell.main(對命令行參數進行解析等一系列操作;方法main的最後一句args.func(self.cs,args)解析之後為do_snapshot_create)。

3)cinderclient.v1.shell:do_snapshot_create或cinderclient.v2.shell:do_snapshot_create(調用cs.volume_snapshots.create)。

4)cinderclient.v1.volume_snapshots:SnapshotManager.create或cinderclient.v2.volume_snapshots:SnapshotManager.create(對body進行賦值,最後調用self._create)。

5)cinderclient.base:Manager._create(通過self.api.client.post把URL和body內容傳遞下去)。

6)cinderclient.client:HTTPClient.post(調用self._cs_request,在_cs_request中又調用self.request)。

7)cinderclient.client:HTTPClient.request(調用requests.request,request庫遵循HTTP協議,實現了訪問遠程服務器並等待響應的功能)。

3.cinderclient部分的備份創建流程

1)cinderclient.shell:main(調用OpenStackCinderShell().main)。

2)cinderclient.shell:OpenStackCinderShell.main(對命令行參數進行解析等一系列操作;方法main的最後一句args.func(self.cs,args)解析之後為do_backup_create)。

3)cinderclient.v1.shell:do_backup_create或cinderclient.v2.shell:do_backup_create(調用cs.backups.create)。

4)cinderclient.v1.volume_backups:VolumeBackupManager.create或cinderclient.v2.volume_backups:VolumeBackupManager.create(對body進行賦值,最後調用self._create)。

5)cinderclient.base:Manager._create(通過self.api.client.post把URL和body內容傳遞下去)。

6)cinderclient.client:HTTPClient.post(調用self._cs_request,在_cs_request中又調用self.request)。

7)cinderclient.client:HTTPClient.request(調用requests.request,request庫遵循HTTP協議,實現了訪問遠程服務器並等待響應的功能)。