Merge "doc: drop blockdiag usage"

This commit is contained in:
Zuul 2024-01-23 11:53:54 +00:00 committed by Gerrit Code Review
commit 6531ed6310
24 changed files with 1066 additions and 229 deletions

View File

@ -0,0 +1,169 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 2056 1281" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
user; nova-api; nova-conductor; nova-compute; libvirt-driver; os-brick; cinder-api;
edge_length = 300;
span_height = 16;
activation = none;
default_note_color = white;
user -&gt; nova-api [label = "POST /servers/{server_id}/os-volume_attachments"];
nova-api -&gt; nova-compute [label = "RPC call reserve_block_device_name"];
nova-compute -&gt; nova-compute [label = "instance.uuid lock"];
nova-compute -&gt;&gt; nova-conductor [label = "bdm.create"];
nova-compute &lt;&lt;- nova-conductor [label = "return BlockDeviceMapping"];
nova-compute -&gt; libvirt-driver [label = "get_device_name_for_instance"];
nova-compute &lt;- libvirt-driver [label = "Return get_device_name_for_instance"];
nova-api &lt;- nova-compute [label = "Return reserve_block_device_name"];
nova-api -&gt; cinder-api [label = "POST /v3/{project_id}/attachments"];
nova-api &lt;- cinder-api [label = "Return HTTP 200 (without connection_info)"];
nova-api -&gt;&gt; nova-compute [label = "RPC cast attach_volume"];
user &lt;- nova-api [label = "Return HTTP 200 (includes device_name)"];
nova-compute -&gt; nova-compute [label = "instance.uuid lock"];
nova-compute -&gt; os-brick [label = "cinder_backend.uuid lock"];
nova-compute -&gt; cinder-api [label = "PUT /v3/{project_id}/attachments/{attachment_id}"];
nova-compute &lt;- cinder-api [label = "Return HTTP 200 (includes connection_info)"];
nova-compute -&gt; libvirt-driver [label = "attach_volume"];
libvirt-driver -&gt; os-brick [label = "connect_volume"];
os-brick -&gt; os-brick [label = "connect_volume lock"];
libvirt-driver &lt;- os-brick;
libvirt-driver -&gt; libvirt-driver [label = "guest.attach_device"];
libvirt-driver -&gt; libvirt-driver [label = "_build_device_metadata"];
libvirt-driver -&gt;&gt; nova-conductor [label = "instance.save"];
nova-compute &lt;- libvirt-driver [label = "Return attach_volume"];
nova-compute -&gt;&gt; nova-conductor [label = "bdm.save"];
nova-compute -&gt; cinder-api [label = "POST /v3/{project_id}/attachments/{attachment_id}/action (os-complete)"];
nova-compute &lt;- cinder-api [label = "Return HTTP 200"];
}
</desc>
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="22" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="22" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="667" y="22" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="967" y="22" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="1267" y="22" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="1567" y="22" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="1867" y="22" />
<path d="M 128 56 L 128 1281" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 56 L 428 1281" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 728 56 L 728 1281" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1028 56 L 1028 1281" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1328 56 L 1328 1281" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1628 56 L 1628 1281" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1928 56 L 1928 1281" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="16" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="128.0" y="42">user</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="16" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="428.0" y="42">nova-api</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="664" y="16" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="84" x="728.0" y="42">nova-conductor</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="964" y="16" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="72" x="1028.0" y="42">nova-compute</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="1264" y="16" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="84" x="1328.0" y="42">libvirt-driver</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="1564" y="16" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="1628.0" y="42">os-brick</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="1864" y="16" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="60" x="1928.0" y="42">cinder-api</text>
<path d="M 136 100 L 420 100" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="412,96 420,100 412,104" stroke="rgb(0,0,0)" />
<path d="M 436 141 L 1020 141" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1012,137 1020,141 1012,145" stroke="rgb(0,0,0)" />
<path d="M 1036 182 L 1178 182" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1178 182 L 1178 198" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1178 198 L 1036 198" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1044,194 1036,198 1044,202" stroke="rgb(0,0,0)" />
<path d="M 736 239 L 1020 239" fill="none" stroke="rgb(0,0,0)" />
<path d="M 744 235 L 736 239" fill="none" stroke="rgb(0,0,0)" />
<path d="M 736 239 L 744 243" fill="none" stroke="rgb(0,0,0)" />
<path d="M 736 280 L 1020 280" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1012 276 L 1020 280" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1020 280 L 1012 284" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1036 321 L 1320 321" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1312,317 1320,321 1312,325" stroke="rgb(0,0,0)" />
<path d="M 1036 362 L 1320 362" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1044,358 1036,362 1044,366" stroke="rgb(0,0,0)" />
<path d="M 436 403 L 1020 403" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,399 436,403 444,407" stroke="rgb(0,0,0)" />
<path d="M 436 444 L 1920 444" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1912,440 1920,444 1912,448" stroke="rgb(0,0,0)" />
<path d="M 436 485 L 1920 485" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,481 436,485 444,489" stroke="rgb(0,0,0)" />
<path d="M 436 526 L 1020 526" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1012 522 L 1020 526" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1020 526 L 1012 530" fill="none" stroke="rgb(0,0,0)" />
<path d="M 136 567 L 420 567" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="144,563 136,567 144,571" stroke="rgb(0,0,0)" />
<path d="M 1036 608 L 1178 608" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1178 608 L 1178 624" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1178 624 L 1036 624" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1044,620 1036,624 1044,628" stroke="rgb(0,0,0)" />
<path d="M 1036 665 L 1620 665" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1612,661 1620,665 1612,669" stroke="rgb(0,0,0)" />
<path d="M 1036 706 L 1920 706" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1912,702 1920,706 1912,710" stroke="rgb(0,0,0)" />
<path d="M 1036 747 L 1920 747" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1044,743 1036,747 1044,751" stroke="rgb(0,0,0)" />
<path d="M 1036 788 L 1320 788" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1312,784 1320,788 1312,792" stroke="rgb(0,0,0)" />
<path d="M 1336 829 L 1620 829" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1612,825 1620,829 1612,833" stroke="rgb(0,0,0)" />
<path d="M 1636 870 L 1778 870" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1778 870 L 1778 886" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1778 886 L 1636 886" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1644,882 1636,886 1644,890" stroke="rgb(0,0,0)" />
<path d="M 1336 912 L 1620 912" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1344,908 1336,912 1344,916" stroke="rgb(0,0,0)" />
<path d="M 1336 953 L 1478 953" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1478 953 L 1478 969" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1478 969 L 1336 969" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1344,965 1336,969 1344,973" stroke="rgb(0,0,0)" />
<path d="M 1336 1010 L 1478 1010" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1478 1010 L 1478 1026" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1478 1026 L 1336 1026" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1344,1022 1336,1026 1344,1030" stroke="rgb(0,0,0)" />
<path d="M 736 1067 L 1320 1067" fill="none" stroke="rgb(0,0,0)" />
<path d="M 744 1063 L 736 1067" fill="none" stroke="rgb(0,0,0)" />
<path d="M 736 1067 L 744 1071" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1036 1108 L 1320 1108" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1044,1104 1036,1108 1044,1112" stroke="rgb(0,0,0)" />
<path d="M 736 1149 L 1020 1149" fill="none" stroke="rgb(0,0,0)" />
<path d="M 744 1145 L 736 1149" fill="none" stroke="rgb(0,0,0)" />
<path d="M 736 1149 L 744 1153" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1036 1190 L 1920 1190" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1912,1186 1920,1190 1912,1194" stroke="rgb(0,0,0)" />
<path d="M 1036 1231 L 1920 1231" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1044,1227 1036,1231 1044,1235" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="276" x="282.0" y="83">POST /servers/{server_id}/os-volume_attachment</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="6" x="147.0" y="96">s</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="204" x="546.0" y="137">RPC call reserve_block_device_name</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="108" x="1094.0" y="178">instance.uuid lock</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="60" x="986.0" y="235">bdm.create</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="150" x="819.0" y="276">return BlockDeviceMapping</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="168" x="1128.0" y="317">get_device_name_for_instance</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="210" x="1211.0" y="358">Return get_device_name_for_instance</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="192" x="920.0" y="399">Return reserve_block_device_name</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="198" x="543.0" y="440">POST /v3/{project_id}/attachments</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="246" x="1793.0" y="481">Return HTTP 200 (without connection_info)</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="132" x="510.0" y="522">RPC cast attach_volume</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="228" x="302.0" y="563">Return HTTP 200 (includes device_name)</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="108" x="1094.0" y="604">instance.uuid lock</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="144" x="1116.0" y="661">cinder_backend.uuid lock</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="288" x="1188.0" y="702">PUT /v3/{project_id}/attachments/{attachment_id}</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="252" x="1790.0" y="743">Return HTTP 200 (includes connection_info)</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="78" x="1083.0" y="784">attach_volume</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="84" x="1386.0" y="825">connect_volume</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="114" x="1697.0" y="866">connect_volume lock</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="114" x="1397.0" y="949">guest.attach_device</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="132" x="1406.0" y="1006">_build_device_metadata</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="78" x="1277.0" y="1063">instance.save</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="120" x="1256.0" y="1104">Return attach_volume</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="992.0" y="1145">bdm.save</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="420" x="1254.0" y="1186">POST /v3/{project_id}/attachments/{attachment_id}/action (os-complete)</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="90" x="1871.0" y="1227">Return HTTP 200</text>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,29 @@
seqdiag {
Conductor; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
Conductor -> Destination [label = "call", note = "check_can_live_migrate_destination"];
Source <- Destination [label = "call", leftnote = "check_can_live_migrate_source"];
Source --> Destination;
Conductor <-- Destination;
Conductor ->> Source [label = "cast", note = "live_migrate"];
Source -> Destination [label = "call", note = "pre_live_migration (set up dest)"];
Source <-- Destination;
=== driver.live_migration (success) ===
Source -> Source [leftnote = "post_live_migration (clean up source)"];
Source -> Destination [label = "call", note = "post_live_migration_at_destination (finish dest)"];
Source <-- Destination;
=== driver.live_migration (failure) ===
Source -> Source [leftnote = "_rollback_live_migration"];
Source -> Destination [label = "call", note = "remove_volume_connections"];
Source <-- Destination;
Source ->> Destination [label = "cast", note = "rollback_live_migration_at_destination"];
}

