<span class="hljs-comment"># This is a comment</span>
<span class="hljs-keyword">import</span> toto.graph;
<span class="hljs-comment">##</span>
<span class="hljs-comment"># Facet</span>
<span class="hljs-comment">##</span>
<span class="hljs-keyword">facet</span> VM {
<span class="hljs-attribute">installer</span>: iaas;
}
<span class="hljs-comment"># Components</span>
VM_ec2 {
<span class="hljs-attribute">facets</span>: VM;
<span class="hljs-attribute">children</span>: cluster-node, mysql;
}
VM_openstack {
<span class="hljs-attribute">facets</span>: VM;
<span class="hljs-attribute">children</span>: cluster-node, mysql;
}
cluster-node {
<span class="hljs-attribute">alias</span>: a cluster node;
<span class="hljs-attribute">installer</span>: puppet;
<span class="hljs-attribute">exports</span>: ip, port, optional-property1, optional_property2;
<span class="hljs-attribute">imports</span>: cluster-node<span class="hljs-variable">.ip</span> <span class="hljs-keyword">(optional)</span>, cluster-node<span class="hljs-variable">.port</span> <span class="hljs-keyword">(optional)</span>, mysql<span class="hljs-variable">.ip</span>, mysql<span class="hljs-variable">.port</span>;
}
mysql {
<span class="hljs-attribute">alias</span>: a MySQL database;
<span class="hljs-attribute">installer</span>: puppet;
<span class="hljs-attribute">exports</span>: ip, port;
}
<span class="hljs-comment">##</span>
<span class="hljs-comment"># Normally, instances are defined in another file...</span>
<span class="hljs-comment">##</span>
<span class="hljs-keyword">instance</span> <span class="hljs-keyword">of</span> VM_ec2 {
<span class="hljs-attribute">name</span>: VM_;
<span class="hljs-attribute">count</span>: 3;
<span class="hljs-attribute">my-instance-property</span>: whatever;
<span class="hljs-keyword">instance</span> <span class="hljs-keyword">of</span> cluster-node {
<span class="hljs-attribute">name</span>: cluster node; <span class="hljs-comment"># An in-line comment</span>
}
}
<span class="hljs-keyword">instance</span> <span class="hljs-keyword">of</span> VM_openstack {
<span class="hljs-attribute">name</span>: VM_database;
<span class="hljs-keyword">instance</span> <span class="hljs-keyword">of</span> mysql {
<span class="hljs-attribute">name</span>: mysql;
}
}