Skip to content

wywself/openstack-workflow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Openstack Sequence Diagrams

Draw Openstack operation sequence diagrams using Websequence Diagrams Tool. An easiest way to track the source of Openstack and can be useful for user to learn Openstack or administer to problem troubleshooting. Noted that all these works are based on Openstack Liberty version, it may be changed in the future version, sorry that I won't notify such changes for the limit of my energy, so if you find some difference, Please check the version first.

Action List

1. Virtual Machine Manager

2. Todo

  • Cinder
  • Neutron
  • Sahara
  • Magnum
  • ...

Quick Start

1. Generate diagrams

Before generate the diagrams on your localhost, ensure your machine can access the Internet and the make tools hava been correctly installed.

make

All diagrams generated will be placed in ./output by default.

2. Remove diagrams

To cleanup the diagrams, just run this as follows:

make clean

Some demo

1. Create Server Workflow

create server workflow

2. Reboot Server

reboot server

3. Stop Server

stop server

4. Rebuild Server

rebuild server

Need more diagrams ?

DYI, as you need!

For example:

title pause a server

participant client
participant nova_api

client->nova_api: pause
activate client
activate nova_api

# nova/api/openstack/compute/pause_server.py _pause()
note over nova_api: authrize context
nova_api->database: get instance by uuid
database->nova_api: done

# nova/compute/api.py pause()
note over nova_api: check policy
note over nova_api: check instance lock
note over nova_api: check instance cell
note over nova_api: ensure instance state is ACTIVE
nova_api->database: task_state = PAUSING
database->nova_api: done

note over nova_api: record pause action
# nova/compute/rpcapi.py pause_instance()
nova_api->nova_compute: pause_instance
deactivate nova_api
deactivate client
activate nova_compute

# nova/compute/manager.py pause_instance()
note over nova_compute: notify: pause.start
nova_compute->libvirt: pause
activate libvirt

# nova/virt/libvirt/driver.py pause()
note over libvirt: get domain
note over libvirt: domain.suspend()
libvirt->nova_compute: done
deactivate libvirt
# nova/compute/manager.py pause_instance()
nova_compute->database: vm_state = vm_states.PAUSED\ntask_state = None
database->nova_compute: done
note over nova_compute: notify: pause.end
deactivate nova_compute

License

MIT

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.8%
  • Makefile 2.2%