View File

@ -0,0 +1,149 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 1072 959" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
Conductor; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
Conductor -&gt; Destination [label = "call", note = "check_can_live_migrate_destination"];
Source &lt;- Destination [label = "call", leftnote = "check_can_live_migrate_source"];
Source --&gt; Destination;
Conductor &lt;-- Destination;
Conductor -&gt;&gt; Source [label = "cast", note = "live_migrate"];
Source -&gt; Destination [label = "call", note = "pre_live_migration (set up dest)"];
Source &lt;-- Destination;
=== driver.live_migration (success) ===
Source -&gt; Source [leftnote = "post_live_migration (clean up source)"];
Source -&gt; Destination [label = "call", note = "post_live_migration_at_destination (finish dest)"];
Source &lt;-- Destination;
=== driver.live_migration (failure) ===
Source -&gt; Source [leftnote = "_rollback_live_migration"];
Source -&gt; Destination [label = "call", note = "remove_volume_connections"];
Source &lt;-- Destination;
Source -&gt;&gt; Destination [label = "cast", note = "rollback_live_migration_at_destination"];
}</desc>
<polygon fill="rgb(0,0,0)" points="747,84 967,84 975,92 975,99 747,99 747,84" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="217,124 407,124 415,132 415,139 217,139 217,124" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="447,289 535,289 543,297 543,304 447,304 447,289" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,344 955,344 963,352 963,359 747,359 747,344" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="169,494 407,494 415,502 415,509 169,509 169,494" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,564 1051,564 1059,572 1059,579 747,579 747,564" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="247,714 407,714 415,722 415,729 247,729 247,714" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,784 913,784 921,792 921,799 747,799 747,784" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,894 991,894 999,902 999,909 747,909 747,894" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="667" y="21" />
<path d="M 128 55 L 128 959" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 55 L 428 959" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 728 55 L 728 959" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="128.0" y="41">Conductor</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="428.0" y="41">Source</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="664" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="728.0" y="41">Destination</text>
<path d="M 136 85 L 720 85" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,81 720,85 712,89" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,78 964,78 972,86 972,93 744,93 744,78" stroke="rgb(0,0,0)" />
<path d="M 964 78 L 964 86" fill="none" stroke="rgb(0,0,0)" />
<path d="M 964 86 L 972 86" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="204" x="854.0" y="91">check_can_live_migrate_destination</text>
<path d="M 436 125 L 720 125" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,121 436,125 444,129" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="214,118 404,118 412,126 412,133 214,133 214,118" stroke="rgb(0,0,0)" />
<path d="M 404 118 L 404 126" fill="none" stroke="rgb(0,0,0)" />
<path d="M 404 126 L 412 126" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="174" x="309.0" y="131">check_can_live_migrate_source</text>
<path d="M 436 165 L 720 165" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="712,161 720,165 712,169" stroke="rgb(0,0,0)" />
<path d="M 136 220 L 720 220" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="144,216 136,220 144,224" stroke="rgb(0,0,0)" />
<path d="M 136 290 L 420 290" fill="none" stroke="rgb(0,0,0)" />
<path d="M 412 286 L 420 290" fill="none" stroke="rgb(0,0,0)" />
<path d="M 420 290 L 412 294" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="444,283 532,283 540,291 540,298 444,298 444,283" stroke="rgb(0,0,0)" />
<path d="M 532 283 L 532 291" fill="none" stroke="rgb(0,0,0)" />
<path d="M 532 291 L 540 291" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="72" x="488.0" y="296">live_migrate</text>
<path d="M 436 345 L 720 345" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,341 720,345 712,349" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,338 952,338 960,346 960,353 744,353 744,338" stroke="rgb(0,0,0)" />
<path d="M 952 338 L 952 346" fill="none" stroke="rgb(0,0,0)" />
<path d="M 952 346 L 960 346" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="192" x="848.0" y="351">pre_live_migration (set up dest)</text>
<path d="M 436 385 L 720 385" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,381 436,385 444,389" stroke="rgb(0,0,0)" />
<path d="M 436 495 L 578 495" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 495 L 578 511" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 511 L 436 511" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,507 436,511 444,515" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="166,488 404,488 412,496 412,503 166,503 166,488" stroke="rgb(0,0,0)" />
<path d="M 404 488 L 404 496" fill="none" stroke="rgb(0,0,0)" />
<path d="M 404 496 L 412 496" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="222" x="285.0" y="501">post_live_migration (clean up source)</text>
<path d="M 436 565 L 720 565" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,561 720,565 712,569" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,558 1048,558 1056,566 1056,573 744,573 744,558" stroke="rgb(0,0,0)" />
<path d="M 1048 558 L 1048 566" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1048 566 L 1056 566" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="288" x="896.0" y="571">post_live_migration_at_destination (finish dest)</text>
<path d="M 436 605 L 720 605" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,601 436,605 444,609" stroke="rgb(0,0,0)" />
<path d="M 436 715 L 578 715" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 715 L 578 731" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 731 L 436 731" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,727 436,731 444,735" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="244,708 404,708 412,716 412,723 244,723 244,708" stroke="rgb(0,0,0)" />
<path d="M 404 708 L 404 716" fill="none" stroke="rgb(0,0,0)" />
<path d="M 404 716 L 412 716" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="144" x="324.0" y="721">_rollback_live_migration</text>
<path d="M 436 785 L 720 785" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,781 720,785 712,789" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,778 910,778 918,786 918,793 744,793 744,778" stroke="rgb(0,0,0)" />
<path d="M 910 778 L 910 786" fill="none" stroke="rgb(0,0,0)" />
<path d="M 910 786 L 918 786" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="150" x="827.0" y="791">remove_volume_connections</text>
<path d="M 436 825 L 720 825" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,821 436,825 444,829" stroke="rgb(0,0,0)" />
<path d="M 436 895 L 720 895" fill="none" stroke="rgb(0,0,0)" />
<path d="M 712 891 L 720 895" fill="none" stroke="rgb(0,0,0)" />
<path d="M 720 895 L 712 899" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,888 988,888 996,896 996,903 744,903 744,888" stroke="rgb(0,0,0)" />
<path d="M 988 888 L 988 896" fill="none" stroke="rgb(0,0,0)" />
<path d="M 988 896 L 996 896" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="228" x="866.0" y="901">rollback_live_migration_at_destination</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="156.0" y="81">call</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="704.0" y="121">call</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="156.0" y="286">cast</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="341">call</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="561">call</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="781">call</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="891">cast</text>
<path d="M 40 457 L 325 457" fill="none" stroke="rgb(0,0,0)" />
<path d="M 40 461 L 325 461" fill="none" stroke="rgb(0,0,0)" />
<path d="M 531 457 L 816 457" fill="none" stroke="rgb(0,0,0)" />
<path d="M 531 461 L 816 461" fill="none" stroke="rgb(0,0,0)" />
<rect fill="rgb(208,208,208)" height="19" stroke="rgb(0,0,0)" width="206" x="325" y="450" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="186" x="428.0" y="465">driver.live_migration (success)</text>
<path d="M 40 677 L 325 677" fill="none" stroke="rgb(0,0,0)" />
<path d="M 40 681 L 325 681" fill="none" stroke="rgb(0,0,0)" />
<path d="M 531 677 L 816 677" fill="none" stroke="rgb(0,0,0)" />
<path d="M 531 681 L 816 681" fill="none" stroke="rgb(0,0,0)" />
<rect fill="rgb(208,208,208)" height="19" stroke="rgb(0,0,0)" width="206" x="325" y="670" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="186" x="428.0" y="685">driver.live_migration (failure)</text>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,15 @@
seqdiag {
API; Conductor; Scheduler; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API ->> Conductor [label = "cast", note = "resize_instance/migrate_server"];
Conductor => Scheduler [label = "MigrationTask", note = "select_destinations"];
Conductor -> Conductor [label = "TargetDBSetupTask"];
Conductor => Destination [label = "PrepResizeAtDestTask", note = "prep_snapshot_based_resize_at_dest"];
Conductor => Source [label = "PrepResizeAtSourceTask", note = "prep_snapshot_based_resize_at_source"];
Conductor => Destination [label = "FinishResizeAtDestTask", note = "finish_snapshot_based_resize_at_dest"];
Conductor -> Conductor [label = "FinishResizeAtDestTask", note = "update instance mapping"];
}

