Comment 9 for bug 1359722

Revision history for this message
Masaki Furuta (masaki-furuta) wrote :

Hi,

I've converted syntax for http://plantuml.com/ , please check if it works for you.

Client->Keystone: Authentication Request
Activate Keystone
Keystone->LDAP: authn
Activate LDAP
Keystone<--LDAP:
Deactivate LDAP
Keystone->"Token Store": Save token
Activate "Token Store"
Keystone<--"Token Store"
Deactivate "Token Store"
Keystone-->Client: Auth token
Deactivate Keystone

Client->"Nova-api": launch instance
Activate "Nova-api"
"Nova-api"->DB: Create initial entry for instance
"Nova-api"->MQ: [rpc.cast] to request new instance
"Nova-api"->Client:Instance request complete
Deactivate "Nova-api"

"Nova-Scheduler"->MQ: Subcribe new instance request
"Nova-Scheduler"->DB: read filtering and weighing info
"Nova-Scheduler"->DB: Read cluster state
"Nova-Scheduler"->DB: Save instance state
"Nova-Scheduler"->MQ: rpc.cast to launch instance

"Nova-compute"->MQ: Subcribe new instance request
"Nova-compute"->MQ: rpc.call to Nova-conductor to fetch the instance info
"Nova-conductor"->MQ: Subcribe new instance request
"Nova-conductor"->DB: Read instance state
"Nova-conductor"->MQ: Publish new instance state

"Nova-compute"->MQ: Subcribe new instance request
"Nova-compute"->"Glance-api": REST get Image URI by Image ID from glance
Activate "Glance-api"
"Glance-api"->"Nova-compute": Return image URI
Deactivate "Glance-api"

"Nova-compute"->ceph_mon: get cluster map
Activate "ceph_mon"
ceph_mon->"Nova-compute": return map
Deactivate "ceph_mon"

"Nova-compute"->ceph_rgw: [REST] request object
Activate "ceph_rgw"
ceph_rgw->ceph_osd: [socket] get object
ceph_rgw->"Nova-compute": return object
Deactivate "ceph_rgw"

"Nova-compute"->"Neutron-server": allocate and configure the network for instance
Activate "Neutron-server"
"Neutron-server"->MQ: Request IP
"Neutron-server"->MQ: Request L2 config

"Neutron-DHCP-agent"->MQ: read Request IP
"Neutron-DHCP-agent"->dnsmasq: allocate IP
dnsmasq->"Neutron-DHCP-agent": reply
"Neutron-DHCP-agent"->MQ: reply IP

"Neutron-server"->MQ:read IP
"Neutron-L2-agent"->MQ: read Request L2 config
"Neutron-L2-agent"->libvirt: config L2
"Neutron-L2-agent"->MQ: reply L2 config
"Neutron-server"->DB: save instance network state
"Neutron-server"->"Nova-compute": Pass network info
Deactivate "Neutron-server"

"Nova-compute"->"Cinder-api": [REST] get volume data
"Cinder-api"->Keystone: Validate token & permissions
Activate "Keystone"
"Cinder-api"<--Keystone: updated auth headers with roles and acl
Deactivate "Keystone"
"Cinder-api"->"Nova-compute": return volume info

"Nova-compute"->libvirt: Start VM
"Nova-compute"->libvirt: Port_update

"Nova-compute"->MQ: rpc.call to Nova-conductor to fetch the instance info
"Nova-conductor"->MQ: Subcribe new instance request
"Nova-conductor"->MQ: Publish new instance state

"Nova-compute"->libvirt: pass volume info
libvirt->ceph_mon: get cluster map
Activate "ceph_mon"
ceph_mon->libvirt: return map
Deactivate "ceph_mon"
libvirt->ceph_osd: mount volume

"VM-instance"->neutron_metadata_proxy: http rest 169.254.169.254
Activate neutron_metadata_proxy
neutron_metadata_proxy->"nova-api-metadata": http rest add uuid into X-headers
"nova-api-metadata"->neutron_metadata_proxy:
neutron_metadata_proxy->"VM-instance": return metadata
Deactivate neutron_metadata_proxy

Client->"Nova-api": Poll instance state
Activate "Nova-api"
"Nova-api"->DB: Read instance state
Activate DB
DB->"Nova-api": Return state
Deactivate DB
"Nova-api"->Client: Return instance state
Deactivate "Nova-api"