Replace blockdiag with graphviz

The python blockdiag module is unmaintained and will likely be removed from distros.[1]
This patch replaces blockdiag with graphviz diagrams.

[1] https://github.com/blockdiag/blockdiag/pull/171

Change-Id: I3a902c60b59071b466e1bf1ec6bda205e58b378c
This commit is contained in:
Michael Johnson 2023-07-24 23:46:23 +00:00
parent 61b408287f
commit beb79ac98c
4 changed files with 130 additions and 82 deletions

2
bindep.txt Normal file
View File

@ -0,0 +1,2 @@
# Docs package dependencies
graphviz [doc]

View File

@ -3,7 +3,6 @@
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
sphinx>=2.0.0,!=2.1.0 # BSD sphinx>=2.0.0,!=2.1.0 # BSD
sphinxcontrib-httpdomain>=1.3.0 # BSD sphinxcontrib-httpdomain>=1.3.0 # BSD
sphinxcontrib-blockdiag>=1.5.4 # BSD
reno>=3.1.0 # Apache-2.0 reno>=3.1.0 # Apache-2.0
os-api-ref>=1.4.0 # Apache-2.0 os-api-ref>=1.4.0 # Apache-2.0
openstackdocstheme>=2.2.0 # Apache-2.0 openstackdocstheme>=2.2.0 # Apache-2.0

View File