View File

@ -0,0 +1,109 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 1600 686" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
API; Conductor; Scheduler; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -&gt;&gt; Conductor [label = "cast", note = "resize_instance/migrate_server"];
Conductor =&gt; Scheduler [label = "MigrationTask", note = "select_destinations"];
Conductor -&gt; Conductor [label = "TargetDBSetupTask"];
Conductor =&gt; Destination [label = "PrepResizeAtDestTask", note = "prep_snapshot_based_resize_at_dest"];
Conductor =&gt; Source [label = "PrepResizeAtSourceTask", note = "prep_snapshot_based_resize_at_source"];
Conductor =&gt; Destination [label = "FinishResizeAtDestTask", note = "finish_snapshot_based_resize_at_dest"];
Conductor -&gt; Conductor [label = "FinishResizeAtDestTask", note = "update instance mapping"];
}</desc>
<polygon fill="rgb(0,0,0)" points="447,84 643,84 651,92 651,99 447,99 447,84" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,124 877,124 885,132 885,139 747,139 747,124" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="1347,290 1567,290 1575,298 1575,305 1347,305 1347,290" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="1047,400 1279,400 1287,408 1287,415 1047,415 1047,400" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="1347,510 1579,510 1587,518 1587,525 1347,525 1347,510" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="597,620 751,620 759,628 759,635 597,635 597,620" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="667" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="967" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="1267" y="21" />
<path d="M 128 55 L 128 686" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 55 L 428 686" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 728 55 L 728 686" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1028 55 L 1028 686" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1328 55 L 1328 686" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="128.0" y="41">API</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="428.0" y="41">Conductor</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="664" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="728.0" y="41">Scheduler</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="964" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="1028.0" y="41">Source</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="1264" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="1328.0" y="41">Destination</text>
<path d="M 136 85 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<path d="M 412 81 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<path d="M 420 85 L 412 89" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="444,78 640,78 648,86 648,93 444,93 444,78" stroke="rgb(0,0,0)" />
<path d="M 640 78 L 640 86" fill="none" stroke="rgb(0,0,0)" />
<path d="M 640 86 L 648 86" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="180" x="542.0" y="91">resize_instance/migrate_server</text>
<path d="M 436 125 L 720 125" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,121 720,125 712,129" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,118 874,118 882,126 882,133 744,133 744,118" stroke="rgb(0,0,0)" />
<path d="M 874 118 L 874 126" fill="none" stroke="rgb(0,0,0)" />
<path d="M 874 126 L 882 126" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="114" x="809.0" y="131">select_destinations</text>
<path d="M 436 165 L 720 165" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,161 436,165 444,169" stroke="rgb(0,0,0)" />
<path d="M 436 235 L 578 235" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 235 L 578 251" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 251 L 436 251" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,247 436,251 444,255" stroke="rgb(0,0,0)" />
<path d="M 436 291 L 1320 291" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1312,287 1320,291 1312,295" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="1344,284 1564,284 1572,292 1572,299 1344,299 1344,284" stroke="rgb(0,0,0)" />
<path d="M 1564 284 L 1564 292" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1564 292 L 1572 292" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="204" x="1454.0" y="297">prep_snapshot_based_resize_at_dest</text>
<path d="M 436 331 L 1320 331" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,327 436,331 444,335" stroke="rgb(0,0,0)" />
<path d="M 436 401 L 1020 401" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1012,397 1020,401 1012,405" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="1044,394 1276,394 1284,402 1284,409 1044,409 1044,394" stroke="rgb(0,0,0)" />
<path d="M 1276 394 L 1276 402" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1276 402 L 1284 402" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="216" x="1160.0" y="407">prep_snapshot_based_resize_at_source</text>
<path d="M 436 441 L 1020 441" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,437 436,441 444,445" stroke="rgb(0,0,0)" />
<path d="M 436 511 L 1320 511" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1312,507 1320,511 1312,515" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="1344,504 1576,504 1584,512 1584,519 1344,519 1344,504" stroke="rgb(0,0,0)" />
<path d="M 1576 504 L 1576 512" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1576 512 L 1584 512" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="216" x="1460.0" y="517">finish_snapshot_based_resize_at_dest</text>
<path d="M 436 551 L 1320 551" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,547 436,551 444,555" stroke="rgb(0,0,0)" />
<path d="M 436 621 L 578 621" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 621 L 578 637" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 637 L 436 637" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,633 436,637 444,641" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="594,614 748,614 756,622 756,629 594,629 594,614" stroke="rgb(0,0,0)" />
<path d="M 748 614 L 748 622" fill="none" stroke="rgb(0,0,0)" />
<path d="M 748 622 L 756 622" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="138" x="671.0" y="627">update instance mapping</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="156.0" y="81">cast</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="78" x="483.0" y="121">MigrationTask</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="102" x="491.0" y="231">TargetDBSetupTask</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="120" x="504.0" y="287">PrepResizeAtDestTask</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="132" x="510.0" y="397">PrepResizeAtSourceTask</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="132" x="510.0" y="507">FinishResizeAtDestTask</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="132" x="506.0" y="617">FinishResizeAtDestTask</text>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,17 @@
seqdiag {
API; Conductor; Source;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API ->> Conductor [label = "cast (or call if deleting)", note = "confirm_snapshot_based_resize"];
// separator to indicate everything after this is driven by ConfirmResizeTask
=== ConfirmResizeTask ===
Conductor => Source [label = "call", note = "confirm_snapshot_based_resize_at_source"];
Conductor -> Conductor [note = "hard delete source cell instance"];
Conductor -> Conductor [note = "update target cell instance status"];
}

