This project provides a web app GUI for generating a topological graph of Heat Orchestration Templates. It can be used to dynamically manage associated network maps and provide an interactive topology. It recursively extracts the input data and formats it into a D3.js force simulation. Can handle multiple heat-templates at once is they are selected in the file upload menu. Note: Resources accross heat templates will link if {get_param : (resource)_id} is in the file
The webpage uses D3.js version 7 and Cloudflare's JSON and YAML parsing library version 3.14.1.
Still under development. There are some bugs.
- Net
- Subnet
- Router
- RouterInterface
- Server
- Port
- FloatingIP
- ResourceGroup
- SecurityGroup
- ExtraRoute
- WaitCondition
- WaitConditionHandle
- MultipartMime
- SoftwareConfig
- RandomString
- RecordSet
- Zone
- Navigate to https://topology.gacyberrange.org
Or host the index.html file locally - Click on the "Select File" button or the text box
- Upload your YAML or JSON heat template
It should look something like this: Or this:
- YAML and JSON Parsing
- Force Simulation
- Dragging
- Panning
- Zooming
- Device Tooltips
- Toggleable Buttons
- Charge and Size Sliders
- Multi-file Upload
- Lock Nodes
Locks each node in place (they can still be dragged) - Show Subnets
Draws a polygon hull around Subnets and their dependencies - Show IPs
Replaces all the node names with the node IPs if applicable - Show Params
Lists the heat temlate description and parameters - Hide Legend
Hides the device type legend - Tooltips +
Shows hidden tooltip information - Darkmode
Makes the background darker and text lighter
- Charge
Adjusts the interaction strenght between nodes - Size
Adjusts the node icon and text size
OpenStack Topology Graph Gitlab Repository
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update the examples as appropriate.
Copyright 2020 Augusta University
Augusta University Intellectual Property Policy
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.