Add manual cleaning to state machine

This adds transitions to the state machine so that manual cleaning can
be performed on a node in the manageable provision state via the
'clean' verb. After cleaning is successfully finished, the node will
be in the manageable provision state again (via the 'manage' verb).

The state machine diagram was updated to reflect this.

Change-Id: Ifacdcceb65d1384351aa832042a7471bb48f0894
Implements: blueprint manual-cleaning
This commit is contained in:
Ruby Loo 2015-11-18 22:26:51 +00:00
parent 30ea86d005
commit 43adad2e0a
2 changed files with 187 additions and 168 deletions

View File

@ -1,286 +1,298 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.30.1 (20140125.0105)
<!-- Generated by graphviz version 2.30.1 (20140821.0912)
-->
<!-- Title: Ironic states Pages: 1 -->
<svg width="1602pt" height="606pt"
viewBox="0.00 0.00 1602.00 605.72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 601.716)">
<svg width="1604pt" height="505pt"
viewBox="0.00 0.00 1604.00 505.06" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 501.06)">
<title>Ironic states</title>
<polygon fill="white" stroke="white" points="-4,5 -4,-601.716 1599,-601.716 1599,5 -4,5"/>
<polygon fill="white" stroke="white" points="-4,5 -4,-501.06 1601,-501.06 1601,5 -4,5"/>
<!-- enroll -->
<g id="node1" class="node"><title>enroll</title>
<ellipse fill="none" stroke="black" cx="27" cy="-98.716" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-95.916" font-family="Times,serif" font-size="11.00">enroll</text>
<ellipse fill="none" stroke="black" cx="27" cy="-143.06" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-140.26" font-family="Times,serif" font-size="11.00">enroll</text>
</g>
<!-- verifying -->
<g id="node2" class="node"><title>verifying</title>
<ellipse fill="none" stroke="black" cx="188" cy="-98.716" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="188" y="-95.916" font-family="Times,serif" font-size="11.00">verifying</text>
<ellipse fill="none" stroke="black" cx="188" cy="-143.06" rx="33.8507" ry="18"/>
<text text-anchor="middle" x="188" y="-140.26" font-family="Times,serif" font-size="11.00">verifying</text>
</g>
<!-- enroll&#45;&gt;verifying -->
<g id="edge1" class="edge"><title>enroll&#45;&gt;verifying</title>
<path fill="none" stroke="black" d="M54.2556,-98.716C78.6082,-98.716 115.297,-98.716 143.936,-98.716"/>
<polygon fill="black" stroke="black" points="144.085,-102.216 154.085,-98.716 144.085,-95.2161 144.085,-102.216"/>
<text text-anchor="middle" x="104" y="-102.516" font-family="Times,serif" font-size="14.00">on_manage</text>
<path fill="none" stroke="black" d="M54.2556,-143.06C78.6082,-143.06 115.297,-143.06 143.936,-143.06"/>
<polygon fill="black" stroke="black" points="144.085,-146.56 154.085,-143.06 144.085,-139.56 144.085,-146.56"/>
<text text-anchor="middle" x="104" y="-146.86" font-family="Times,serif" font-size="14.00">on_manage</text>
</g>
<!-- manageable -->
<g id="node3" class="node"><title>manageable</title>
<ellipse fill="none" stroke="black" cx="348" cy="-98.716" rx="42.1875" ry="18"/>
<text text-anchor="middle" x="348" y="-95.916" font-family="Times,serif" font-size="11.00">manageable</text>
<ellipse fill="none" stroke="black" cx="348" cy="-143.06" rx="42.1875" ry="18"/>
<text text-anchor="middle" x="348" y="-140.26" font-family="Times,serif" font-size="11.00">manageable</text>
</g>
<!-- verifying&#45;&gt;manageable -->
<g id="edge10" class="edge"><title>verifying&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M221.738,-98.716C243.092,-98.716 271.41,-98.716 295.718,-98.716"/>
<polygon fill="black" stroke="black" points="295.858,-102.216 305.858,-98.716 295.858,-95.2161 295.858,-102.216"/>
<text text-anchor="middle" x="264" y="-102.516" font-family="Times,serif" font-size="14.00">on_done</text>
<g id="edge11" class="edge"><title>verifying&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M221.738,-143.06C243.092,-143.06 271.41,-143.06 295.718,-143.06"/>
<polygon fill="black" stroke="black" points="295.858,-146.56 305.858,-143.06 295.858,-139.56 295.858,-146.56"/>
<text text-anchor="middle" x="264" y="-146.86" font-family="Times,serif" font-size="14.00">on_done</text>
</g>
<!-- verifying&#45;&gt;enroll -->
<g id="edge11" class="edge"><title>verifying&#45;&gt;enroll</title>
<path fill="none" stroke="black" d="M161.82,-87.3122C153.743,-84.2083 144.648,-81.2746 136,-79.716 108.007,-74.6709 99.8557,-73.9587 72,-79.716 67.4776,-80.6507 62.8481,-82.0732 58.3704,-83.7279"/>
<polygon fill="black" stroke="black" points="56.8256,-80.5789 48.9111,-87.6224 59.4906,-87.0517 56.8256,-80.5789"/>
<text text-anchor="middle" x="104" y="-83.516" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
<g id="edge12" class="edge"><title>verifying&#45;&gt;enroll</title>
<path fill="none" stroke="black" d="M161.82,-131.657C153.743,-128.553 144.648,-125.619 136,-124.06 108.007,-119.015 99.8557,-118.303 72,-124.06 67.4776,-124.995 62.8481,-126.417 58.3704,-128.072"/>
<polygon fill="black" stroke="black" points="56.8256,-124.923 48.9111,-131.967 59.4906,-131.396 56.8256,-124.923"/>
<text text-anchor="middle" x="104" y="-127.86" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
</g>
<!-- cleaning -->
<g id="node4" class="node"><title>cleaning</title>
<ellipse fill="none" stroke="black" cx="526" cy="-213.716" rx="32.4445" ry="18"/>
<text text-anchor="middle" x="526" y="-210.916" font-family="Times,serif" font-size="11.00">cleaning</text>
<ellipse fill="none" stroke="black" cx="528" cy="-217.06" rx="32.4445" ry="18"/>
<text text-anchor="middle" x="528" y="-214.26" font-family="Times,serif" font-size="11.00">cleaning</text>
</g>
<!-- manageable&#45;&gt;cleaning -->
<g id="edge2" class="edge"><title>manageable&#45;&gt;cleaning</title>
<path fill="none" stroke="black" d="M372.009,-113.75C403.657,-134.429 460.642,-171.664 495.421,-194.389"/>
<polygon fill="black" stroke="black" points="493.893,-197.571 504.179,-200.111 497.722,-191.712 493.893,-197.571"/>
<text text-anchor="middle" x="439" y="-179.516" font-family="Times,serif" font-size="14.00">on_provide</text>
<path fill="none" stroke="black" d="M357.933,-160.807C367.647,-177.938 384.925,-202.876 408,-214.06 432.3,-225.838 462.795,-226.374 486.831,-224.077"/>
<polygon fill="black" stroke="black" points="487.504,-227.522 497.037,-222.897 486.701,-220.568 487.504,-227.522"/>
<text text-anchor="middle" x="440" y="-228.86" font-family="Times,serif" font-size="14.00">on_provide</text>
</g>
<!-- manageable&#45;&gt;cleaning -->
<g id="edge3" class="edge"><title>manageable&#45;&gt;cleaning</title>
<path fill="none" stroke="black" d="M372.507,-157.787C383.082,-163.995 395.889,-170.95 408,-176.06 435.338,-187.595 443.974,-185.318 472,-195.06 478.592,-197.352 485.554,-199.974 492.226,-202.591"/>
<polygon fill="black" stroke="black" points="491.133,-205.923 501.718,-206.382 493.729,-199.423 491.133,-205.923"/>
<text text-anchor="middle" x="440" y="-198.86" font-family="Times,serif" font-size="14.00">on_clean</text>
</g>
<!-- inspecting -->
<g id="node5" class="node"><title>inspecting</title>
<ellipse fill="none" stroke="black" cx="526" cy="-21.716" rx="37.0671" ry="18"/>
<text text-anchor="middle" x="526" y="-18.916" font-family="Times,serif" font-size="11.00">inspecting</text>
<ellipse fill="none" stroke="black" cx="528" cy="-26.0603" rx="37.0671" ry="18"/>
<text text-anchor="middle" x="528" y="-23.2603" font-family="Times,serif" font-size="11.00">inspecting</text>
</g>
<!-- manageable&#45;&gt;inspecting -->
<g id="edge3" class="edge"><title>manageable&#45;&gt;inspecting</title>
<path fill="none" stroke="black" d="M363.847,-81.6568C374.882,-70.0585 390.927,-55.3127 408,-46.716 430.041,-35.618 456.822,-29.4365 479.198,-25.9983"/>
<polygon fill="black" stroke="black" points="479.719,-29.4596 489.136,-24.6039 478.746,-22.5275 479.719,-29.4596"/>
<text text-anchor="middle" x="439" y="-50.516" font-family="Times,serif" font-size="14.00">on_inspect</text>
<g id="edge4" class="edge"><title>manageable&#45;&gt;inspecting</title>
<path fill="none" stroke="black" d="M355.512,-125.089C364.142,-103.936 381.447,-69.3752 408,-51.0603 429.117,-36.4947 457,-30.1241 480.467,-27.4504"/>
<polygon fill="black" stroke="black" points="480.934,-30.9218 490.558,-26.4917 480.272,-23.9532 480.934,-30.9218"/>
<text text-anchor="middle" x="440" y="-54.8603" font-family="Times,serif" font-size="14.00">on_inspect</text>
</g>
<!-- available -->
<g id="node6" class="node"><title>available</title>
<ellipse fill="none" stroke="black" cx="711" cy="-332.716" rx="34.054" ry="18"/>
<text text-anchor="middle" x="711" y="-329.916" font-family="Times,serif" font-size="11.00">available</text>
<ellipse fill="none" stroke="black" cx="713" cy="-329.06" rx="34.054" ry="18"/>
<text text-anchor="middle" x="713" y="-326.26" font-family="Times,serif" font-size="11.00">available</text>
</g>
<!-- cleaning&#45;&gt;available -->
<g id="edge21" class="edge"><title>cleaning&#45;&gt;available</title>
<path fill="none" stroke="black" d="M537.216,-230.788C547.004,-245.827 563.06,-267.359 582,-280.716 606.701,-298.136 617.99,-292.358 646,-303.716 655.75,-307.67 666.195,-312.251 675.76,-316.588"/>
<polygon fill="black" stroke="black" points="674.424,-319.826 684.973,-320.812 677.341,-313.463 674.424,-319.826"/>
<text text-anchor="middle" x="614" y="-307.516" font-family="Times,serif" font-size="14.00">on_done</text>
<g id="edge22" class="edge"><title>cleaning&#45;&gt;available</title>
<path fill="none" stroke="black" d="M540.809,-233.902C550.925,-247.234 566.586,-265.478 584,-277.06 609.167,-293.799 619.99,-288.703 648,-300.06 657.75,-304.014 668.195,-308.595 677.76,-312.933"/>
<polygon fill="black" stroke="black" points="676.424,-316.17 686.973,-317.156 679.341,-309.807 676.424,-316.17"/>
<text text-anchor="middle" x="616" y="-303.86" font-family="Times,serif" font-size="14.00">on_done</text>
</g>
<!-- clean failed -->
<g id="node13" class="node"><title>clean failed</title>
<ellipse fill="none" stroke="black" cx="894" cy="-175.716" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="894" y="-172.916" font-family="Times,serif" font-size="11.00" fill="red">clean failed</text>
<ellipse fill="none" stroke="black" cx="896" cy="-223.06" rx="41.4846" ry="18"/>
<text text-anchor="middle" x="896" y="-220.26" font-family="Times,serif" font-size="11.00" fill="red">clean failed</text>
</g>
<!-- cleaning&#45;&gt;clean failed -->
<g id="edge22" class="edge"><title>cleaning&#45;&gt;clean failed</title>
<path fill="none" stroke="black" d="M558.7,-214.391C566.33,-214.526 574.456,-214.647 582,-214.716 694.421,-215.738 723.782,-214.888 834,-192.716 839.356,-191.639 844.932,-190.311 850.425,-188.877"/>
<polygon fill="black" stroke="black" points="851.438,-192.229 860.159,-186.212 849.589,-185.477 851.438,-192.229"/>
<text text-anchor="middle" x="711" y="-217.516" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
<g id="edge23" class="edge"><title>cleaning&#45;&gt;clean failed</title>
<path fill="none" stroke="black" d="M555.536,-226.665C564.467,-229.519 574.561,-232.339 584,-234.06 694.198,-254.151 724.947,-252.699 836,-238.06 841.044,-237.395 846.278,-236.45 851.451,-235.353"/>
<polygon fill="black" stroke="black" points="852.302,-238.749 861.259,-233.092 850.729,-231.928 852.302,-238.749"/>
<text text-anchor="middle" x="713" y="-252.86" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
</g>
<!-- clean wait -->
<g id="node14" class="node"><title>clean wait</title>
<ellipse fill="none" stroke="black" cx="711" cy="-172.716" rx="37.7689" ry="18"/>
<text text-anchor="middle" x="711" y="-169.916" font-family="Times,serif" font-size="11.00">clean wait</text>
<ellipse fill="none" stroke="black" cx="713" cy="-212.06" rx="37.7689" ry="18"/>
<text text-anchor="middle" x="713" y="-209.26" font-family="Times,serif" font-size="11.00">clean wait</text>
</g>
<!-- cleaning&#45;&gt;clean wait -->
<g id="edge23" class="edge"><title>cleaning&#45;&gt;clean wait</title>
<path fill="none" stroke="black" d="M555.775,-206.153C564.209,-204.001 573.459,-201.703 582,-199.716 609.802,-193.248 641.157,-186.623 665.876,-181.554"/>
<polygon fill="black" stroke="black" points="666.59,-184.981 675.688,-179.552 665.19,-178.122 666.59,-184.981"/>
<text text-anchor="middle" x="614" y="-203.516" font-family="Times,serif" font-size="14.00">on_wait</text>
<g id="edge24" class="edge"><title>cleaning&#45;&gt;clean wait</title>
<path fill="none" stroke="black" d="M560.571,-216.316C584.554,-215.738 618.356,-214.897 648,-214.06 653.487,-213.905 659.238,-213.736 664.947,-213.563"/>
<polygon fill="black" stroke="black" points="665.224,-217.056 675.112,-213.251 665.009,-210.06 665.224,-217.056"/>
<text text-anchor="middle" x="616" y="-218.86" font-family="Times,serif" font-size="14.00">on_wait</text>
</g>
<!-- cleaning&#45;&gt;manageable -->
<g id="edge25" class="edge"><title>cleaning&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M516.428,-199.947C506.732,-185.879 491.013,-166.745 472,-157.06 450.078,-145.895 423.168,-141.915 400.114,-140.928"/>
<polygon fill="black" stroke="black" points="399.91,-137.422 389.825,-140.67 399.734,-144.419 399.91,-137.422"/>
<text text-anchor="middle" x="440" y="-160.86" font-family="Times,serif" font-size="14.00">on_manage</text>
</g>
<!-- inspecting&#45;&gt;manageable -->
<g id="edge30" class="edge"><title>inspecting&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M497.268,-10.0453C472.407,-1.50053 435.692,6.24228 408,-8.71602 383.592,-21.9006 367.649,-50.0684 358.563,-71.4028"/>
<polygon fill="black" stroke="black" points="355.214,-70.3533 354.756,-80.9382 361.715,-72.9491 355.214,-70.3533"/>
<text text-anchor="middle" x="439" y="-12.516" font-family="Times,serif" font-size="14.00">on_done</text>
<g id="edge32" class="edge"><title>inspecting&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M501.143,-13.3263C475.454,-2.6721 435.96,8.12396 408,-10.0603 372.423,-33.1984 358.132,-83.25 352.51,-114.924"/>
<polygon fill="black" stroke="black" points="349.039,-114.469 350.918,-124.895 355.951,-115.572 349.039,-114.469"/>
<text text-anchor="middle" x="440" y="-13.8603" font-family="Times,serif" font-size="14.00">on_done</text>
</g>
<!-- inspect failed -->
<g id="node15" class="node"><title>inspect failed</title>
<ellipse fill="none" stroke="black" cx="711" cy="-51.716" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="711" y="-48.916" font-family="Times,serif" font-size="11.00" fill="red">inspect failed</text>
<ellipse fill="none" stroke="black" cx="713" cy="-56.0603" rx="46.1069" ry="18"/>
<text text-anchor="middle" x="713" y="-53.2603" font-family="Times,serif" font-size="11.00" fill="red">inspect failed</text>
</g>
<!-- inspecting&#45;&gt;inspect failed -->
<g id="edge31" class="edge"><title>inspecting&#45;&gt;inspect failed</title>
<path fill="none" stroke="black" d="M555.167,-32.9407C563.668,-35.9192 573.106,-38.828 582,-40.716 605.461,-45.6963 631.797,-48.4335 654.453,-49.9333"/>
<polygon fill="black" stroke="black" points="654.389,-53.4357 664.58,-50.539 654.806,-46.4482 654.389,-53.4357"/>
<text text-anchor="middle" x="614" y="-53.516" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
<g id="edge33" class="edge"><title>inspecting&#45;&gt;inspect failed</title>
<path fill="none" stroke="black" d="M557.167,-37.285C565.668,-40.2635 575.106,-43.1723 584,-45.0603 607.461,-50.0406 633.797,-52.7778 656.453,-54.2776"/>
<polygon fill="black" stroke="black" points="656.389,-57.7799 666.58,-54.8833 656.806,-50.7924 656.389,-57.7799"/>
<text text-anchor="middle" x="616" y="-57.8603" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
</g>
<!-- deploying -->
<g id="node7" class="node"><title>deploying</title>
<ellipse fill="none" stroke="black" cx="894" cy="-438.716" rx="35.4579" ry="18"/>
<text text-anchor="middle" x="894" y="-435.916" font-family="Times,serif" font-size="11.00">deploying</text>
<ellipse fill="none" stroke="black" cx="896" cy="-338.06" rx="35.4579" ry="18"/>
<text text-anchor="middle" x="896" y="-335.26" font-family="Times,serif" font-size="11.00">deploying</text>
</g>
<!-- available&#45;&gt;deploying -->
<g id="edge4" class="edge"><title>available&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M734.558,-345.927C766.532,-364.652 825.172,-398.994 861.447,-420.238"/>
<polygon fill="black" stroke="black" points="859.76,-423.306 870.158,-425.339 863.298,-417.265 859.76,-423.306"/>
<text text-anchor="middle" x="805" y="-404.516" font-family="Times,serif" font-size="14.00">on_deploy</text>
<g id="edge5" class="edge"><title>available&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M747.198,-330.711C776.081,-332.147 818.192,-334.241 850.083,-335.827"/>
<polygon fill="black" stroke="black" points="850.311,-339.342 860.473,-336.343 850.659,-332.351 850.311,-339.342"/>
<text text-anchor="middle" x="807" y="-337.86" font-family="Times,serif" font-size="14.00">on_deploy</text>
</g>
<!-- available&#45;&gt;manageable -->
<g id="edge5" class="edge"><title>available&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M676.576,-333.623C650.099,-333.276 612.603,-330.377 582,-318.716 493.262,-284.904 472.823,-264.111 408,-194.716 388.632,-173.983 372.273,-145.93 361.73,-125.505"/>
<polygon fill="black" stroke="black" points="364.788,-123.797 357.169,-116.435 358.534,-126.941 364.788,-123.797"/>
<text text-anchor="middle" x="526" y="-314.516" font-family="Times,serif" font-size="14.00">on_manage</text>
<g id="edge6" class="edge"><title>available&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M678.473,-328.642C617.437,-326.135 487.19,-312.509 408,-244.06 384.981,-224.164 368.697,-192.96 359.149,-170.501"/>
<polygon fill="black" stroke="black" points="362.363,-169.113 355.353,-161.169 355.879,-171.751 362.363,-169.113"/>
<text text-anchor="middle" x="528" y="-317.86" font-family="Times,serif" font-size="14.00">on_manage</text>
</g>
<!-- deploy failed -->
<g id="node11" class="node"><title>deploy failed</title>
<ellipse fill="none" stroke="black" cx="1251" cy="-399.716" rx="44.498" ry="18"/>
<text text-anchor="middle" x="1251" y="-396.916" font-family="Times,serif" font-size="11.00" fill="red">deploy failed</text>
<ellipse fill="none" stroke="black" cx="1253" cy="-295.06" rx="44.498" ry="18"/>
<text text-anchor="middle" x="1253" y="-292.26" font-family="Times,serif" font-size="11.00" fill="red">deploy failed</text>
</g>
<!-- deploying&#45;&gt;deploy failed -->
<g id="edge12" class="edge"><title>deploying&#45;&gt;deploy failed</title>
<path fill="none" stroke="black" d="M926.697,-431.338C935.494,-429.545 945.079,-427.826 954,-426.716 1057.32,-413.858 1085.05,-431.25 1188,-415.716 1193.43,-414.897 1199.07,-413.799 1204.64,-412.56"/>
<polygon fill="black" stroke="black" points="1205.6,-415.927 1214.52,-410.206 1203.98,-409.117 1205.6,-415.927"/>
<text text-anchor="middle" x="1082" y="-425.516" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
<g id="edge13" class="edge"><title>deploying&#45;&gt;deploy failed</title>
<path fill="none" stroke="black" d="M928.71,-330.782C937.507,-328.99 947.089,-327.246 956,-326.06 1059.3,-312.31 1087.09,-327.487 1190,-311.06 1195.42,-310.195 1201.06,-309.069 1206.62,-307.813"/>
<polygon fill="black" stroke="black" points="1207.6,-311.179 1216.51,-305.444 1205.97,-304.372 1207.6,-311.179"/>
<text text-anchor="middle" x="1084" y="-322.86" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
</g>
<!-- wait call&#45;back -->
<g id="node12" class="node"><title>wait call&#45;back</title>
<ellipse fill="none" stroke="black" cx="1082" cy="-468.716" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="1082" y="-465.916" font-family="Times,serif" font-size="11.00">wait call&#45;back</text>
<ellipse fill="none" stroke="black" cx="1084" cy="-364.06" rx="48.2143" ry="18"/>
<text text-anchor="middle" x="1084" y="-361.26" font-family="Times,serif" font-size="11.00">wait call&#45;back</text>
</g>
<!-- deploying&#45;&gt;wait call&#45;back -->
<g id="edge13" class="edge"><title>deploying&#45;&gt;wait call&#45;back</title>
<path fill="none" stroke="black" d="M924.806,-447.764C934.089,-450.32 944.407,-452.898 954,-454.716 976.86,-459.049 1002.31,-462.181 1024.38,-464.369"/>
<polygon fill="black" stroke="black" points="1024.31,-467.878 1034.6,-465.339 1024.97,-460.909 1024.31,-467.878"/>
<text text-anchor="middle" x="985" y="-466.516" font-family="Times,serif" font-size="14.00">on_wait</text>
<g id="edge14" class="edge"><title>deploying&#45;&gt;wait call&#45;back</title>
<path fill="none" stroke="black" d="M926.773,-347.292C936.054,-349.856 946.38,-352.392 956,-354.06 978.669,-357.991 1003.88,-360.379 1025.84,-361.828"/>
<polygon fill="black" stroke="black" points="1025.8,-365.332 1036,-362.448 1026.23,-358.345 1025.8,-365.332"/>
<text text-anchor="middle" x="987" y="-363.86" font-family="Times,serif" font-size="14.00">on_wait</text>
</g>
<!-- active -->
<g id="node8" class="node"><title>active</title>
<ellipse fill="none" stroke="black" cx="1082" cy="-522.716" rx="27" ry="18"/>
<text text-anchor="middle" x="1082" y="-519.916" font-family="Times,serif" font-size="11.00">active</text>
<ellipse fill="none" stroke="black" cx="1084" cy="-418.06" rx="27" ry="18"/>
<text text-anchor="middle" x="1084" y="-415.26" font-family="Times,serif" font-size="11.00">active</text>
</g>
<!-- deploying&#45;&gt;active -->
<g id="edge14" class="edge"><title>deploying&#45;&gt;active</title>
<path fill="none" stroke="black" d="M912.88,-454.071C924.101,-463.098 939.204,-474.181 954,-481.716 983.709,-496.846 1020.15,-507.921 1046.36,-514.719"/>
<polygon fill="black" stroke="black" points="1045.67,-518.154 1056.22,-517.2 1047.38,-511.366 1045.67,-518.154"/>
<text text-anchor="middle" x="985" y="-509.516" font-family="Times,serif" font-size="14.00">on_done</text>
<g id="edge15" class="edge"><title>deploying&#45;&gt;active</title>
<path fill="none" stroke="black" d="M915.47,-353.125C926.661,-361.668 941.53,-372.023 956,-379.06 985.665,-393.486 1021.82,-403.966 1047.96,-410.406"/>
<polygon fill="black" stroke="black" points="1047.26,-413.837 1057.8,-412.757 1048.88,-407.029 1047.26,-413.837"/>
<text text-anchor="middle" x="987" y="-404.86" font-family="Times,serif" font-size="14.00">on_done</text>
</g>
<!-- active&#45;&gt;deploying -->
<g id="edge6" class="edge"><title>active&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1057.84,-531.213C1031.08,-539.51 986.567,-548.519 954,-530.716 929.022,-517.062 913.058,-487.815 904.12,-465.941"/>
<polygon fill="black" stroke="black" points="907.346,-464.579 900.501,-456.492 900.809,-467.083 907.346,-464.579"/>
<text text-anchor="middle" x="985" y="-544.516" font-family="Times,serif" font-size="14.00">on_rebuild</text>
<g id="edge7" class="edge"><title>active&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1060.82,-427.327C1034.2,-436.902 989.036,-448.12 956,-430.06 931.022,-416.406 915.058,-387.16 906.12,-365.285"/>
<polygon fill="black" stroke="black" points="909.346,-363.923 902.501,-355.836 902.809,-366.427 909.346,-363.923"/>
<text text-anchor="middle" x="987" y="-442.86" font-family="Times,serif" font-size="14.00">on_rebuild</text>
</g>
<!-- deleting -->
<g id="node9" class="node"><title>deleting</title>
<ellipse fill="none" stroke="black" cx="1418" cy="-468.716" rx="31.0408" ry="18"/>
<text text-anchor="middle" x="1418" y="-465.916" font-family="Times,serif" font-size="11.00">deleting</text>
<ellipse fill="none" stroke="black" cx="1420" cy="-364.06" rx="31.0408" ry="18"/>
<text text-anchor="middle" x="1420" y="-361.26" font-family="Times,serif" font-size="11.00">deleting</text>
</g>
<!-- active&#45;&gt;deleting -->
<g id="edge7" class="edge"><title>active&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1109.15,-520.274C1159.58,-515.292 1273.67,-502.711 1368,-482.716 1372.09,-481.849 1376.34,-480.825 1380.55,-479.732"/>
<polygon fill="black" stroke="black" points="1381.48,-483.105 1390.21,-477.096 1379.64,-476.352 1381.48,-483.105"/>
<text text-anchor="middle" x="1251" y="-512.516" font-family="Times,serif" font-size="14.00">on_delete</text>
<g id="edge8" class="edge"><title>active&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1111.15,-415.618C1161.58,-410.637 1275.67,-398.056 1370,-378.06 1374.09,-377.193 1378.34,-376.17 1382.55,-375.076"/>
<polygon fill="black" stroke="black" points="1383.48,-378.449 1392.21,-372.441 1381.64,-371.696 1383.48,-378.449"/>
<text text-anchor="middle" x="1253" y="-407.86" font-family="Times,serif" font-size="14.00">on_delete</text>
</g>
<!-- error -->
<g id="node10" class="node"><title>error</title>
<ellipse fill="none" stroke="black" cx="1567" cy="-506.716" rx="27" ry="18"/>
<text text-anchor="middle" x="1567" y="-503.916" font-family="Times,serif" font-size="11.00" fill="red">error</text>
<ellipse fill="none" stroke="black" cx="1569" cy="-402.06" rx="27" ry="18"/>
<text text-anchor="middle" x="1569" y="-399.26" font-family="Times,serif" font-size="11.00" fill="red">error</text>
</g>
<!-- deleting&#45;&gt;error -->
<g id="edge28" class="edge"><title>deleting&#45;&gt;error</title>
<path fill="none" stroke="black" d="M1447.13,-462.077C1468.44,-458.408 1498.03,-456.279 1522,-465.716 1531.42,-469.424 1540.01,-476.202 1547.06,-483.195"/>
<polygon fill="black" stroke="black" points="1544.69,-485.786 1554.06,-490.73 1549.82,-481.022 1544.69,-485.786"/>
<text text-anchor="middle" x="1495" y="-469.516" font-family="Times,serif" font-size="14.00" fill="red">on_error</text>
<g id="edge30" class="edge"><title>deleting&#45;&gt;error</title>
<path fill="none" stroke="black" d="M1449.13,-357.421C1470.44,-353.752 1500.03,-351.623 1524,-361.06 1533.42,-364.768 1542.01,-371.547 1549.06,-378.539"/>
<polygon fill="black" stroke="black" points="1546.69,-381.13 1556.06,-386.075 1551.82,-376.366 1546.69,-381.13"/>
<text text-anchor="middle" x="1497" y="-364.86" font-family="Times,serif" font-size="14.00" fill="red">on_error</text>
</g>
<!-- deleting&#45;&gt;cleaning -->
<g id="edge29" class="edge"><title>deleting&#45;&gt;cleaning</title>
<path fill="none" stroke="black" d="M1411.84,-451.056C1396.42,-402.353 1345.8,-269.716 1252,-269.716 710,-269.716 710,-269.716 710,-269.716 655.486,-269.716 595.679,-246.713 559.756,-230.193"/>
<polygon fill="black" stroke="black" points="560.819,-226.825 550.281,-225.729 557.836,-233.157 560.819,-226.825"/>
<text text-anchor="middle" x="985" y="-273.516" font-family="Times,serif" font-size="14.00">on_clean</text>
<g id="edge31" class="edge"><title>deleting&#45;&gt;cleaning</title>
<path fill="none" stroke="black" d="M1413.84,-346.4C1398.42,-297.698 1347.8,-165.06 1254,-165.06 712,-165.06 712,-165.06 712,-165.06 654.277,-165.06 638.518,-168.095 584,-187.06 575.509,-190.014 566.767,-194.188 558.822,-198.486"/>
<polygon fill="black" stroke="black" points="556.902,-195.551 549.924,-203.523 560.35,-201.643 556.902,-195.551"/>
<text text-anchor="middle" x="987" y="-168.86" font-family="Times,serif" font-size="14.00">on_clean</text>
</g>
<!-- error&#45;&gt;deploying -->
<g id="edge8" class="edge"><title>error&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1550.2,-521.37C1524.68,-543.454 1471.86,-582.716 1419,-582.716 1081,-582.716 1081,-582.716 1081,-582.716 1023.64,-582.716 999.73,-594.346 954,-559.716 923.932,-536.946 908.327,-494.798 900.899,-466.753"/>
<polygon fill="black" stroke="black" points="904.229,-465.638 898.439,-456.765 897.432,-467.312 904.229,-465.638"/>
<text text-anchor="middle" x="1251" y="-586.516" font-family="Times,serif" font-size="14.00">on_rebuild</text>
<g id="edge9" class="edge"><title>error&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1553.16,-416.734C1528.16,-439.829 1475.04,-482.06 1421,-482.06 1083,-482.06 1083,-482.06 1083,-482.06 1025.56,-482.06 1001.72,-492.838 956,-458.06 926.181,-435.378 910.511,-393.605 903.001,-365.825"/>
<polygon fill="black" stroke="black" points="906.346,-364.774 900.51,-355.932 899.558,-366.484 906.346,-364.774"/>
<text text-anchor="middle" x="1253" y="-485.86" font-family="Times,serif" font-size="14.00">on_rebuild</text>
</g>
<!-- error&#45;&gt;deleting -->
<g id="edge9" class="edge"><title>error&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1540.86,-501.758C1520.97,-497.67 1492.55,-491.463 1468,-484.716 1463.83,-483.569 1459.48,-482.284 1455.17,-480.954"/>
<polygon fill="black" stroke="black" points="1455.9,-477.511 1445.31,-477.814 1453.78,-484.182 1455.9,-477.511"/>
<text text-anchor="middle" x="1495" y="-500.516" font-family="Times,serif" font-size="14.00">on_delete</text>
</g>
<!-- deploy failed&#45;&gt;deploying -->
<g id="edge18" class="edge"><title>deploy failed&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1206.42,-397.724C1162.7,-396.288 1093.5,-395.546 1034,-401.716 997.934,-405.456 988.949,-408.056 954,-417.716 946.867,-419.688 939.357,-422.095 932.174,-424.568"/>
<polygon fill="black" stroke="black" points="930.903,-421.304 922.648,-427.944 933.242,-427.902 930.903,-421.304"/>
<text text-anchor="middle" x="1082" y="-405.516" font-family="Times,serif" font-size="14.00">on_rebuild</text>
<g id="edge10" class="edge"><title>error&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1542.86,-397.102C1522.97,-393.014 1494.55,-386.807 1470,-380.06 1465.83,-378.913 1461.48,-377.628 1457.17,-376.298"/>
<polygon fill="black" stroke="black" points="1457.9,-372.856 1447.31,-373.158 1455.78,-379.526 1457.9,-372.856"/>
<text text-anchor="middle" x="1497" y="-395.86" font-family="Times,serif" font-size="14.00">on_delete</text>
</g>
<!-- deploy failed&#45;&gt;deploying -->
<g id="edge19" class="edge"><title>deploy failed&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1212.45,-390.534C1169.3,-381.223 1096.38,-369.295 1034,-377.716 997.456,-382.649 987.576,-384.47 954,-399.716 943.215,-404.613 932.18,-411.358 922.615,-417.862"/>
<polygon fill="black" stroke="black" points="920.464,-415.095 914.293,-423.707 924.488,-420.823 920.464,-415.095"/>
<text text-anchor="middle" x="1082" y="-381.516" font-family="Times,serif" font-size="14.00">on_deploy</text>
<path fill="none" stroke="black" d="M1208.39,-293.026C1164.63,-291.604 1095.41,-291.042 1036,-298.06 999.807,-302.336 990.932,-305.67 956,-316.06 948.796,-318.203 941.206,-320.782 933.958,-323.407"/>
<polygon fill="black" stroke="black" points="932.504,-320.213 924.352,-326.981 934.945,-326.774 932.504,-320.213"/>
<text text-anchor="middle" x="1084" y="-301.86" font-family="Times,serif" font-size="14.00">on_rebuild</text>
</g>
<!-- deploy failed&#45;&gt;deploying -->
<g id="edge20" class="edge"><title>deploy failed&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1214.43,-285.748C1171.26,-276.316 1098.33,-264.278 1036,-273.06 999.366,-278.222 989.324,-279.992 956,-296.06 944.613,-301.551 933.069,-309.208 923.248,-316.482"/>
<polygon fill="black" stroke="black" points="920.922,-313.855 915.109,-322.712 925.177,-319.413 920.922,-313.855"/>
<text text-anchor="middle" x="1084" y="-276.86" font-family="Times,serif" font-size="14.00">on_deploy</text>
</g>
<!-- deploy failed&#45;&gt;deleting -->
<g id="edge20" class="edge"><title>deploy failed&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1287.75,-409.986C1311.07,-417.18 1341.9,-427.643 1368,-439.716 1374.51,-442.727 1381.27,-446.361 1387.61,-450.023"/>
<polygon fill="black" stroke="black" points="1386.14,-453.223 1396.52,-455.339 1389.72,-447.211 1386.14,-453.223"/>
<text text-anchor="middle" x="1341" y="-443.516" font-family="Times,serif" font-size="14.00">on_delete</text>
<g id="edge21" class="edge"><title>deploy failed&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1289.75,-305.33C1313.07,-312.524 1343.9,-322.987 1370,-335.06 1376.51,-338.072 1383.27,-341.706 1389.61,-345.368"/>
<polygon fill="black" stroke="black" points="1388.14,-348.567 1398.52,-350.683 1391.72,-342.555 1388.14,-348.567"/>
<text text-anchor="middle" x="1343" y="-338.86" font-family="Times,serif" font-size="14.00">on_delete</text>
</g>
<!-- wait call&#45;back&#45;&gt;deploying -->
<g id="edge15" class="edge"><title>wait call&#45;back&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1057.06,-453.142C1045.22,-446.351 1030.4,-439.162 1016,-435.716 990.632,-429.645 961.416,-430.167 938.049,-432.316"/>
<polygon fill="black" stroke="black" points="937.671,-428.836 928.09,-433.36 938.401,-435.798 937.671,-428.836"/>
<text text-anchor="middle" x="985" y="-439.516" font-family="Times,serif" font-size="14.00">on_resume</text>
<g id="edge16" class="edge"><title>wait call&#45;back&#45;&gt;deploying</title>
<path fill="none" stroke="black" d="M1056.35,-349.131C1044.91,-343.54 1031.17,-337.866 1018,-335.06 992.691,-329.671 963.734,-330.16 940.494,-332.12"/>
<polygon fill="black" stroke="black" points="939.869,-328.664 930.252,-333.108 940.542,-335.631 939.869,-328.664"/>
<text text-anchor="middle" x="987" y="-338.86" font-family="Times,serif" font-size="14.00">on_resume</text>
</g>
<!-- wait call&#45;back&#45;&gt;deploy failed -->
<g id="edge16" class="edge"><title>wait call&#45;back&#45;&gt;deploy failed</title>
<path fill="none" stroke="black" d="M1113.3,-454.853C1124.19,-449.96 1136.6,-444.49 1148,-439.716 1167.72,-431.455 1189.79,-422.737 1208.34,-415.555"/>
<polygon fill="black" stroke="black" points="1209.62,-418.814 1217.69,-411.951 1207.1,-412.282 1209.62,-418.814"/>
<text text-anchor="middle" x="1168" y="-443.516" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
<g id="edge17" class="edge"><title>wait call&#45;back&#45;&gt;deploy failed</title>
<path fill="none" stroke="black" d="M1115.3,-350.197C1126.19,-345.304 1138.6,-339.835 1150,-335.06 1169.72,-326.799 1191.79,-318.081 1210.34,-310.9"/>
<polygon fill="black" stroke="black" points="1211.62,-314.158 1219.69,-307.295 1209.1,-307.627 1211.62,-314.158"/>
<text text-anchor="middle" x="1170" y="-338.86" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
</g>
<!-- wait call&#45;back&#45;&gt;deleting -->
<g id="edge17" class="edge"><title>wait call&#45;back&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1130.15,-468.716C1195.93,-468.716 1314.16,-468.716 1376.3,-468.716"/>
<polygon fill="black" stroke="black" points="1376.5,-472.216 1386.5,-468.716 1376.5,-465.216 1376.5,-472.216"/>
<text text-anchor="middle" x="1251" y="-472.516" font-family="Times,serif" font-size="14.00">on_delete</text>
<g id="edge18" class="edge"><title>wait call&#45;back&#45;&gt;deleting</title>
<path fill="none" stroke="black" d="M1132.15,-364.06C1197.93,-364.06 1316.16,-364.06 1378.3,-364.06"/>
<polygon fill="black" stroke="black" points="1378.5,-367.56 1388.5,-364.06 1378.5,-360.56 1378.5,-367.56"/>
<text text-anchor="middle" x="1253" y="-367.86" font-family="Times,serif" font-size="14.00">on_delete</text>
</g>
<!-- clean failed&#45;&gt;manageable -->
<g id="edge27" class="edge"><title>clean failed&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M868.182,-161.613C857.91,-156.4 845.686,-150.974 834,-147.716 753.331,-125.225 507.525,-108.224 400.124,-101.666"/>
<polygon fill="black" stroke="black" points="400.06,-98.1557 389.867,-101.046 399.637,-105.143 400.06,-98.1557"/>
<text text-anchor="middle" x="614" y="-123.516" font-family="Times,serif" font-size="14.00">on_manage</text>
<g id="edge29" class="edge"><title>clean failed&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M871.515,-208.282C860.943,-202.065 848.133,-195.117 836,-190.06 755.755,-156.62 734.085,-148.179 648,-136.06 561.177,-123.838 458.801,-130.785 399.166,-136.931"/>
<polygon fill="black" stroke="black" points="398.472,-133.485 388.899,-138.025 399.214,-140.446 398.472,-133.485"/>
<text text-anchor="middle" x="616" y="-139.86" font-family="Times,serif" font-size="14.00">on_manage</text>
</g>
<!-- clean wait&#45;&gt;clean failed -->
<g id="edge24" class="edge"><title>clean wait&#45;&gt;clean failed</title>
<path fill="none" stroke="black" d="M749.065,-173.33C775.987,-173.777 812.74,-174.386 842.367,-174.877"/>
<polygon fill="black" stroke="black" points="842.465,-178.379 852.522,-175.045 842.581,-171.38 842.465,-178.379"/>
<text text-anchor="middle" x="805" y="-177.516" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
<g id="edge26" class="edge"><title>clean wait&#45;&gt;clean failed</title>
<path fill="none" stroke="black" d="M750.628,-214.286C777.61,-215.926 814.637,-218.176 844.437,-219.987"/>
<polygon fill="black" stroke="black" points="844.454,-223.495 854.648,-220.608 844.878,-216.508 844.454,-223.495"/>
<text text-anchor="middle" x="807" y="-222.86" font-family="Times,serif" font-size="14.00" fill="red">on_fail</text>
</g>
<!-- clean wait&#45;&gt;clean failed -->
<g id="edge25" class="edge"><title>clean wait&#45;&gt;clean failed</title>
<path fill="none" stroke="black" d="M742.239,-162.376C752.79,-159.262 764.795,-156.262 776,-154.716 801.536,-151.193 808.598,-150.33 834,-154.716 840.767,-155.884 847.785,-157.754 854.52,-159.909"/>
<polygon fill="black" stroke="black" points="853.527,-163.268 864.122,-163.22 855.809,-156.651 853.527,-163.268"/>
<text text-anchor="middle" x="805" y="-158.516" font-family="Times,serif" font-size="14.00">on_abort</text>
<g id="edge27" class="edge"><title>clean wait&#45;&gt;clean failed</title>
<path fill="none" stroke="black" d="M745.331,-202.576C770.118,-196.422 805.512,-190.64 836,-197.06 844.176,-198.782 852.601,-201.71 860.434,-204.995"/>
<polygon fill="black" stroke="black" points="859.082,-208.225 869.639,-209.122 861.945,-201.837 859.082,-208.225"/>
<text text-anchor="middle" x="807" y="-200.86" font-family="Times,serif" font-size="14.00">on_abort</text>
</g>
<!-- clean wait&#45;&gt;cleaning -->
<g id="edge26" class="edge"><title>clean wait&#45;&gt;cleaning</title>
<path fill="none" stroke="black" d="M677.37,-164.327C650.843,-159.103 612.888,-155.316 582,-166.716 568.983,-171.52 556.959,-180.93 547.494,-190.076"/>
<polygon fill="black" stroke="black" points="544.962,-187.66 540.483,-197.261 549.972,-192.549 544.962,-187.66"/>
<text text-anchor="middle" x="614" y="-170.516" font-family="Times,serif" font-size="14.00">on_resume</text>
<g id="edge28" class="edge"><title>clean wait&#45;&gt;cleaning</title>
<path fill="none" stroke="black" d="M681.075,-202.113C670.68,-199.237 658.944,-196.489 648,-195.06 619.795,-191.378 611.931,-189.681 584,-195.06 576.71,-196.464 569.158,-198.826 562.072,-201.493"/>
<polygon fill="black" stroke="black" points="560.722,-198.263 552.765,-205.259 563.348,-204.752 560.722,-198.263"/>
<text text-anchor="middle" x="616" y="-198.86" font-family="Times,serif" font-size="14.00">on_resume</text>
</g>
<!-- inspect failed&#45;&gt;manageable -->
<g id="edge32" class="edge"><title>inspect failed&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M666.121,-56.1673C641.392,-58.7631 609.948,-62.2094 582,-65.716 518.364,-73.7005 445.159,-84.3015 398.048,-91.3077"/>
<polygon fill="black" stroke="black" points="397.488,-87.8525 388.114,-92.7894 398.521,-94.7759 397.488,-87.8525"/>
<text text-anchor="middle" x="526" y="-82.516" font-family="Times,serif" font-size="14.00">on_manage</text>
<g id="edge34" class="edge"><title>inspect failed&#45;&gt;manageable</title>
<path fill="none" stroke="black" d="M667.369,-59.4999C642.683,-61.7634 611.52,-65.2149 584,-70.0603 504.697,-84.0231 483.502,-85.0702 408,-113.06 399.714,-116.132 391.081,-120.066 383.059,-124.066"/>
<polygon fill="black" stroke="black" points="381.264,-121.054 373.978,-128.746 384.471,-127.276 381.264,-121.054"/>
<text text-anchor="middle" x="528" y="-90.8603" font-family="Times,serif" font-size="14.00">on_manage</text>
</g>
<!-- inspect failed&#45;&gt;inspecting -->
<g id="edge33" class="edge"><title>inspect failed&#45;&gt;inspecting</title>
<path fill="none" stroke="black" d="M684.081,-36.9956C672.763,-31.3645 659.104,-25.6041 646,-22.716 622.225,-17.4761 595.123,-16.8482 572.796,-17.6967"/>
<polygon fill="black" stroke="black" points="572.395,-14.2121 562.579,-18.1985 572.738,-21.2036 572.395,-14.2121"/>
<text text-anchor="middle" x="614" y="-26.516" font-family="Times,serif" font-size="14.00">on_inspect</text>
<g id="edge35" class="edge"><title>inspect failed&#45;&gt;inspecting</title>
<path fill="none" stroke="black" d="M686.081,-41.3399C674.763,-35.7088 661.104,-29.9483 648,-27.0603 624.225,-21.8204 597.123,-21.1925 574.796,-22.041"/>
<polygon fill="black" stroke="black" points="574.395,-18.5564 564.579,-22.5428 574.738,-25.5479 574.395,-18.5564"/>
<text text-anchor="middle" x="616" y="-30.8603" font-family="Times,serif" font-size="14.00">on_inspect</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -46,6 +46,7 @@ VERBS = {
'provide': 'provide',
'inspect': 'inspect',
'abort': 'abort',
'clean': 'clean',
}
""" Mapping of state-changing events that are PUT to the REST API
@ -298,12 +299,18 @@ machine.add_transition(CLEANING, CLEANWAIT, 'wait')
machine.add_transition(CLEANWAIT, CLEANING, 'resume')
# An operator may want to move a CLEANFAIL node to MANAGEABLE, to perform
# other actions like zapping
# other actions like cleaning
machine.add_transition(CLEANFAIL, MANAGEABLE, 'manage')
# From MANAGEABLE, a node may move to available after going through cleaning
# From MANAGEABLE, a node may move to available after going through automated
# cleaning
machine.add_transition(MANAGEABLE, CLEANING, 'provide')
# From MANAGEABLE, a node may be manually cleaned, going back to manageable
# after cleaning is completed
machine.add_transition(MANAGEABLE, CLEANING, 'clean')
machine.add_transition(CLEANING, MANAGEABLE, 'manage')
# From AVAILABLE, a node may be made unavailable by managing it
machine.add_transition(AVAILABLE, MANAGEABLE, 'manage')