View File

@ -0,0 +1,82 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 1018 409" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
API; Conductor; Source;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -&gt;&gt; Conductor [label = "cast (or call if deleting)", note = "confirm_snapshot_based_resize"];
// separator to indicate everything after this is driven by ConfirmResizeTask
=== ConfirmResizeTask ===
Conductor =&gt; Source [label = "call", note = "confirm_snapshot_based_resize_at_source"];
Conductor -&gt; Conductor [note = "hard delete source cell instance"];
Conductor -&gt; Conductor [note = "update target cell instance status"];
}</desc>
<polygon fill="rgb(0,0,0)" points="447,84 637,84 645,92 645,99 447,99 447,84" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,179 997,179 1005,187 1005,194 747,194 747,179" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="597,274 805,274 813,282 813,289 597,289 597,274" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="597,329 817,329 825,337 825,344 597,344 597,329" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="667" y="21" />
<path d="M 128 55 L 128 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 55 L 428 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 728 55 L 728 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="128.0" y="41">API</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="428.0" y="41">Conductor</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="664" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="728.0" y="41">Source</text>
<path d="M 136 85 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<path d="M 412 81 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<path d="M 420 85 L 412 89" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="444,78 634,78 642,86 642,93 444,93 444,78" stroke="rgb(0,0,0)" />
<path d="M 634 78 L 634 86" fill="none" stroke="rgb(0,0,0)" />
<path d="M 634 86 L 642 86" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="174" x="539.0" y="91">confirm_snapshot_based_resize</text>
<path d="M 436 180 L 720 180" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,176 720,180 712,184" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,173 994,173 1002,181 1002,188 744,188 744,173" stroke="rgb(0,0,0)" />
<path d="M 994 173 L 994 181" fill="none" stroke="rgb(0,0,0)" />
<path d="M 994 181 L 1002 181" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="234" x="869.0" y="186">confirm_snapshot_based_resize_at_source</text>
<path d="M 436 220 L 720 220" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,216 436,220 444,224" stroke="rgb(0,0,0)" />
<path d="M 436 275 L 578 275" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 275 L 578 291" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 291 L 436 291" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,287 436,291 444,295" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="594,268 802,268 810,276 810,283 594,283 594,268" stroke="rgb(0,0,0)" />
<path d="M 802 268 L 802 276" fill="none" stroke="rgb(0,0,0)" />
<path d="M 802 276 L 810 276" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="192" x="698.0" y="281">hard delete source cell instance</text>
<path d="M 436 330 L 578 330" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 330 L 578 346" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 346 L 436 346" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,342 436,346 444,350" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="594,323 814,323 822,331 822,338 594,338 594,323" stroke="rgb(0,0,0)" />
<path d="M 814 323 L 814 331" fill="none" stroke="rgb(0,0,0)" />
<path d="M 814 331 L 822 331" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="204" x="704.0" y="336">update target cell instance status</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="156" x="222.0" y="81">cast (or call if deleting)</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="176">call</text>
<path d="M 40 127 L 367 127" fill="none" stroke="rgb(0,0,0)" />
<path d="M 40 131 L 367 131" fill="none" stroke="rgb(0,0,0)" />
<path d="M 489 127 L 816 127" fill="none" stroke="rgb(0,0,0)" />
<path d="M 489 131 L 816 131" fill="none" stroke="rgb(0,0,0)" />
<rect fill="rgb(208,208,208)" height="19" stroke="rgb(0,0,0)" width="122" x="367" y="120" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="102" x="428.0" y="135">ConfirmResizeTask</text>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -0,0 +1,19 @@
seqdiag {
API; Conductor; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API ->> Conductor [label = "cast", note = "revert_snapshot_based_resize"];
// separator to indicate everything after this is driven by RevertResizeTask
=== RevertResizeTask ===
Conductor -> Conductor [note = "update records from target to source cell"];
Conductor -> Conductor [note = "update instance mapping"];
Conductor => Destination [label = "call", note = "revert_snapshot_based_resize_at_dest"];
Conductor -> Conductor [note = "hard delete target cell instance"];
Conductor => Source [label = "call", note = "finish_revert_snapshot_based_resize_at_source"];
}

View File

@ -0,0 +1,107 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 1300 574" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
API; Conductor; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -&gt;&gt; Conductor [label = "cast", note = "revert_snapshot_based_resize"];
// separator to indicate everything after this is driven by RevertResizeTask
=== RevertResizeTask ===
Conductor -&gt; Conductor [note = "update records from target to source cell"];
Conductor -&gt; Conductor [note = "update instance mapping"];
Conductor =&gt; Destination [label = "call", note = "revert_snapshot_based_resize_at_dest"];
Conductor -&gt; Conductor [note = "hard delete target cell instance"];
Conductor =&gt; Source [label = "call", note = "finish_revert_snapshot_based_resize_at_source"];
}</desc>
<polygon fill="rgb(0,0,0)" points="447,84 631,84 639,92 639,99 447,99 447,84" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="597,164 859,164 867,172 867,179 597,179 597,164" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="597,219 751,219 759,227 759,234 597,234 597,219" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="1047,289 1279,289 1287,297 1287,304 1047,304 1047,289" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="597,384 805,384 813,392 813,399 597,399 597,384" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,454 1033,454 1041,462 1041,469 747,469 747,454" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="667" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="967" y="21" />
<path d="M 128 55 L 128 574" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 55 L 428 574" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 728 55 L 728 574" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1028 55 L 1028 574" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="128.0" y="41">API</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="428.0" y="41">Conductor</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="664" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="728.0" y="41">Source</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="964" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="1028.0" y="41">Destination</text>
<path d="M 136 85 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<path d="M 412 81 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<path d="M 420 85 L 412 89" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="444,78 628,78 636,86 636,93 444,93 444,78" stroke="rgb(0,0,0)" />
<path d="M 628 78 L 628 86" fill="none" stroke="rgb(0,0,0)" />
<path d="M 628 86 L 636 86" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="168" x="536.0" y="91">revert_snapshot_based_resize</text>
<path d="M 436 165 L 578 165" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 165 L 578 181" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 181 L 436 181" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,177 436,181 444,185" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="594,158 856,158 864,166 864,173 594,173 594,158" stroke="rgb(0,0,0)" />
<path d="M 856 158 L 856 166" fill="none" stroke="rgb(0,0,0)" />
<path d="M 856 166 L 864 166" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="246" x="725.0" y="171">update records from target to source cell</text>
<path d="M 436 220 L 578 220" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 220 L 578 236" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 236 L 436 236" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,232 436,236 444,240" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="594,213 748,213 756,221 756,228 594,228 594,213" stroke="rgb(0,0,0)" />
<path d="M 748 213 L 748 221" fill="none" stroke="rgb(0,0,0)" />
<path d="M 748 221 L 756 221" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="138" x="671.0" y="226">update instance mapping</text>
<path d="M 436 290 L 1020 290" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1012,286 1020,290 1012,294" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="1044,283 1276,283 1284,291 1284,298 1044,298 1044,283" stroke="rgb(0,0,0)" />
<path d="M 1276 283 L 1276 291" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1276 291 L 1284 291" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="216" x="1160.0" y="296">revert_snapshot_based_resize_at_dest</text>
<path d="M 436 330 L 1020 330" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,326 436,330 444,334" stroke="rgb(0,0,0)" />
<path d="M 436 385 L 578 385" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 385 L 578 401" fill="none" stroke="rgb(0,0,0)" />
<path d="M 578 401 L 436 401" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,397 436,401 444,405" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="594,378 802,378 810,386 810,393 594,393 594,378" stroke="rgb(0,0,0)" />
<path d="M 802 378 L 802 386" fill="none" stroke="rgb(0,0,0)" />
<path d="M 802 386 L 810 386" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="192" x="698.0" y="391">hard delete target cell instance</text>
<path d="M 436 455 L 720 455" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,451 720,455 712,459" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,448 1030,448 1038,456 1038,463 744,463 744,448" stroke="rgb(0,0,0)" />
<path d="M 1030 448 L 1030 456" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1030 456 L 1038 456" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="270" x="887.0" y="461">finish_revert_snapshot_based_resize_at_source</text>
<path d="M 436 495 L 720 495" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,491 436,495 444,499" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="156.0" y="81">cast</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="286">call</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="451">call</text>
<path d="M 40 127 L 520 127" fill="none" stroke="rgb(0,0,0)" />
<path d="M 40 131 L 520 131" fill="none" stroke="rgb(0,0,0)" />
<path d="M 636 127 L 1116 127" fill="none" stroke="rgb(0,0,0)" />
<path d="M 636 131 L 1116 131" fill="none" stroke="rgb(0,0,0)" />
<rect fill="rgb(208,208,208)" height="19" stroke="rgb(0,0,0)" width="116" x="520" y="120" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="96" x="578.0" y="135">RevertResizeTask</text>
</svg>

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -0,0 +1,13 @@
seqdiag {
API; Conductor; Scheduler; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -> Conductor [label = "cast", note = "resize_instance/migrate_server"];
Conductor => Scheduler [label = "call", note = "select_destinations"];
Conductor -> Destination [label = "cast", note = "prep_resize"];
Source <- Destination [label = "cast", leftnote = "resize_instance"];
Source -> Destination [label = "cast", note = "finish_resize"];
}

View File

@ -0,0 +1,85 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 1462 409" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
API; Conductor; Scheduler; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -&gt; Conductor [label = "cast", note = "resize_instance/migrate_server"];
Conductor =&gt; Scheduler [label = "call", note = "select_destinations"];
Conductor -&gt; Destination [label = "cast", note = "prep_resize"];
Source &lt;- Destination [label = "cast", leftnote = "resize_instance"];
Source -&gt; Destination [label = "cast", note = "finish_resize"];
}</desc>
<polygon fill="rgb(0,0,0)" points="447,84 643,84 651,92 651,99 447,99 447,84" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="747,124 877,124 885,132 885,139 747,139 747,124" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="1347,234 1429,234 1437,242 1437,249 1347,249 1347,234" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="901,289 1007,289 1015,297 1015,304 901,304 901,289" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="1347,344 1441,344 1449,352 1449,359 1347,359 1347,344" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="667" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="967" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="1267" y="21" />
<path d="M 128 55 L 128 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 55 L 428 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 728 55 L 728 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1028 55 L 1028 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 1328 55 L 1328 409" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="128.0" y="41">API</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="428.0" y="41">Conductor</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="664" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="728.0" y="41">Scheduler</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="964" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="1028.0" y="41">Source</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="1264" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="1328.0" y="41">Destination</text>
<path d="M 136 85 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="412,81 420,85 412,89" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="444,78 640,78 648,86 648,93 444,93 444,78" stroke="rgb(0,0,0)" />
<path d="M 640 78 L 640 86" fill="none" stroke="rgb(0,0,0)" />
<path d="M 640 86 L 648 86" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="180" x="542.0" y="91">resize_instance/migrate_server</text>
<path d="M 436 125 L 720 125" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,121 720,125 712,129" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,118 874,118 882,126 882,133 744,133 744,118" stroke="rgb(0,0,0)" />
<path d="M 874 118 L 874 126" fill="none" stroke="rgb(0,0,0)" />
<path d="M 874 126 L 882 126" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="114" x="809.0" y="131">select_destinations</text>
<path d="M 436 165 L 720 165" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4" />
<polygon fill="rgb(0,0,0)" points="444,161 436,165 444,169" stroke="rgb(0,0,0)" />
<path d="M 436 235 L 1320 235" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1312,231 1320,235 1312,239" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="1344,228 1426,228 1434,236 1434,243 1344,243 1344,228" stroke="rgb(0,0,0)" />
<path d="M 1426 228 L 1426 236" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1426 236 L 1434 236" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="1385.0" y="241">prep_resize</text>
<path d="M 1036 290 L 1320 290" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1044,286 1036,290 1044,294" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="898,283 1004,283 1012,291 1012,298 898,298 898,283" stroke="rgb(0,0,0)" />
<path d="M 1004 283 L 1004 291" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1004 291 L 1012 291" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="90" x="951.0" y="296">resize_instance</text>
<path d="M 1036 345 L 1320 345" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="1312,341 1320,345 1312,349" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="1344,338 1438,338 1446,346 1446,353 1344,353 1344,338" stroke="rgb(0,0,0)" />
<path d="M 1438 338 L 1438 346" fill="none" stroke="rgb(0,0,0)" />
<path d="M 1438 346 L 1446 346" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="78" x="1391.0" y="351">finish_resize</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="156.0" y="81">cast</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="121">call</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="456.0" y="231">cast</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="1304.0" y="286">cast</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="1056.0" y="341">cast</text>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -0,0 +1,9 @@
seqdiag {
API; Source;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -> Source [label = "cast (or call if deleting)", note = "confirm_resize"];
}

View File

@ -0,0 +1,35 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 568 134" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
API; Source;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -&gt; Source [label = "cast (or call if deleting)", note = "confirm_resize"];
}</desc>
<polygon fill="rgb(0,0,0)" points="447,84 547,84 555,92 555,99 447,99 447,84" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="21" />
<path d="M 128 55 L 128 134" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 55 L 428 134" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="128.0" y="41">API</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="428.0" y="41">Source</text>
<path d="M 136 85 L 420 85" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="412,81 420,85 412,89" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="444,78 544,78 552,86 552,93 444,93 444,78" stroke="rgb(0,0,0)" />
<path d="M 544 78 L 544 86" fill="none" stroke="rgb(0,0,0)" />
<path d="M 544 86 L 552 86" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="84" x="494.0" y="91">confirm_resize</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="156" x="222.0" y="81">cast (or call if deleting)</text>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,10 @@
seqdiag {
API; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -> Destination [label = "cast", note = "revert_resize"];
Source <- Destination [label = "cast", leftnote = "finish_revert_resize"];
}

View File

@ -0,0 +1,48 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 862 189" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>seqdiag {
API; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -&gt; Destination [label = "cast", note = "revert_resize"];
Source &lt;- Destination [label = "cast", leftnote = "finish_revert_resize"];
}</desc>
<polygon fill="rgb(0,0,0)" points="747,84 841,84 849,92 849,99 747,99 747,84" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<polygon fill="rgb(0,0,0)" points="271,124 407,124 415,132 415,139 271,139 271,124" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="367" y="21" />
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="667" y="21" />
<path d="M 128 55 L 128 189" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 428 55 L 428 189" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<path d="M 728 55 L 728 189" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4" />
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="64" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="128.0" y="41">API</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="364" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="428.0" y="41">Source</text>
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="664" y="15" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="728.0" y="41">Destination</text>
<path d="M 136 85 L 720 85" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="712,81 720,85 712,89" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="744,78 838,78 846,86 846,93 744,93 744,78" stroke="rgb(0,0,0)" />
<path d="M 838 78 L 838 86" fill="none" stroke="rgb(0,0,0)" />
<path d="M 838 86 L 846 86" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="78" x="791.0" y="91">revert_resize</text>
<path d="M 436 125 L 720 125" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="444,121 436,125 444,129" stroke="rgb(0,0,0)" />
<polygon fill="rgb(255,255,255)" points="268,118 404,118 412,126 412,133 268,133 268,118" stroke="rgb(0,0,0)" />
<path d="M 404 118 L 404 126" fill="none" stroke="rgb(0,0,0)" />
<path d="M 404 126 L 412 126" fill="none" stroke="rgb(0,0,0)" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="120" x="336.0" y="131">finish_revert_resize</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="156.0" y="81">cast</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="704.0" y="121">cast</text>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,26 @@
actdiag {
build-spec -> send-spec -> send-reqs -> query -> return-rps ->
create -> filter -> claim -> return-hosts -> send-hosts;
lane conductor {
label = "Conductor";
build-spec [label = "Build request spec object", height = 38];
send-spec [label = "Submit request spec to scheduler", height = 38];
send-hosts [label = "Submit list of suitable hosts to target cell", height = 51];
}
lane scheduler {
label = "Scheduler";
send-reqs [label = "Submit resource requirements to placement", height = 64];
create [label = "Create a HostState object for each RP returned from Placement", height = 64];
filter [label = "Filter and weigh results", height = 38];
return-hosts [label = "Return a list of selected host & alternates, along with their allocations, to the conductor", height = 89];
}
lane placement {
label = "Placement";
query [label = "Query to determine the RPs representing compute nodes to satisfy requirements", height = 64];
return-rps [label = "Return list of resource providers and their corresponding allocations to scheduler", height = 89];
claim [label = "Create allocations against selected compute node", height = 64];
}
}

View File

