Skip to content

Instantly share code, notes, and snippets.

@owulveryck
Last active March 7, 2018 06:36
Show Gist options
  • Save owulveryck/222715428fab5eec30b753f772dfc280 to your computer and use it in GitHub Desktop.
Save owulveryck/222715428fab5eec30b753f772dfc280 to your computer and use it in GitHub Desktop.
TOSCA to Graph
package main
import (
"fmt"
"log"
"os"
"github.com/gonum/graph/encoding/dot"
"github.com/owulveryck/toscalib"
"github.com/owulveryck/toscalib/graph"
)
func main() {
var t toscalib.ServiceTemplateDefinition
err := t.Parse(os.Stdin)
if err != nil {
log.Fatal(err)
}
_, workflow := graph.GetGraphs(t)
b, err := dot.Marshal(workflow, "G", "\t", "", true)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(b))
}
imgcat <(curl -s https://raw.githubusercontent.com/openstack/tosca-parser/master/toscaparser/tests/data/tosca_single_instance_wordpress_with_url_import.yaml | go run *go | dot -Tsvg)
tosca_definitions_version: tosca_simple_yaml_1_0
description: >
TOSCA simple profile with wordpress, web server and mysql on the same server.
imports:
- https://raw.githubusercontent.com/openstack/heat-translator/master/translator/tests/data/custom_types/wordpress.yaml
topology_template:
inputs:
cpus:
type: integer
description: Number of CPUs for the server.
constraints:
- valid_values: [ 1, 2, 4, 8 ]
default: 1
db_name:
type: string
description: The name of the database.
default: wordpress
db_user:
type: string
description: The user name of the DB user.
default: wp_user
db_pwd:
type: string
description: The WordPress database admin account password.
default: wp_pass
db_root_pwd:
type: string
description: Root password for MySQL.
db_port:
type: PortDef
description: Port for the MySQL database.
default: 3306
node_templates:
wordpress:
type: tosca.nodes.WebApplication.WordPress
requirements:
- host: webserver
- database_endpoint: mysql_database
interfaces:
Standard:
create: wordpress/wordpress_install.sh
configure:
implementation: wordpress/wordpress_configure.sh
inputs:
wp_db_name: wordpress
wp_db_user: wp_user
wp_db_password: wp_pass
mysql_database:
type: tosca.nodes.Database
properties:
name: { get_input: db_name }
user: { get_input: db_user }
password: { get_input: db_pwd }
capabilities:
database_endpoint:
properties:
port: { get_input: db_port }
requirements:
- host:
node: mysql_dbms
interfaces:
Standard:
configure:
implementation: mysql/mysql_database_configure.sh
inputs:
db_name: wordpress
db_user: wp_user
db_password: wp_pass
db_root_password: passw0rd
mysql_dbms:
type: tosca.nodes.DBMS
properties:
root_password: { get_input: db_root_pwd }
port: { get_input: db_port }
requirements:
- host: server
interfaces:
Standard:
create:
implementation: mysql/mysql_dbms_install.sh
inputs:
db_root_password: passw0rd
start: mysql/mysql_dbms_start.sh
configure:
implementation: mysql/mysql_dbms_configure.sh
inputs:
db_port: 3366
webserver:
type: tosca.nodes.WebServer
requirements:
- host: server
interfaces:
Standard:
create: webserver/webserver_install.sh
start: webserver/webserver_start.sh
server:
type: tosca.nodes.Compute
capabilities:
host:
properties:
disk_size: 10 GB
num_cpus: { get_input: cpus }
mem_size: 4096 MB
os:
properties:
architecture: x86_64
type: Linux
distribution: Ubuntu
version: 14.04
outputs:
website_url:
description: URL for Wordpress wiki.
value: { get_attribute: [server, private_address] }
Display the source blob
Display the rendered blob
Raw
<?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.40.1 (20161225.0304)
-->
<!-- Title: G Pages: 1 -->
<svg width="595pt" height="2028pt"
viewBox="0.00 0.00 594.88 2028.31" 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 2024.3069)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2024.3069 590.8797,-2024.3069 590.8797,4 -4,4"/>
<!-- 0 -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="#000000" cx="168.0392" cy="-1731.2876" rx="35.4938" ry="25.4118"/>
<text text-anchor="middle" x="168.0392" y="-1734.0876" font-family="Times,serif" font-size="14.00" fill="#000000">server</text>
<text text-anchor="middle" x="168.0392" y="-1720.0876" font-family="Times,serif" font-size="14.00" fill="#000000">start</text>
</g>
<!-- 1 -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="#000000" cx="103.0392" cy="-202.1076" rx="35.4938" ry="25.4118"/>
<text text-anchor="middle" x="103.0392" y="-204.9076" font-family="Times,serif" font-size="14.00" fill="#000000">server</text>
<text text-anchor="middle" x="103.0392" y="-190.9076" font-family="Times,serif" font-size="14.00" fill="#000000">stop</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="#000000" d="M133.3013,-1725.1957C101.5063,-1717.7439 55.6307,-1701.9214 30.0392,-1669.8317 -10.0863,-1619.5175 2.0392,-1592.1208 2.0392,-1527.7657 2.0392,-1527.7657 2.0392,-1527.7657 2.0392,-375.931 2.0392,-324.2407 4.6209,-307.3828 32.0392,-263.5635 41.3488,-248.6852 55.3846,-235.4522 68.5251,-225.1119"/>
<polygon fill="#000000" stroke="#000000" points="70.6701,-227.878 76.5411,-219.0586 66.4516,-222.2919 70.6701,-227.878"/>
</g>
<!-- 17 -->
<g id="node18" class="node">
<title>17</title>
<ellipse fill="none" stroke="#000000" cx="168.0392" cy="-1634.4764" rx="129.0915" ry="35.2113"/>
<text text-anchor="middle" x="168.0392" y="-1644.2764" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_dbms</text>
<text text-anchor="middle" x="168.0392" y="-1630.2764" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="middle" x="168.0392" y="-1616.2764" font-family="Times,serif" font-size="14.00" fill="#000000">mysql/mysql_dbms_install.sh</text>
</g>
<!-- 0&#45;&gt;17 -->
<g id="edge2" class="edge">
<title>0&#45;&gt;17</title>
<path fill="none" stroke="#000000" d="M168.0392,-1705.5981C168.0392,-1697.7872 168.0392,-1688.9558 168.0392,-1680.239"/>
<polygon fill="#000000" stroke="#000000" points="171.5393,-1680.1268 168.0392,-1670.1268 164.5393,-1680.1269 171.5393,-1680.1268"/>
</g>
<!-- 20 -->
<g id="node21" class="node">
<title>20</title>
<ellipse fill="none" stroke="#000000" cx="451.0392" cy="-1634.4764" rx="135.6811" ry="35.2113"/>
<text text-anchor="middle" x="451.0392" y="-1644.2764" font-family="Times,serif" font-size="14.00" fill="#000000">webserver</text>
<text text-anchor="middle" x="451.0392" y="-1630.2764" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="middle" x="451.0392" y="-1616.2764" font-family="Times,serif" font-size="14.00" fill="#000000">webserver/webserver_install.sh</text>
</g>
<!-- 0&#45;&gt;20 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;20</title>
<path fill="none" stroke="#000000" d="M200.2274,-1720.2764C238.5621,-1707.1625 304.2653,-1684.6862 358.8084,-1666.0276"/>
<polygon fill="#000000" stroke="#000000" points="360.175,-1669.2592 368.5038,-1662.7109 357.9093,-1662.6361 360.175,-1669.2592"/>
</g>
<!-- 2 -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="#000000" cx="103.0392" cy="-115.196" rx="35.4938" ry="25.4118"/>
<text text-anchor="middle" x="103.0392" y="-117.996" font-family="Times,serif" font-size="14.00" fill="#000000">server</text>
<text text-anchor="middle" x="103.0392" y="-103.996" font-family="Times,serif" font-size="14.00" fill="#000000">delete</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge4" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="#000000" d="M103.0392,-176.5013C103.0392,-168.5274 103.0392,-159.583 103.0392,-151.0431"/>
<polygon fill="#000000" stroke="#000000" points="106.5393,-150.9195 103.0392,-140.9196 99.5393,-150.9196 106.5393,-150.9195"/>
</g>
<!-- 26 -->
<g id="node27" class="node">
<title>26</title>
<ellipse fill="none" stroke="#000000" cx="103.0392" cy="-26.8701" rx="35.1948" ry="26.7407"/>
<text text-anchor="middle" x="103.0392" y="-14.6701" font-family="Times,serif" font-size="14.00" fill="#000000">STOP</text>
</g>
<!-- 2&#45;&gt;26 -->
<g id="edge5" class="edge">
<title>2&#45;&gt;26</title>
<path fill="none" stroke="#000000" d="M103.0392,-89.6484C103.0392,-81.6797 103.0392,-72.7211 103.0392,-64.1211"/>
<polygon fill="#000000" stroke="#000000" points="106.5393,-63.8995 103.0392,-53.8995 99.5393,-63.8996 106.5393,-63.8995"/>
</g>
<!-- 3 -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="#000000" cx="168.0392" cy="-1905.111" rx="35.4938" ry="25.4118"/>
<text text-anchor="middle" x="168.0392" y="-1907.911" font-family="Times,serif" font-size="14.00" fill="#000000">server</text>
<text text-anchor="middle" x="168.0392" y="-1893.911" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
</g>
<!-- 4 -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="#000000" cx="168.0392" cy="-1818.1993" rx="48.9062" ry="25.4118"/>
<text text-anchor="middle" x="168.0392" y="-1820.9993" font-family="Times,serif" font-size="14.00" fill="#000000">server</text>
<text text-anchor="middle" x="168.0392" y="-1806.9993" font-family="Times,serif" font-size="14.00" fill="#000000">configure</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge6" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="#000000" d="M168.0392,-1879.5047C168.0392,-1871.5307 168.0392,-1862.5863 168.0392,-1854.0465"/>
<polygon fill="#000000" stroke="#000000" points="171.5393,-1853.9229 168.0392,-1843.9229 164.5393,-1853.9229 171.5393,-1853.9229"/>
</g>
<!-- 4&#45;&gt;0 -->
<g id="edge7" class="edge">
<title>4&#45;&gt;0</title>
<path fill="none" stroke="#000000" d="M168.0392,-1792.593C168.0392,-1784.619 168.0392,-1775.6746 168.0392,-1767.1348"/>
<polygon fill="#000000" stroke="#000000" points="171.5393,-1767.0112 168.0392,-1757.0112 164.5393,-1767.0112 171.5393,-1767.0112"/>
</g>
<!-- 5 -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="#000000" cx="282.0392" cy="-907.3006" rx="149.1215" ry="35.2113"/>
<text text-anchor="middle" x="282.0392" y="-917.1006" font-family="Times,serif" font-size="14.00" fill="#000000">wordpress</text>
<text text-anchor="middle" x="282.0392" y="-903.1006" font-family="Times,serif" font-size="14.00" fill="#000000">configure</text>
<text text-anchor="middle" x="282.0392" y="-889.1006" font-family="Times,serif" font-size="14.00" fill="#000000">wordpress/wordpress_configure.sh</text>
</g>
<!-- 9 -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="#000000" cx="282.0392" cy="-810.4895" rx="52.0082" ry="25.4118"/>
<text text-anchor="middle" x="282.0392" y="-813.2895" font-family="Times,serif" font-size="14.00" fill="#000000">wordpress</text>
<text text-anchor="middle" x="282.0392" y="-799.2895" font-family="Times,serif" font-size="14.00" fill="#000000">start</text>
</g>
<!-- 5&#45;&gt;9 -->
<g id="edge8" class="edge">
<title>5&#45;&gt;9</title>
<path fill="none" stroke="#000000" d="M282.0392,-871.8015C282.0392,-863.4538 282.0392,-854.5537 282.0392,-846.197"/>
<polygon fill="#000000" stroke="#000000" points="285.5393,-845.9848 282.0392,-835.9848 278.5393,-845.9848 285.5393,-845.9848"/>
</g>
<!-- 6 -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="#000000" cx="282.0392" cy="-1014.0113" rx="135.7391" ry="35.2113"/>
<text text-anchor="middle" x="282.0392" y="-1023.8113" font-family="Times,serif" font-size="14.00" fill="#000000">wordpress</text>
<text text-anchor="middle" x="282.0392" y="-1009.8113" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="middle" x="282.0392" y="-995.8113" font-family="Times,serif" font-size="14.00" fill="#000000">wordpress/wordpress_install.sh</text>
</g>
<!-- 6&#45;&gt;5 -->
<g id="edge9" class="edge">
<title>6&#45;&gt;5</title>
<path fill="none" stroke="#000000" d="M282.0392,-978.4782C282.0392,-970.2885 282.0392,-961.4659 282.0392,-952.9144"/>
<polygon fill="#000000" stroke="#000000" points="285.5393,-952.6786 282.0392,-942.6786 278.5393,-952.6786 285.5393,-952.6786"/>
</g>
<!-- 7 -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="#000000" cx="282.0392" cy="-723.5778" rx="52.0082" ry="25.4118"/>
<text text-anchor="middle" x="282.0392" y="-726.3778" font-family="Times,serif" font-size="14.00" fill="#000000">wordpress</text>
<text text-anchor="middle" x="282.0392" y="-712.3778" font-family="Times,serif" font-size="14.00" fill="#000000">stop</text>
</g>
<!-- 8 -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="#000000" cx="282.0392" cy="-636.6661" rx="52.0082" ry="25.4118"/>
<text text-anchor="middle" x="282.0392" y="-639.4661" font-family="Times,serif" font-size="14.00" fill="#000000">wordpress</text>
<text text-anchor="middle" x="282.0392" y="-625.4661" font-family="Times,serif" font-size="14.00" fill="#000000">delete</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge10" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="#000000" d="M282.0392,-697.9715C282.0392,-689.9975 282.0392,-681.0531 282.0392,-672.5133"/>
<polygon fill="#000000" stroke="#000000" points="285.5393,-672.3897 282.0392,-662.3897 278.5393,-672.3897 285.5393,-672.3897"/>
</g>
<!-- 12 -->
<g id="node13" class="node">
<title>12</title>
<ellipse fill="none" stroke="#000000" cx="143.0392" cy="-549.7544" rx="74.5877" ry="25.4118"/>
<text text-anchor="middle" x="143.0392" y="-552.5544" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_database</text>
<text text-anchor="middle" x="143.0392" y="-538.5544" font-family="Times,serif" font-size="14.00" fill="#000000">stop</text>
</g>
<!-- 8&#45;&gt;12 -->
<g id="edge11" class="edge">
<title>8&#45;&gt;12</title>
<path fill="none" stroke="#000000" d="M249.8005,-616.5083C231.3571,-604.9764 207.9435,-590.3367 187.7451,-577.7074"/>
<polygon fill="#000000" stroke="#000000" points="189.3505,-574.5833 179.016,-572.2493 185.6394,-580.5186 189.3505,-574.5833"/>
</g>
<!-- 22 -->
<g id="node23" class="node">
<title>22</title>
<ellipse fill="none" stroke="#000000" cx="288.0392" cy="-549.7544" rx="51.9792" ry="25.4118"/>
<text text-anchor="middle" x="288.0392" y="-552.5544" font-family="Times,serif" font-size="14.00" fill="#000000">webserver</text>
<text text-anchor="middle" x="288.0392" y="-538.5544" font-family="Times,serif" font-size="14.00" fill="#000000">stop</text>
</g>
<!-- 8&#45;&gt;22 -->
<g id="edge12" class="edge">
<title>8&#45;&gt;22</title>
<path fill="none" stroke="#000000" d="M283.807,-611.0598C284.3575,-603.0858 284.975,-594.1414 285.5645,-585.6016"/>
<polygon fill="#000000" stroke="#000000" points="289.0663,-585.6953 286.2634,-575.478 282.0829,-585.2132 289.0663,-585.6953"/>
</g>
<!-- 9&#45;&gt;7 -->
<g id="edge13" class="edge">
<title>9&#45;&gt;7</title>
<path fill="none" stroke="#000000" d="M282.0392,-784.8832C282.0392,-776.9092 282.0392,-767.9648 282.0392,-759.425"/>
<polygon fill="#000000" stroke="#000000" points="285.5393,-759.3014 282.0392,-749.3014 278.5393,-759.3014 285.5393,-759.3014"/>
</g>
<!-- 10 -->
<g id="node11" class="node">
<title>10</title>
<ellipse fill="none" stroke="#000000" cx="197.0392" cy="-1324.2439" rx="74.5877" ry="25.4118"/>
<text text-anchor="middle" x="197.0392" y="-1327.0439" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_database</text>
<text text-anchor="middle" x="197.0392" y="-1313.0439" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
</g>
<!-- 13 -->
<g id="node14" class="node">
<title>13</title>
<ellipse fill="none" stroke="#000000" cx="223.0392" cy="-1227.4327" rx="155.2252" ry="35.2113"/>
<text text-anchor="middle" x="223.0392" y="-1237.2327" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_database</text>
<text text-anchor="middle" x="223.0392" y="-1223.2327" font-family="Times,serif" font-size="14.00" fill="#000000">configure</text>
<text text-anchor="middle" x="223.0392" y="-1209.2327" font-family="Times,serif" font-size="14.00" fill="#000000">mysql/mysql_database_configure.sh</text>
</g>
<!-- 10&#45;&gt;13 -->
<g id="edge14" class="edge">
<title>10&#45;&gt;13</title>
<path fill="none" stroke="#000000" d="M203.8704,-1298.8079C206.0361,-1290.7441 208.499,-1281.5733 210.921,-1272.5551"/>
<polygon fill="#000000" stroke="#000000" points="214.3034,-1273.4546 213.5169,-1262.889 207.5429,-1271.6389 214.3034,-1273.4546"/>
</g>
<!-- 11 -->
<g id="node12" class="node">
<title>11</title>
<ellipse fill="none" stroke="#000000" cx="223.0392" cy="-1120.722" rx="74.5877" ry="25.4118"/>
<text text-anchor="middle" x="223.0392" y="-1123.522" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_database</text>
<text text-anchor="middle" x="223.0392" y="-1109.522" font-family="Times,serif" font-size="14.00" fill="#000000">start</text>
</g>
<!-- 11&#45;&gt;6 -->
<g id="edge15" class="edge">
<title>11&#45;&gt;6</title>
<path fill="none" stroke="#000000" d="M236.8721,-1095.7031C243.0114,-1084.5992 250.426,-1071.1888 257.4571,-1058.472"/>
<polygon fill="#000000" stroke="#000000" points="260.7096,-1059.8227 262.4853,-1049.3777 254.5836,-1056.4356 260.7096,-1059.8227"/>
</g>
<!-- 11&#45;&gt;12 -->
<g id="edge16" class="edge">
<title>11&#45;&gt;12</title>
<path fill="none" stroke="#000000" d="M186.314,-1098.5096C168.8622,-1086.1349 149.2053,-1069.2157 137.0392,-1049.3667 103.2166,-994.185 105.0392,-972.023 105.0392,-907.3006 105.0392,-907.3006 105.0392,-907.3006 105.0392,-723.5778 105.0392,-674.6576 119.5816,-619.7426 130.6738,-584.9713"/>
<polygon fill="#000000" stroke="#000000" points="134.0587,-585.8807 133.8405,-575.2882 127.4055,-583.7049 134.0587,-585.8807"/>
</g>
<!-- 14 -->
<g id="node15" class="node">
<title>14</title>
<ellipse fill="none" stroke="#000000" cx="143.0392" cy="-462.8427" rx="74.5877" ry="25.4118"/>
<text text-anchor="middle" x="143.0392" y="-465.6427" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_database</text>
<text text-anchor="middle" x="143.0392" y="-451.6427" font-family="Times,serif" font-size="14.00" fill="#000000">delete</text>
</g>
<!-- 12&#45;&gt;14 -->
<g id="edge17" class="edge">
<title>12&#45;&gt;14</title>
<path fill="none" stroke="#000000" d="M143.0392,-524.1481C143.0392,-516.1742 143.0392,-507.2297 143.0392,-498.6899"/>
<polygon fill="#000000" stroke="#000000" points="146.5393,-498.5663 143.0392,-488.5663 139.5393,-498.5664 146.5393,-498.5663"/>
</g>
<!-- 13&#45;&gt;11 -->
<g id="edge18" class="edge">
<title>13&#45;&gt;11</title>
<path fill="none" stroke="#000000" d="M223.0392,-1191.8996C223.0392,-1180.4804 223.0392,-1167.8308 223.0392,-1156.4012"/>
<polygon fill="#000000" stroke="#000000" points="226.5393,-1156.3179 223.0392,-1146.3179 219.5393,-1156.318 226.5393,-1156.3179"/>
</g>
<!-- 18 -->
<g id="node19" class="node">
<title>18</title>
<ellipse fill="none" stroke="#000000" cx="103.0392" cy="-375.931" rx="61.8363" ry="25.4118"/>
<text text-anchor="middle" x="103.0392" y="-378.731" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_dbms</text>
<text text-anchor="middle" x="103.0392" y="-364.731" font-family="Times,serif" font-size="14.00" fill="#000000">stop</text>
</g>
<!-- 14&#45;&gt;18 -->
<g id="edge19" class="edge">
<title>14&#45;&gt;18</title>
<path fill="none" stroke="#000000" d="M131.2543,-437.2364C127.3546,-428.7633 122.9507,-419.1944 118.8017,-410.1796"/>
<polygon fill="#000000" stroke="#000000" points="121.9625,-408.6757 114.6022,-401.0549 115.6036,-411.6023 121.9625,-408.6757"/>
</g>
<!-- 15 -->
<g id="node16" class="node">
<title>15</title>
<ellipse fill="none" stroke="#000000" cx="172.0392" cy="-1421.055" rx="122.2835" ry="35.2113"/>
<text text-anchor="middle" x="172.0392" y="-1430.855" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_dbms</text>
<text text-anchor="middle" x="172.0392" y="-1416.855" font-family="Times,serif" font-size="14.00" fill="#000000">start</text>
<text text-anchor="middle" x="172.0392" y="-1402.855" font-family="Times,serif" font-size="14.00" fill="#000000">mysql/mysql_dbms_start.sh</text>
</g>
<!-- 15&#45;&gt;10 -->
<g id="edge20" class="edge">
<title>15&#45;&gt;10</title>
<path fill="none" stroke="#000000" d="M181.2064,-1385.5559C183.386,-1377.1155 185.7114,-1368.1103 187.8902,-1359.673"/>
<polygon fill="#000000" stroke="#000000" points="191.3439,-1360.2967 190.4555,-1349.7392 184.5662,-1358.5464 191.3439,-1360.2967"/>
</g>
<!-- 15&#45;&gt;18 -->
<g id="edge21" class="edge">
<title>15&#45;&gt;18</title>
<path fill="none" stroke="#000000" d="M130.6358,-1387.5839C91.9245,-1352.2575 40.0392,-1292.7296 40.0392,-1227.4327 40.0392,-1227.4327 40.0392,-1227.4327 40.0392,-549.7544 40.0392,-499.1044 39.5753,-484.1477 59.0392,-437.3869 63.2427,-427.2883 69.374,-417.2502 75.732,-408.3039"/>
<polygon fill="#000000" stroke="#000000" points="78.6789,-410.2066 81.8416,-400.0948 73.0634,-406.0272 78.6789,-410.2066"/>
</g>
<!-- 16 -->
<g id="node17" class="node">
<title>16</title>
<ellipse fill="none" stroke="#000000" cx="172.0392" cy="-1527.7657" rx="142.4737" ry="35.2113"/>
<text text-anchor="middle" x="172.0392" y="-1537.5657" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_dbms</text>
<text text-anchor="middle" x="172.0392" y="-1523.5657" font-family="Times,serif" font-size="14.00" fill="#000000">configure</text>
<text text-anchor="middle" x="172.0392" y="-1509.5657" font-family="Times,serif" font-size="14.00" fill="#000000">mysql/mysql_dbms_configure.sh</text>
</g>
<!-- 16&#45;&gt;15 -->
<g id="edge22" class="edge">
<title>16&#45;&gt;15</title>
<path fill="none" stroke="#000000" d="M172.0392,-1492.2326C172.0392,-1484.0429 172.0392,-1475.2203 172.0392,-1466.6688"/>
<polygon fill="#000000" stroke="#000000" points="175.5393,-1466.433 172.0392,-1456.433 168.5393,-1466.433 175.5393,-1466.433"/>
</g>
<!-- 17&#45;&gt;16 -->
<g id="edge23" class="edge">
<title>17&#45;&gt;16</title>
<path fill="none" stroke="#000000" d="M169.3712,-1598.9433C169.6782,-1590.7536 170.0089,-1581.931 170.3294,-1573.3795"/>
<polygon fill="#000000" stroke="#000000" points="173.836,-1573.2678 170.7131,-1563.1437 166.8409,-1573.0055 173.836,-1573.2678"/>
</g>
<!-- 19 -->
<g id="node20" class="node">
<title>19</title>
<ellipse fill="none" stroke="#000000" cx="103.0392" cy="-289.0193" rx="61.8363" ry="25.4118"/>
<text text-anchor="middle" x="103.0392" y="-291.8193" font-family="Times,serif" font-size="14.00" fill="#000000">mysql_dbms</text>
<text text-anchor="middle" x="103.0392" y="-277.8193" font-family="Times,serif" font-size="14.00" fill="#000000">delete</text>
</g>
<!-- 18&#45;&gt;19 -->
<g id="edge24" class="edge">
<title>18&#45;&gt;19</title>
<path fill="none" stroke="#000000" d="M103.0392,-350.3247C103.0392,-342.3508 103.0392,-333.4063 103.0392,-324.8665"/>
<polygon fill="#000000" stroke="#000000" points="106.5393,-324.7429 103.0392,-314.7429 99.5393,-324.743 106.5393,-324.7429"/>
</g>
<!-- 19&#45;&gt;1 -->
<g id="edge25" class="edge">
<title>19&#45;&gt;1</title>
<path fill="none" stroke="#000000" d="M103.0392,-263.413C103.0392,-255.4391 103.0392,-246.4946 103.0392,-237.9548"/>
<polygon fill="#000000" stroke="#000000" points="106.5393,-237.8312 103.0392,-227.8313 99.5393,-237.8313 106.5393,-237.8312"/>
</g>
<!-- 24 -->
<g id="node25" class="node">
<title>24</title>
<ellipse fill="none" stroke="#000000" cx="451.0392" cy="-1227.4327" rx="51.9792" ry="25.4118"/>
<text text-anchor="middle" x="451.0392" y="-1230.2327" font-family="Times,serif" font-size="14.00" fill="#000000">webserver</text>
<text text-anchor="middle" x="451.0392" y="-1216.2327" font-family="Times,serif" font-size="14.00" fill="#000000">configure</text>
</g>
<!-- 20&#45;&gt;24 -->
<g id="edge26" class="edge">
<title>20&#45;&gt;24</title>
<path fill="none" stroke="#000000" d="M451.0392,-1599.066C451.0392,-1522.1253 451.0392,-1340.4127 451.0392,-1263.1733"/>
<polygon fill="#000000" stroke="#000000" points="454.5393,-1262.9896 451.0392,-1252.9896 447.5393,-1262.9896 454.5393,-1262.9896"/>
</g>
<!-- 21 -->
<g id="node22" class="node">
<title>21</title>
<ellipse fill="none" stroke="#000000" cx="451.0392" cy="-1120.722" rx="128.8733" ry="35.2113"/>
<text text-anchor="middle" x="451.0392" y="-1130.522" font-family="Times,serif" font-size="14.00" fill="#000000">webserver</text>
<text text-anchor="middle" x="451.0392" y="-1116.522" font-family="Times,serif" font-size="14.00" fill="#000000">start</text>
<text text-anchor="middle" x="451.0392" y="-1102.522" font-family="Times,serif" font-size="14.00" fill="#000000">webserver/webserver_start.sh</text>
</g>
<!-- 21&#45;&gt;6 -->
<g id="edge27" class="edge">
<title>21&#45;&gt;6</title>
<path fill="none" stroke="#000000" d="M399.4154,-1088.1255C381.4825,-1076.8022 361.2091,-1064.0011 342.619,-1052.2629"/>
<polygon fill="#000000" stroke="#000000" points="344.2535,-1049.1556 333.9293,-1046.776 340.5161,-1055.0744 344.2535,-1049.1556"/>
</g>
<!-- 21&#45;&gt;22 -->
<g id="edge28" class="edge">
<title>21&#45;&gt;22</title>
<path fill="none" stroke="#000000" d="M453.1831,-1085.2403C455.5528,-1042.9019 459.0392,-969.963 459.0392,-907.3006 459.0392,-907.3006 459.0392,-907.3006 459.0392,-723.5778 459.0392,-652.4939 385.4676,-599.8757 334.8399,-572.0821"/>
<polygon fill="#000000" stroke="#000000" points="336.458,-568.9784 325.9897,-567.3457 333.155,-575.1502 336.458,-568.9784"/>
</g>
<!-- 23 -->
<g id="node24" class="node">
<title>23</title>
<ellipse fill="none" stroke="#000000" cx="240.0392" cy="-375.931" rx="51.9792" ry="25.4118"/>
<text text-anchor="middle" x="240.0392" y="-378.731" font-family="Times,serif" font-size="14.00" fill="#000000">webserver</text>
<text text-anchor="middle" x="240.0392" y="-364.731" font-family="Times,serif" font-size="14.00" fill="#000000">delete</text>
</g>
<!-- 22&#45;&gt;23 -->
<g id="edge29" class="edge">
<title>22&#45;&gt;23</title>
<path fill="none" stroke="#000000" d="M281.0596,-524.479C272.8123,-494.6129 259.0404,-444.7403 249.7541,-411.1117"/>
<polygon fill="#000000" stroke="#000000" points="253.0629,-409.9445 247.0273,-401.2369 246.3154,-411.8078 253.0629,-409.9445"/>
</g>
<!-- 23&#45;&gt;1 -->
<g id="edge30" class="edge">
<title>23&#45;&gt;1</title>
<path fill="none" stroke="#000000" d="M228.2578,-350.7624C216.4391,-326.9411 196.7642,-290.8632 174.0392,-263.5635 163.0022,-250.3046 148.9582,-237.5063 136.2789,-227.0534"/>
<polygon fill="#000000" stroke="#000000" points="138.1738,-224.0857 128.1893,-220.5417 133.7846,-229.5386 138.1738,-224.0857"/>
</g>
<!-- 24&#45;&gt;21 -->
<g id="edge31" class="edge">
<title>24&#45;&gt;21</title>
<path fill="none" stroke="#000000" d="M451.0392,-1201.8728C451.0392,-1191.1788 451.0392,-1178.418 451.0392,-1166.2177"/>
<polygon fill="#000000" stroke="#000000" points="454.5393,-1166.159 451.0392,-1156.159 447.5393,-1166.159 454.5393,-1166.159"/>
</g>
<!-- 25 -->
<g id="node26" class="node">
<title>25</title>
<ellipse fill="none" stroke="#000000" cx="168.0392" cy="-1993.4369" rx="41.0765" ry="26.7407"/>
<text text-anchor="middle" x="168.0392" y="-1981.2369" font-family="Times,serif" font-size="14.00" fill="#000000">START</text>
</g>
<!-- 25&#45;&gt;3 -->
<g id="edge32" class="edge">
<title>25&#45;&gt;3</title>
<path fill="none" stroke="#000000" d="M168.0392,-1966.4562C168.0392,-1958.3771 168.0392,-1949.389 168.0392,-1940.8391"/>
<polygon fill="#000000" stroke="#000000" points="171.5393,-1940.7177 168.0392,-1930.7178 164.5393,-1940.7178 171.5393,-1940.7177"/>
</g>
</g>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment