Merge branch 'master' into thanos

pull/99/head
Victor Lantier 6 years ago committed by GitHub
commit 8c602f6307
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

3
.gitignore vendored

@ -18,5 +18,8 @@ website/build
# node modules
node_modules
# testing
main.py
# trash
.DS_Store

@ -72,6 +72,7 @@ ALIASES = {
"ci": {
"Circleci": "CircleCI",
"Travisci": "TravisCI",
"Teamcity": "TC",
},
"container": {
"Rkt": "RKT",

@ -1,6 +1,6 @@
import contextvars
import os
from hashlib import md5
import uuid
from pathlib import Path
from random import getrandbits
from typing import List, Union, Dict
@ -159,13 +159,13 @@ class Diagram:
return True
return False
def node(self, hashid: str, label: str, **attrs) -> None:
def node(self, nodeid: str, label: str, **attrs) -> None:
"""Create a new node."""
self.dot.node(hashid, label=label, **attrs)
self.dot.node(nodeid, label=label, **attrs)
def connect(self, node: "Node", node2: "Node", edge: "Edge") -> None:
"""Connect the two Nodes."""
self.dot.edge(node.hashid, node2.hashid, **edge.attrs)
self.dot.edge(node.nodeid, node2.nodeid, **edge.attrs)
def subgraph(self, dot: Digraph) -> None:
"""Create a subgraph for clustering"""
@ -243,9 +243,9 @@ class Cluster:
return True
return False
def node(self, hashid: str, label: str, **attrs) -> None:
def node(self, nodeid: str, label: str, **attrs) -> None:
"""Create a new node in the cluster."""
self.dot.node(hashid, label=label, **attrs)
self.dot.node(nodeid, label=label, **attrs)
def subgraph(self, dot: Digraph) -> None:
self.dot.subgraph(dot)
@ -267,8 +267,8 @@ class Node:
:param label: Node label.
"""
# Generates a hash for identifying a node.
self._hash = self._rand_hash()
# Generates an ID for identifying a node.
self._id = self._rand_id()
self.label = label
# fmt: off
@ -291,9 +291,9 @@ class Node:
# If a node is in the cluster context, add it to cluster.
if self._cluster:
self._cluster.node(self._hash, self.label, **self.attrs)
self._cluster.node(self._id, self.label, **self.attrs)
else:
self._diagram.node(self._hash, self.label, **self.attrs)
self._diagram.node(self._id, self.label, **self.attrs)
def __repr__(self):
_name = self.__class__.__name__
@ -366,8 +366,8 @@ class Node:
return self
@property
def hashid(self):
return self._hash
def nodeid(self):
return self._id
# TODO: option for adding flow description to the connection edge
def connect(self, node: "Node", edge: "Edge"):
@ -386,8 +386,8 @@ class Node:
return node
@staticmethod
def _rand_hash():
return md5(getrandbits(64).to_bytes(64, "big")).hexdigest()
def _rand_id():
return uuid.uuid4().hex
def _load_icon(self):
basedir = Path(os.path.abspath(os.path.dirname(__file__)))
@ -436,9 +436,12 @@ class Edge:
for k, v in self._default_edge_attrs.items():
self._attrs[k] = v
if label:
# Graphviz complaining about using label for edges, so replace it with xlabel.
self._attrs["xlabel"] = label
if color:
self._attrs["color"] = color
if style:
self._attrs["style"] = style
self._attrs.update(attrs)

@ -36,6 +36,10 @@ class ElasticLoadBalancing(_Network):
_icon = "elastic-load-balancing.png"
class Endpoint(_Network):
_icon = "endpoint.png"
class GlobalAccelerator(_Network):
_icon = "global-accelerator.png"
@ -68,6 +72,10 @@ class TransitGateway(_Network):
_icon = "transit-gateway.png"
class VPCRouter(_Network):
_icon = "vpc-router.png"
class VPC(_Network):
_icon = "vpc.png"

@ -16,6 +16,10 @@ class Jenkins(_Ci):
_icon = "jenkins.png"
class Teamcity(_Ci):
_icon = "teamcity.png"
class Travisci(_Ci):
_icon = "travisci.png"
@ -24,3 +28,4 @@ class Travisci(_Ci):
CircleCI = Circleci
TravisCI = Travisci
TC = Teamcity

@ -8,6 +8,14 @@ class _Iac(_OnPrem):
_icon_dir = "resources/onprem/iac"
class Ansible(_Iac):
_icon = "ansible.png"
class Awx(_Iac):
_icon = "awx.png"
class Terraform(_Iac):
_icon = "terraform.png"

@ -56,6 +56,10 @@ class Pfsense(_Network):
_icon = "pfsense.png"
class Pomerium(_Network):
_icon = "pomerium.png"
class Tomcat(_Network):
_icon = "tomcat.png"

@ -62,6 +62,7 @@ Node classes list of aws provider.
- **diagrams.aws.network.Cloudfront**, **CF** (alias)
- **diagrams.aws.network.DirectConnect**
- **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias)
- **diagrams.aws.network.Endpoint**
- **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias)
- **diagrams.aws.network.InternetGateway**
- **diagrams.aws.network.NATGateway**
@ -70,6 +71,7 @@ Node classes list of aws provider.
- **diagrams.aws.network.Route53**
- **diagrams.aws.network.SiteToSiteVpn**
- **diagrams.aws.network.TransitGateway**
- **diagrams.aws.network.VPCRouter**
- **diagrams.aws.network.VPC**
## aws.management

@ -14,6 +14,7 @@ Node classes list of onprem provider.
- **diagrams.onprem.ci.Circleci**, **CircleCI** (alias)
- **diagrams.onprem.ci.Jenkins**
- **diagrams.onprem.ci.Teamcity**, **TC** (alias)
- **diagrams.onprem.ci.Travisci**, **TravisCI** (alias)
## onprem.queue
@ -77,6 +78,7 @@ Node classes list of onprem provider.
- **diagrams.onprem.network.Linkerd**
- **diagrams.onprem.network.Nginx**
- **diagrams.onprem.network.Pfsense**, **PFSense** (alias)
- **diagrams.onprem.network.Pomerium**
- **diagrams.onprem.network.Tomcat**
- **diagrams.onprem.network.Traefik**
- **diagrams.onprem.network.Vyos**, **VyOS** (alias)
@ -90,6 +92,8 @@ Node classes list of onprem provider.
## onprem.iac
- **diagrams.onprem.iac.Ansible**
- **diagrams.onprem.iac.Awx**
- **diagrams.onprem.iac.Terraform**
## onprem.analytics

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Loading…
Cancel
Save