@ -0,0 +1,126 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg viewBox="0 0 640 1119" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs_block">
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
</filter>
</defs>
<title>blockdiag</title>
<desc>actdiag {
build-spec -&gt; send-spec -&gt; send-reqs -&gt; query -&gt; return-rps -&gt;
create -&gt; filter -&gt; claim -&gt; return-hosts -&gt; send-hosts;
lane conductor {
label = "Conductor";
build-spec [label = "Build request spec object", height = 38];
send-spec [label = "Submit request spec to scheduler", height = 38];
send-hosts [label = "Submit list of suitable hosts to target cell", height = 51];
}
lane scheduler {
label = "Scheduler";
send-reqs [label = "Submit resource requirements to placement", height = 64];
create [label = "Create a HostState object for each RP returned from Placement", height = 64];
filter [label = "Filter and weigh results", height = 38];
return-hosts [label = "Return a list of selected host &amp; alternates, along with their allocations, to the conductor", height = 89];
}
lane placement {
label = "Placement";
query [label = "Query to determine the RPs representing compute nodes to satisfy requirements", height = 64];
return-rps [label = "Return list of resource providers and their corresponding allocations to scheduler", height = 89];
claim [label = "Create allocations against selected compute node", height = 64];
}
}</desc>
<rect fill="rgb(0,0,0)" height="38" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="126" />
<rect fill="rgb(0,0,0)" height="38" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="204" />
<rect fill="rgb(0,0,0)" height="64" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="259" y="282" />
<rect fill="rgb(0,0,0)" height="64" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="451" y="386" />
<rect fill="rgb(0,0,0)" height="89" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="451" y="490" />
<rect fill="rgb(0,0,0)" height="64" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="259" y="619" />
<rect fill="rgb(0,0,0)" height="38" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="259" y="723" />
<rect fill="rgb(0,0,0)" height="64" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="451" y="801" />
<rect fill="rgb(0,0,0)" height="89" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="259" y="905" />
<rect fill="rgb(0,0,0)" height="51" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="67" y="1034" />
<rect fill="#ffff99" height="62" stroke="#ffff99" width="192" x="32" y="38" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="128.0" y="75">Conductor</text>
<rect fill="#ffff99" height="62" stroke="#ffff99" width="192" x="224" y="38" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="320.0" y="75">Scheduler</text>
<rect fill="#ffff99" height="62" stroke="#ffff99" width="192" x="416" y="38" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="512.0" y="75">Placement</text>
<rect fill="none" height="1061" stroke="gray" width="576" x="32" y="38" />
<path d="M 32 100 L 608 100" fill="none" stroke="gray" />
<path d="M 224 38 L 224 1099" fill="none" stroke="gray" />
<path d="M 416 38 L 416 1099" fill="none" stroke="gray" />
<rect fill="rgb(255,255,255)" height="38" stroke="rgb(0,0,0)" width="128" x="64" y="120" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="128.0" y="138">Build request spec ob</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="128.0" y="151">ject</text>
<rect fill="rgb(255,255,255)" height="38" stroke="rgb(0,0,0)" width="128" x="64" y="198" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="128.0" y="216">Submit request spec t</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="128.0" y="229">o scheduler</text>
<rect fill="rgb(255,255,255)" height="64" stroke="rgb(0,0,0)" width="128" x="256" y="276" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="307">Submit resource requi</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="120" x="320.0" y="320">rements to placement</text>
<rect fill="rgb(255,255,255)" height="64" stroke="rgb(0,0,0)" width="128" x="448" y="380" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="398">Query to determine th</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="411">e RPs representing co</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="424">mpute nodes to satisf</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="84" x="512.0" y="437">y requirements</text>
<rect fill="rgb(255,255,255)" height="89" stroke="rgb(0,0,0)" width="128" x="448" y="484" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="515">Return list of resour</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="528">ce providers and thei</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="541">r corresponding alloc</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="114" x="512.0" y="554">ations to scheduler</text>
<rect fill="rgb(255,255,255)" height="64" stroke="rgb(0,0,0)" width="128" x="256" y="613" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="638">Create a HostState ob</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="651">ject for each RP retu</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="114" x="320.0" y="664">rned from Placement</text>
<rect fill="rgb(255,255,255)" height="38" stroke="rgb(0,0,0)" width="128" x="256" y="717" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="735">Filter and weigh resu</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="320.0" y="748">lts</text>
<rect fill="rgb(255,255,255)" height="64" stroke="rgb(0,0,0)" width="128" x="448" y="795" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="820">Create allocations ag</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="512.0" y="833">ainst selected comput</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="512.0" y="846">e node</text>
<rect fill="rgb(255,255,255)" height="89" stroke="rgb(0,0,0)" width="128" x="256" y="899" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="923">Return a list of sele</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="936">cted host &amp; alternate</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="949">s, along with their a</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="320.0" y="962">llocations, to the co</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="42" x="320.0" y="975">nductor</text>
<rect fill="rgb(255,255,255)" height="51" stroke="rgb(0,0,0)" width="128" x="64" y="1028" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="128.0" y="1046">Submit list of suitab</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="126" x="128.0" y="1059">le hosts to target ce</text>
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="12" x="128.0" y="1072">ll</text>
<path d="M 128 158 L 128 190" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="128,197 124,190 132,190 128,197" stroke="rgb(0,0,0)" />
<path d="M 128 236 L 128 256" fill="none" stroke="rgb(0,0,0)" />
<path d="M 128 256 L 320 256" fill="none" stroke="rgb(0,0,0)" />
<path d="M 320 256 L 320 268" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="320,275 316,268 324,268 320,275" stroke="rgb(0,0,0)" />
<path d="M 320 340 L 320 360" fill="none" stroke="rgb(0,0,0)" />
<path d="M 320 360 L 512 360" fill="none" stroke="rgb(0,0,0)" />
<path d="M 512 360 L 512 372" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="512,379 508,372 516,372 512,379" stroke="rgb(0,0,0)" />
<path d="M 512 444 L 512 476" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="512,483 508,476 516,476 512,483" stroke="rgb(0,0,0)" />
<path d="M 512 573 L 512 593" fill="none" stroke="rgb(0,0,0)" />
<path d="M 320 593 L 512 593" fill="none" stroke="rgb(0,0,0)" />
<path d="M 320 593 L 320 605" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="320,612 316,605 324,605 320,612" stroke="rgb(0,0,0)" />
<path d="M 320 677 L 320 709" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="320,716 316,709 324,709 320,716" stroke="rgb(0,0,0)" />
<path d="M 320 755 L 320 775" fill="none" stroke="rgb(0,0,0)" />
<path d="M 320 775 L 512 775" fill="none" stroke="rgb(0,0,0)" />
<path d="M 512 775 L 512 787" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="512,794 508,787 516,787 512,794" stroke="rgb(0,0,0)" />
<path d="M 512 859 L 512 879" fill="none" stroke="rgb(0,0,0)" />
<path d="M 320 879 L 512 879" fill="none" stroke="rgb(0,0,0)" />
<path d="M 320 879 L 320 891" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="320,898 316,891 324,891 320,898" stroke="rgb(0,0,0)" />
<path d="M 320 988 L 320 1008" fill="none" stroke="rgb(0,0,0)" />
<path d="M 128 1008 L 320 1008" fill="none" stroke="rgb(0,0,0)" />
<path d="M 128 1008 L 128 1020" fill="none" stroke="rgb(0,0,0)" />
<polygon fill="rgb(0,0,0)" points="128,1027 124,1020 132,1020 128,1027" stroke="rgb(0,0,0)" />
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -166,23 +166,9 @@ Resize
This is the sequence of calls to get the server to ``VERIFY_RESIZE`` status.
.. seqdiag::
.. image:: /_static/images/resize/cross-cell/resize.svg
:alt: Resize standard workflow
seqdiag {
API; Conductor; Scheduler; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API ->> Conductor [label = "cast", note = "resize_instance/migrate_server"];
Conductor => Scheduler [label = "MigrationTask", note = "select_destinations"];
Conductor -> Conductor [label = "TargetDBSetupTask"];
Conductor => Destination [label = "PrepResizeAtDestTask", note = "prep_snapshot_based_resize_at_dest"];
Conductor => Source [label = "PrepResizeAtSourceTask", note = "prep_snapshot_based_resize_at_source"];
Conductor => Destination [label = "FinishResizeAtDestTask", note = "finish_snapshot_based_resize_at_dest"];
Conductor -> Conductor [label = "FinishResizeAtDestTask", note = "update instance mapping"];
}
Confirm resize
~~~~~~~~~~~~~~
@ -190,25 +176,8 @@ Confirm resize
This is the sequence of calls when confirming `or deleting`_ a server in
``VERIFY_RESIZE`` status.
.. seqdiag::
seqdiag {
API; Conductor; Source;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API ->> Conductor [label = "cast (or call if deleting)", note = "confirm_snapshot_based_resize"];
// separator to indicate everything after this is driven by ConfirmResizeTask
=== ConfirmResizeTask ===
Conductor => Source [label = "call", note = "confirm_snapshot_based_resize_at_source"];
Conductor -> Conductor [note = "hard delete source cell instance"];
Conductor -> Conductor [note = "update target cell instance status"];
}
.. image:: /_static/images/resize/cross-cell/resize_confirm.svg
:alt: Resize confirm workflow
.. _or deleting: https://opendev.org/openstack/nova/src/tag/20.0.0/nova/compute/api.py#L2171
@ -218,28 +187,8 @@ Revert resize
This is the sequence of calls when reverting a server in ``VERIFY_RESIZE``
status.
.. seqdiag::
seqdiag {
API; Conductor; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API ->> Conductor [label = "cast", note = "revert_snapshot_based_resize"];
// separator to indicate everything after this is driven by RevertResizeTask
=== RevertResizeTask ===
Conductor -> Conductor [note = "update records from target to source cell"];
Conductor -> Conductor [note = "update instance mapping"];
Conductor => Destination [label = "call", note = "revert_snapshot_based_resize_at_dest"];
Conductor -> Conductor [note = "hard delete target cell instance"];
Conductor => Source [label = "call", note = "finish_revert_snapshot_based_resize_at_source"];
}
.. image:: /_static/images/resize/cross-cell/resize_revert.svg
:alt: Resize revert workflow
Limitations
-----------

View File

