Skip to content

Commit

Permalink
tests: full generic verification of aws node based on provider.json; …
Browse files Browse the repository at this point in the history
…fixed style duplicated values
  • Loading branch information
tsypuk committed Jul 27, 2023
1 parent 50a6eef commit 99259b5
Show file tree
Hide file tree
Showing 7 changed files with 134 additions and 53 deletions.
8 changes: 1 addition & 7 deletions multicloud_diagrams/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,13 +142,7 @@ def add_vertex(self, id: str, node_name: str, arn: str, metadata: dict = {}, nod
id=f'vertex:{node_type}:{id}',
# id = f'vertex:{ARN}',
value=f'<b>Name</b>: {node_name}<BR><b>ARN</b>: {arn} {stringified_metadata}',
style=("verticalLabelPosition=bottom;"
"html=1;"
"verticalAlign=top;"
"aspect=fixed;align=left;"
"pointerEvents=1;"
f"{shape_parameters['style']}"
""),
style=(f"{shape_parameters['style']}"),
parent="1",
vertex="1")

Expand Down
54 changes: 27 additions & 27 deletions samples/output/output.prod.dynamo.drawio

Large diffs are not rendered by default.

63 changes: 62 additions & 1 deletion samples/output/output.prod.end2end.drawio
Original file line number Diff line number Diff line change
@@ -1 +1,62 @@
<mxfile host="drawio-plugin" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36" modified="2023-05-18T14:53:08.499Z" version="20.5.3" etag="6Gzdfhgf5sBq_FouzunG" type="embed"><diagram id="diagram_1" name="AWS components"><mxGraphModel dx="1207" dy="541" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda" value="&lt;b&gt;Name&lt;/b&gt;: producer-lambda&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:lambda:eu-west-1:123456789:function:producer-lambda &lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;CodeSize&lt;/b&gt;: 1234&lt;BR&gt;&lt;b&gt;Handler&lt;/b&gt;: main&lt;BR&gt;&lt;b&gt;Layers&lt;/b&gt;: 0&lt;BR&gt;&lt;b&gt;Memory&lt;/b&gt;: 128&lt;BR&gt;&lt;b&gt;PackageType&lt;/b&gt;: Zip&lt;BR&gt;&lt;b&gt;Runtime&lt;/b&gt;: go1.x&lt;BR&gt;&lt;b&gt;Timeout&lt;/b&gt;: 30&lt;BR&gt;&lt;b&gt;TracingConfig&lt;/b&gt;: {'Mode': 'Active'}&lt;BR&gt;&lt;b&gt;Version&lt;/b&gt;: $LATEST" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;shape=mxgraph.aws3.lambda_function;prIcon=server;fillColor=#F58534;gradientColor=none;html=1;" parent="1" vertex="1"><mxGeometry x="50" y="146" width="69" height="72" as="geometry"/></mxCell><mxCell id="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" value="&lt;b&gt;Name&lt;/b&gt;: consumer-lambda&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda " style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;shape=mxgraph.aws3.lambda_function;prIcon=server;fillColor=#F58534;gradientColor=none;html=1;" parent="1" vertex="1"><mxGeometry x="1090" y="150" width="69" height="72" as="geometry"/></mxCell><mxCell id="vertex:dynamo:arn:aws:dynamodb:eu-west-1:123456789:table/table1" value="&lt;b&gt;Name&lt;/b&gt;: table1&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:dynamodb:eu-west-1:123456789:table/table1 " style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;shape=mxgraph.aws3.dynamo_db;fillColor=#2E73B8;gradientColor=none;" parent="1" vertex="1"><mxGeometry x="1088.5" y="420" width="72" height="81" as="geometry"/></mxCell><mxCell id="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" value="&lt;b&gt;Name&lt;/b&gt;: internal&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:sns:eu-west-1:123456789:internal.fifo &lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;Owner&lt;/b&gt;: 123456789&lt;BR&gt;&lt;b&gt;SubscriptionsConfirmed&lt;/b&gt;: 3&lt;BR&gt;&lt;b&gt;SubscriptionsPending&lt;/b&gt;: 0" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=#FF4F8B;gradientDirection=north;fillColor=#BC1356;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.sns;" parent="1" vertex="1"><mxGeometry x="460" y="140" width="78" height="78" as="geometry"/></mxCell><mxCell id="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" value="&lt;b&gt;Name&lt;/b&gt;: events&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo &lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;DelaySeconds&lt;/b&gt;: 0&lt;BR&gt;&lt;b&gt;FifoQueue&lt;/b&gt;: TRUE&lt;BR&gt;&lt;b&gt;ReceiveMessageWaitTimeSeconds&lt;/b&gt;: 0&lt;BR&gt;&lt;b&gt;SqsManagedSseEnabled&lt;/b&gt;: false&lt;BR&gt;&lt;b&gt;VisibilityTimeout&lt;/b&gt;: 30" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.sqs;fillColor=#F58534;gradientColor=#FF4F8B;gradientDirection=north;fillColor=#BC1356;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom" parent="1" vertex="1"><mxGeometry x="761" y="11.5" width="78" height="78" as="geometry"/></mxCell><mxCell id="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo" value="&lt;b&gt;Name&lt;/b&gt;: events2&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo " style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.sqs;fillColor=#F58534;gradientColor=#FF4F8B;gradientDirection=north;fillColor=#BC1356;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom" parent="1" vertex="1"><mxGeometry x="761" y="260" width="78" height="78" as="geometry"/></mxCell><mxCell id="vertex:s3:arn:aws:s3:::bucket_name/key_name" value="&lt;b&gt;Name&lt;/b&gt;: key_name&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:s3:::bucket_name/key_name " style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;shape=mxgraph.aws3.bucket_with_objects;fillColor=#E05243;gradientColor=none;" parent="1" vertex="1"><mxGeometry x="350" y="420" width="78" height="78" as="geometry"/></mxCell><mxCell id="edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda:to:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda" target="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" edge="2"><mxGeometry as="geometry"/></mxCell><mxCell id="edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda:to:s3:arn:aws:s3:::bucket_name/key_name" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda" target="vertex:s3:arn:aws:s3:::bucket_name/key_name" edge="2"><mxGeometry as="geometry"/></mxCell><mxCell id="edge:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo:to:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" target="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" edge="2"><mxGeometry as="geometry"/></mxCell><mxCell id="edge:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo:to:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" target="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo" edge="2"><mxGeometry as="geometry"/></mxCell><mxCell id="edge:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo:to:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" target="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" edge="2"><mxGeometry as="geometry"/></mxCell><mxCell id="edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda:to:dynamo:arn:aws:dynamodb:eu-west-1:123456789:table/table1" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" target="vertex:dynamo:arn:aws:dynamodb:eu-west-1:123456789:table/table1" edge="2"><mxGeometry as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>
<mxfile host="multicloud-diagrams" agent="PIP package multicloud-diagrams. Generate resources in draw.io compatible format for Cloud infrastructure. Copyrights @ Roman Tsypuk 2023. MIT license." type="MultiCloud">
<diagram id="diagram_1" name="AWS components">
<mxGraphModel dx="1015" dy="661" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda" value="&lt;b&gt;Name&lt;/b&gt;: producer-lambda&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:lambda:eu-west-1:123456789:function:producer-lambda &lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;CodeSize&lt;/b&gt;: 1234&lt;BR&gt;&lt;b&gt;Handler&lt;/b&gt;: main&lt;BR&gt;&lt;b&gt;Layers&lt;/b&gt;: 0&lt;BR&gt;&lt;b&gt;Memory&lt;/b&gt;: 128&lt;BR&gt;&lt;b&gt;PackageType&lt;/b&gt;: Zip&lt;BR&gt;&lt;b&gt;Runtime&lt;/b&gt;: go1.x&lt;BR&gt;&lt;b&gt;Timeout&lt;/b&gt;: 30&lt;BR&gt;&lt;b&gt;TracingConfig&lt;/b&gt;: {'Mode': 'Active'}&lt;BR&gt;&lt;b&gt;Version&lt;/b&gt;: $LATEST" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;shape=mxgraph.aws3.lambda_function;prIcon=server;fillColor=#F58534;gradientColor=none;html=1;" parent="1" vertex="1">
<!--vertex:producer-lambda-->
<mxGeometry width="69" height="72" as="geometry" x="50" y="146" />
</mxCell>
<mxCell id="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" value="&lt;b&gt;Name&lt;/b&gt;: consumer-lambda&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda " style="verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=left;pointerEvents=1;shape=mxgraph.aws3.lambda_function;prIcon=server;fillColor=#F58534;gradientColor=none;html=1;" parent="1" vertex="1">
<!--vertex:consumer-lambda-->
<mxGeometry width="69" height="72" as="geometry" x="1090" y="150" />
</mxCell>
<mxCell id="vertex:dynamo:arn:aws:dynamodb:eu-west-1:123456789:table/table1" value="&lt;b&gt;Name&lt;/b&gt;: table1&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:dynamodb:eu-west-1:123456789:table/table1 " style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;shape=mxgraph.aws3.dynamo_db;fillColor=#2E73B8;gradientColor=none;" parent="1" vertex="1">
<!--vertex:table1-->
<mxGeometry width="72" height="81" as="geometry" x="1088.5" y="420" />
</mxCell>
<mxCell id="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" value="&lt;b&gt;Name&lt;/b&gt;: internal&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:sns:eu-west-1:123456789:internal.fifo &lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;Owner&lt;/b&gt;: 123456789&lt;BR&gt;&lt;b&gt;SubscriptionsConfirmed&lt;/b&gt;: 3&lt;BR&gt;&lt;b&gt;SubscriptionsPending&lt;/b&gt;: 0" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=#FF4F8B;gradientDirection=north;fillColor=#BC1356;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.sns;" parent="1" vertex="1">
<!--vertex:internal-->
<mxGeometry width="78" height="78" as="geometry" x="460" y="140" />
</mxCell>
<mxCell id="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" value="&lt;b&gt;Name&lt;/b&gt;: events&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo &lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;DelaySeconds&lt;/b&gt;: 0&lt;BR&gt;&lt;b&gt;FifoQueue&lt;/b&gt;: TRUE&lt;BR&gt;&lt;b&gt;ReceiveMessageWaitTimeSeconds&lt;/b&gt;: 0&lt;BR&gt;&lt;b&gt;SqsManagedSseEnabled&lt;/b&gt;: false&lt;BR&gt;&lt;b&gt;VisibilityTimeout&lt;/b&gt;: 30" style="shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.sqs;fillColor=#F58534;gradientColor=#FF4F8B;gradientDirection=north;fillColor=#BC1356;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom" parent="1" vertex="1">
<!--vertex:events-->
<mxGeometry width="78" height="78" as="geometry" x="761" y="11.5" />
</mxCell>
<mxCell id="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo" value="&lt;b&gt;Name&lt;/b&gt;: events2&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo " style="shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.sqs;fillColor=#F58534;gradientColor=#FF4F8B;gradientDirection=north;fillColor=#BC1356;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom" parent="1" vertex="1">
<!--vertex:events2-->
<mxGeometry width="78" height="78" as="geometry" x="761" y="260" />
</mxCell>
<mxCell id="vertex:s3:arn:aws:s3:::bucket_name/key_name" value="&lt;b&gt;Name&lt;/b&gt;: key_name&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:s3:::bucket_name/key_name " style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;shape=mxgraph.aws3.bucket_with_objects;fillColor=#E05243;gradientColor=none;" parent="1" vertex="1">
<!--vertex:key_name-->
<mxGeometry width="78" height="78" as="geometry" x="350" y="420" />
</mxCell>
<mxCell id="edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda:to:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda" target="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" edge="2">
<!--edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda:to:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo-->
<mxGeometry as="geometry" />
</mxCell>
<mxCell id="edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda:to:s3:arn:aws:s3:::bucket_name/key_name" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda" target="vertex:s3:arn:aws:s3:::bucket_name/key_name" edge="2">
<!--edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:producer-lambda:to:s3:arn:aws:s3:::bucket_name/key_name-->
<mxGeometry as="geometry" />
</mxCell>
<mxCell id="edge:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo:to:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" target="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" edge="2">
<!--edge:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo:to:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo-->
<mxGeometry as="geometry" />
</mxCell>
<mxCell id="edge:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo:to:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo" target="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo" edge="2">
<!--edge:sns:arn:aws:sns:eu-west-1:123456789:internal.fifo:to:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events2.fifo-->
<mxGeometry as="geometry" />
</mxCell>
<mxCell id="edge:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo:to:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo" target="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" edge="2">
<!--edge:sqs:arn:aws:sqs:eu-west-1:123456789:int-eu-live-events.fifo:to:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda-->
<mxGeometry as="geometry" />
</mxCell>
<mxCell id="edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda:to:dynamo:arn:aws:dynamodb:eu-west-1:123456789:table/table1" style="endFill=0;endArrow=none;endArrow=none;" parent="1" source="vertex:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda" target="vertex:dynamo:arn:aws:dynamodb:eu-west-1:123456789:table/table1" edge="2">
<!--edge:lambda_function:arn:aws:lambda:eu-west-1:123456789:function:consumer-lambda:to:dynamo:arn:aws:dynamodb:eu-west-1:123456789:table/table1-->
<mxGeometry as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

0 comments on commit 99259b5

Please sign in to comment.