@ -18,20 +18,24 @@ Needs Access to:
* AMQP * AMQP
.. blockdiag:: .. graphviz::
blockdiag { digraph APIHA {
rankdir=LR
loadbalancer [label="L7 Load Balancer", stacked]; {"L7 Load Balancers" [shape=box]
amqp_servers [label="AMQP Servers", stacked] "API Server 1" [shape=box]
group api_servers { "API Server 2" [shape=box]
label = "API Servers"; "API Server 3" [shape=box]
api_server_1 [label="API Server 1"]; "AMQP Servers" [shape=box]
api_server_2 [label="API Server 2"]; }
api_server_3 [label="API Server 3"]; subgraph "API Servers" {
} cluster=true;
loadbalancer -> api_server_1, api_server_2, api_server_3; label="API Servers";
api_server_1, api_server_2, api_server_3 -> amqp_servers; "API Server 1";
"API Server 2";
"API Server 3";
}
"L7 Load Balancers" -> {"API Server 1" "API Server 2" "API Server 3"} -> "AMQP Servers";
} }
Notes Notes
@ -67,20 +71,29 @@ Needs Access to:
* AMQP * AMQP
* Database * Database
.. blockdiag:: .. graphviz::
blockdiag { digraph CENTRALHA {
rankdir=LR
amqp_servers [label="AMQP Servers", stacked] {"AMQP Servers" [shape=box]
db_servers [label="Database Servers", stacked, shape=flowchart.database] "designate-central Server 1" [shape=box]
group designate_central_servers { "designate-central Server 2" [shape=box]
label = "designate-central Servers"; "designate-central Server 3" [shape=box]
designate_central_server_1 [label="designate-central Server 1", width=256]; "Database Servers" [shape=cylinder]
designate_central_server_2 [label="designate-central Server 2", width=256]; }
designate_central_server_3 [label="designate-central Server 3", width=256]; subgraph "designate-central Servers" {
} cluster=true;
amqp_servers <-> designate_central_server_1, designate_central_server_2, designate_central_server_3; label="designate-central Servers";
designate_central_server_1, designate_central_server_2, designate_central_server_3 -> db_servers; "designate-central Server 1";
"designate-central Server 2";
"designate-central Server 3";
}
"AMQP Servers" -> "designate-central Server 1" [dir=both];
"AMQP Servers" -> "designate-central Server 2" [dir=both];
"AMQP Servers" -> "designate-central Server 3" [dir=both];
"designate-central Server 1" -> "Database Servers";
"designate-central Server 2" -> "Database Servers";
"designate-central Server 3" -> "Database Servers";
} }
Notes Notes
@ -99,22 +112,33 @@ Needs Access to:
* Database * Database
* DNS Servers * DNS Servers
.. blockdiag:: .. graphviz::
blockdiag { digraph MDNSHA {
rankdir=LR
amqp_servers [label="AMQP Servers", stacked] {"AMQP Servers" [shape=box]
dns_servers [label="DNS Servers", stacked, shape="cloud"] "designate-mdns Server 1" [shape=box]
db_servers [label="Database Servers", stacked, shape=flowchart.database] "designate-mdns Server 2" [shape=box]
group designate_mdns_servers { "designate-mdns Server 3" [shape=box]
label = "designate-mdns Servers"; "DNS Servers" [shape=egg]
designate_mdns_server_1 [label="designate-mdns Server 1", width=256]; "Database Servers" [shape=cylinder]
designate_mdns_server_2 [label="designate-mdns Server 2", width=256]; }
designate_mdns_server_3 [label="designate-mdns Server 3", width=256]; subgraph "designate-mdns Servers" {
} cluster=true;
amqp_servers <-> designate_mdns_server_1, designate_mdns_server_2, designate_mdns_server_3; label="designate-mdns Servers";
designate_mdns_server_1, designate_mdns_server_2, designate_mdns_server_3 <- db_servers; "designate-mdns Server 1";
designate_mdns_server_1, designate_mdns_server_2, designate_mdns_server_3 -> dns_servers; "designate-mdns Server 2";
"designate-mdns Server 3";
}
"AMQP Servers" -> "designate-mdns Server 1" [dir=both];
"AMQP Servers" -> "designate-mdns Server 2" [dir=both];
"AMQP Servers" -> "designate-mdns Server 3" [dir=both];
"designate-mdns Server 1" -> "Database Servers" [dir=back];
"designate-mdns Server 2" -> "Database Servers" [dir=back];
"designate-mdns Server 3" -> "Database Servers" [dir=back];
"designate-mdns Server 1" -> "DNS Servers"
"designate-mdns Server 2" -> "DNS Servers"
"designate-mdns Server 3" -> "DNS Servers"
} }
Notes Notes
@ -132,20 +156,29 @@ Needs Access to:
* AMQP * AMQP
* DNS Servers * DNS Servers
.. blockdiag:: .. graphviz::
blockdiag { digraph WORKERSHA {
rankdir=LR
amqp_servers [label="AMQP Servers", stacked] {"AMQP Servers" [shape=box]
dns_servers [label="DNS Servers", stacked, shape="cloud"] "designate-worker Server 1" [shape=box]
group designate_worker_servers { "designate-worker Server 2" [shape=box]
label = "designate-worker Servers"; "designate-worker Server 3" [shape=box]
designate_worker_server_1 [label="designate-worker Server 1", width=256]; "DNS Servers" [shape=egg]
designate_worker_server_2 [label="designate-worker Server 2", width=256]; }
designate_worker_server_3 [label="designate-worker Server 3", width=256]; subgraph "designate-worker Servers" {
} cluster=true;
amqp_servers <-> designate_worker_server_1, designate_worker_server_2, designate_worker_server_3; label="designate-worker Servers";
designate_worker_server_1, designate_worker_server_2, designate_worker_server_3 -> dns_servers; "designate-worker Server 1";
"designate-worker Server 2";
"designate-worker Server 3";
}
"AMQP Servers" -> "designate-worker Server 1" [dir=both];
"AMQP Servers" -> "designate-worker Server 2" [dir=both];
"AMQP Servers" -> "designate-worker Server 3" [dir=both];
"designate-worker Server 1" -> "DNS Servers"
"designate-worker Server 2" -> "DNS Servers"
"designate-worker Server 3" -> "DNS Servers"
} }
Notes Notes
@ -163,20 +196,29 @@ Needs Access to:
* AMQP * AMQP
* DLM * DLM
.. blockdiag:: .. graphviz::
blockdiag { digraph PRODUCERSHA {
rankdir=LR
amqp_servers [label="AMQP Servers", stacked] {"AMQP Servers" [shape=box]
dlm_servers [label="DLM Servers", stacked] "designate-producer Server 1" [shape=box]
group designate_producer_servers { "designate-producer Server 2" [shape=box]
label = "designate-producer Servers"; "designate-producer Server 3" [shape=box]
designate_producer_server_1 [label="designate-producer Server 1", width=256]; "DLM Servers" [shape=octagon]
designate_producer_server_2 [label="designate-producer Server 2", width=256]; }
designate_producer_server_3 [label="designate-producer Server 3", width=256]; subgraph "designate-producer Servers" {
} cluster=true;
amqp_servers <-> designate_producer_server_1, designate_producer_server_2, designate_producer_server_3; label="designate-producer Servers";
designate_producer_server_1, designate_producer_server_2, designate_producer_server_3 -> dlm_servers; "designate-producer Server 1";
"designate-producer Server 2";
"designate-producer Server 3";
}
"AMQP Servers" -> "designate-producer Server 1" [dir=both];
"AMQP Servers" -> "designate-producer Server 2" [dir=both];
"AMQP Servers" -> "designate-producer Server 3" [dir=both];
"designate-producer Server 1" -> "DLM Servers"
"designate-producer Server 2" -> "DLM Servers"
"designate-producer Server 3" -> "DLM Servers"
} }
Notes Notes
@ -205,18 +247,25 @@ Needs Access to:
* AMQP * AMQP
.. blockdiag:: .. graphviz::
blockdiag { digraph SINKSHA {
rankdir=LR
amqp_servers [label="AMQP Servers", stacked] {"AMQP Servers" [shape=box]
group designate_sink_servers { "designate-sink Server 1" [shape=box]
label = "designate-sink Servers"; "designate-sink Server 2" [shape=box]
designate_sink_server_1 [label="designate-sink Server 1", width=256]; "designate-sink Server 3" [shape=box]
designate_sink_server_2 [label="designate-sink Server 2", width=256]; }
designate_sink_server_3 [label="designate-sink Server 3", width=256]; subgraph "designate-sink Servers" {
} cluster=true;
amqp_servers <-> designate_sink_server_1, designate_sink_server_2, designate_sink_server_3; label="designate-sink Servers";
"designate-sink Server 1";
"designate-sink Server 2";
"designate-sink Server 3";
}
"AMQP Servers" -> "designate-sink Server 1" [dir=both];
"AMQP Servers" -> "designate-sink Server 2" [dir=both];
"AMQP Servers" -> "designate-sink Server 3" [dir=both];
} }
Notes Notes

View File

@ -32,8 +32,8 @@ sys.path.insert(0, os.path.abspath('./'))
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc', extensions = ['sphinx.ext.autodoc',
'sphinx.ext.viewcode', 'sphinx.ext.viewcode',
'sphinx.ext.graphviz',
'sphinxcontrib.httpdomain', 'sphinxcontrib.httpdomain',
'sphinxcontrib.blockdiag',
'ext.support_matrix', 'ext.support_matrix',
'ext.custom_css', 'ext.custom_css',
'openstackdocstheme', 'openstackdocstheme',
@ -54,8 +54,6 @@ sample_config_basename = '_static/designate'
policy_generator_config_file = '../../etc/designate/designate-policy-generator.conf' policy_generator_config_file = '../../etc/designate/designate-policy-generator.conf'
sample_policy_basename = '_static/designate' sample_policy_basename = '_static/designate'
blockdiag_antialias = True
blockdiag_html_image_format = "SVG"
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']