@ -42,8 +42,6 @@ extensions = [
'ext.versioned_notifications',
'ext.feature_matrix',
'ext.extra_specs',
'sphinxcontrib.actdiag',
'sphinxcontrib.seqdiag',
'sphinxcontrib.rsvgconverter',
]
@ -55,12 +53,6 @@ policy_generator_config_file = [
('../../etc/nova/nova-policy-generator.conf', '_static/nova'),
]
actdiag_html_image_format = 'SVG'
actdiag_antialias = True
seqdiag_html_image_format = 'SVG'
seqdiag_antialias = True
todo_include_todos = True
# The master toctree document.
@ -204,70 +196,3 @@ openstackdocs_projects = [
# process. As well as being unnecessary and a bad idea, this breaks on
# python3.6 (but not python3.7), so don't do that.
os.environ['OS_NOVA_DISABLE_EVENTLET_PATCHING'] = '1'
def monkey_patch_blockdiag():
"""Monkey patch the blockdiag library.
The default word wrapping in blockdiag is poor, and breaks on a fixed
text width rather than on word boundaries. There's a patch submitted to
resolve this [1]_ but it's unlikely to merge anytime soon.
In addition, blockdiag monkey patches a core library function,
``codecs.getreader`` [2]_, to work around some Python 3 issues. Because
this operates in the same environment as other code that uses this library,
it ends up causing issues elsewhere. We undo these destructive changes
pending a fix.
TODO: Remove this once blockdiag is bumped to 1.6, which will hopefully
include the fix.
.. [1] https://bitbucket.org/blockdiag/blockdiag/pull-requests/16/
.. [2] https://bitbucket.org/blockdiag/blockdiag/src/1.5.3/src/blockdiag/utils/compat.py # noqa
"""
import codecs
from codecs import getreader
from blockdiag.imagedraw import textfolder
from blockdiag.utils import compat # noqa
# oh, blockdiag. Let's undo the mess you made.
codecs.getreader = getreader
def splitlabel(text):
"""Split text to lines as generator.
Every line will be stripped. If text includes characters "\n\n", treat
as line separator. Ignore '\n' to allow line wrapping.
"""
lines = [x.strip() for x in text.splitlines()]
out = []
for line in lines:
if line:
out.append(line)
else:
yield ' '.join(out)
out = []
yield ' '.join(out)
def splittext(metrics, text, bound, measure='width'):
folded = [' ']
for word in text.split():
# Try appending the word to the last line
tryline = ' '.join([folded[-1], word]).strip()
textsize = metrics.textsize(tryline)
if getattr(textsize, measure) > bound:
# Start a new line. Appends `word` even if > bound.
folded.append(word)
else:
folded[-1] = tryline
return folded
# monkey patch those babies
textfolder.splitlabel = splitlabel
textfolder.splittext = splittext
monkey_patch_blockdiag()

View File

@ -124,21 +124,8 @@ Resize
This is the sequence of calls to get the server to ``VERIFY_RESIZE`` status.
.. seqdiag::
seqdiag {
API; Conductor; Scheduler; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -> Conductor [label = "cast", note = "resize_instance/migrate_server"];
Conductor => Scheduler [label = "call", note = "select_destinations"];
Conductor -> Destination [label = "cast", note = "prep_resize"];
Source <- Destination [label = "cast", leftnote = "resize_instance"];
Source -> Destination [label = "cast", note = "finish_resize"];
}
.. image:: /_static/images/resize/resize.svg
:alt: Resize standard workflow
Confirm resize
--------------
@ -149,17 +136,8 @@ This is the sequence of calls when confirming `or deleting`_ a server in
Note that in the below diagram, if confirming a resize while deleting a server
the API synchronously calls the source compute service.
.. seqdiag::
seqdiag {
API; Source;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -> Source [label = "cast (or call if deleting)", note = "confirm_resize"];
}
.. image:: /_static/images/resize/resize_confirm.svg
:alt: Resize confirm workflow
Revert resize
-------------
@ -167,18 +145,9 @@ Revert resize
This is the sequence of calls when reverting a server in ``VERIFY_RESIZE``
status.
.. seqdiag::
.. image:: /_static/images/resize/resize_revert.svg
:alt: Resize revert workflow
seqdiag {
API; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
API -> Destination [label = "cast", note = "revert_resize"];
Source <- Destination [label = "cast", leftnote = "finish_revert_resize"];
}
.. _resize API: https://docs.openstack.org/api-ref/compute/#resize-server-resize-action
.. _cold migrate API: https://docs.openstack.org/api-ref/compute/#migrate-server-migrate-action

View File

@ -31,4 +31,5 @@ attach volume flow. In this example these include locks against the
itself. This final ``connect_volume`` lock also being held when detaching and
disconnecting a volume from the host by ``os-brick``.
.. seqdiag:: attach_volume.diag
.. image:: /_static/images/attach_volume.svg
:alt: Attach volume workflow

View File

@ -15,34 +15,5 @@
Live Migration
================
.. seqdiag::
seqdiag {
Conductor; Source; Destination;
edge_length = 300;
span_height = 15;
activation = none;
default_note_color = white;
Conductor -> Destination [label = "call", note = "check_can_live_migrate_destination"];
Source <- Destination [label = "call", leftnote = "check_can_live_migrate_source"];
Source --> Destination;
Conductor <-- Destination;
Conductor ->> Source [label = "cast", note = "live_migrate"];
Source -> Destination [label = "call", note = "pre_live_migration (set up dest)"];
Source <-- Destination;
=== driver.live_migration (success) ===
Source -> Source [leftnote = "post_live_migration (clean up source)"];
Source -> Destination [label = "call", note = "post_live_migration_at_destination (finish dest)"];
Source <-- Destination;
=== driver.live_migration (failure) ===
Source -> Source [leftnote = "_rollback_live_migration"];
Source -> Destination [label = "call", note = "remove_volume_connections"];
Source <-- Destination;
Source ->> Destination [label = "cast", note = "rollback_live_migration_at_destination"];
}
.. image:: /_static/images/live-migration.svg
:alt: Live migration workflow

View File

@ -29,34 +29,8 @@ The scheduling process is described below.
alternative hosts passed between the scheduler and conductor(s) is future
work.
.. actdiag::
actdiag {
build-spec -> send-spec -> send-reqs -> query -> return-rps ->
create -> filter -> claim -> return-hosts -> send-hosts;
lane conductor {
label = "Conductor";
build-spec [label = "Build request spec object", height = 38];
send-spec [label = "Submit request spec to scheduler", height = 38];
send-hosts [label = "Submit list of suitable hosts to target cell", height = 51];
}
lane scheduler {
label = "Scheduler";
send-reqs [label = "Submit resource requirements to placement", height = 64];
create [label = "Create a HostState object for each RP returned from Placement", height = 64];
filter [label = "Filter and weigh results", height = 38];
return-hosts [label = "Return a list of selected host & alternates, along with their allocations, to the conductor", height = 89];
}
lane placement {
label = "Placement";
query [label = "Query to determine the RPs representing compute nodes to satisfy requirements", height = 64];
return-rps [label = "Return list of resource providers and their corresponding allocations to scheduler", height = 89];
claim [label = "Create allocations against selected compute node", height = 64];
}
}
.. image:: /_static/images/scheduling.svg
:alt: Scheduling workflow
As the above diagram illustrates, scheduling works like so: