From 4c743ded8ec67ab15eec8dfa950c9cda5125b2dd Mon Sep 17 00:00:00 2001 From: Gergely Csatari Date: Mon, 29 Apr 2019 01:50:06 +0200 Subject: [PATCH] Adding sequence diagram to Architecture A high level sequence diagram is added to the Architecture page to illustrate the workflow between Fenix and the app manager. Change-Id: I51220cdc64eb34d0f60c5425c654efae76f9f624 Signed-off-by: Gergely Csatari --- doc/requirements.txt | 1 + doc/source/conf.py | 5 +++++ doc/source/user/architecture.rst | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/doc/requirements.txt b/doc/requirements.txt index 95b6568..03105b0 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,5 +1,6 @@ sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD openstackdocstheme>=1.18.1 # Apache-2.0 os-api-ref>=1.6.0 # Apache-2.0 +sphinxcontrib-seqdiag>=0.8.4 # BSD # releasenotes reno>=2.5.0 # Apache-2.0 diff --git a/doc/source/conf.py b/doc/source/conf.py index a9b9a6f..0f2522f 100755 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -24,6 +24,7 @@ extensions = [ 'sphinx.ext.autodoc', 'openstackdocstheme', 'os_api_ref', + 'sphinxcontrib.seqdiag', #'sphinx.ext.intersphinx', ] @@ -31,6 +32,10 @@ extensions = [ # text edit cycles. # execute "export SPHINX_DEBUG=1" in your terminal to disable +# sphinxcontrib.seqdiag options +seqdiag_antialias = True +seqdiag_html_image_format = 'SVG' + # The suffix of source filenames. source_suffix = '.rst' diff --git a/doc/source/user/architecture.rst b/doc/source/user/architecture.rst index c72ec01..5eaefb5 100644 --- a/doc/source/user/architecture.rst +++ b/doc/source/user/architecture.rst @@ -99,3 +99,30 @@ back in normal use. This might be important for enabling/disabling self-healing or billing. Notification can also be used to indicate when a host is added or removed. +High level sequence diagram +=========================== + +.. seqdiag:: + + seqdiag { + activation = none; + infra-admin -> fenix [label = "Maintenance session for hosts", note="Start the maintenance process"]; + fenix -> app-manager [label = "MAINTENANCE"]; + app-manager -> fenix [label = "ACK_MAINTENANCE"]; + fenix --> app-manager [label = "IN_SCALE", note="Optional down scale"] + app-manager --> fenix [label = "ACK_IN_SCALE"] + fenix --> app-manager [label = "PREPARE_MAINTENANCE", note="If there is not empty host Fenix makes one"] + app-manager --> fenix [label = "ACK_PREPARE_MAINTENANCE"] + fenix --> app-manager [label = "ADMIN_ACTION_DONE"] + === Repeated for every compute === + fenix -> app-manager [label = "PLANNED_MAINTENANCE", note="If VM-s are on the host. Migrate or Live migrate"] + app-manager -> fenix [label = "ACK_PLANNED_MAINTENANCE"] + fenix --> app-manager [label = "ADMIN_ACTION_DONE"] + fenix --> app-manager [label = "IN_MAINTENANCE"] + ... Actual maintenance happens here ... + fenix --> app-manager [label = "MAINTENANCE_COMPLETE"] + === --- === + fenix --> app-manager [label = "MAINTENANCE_COMPLETE", note="Maintenance is done"] + app-manager --> fenix [label = "ACK_MAINTENANCE_COMPLETE", note="Up scale"] + + }