首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》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协议,实现了访问远程服务器并等待响应的功能)。