From 62a244140123bfd7d70bbec94008015c75ce1cc4 Mon Sep 17 00:00:00 2001 From: Dan Aharon-Shalom Date: Sat, 12 Dec 2020 22:25:05 +0200 Subject: [PATCH] AWS Branded clusters --- diagrams/__init__.py | 17 +++--- diagrams/aws/__init__.py | 2 +- diagrams/aws/cluster.py | 104 +++++++++++++++++++++++++++++++++++++ diagrams/onprem/cluster.py | 15 ++++++ examples/__init__.py | 0 examples/aws.png | Bin 0 -> 68660 bytes examples/aws.py | 26 ++++++++++ 7 files changed, 157 insertions(+), 7 deletions(-) create mode 100644 diagrams/aws/cluster.py create mode 100644 diagrams/onprem/cluster.py create mode 100644 examples/__init__.py create mode 100644 examples/aws.png create mode 100644 examples/aws.py diff --git a/diagrams/__init__.py b/diagrams/__init__.py index 57c92133..2e41b4e8 100644 --- a/diagrams/__init__.py +++ b/diagrams/__init__.py @@ -209,6 +209,9 @@ class Cluster: "fontsize": "12", } + _icon = None + _icon_size = 0 + # fmt: on # FIXME: @@ -230,8 +233,10 @@ class Cluster: """ self.label = label self.name = "cluster_" + self.label - self.icon = icon - self.icon_size = icon_size + if not self._icon: + self.icon = icon + if not self._icon_size: + self._icon_size = icon_size self.dot = Digraph(self.name) @@ -241,11 +246,11 @@ class Cluster: # if an icon is set, try to find and instantiate a Node without calling __init__() # then find it's icon by calling _load_icon() - if self.icon: - _node = self.icon(_no_init=True) + if self._icon: + _node = self._icon(_no_init=True) if isinstance(_node,Node): - self.icon_label = '<
' + self.label + '
>' - self.dot.graph_attr["label"] = self.icon_label + self._icon_label = '<
' + self.label + '
>' + self.dot.graph_attr["label"] = self._icon_label else: self.dot.graph_attr["label"] = self.label diff --git a/diagrams/aws/__init__.py b/diagrams/aws/__init__.py index 1550a0df..8c912ba4 100644 --- a/diagrams/aws/__init__.py +++ b/diagrams/aws/__init__.py @@ -2,7 +2,7 @@ AWS provides a set of services for Amazon Web Service provider. """ -from diagrams import Node +from diagrams import Node, Cluster class _AWS(Node): diff --git a/diagrams/aws/cluster.py b/diagrams/aws/cluster.py new file mode 100644 index 00000000..6ecbabcb --- /dev/null +++ b/diagrams/aws/cluster.py @@ -0,0 +1,104 @@ +from diagrams import Cluster +from diagrams.aws.compute import EC2, ApplicationAutoScaling +from diagrams.aws.network import VPC, PrivateSubnet, PublicSubnet + +class Region(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "dotted", + "labeljust": "l", + "pencolor": "#AEB6BE", + "fontname": "Sans-Serif", + "fontsize": "12", + } + # fmt: on + +class AvailabilityZone(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "dashed", + "labeljust": "l", + "pencolor": "#27a0ff", + "fontname": "sans-serif", + "fontsize": "12", + } + # fmt: on + +class VirtualPrivateCloud(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "", + "labeljust": "l", + "pencolor": "#00D110", + "fontname": "sans-serif", + "fontsize": "12", + } + # fmt: on + _icon = VPC + +class PrivateSubnet(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "", + "labeljust": "l", + "pencolor": "#329CFF", + "fontname": "sans-serif", + "fontsize": "12", + } + # fmt: on + _icon = PrivateSubnet + +class PublicSubnet(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "", + "labeljust": "l", + "pencolor": "#00D110", + "fontname": "sans-serif", + "fontsize": "12", + } + # fmt: on + _icon = PublicSubnet + +class SecurityGroup(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "dashed", + "labeljust": "l", + "pencolor": "#FF361E", + "fontname": "Sans-Serif", + "fontsize": "12", + } + # fmt: on + +class AutoScalling(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "dashed", + "labeljust": "l", + "pencolor": "#FF7D1E", + "fontname": "Sans-Serif", + "fontsize": "12", + } + # fmt: on + _icon = ApplicationAutoScaling + +class EC2Contents(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "", + "labeljust": "l", + "pencolor": "#FFB432", + "fontname": "Sans-Serif", + "fontsize": "12", + } + # fmt: on + _icon = EC2 diff --git a/diagrams/onprem/cluster.py b/diagrams/onprem/cluster.py new file mode 100644 index 00000000..4fd62f04 --- /dev/null +++ b/diagrams/onprem/cluster.py @@ -0,0 +1,15 @@ +from diagrams import Cluster +from diagrams.onprem.compute import Server + +class ServerContents(Cluster): + # fmt: off + _default_graph_attrs = { + "shape": "box", + "style": "rounded,dotted", + "labeljust": "l", + "pencolor": "#A0A0A0", + "fontname": "Sans-Serif", + "fontsize": "12", + } + # fmt: on + _icon = Server diff --git a/examples/__init__.py b/examples/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/examples/aws.png b/examples/aws.png new file mode 100644 index 0000000000000000000000000000000000000000..f762f76a2de50a9a00c9b90b3a1ebd77cfceaa95 GIT binary patch literal 68660 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

ENW$(cZfl2f#t{5sDg!TJTQ&+$xKYpCJP3dV~u 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 Edge(forward=True, reverse=True) >> d1 + lb >> Edge(forward=True, reverse=True) >> d2