Creative Commons Attribution-NonCommercial-NoDerivs 4.0 International License.
URL : http://localhost:4200
Network Elements : https://app.swaggerhub.com/apis-docs/lye-s/network-elements/1.0
Network Graph : https://app.swaggerhub.com/apis-docs/lye-s/network-graph/1.0
1. Java 11.x.y
2. Maven 3.x.y
3. Docker 3.x.y
git clone https://github.com/lyes-s/multi-element-relationally-interconnected-topology.git
mitsuke ( β₯β£_β’β€ ) : ~$ cd multi-element-relationally-interconnected-topology/
mitsuke ( β₯β£_β’β€ ) : ~$ chmod +x the-merit-script
mitsuke ( β₯β£_β’β€ ) : ~$ ./the-merit-script
ββββββββββββ βββββββββββ ββββ ββββ ββββββββ βββββββ ββββββββββββ
ββββββββββββ βββββββββββ βββββ βββββ ββββββββ ββββββββ ββββββββββββ
βββ ββββββββββββββ βββββββββββ ββββββ ββββββββ βββ βββ
βββ ββββββββββββββ βββββββββββ ββββββ ββββββββ βββ βββ
βββ βββ βββββββββββ βββ βββ ββββββββββββββββββββ βββββββββββββββ
βββ βββ βββββββββββ βββ ββββββββββββββββββββ βββββββββββββββ
mitsuke ( β₯β£_β’β€ ) : Hi π ! please make a selection.
1) Docker Compose Up
2) Docker Compose Down
3) quit
#? 1
Docker Compose Up ...
Creating network "docker-compose_network-elements" with the default driver
Creating network "docker-compose_redis" with the default driver
Creating network "docker-compose_network-graph" with the default driver
Creating network "docker-compose_consul" with the default driver
Creating network "docker-compose_kafka" with the default driver
Creating network "docker-compose_schema-registry" with the default driver
Creating network "docker-compose_gateway" with the default driver
Creating network "docker-compose_ui" with the default driver
Creating volume "docker-compose_redis-cluster_data-0" with default driver
Creating volume "docker-compose_redis-cluster_data-1" with default driver
Creating volume "docker-compose_redis-cluster_data-2" with default driver
Creating volume "docker-compose_redis-cluster_data-3" with default driver
Creating volume "docker-compose_redis-cluster_data-4" with default driver
Creating volume "docker-compose_redis-cluster_data-5" with default driver
Creating volume "docker-compose_pgdata" with default driver
Creating volume "docker-compose_mongodb-data" with default driver
Creating network-elements-db ... done
Creating zookeeper ... done
Creating redis-node-4 ... done
Creating mongodb ... done
Creating consul-server ... done
Creating redis-node-3 ... done
Creating redis-node-0 ... done
Creating redis-node-2 ... done
Creating redis-node-1 ... done
Creating flyway ... done
Creating mongo-express ... done
Creating kafka3 ... done
Creating kafka2 ... done
Creating consul-client ... done
Creating kafka1 ... done
Creating redis-node-5 ... done
Creating kafdrop ... done
Creating schema-registry ... done
Creating network-graph ... done
Creating network-elements ... done
Creating api-gateway ... done
Creating network-ui ... done
curl -H 'Content-Type: application/json' http://localhost:8080/api/v1/devices
[
{
"address": "10.133.13.12",
"elementType": "router",
"area": 0,
"neighbors": [
{
"address": "10.133.13.13",
"cost": 2
},
{
"address": "10.133.13.14",
"cost": 3
},
{
"address": "10.133.13.15",
"cost": 1
}
],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.12"
}
]
},
{
"address": "10.133.13.13",
"elementType": "server",
"area": 0,
"neighbors": [],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.13"
}
]
},
{
"address": "10.133.13.14",
"elementType": "wireless router",
"area": 0,
"neighbors": [
{
"address": "10.133.13.16",
"cost": 5
}
],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.14"
}
]
},
{
"address": "10.133.13.15",
"elementType": "switch",
"area": 0,
"neighbors": [
{
"address": "10.133.13.17",
"cost": 4
},
{
"address": "10.133.13.18",
"cost": 4
},
{
"address": "10.133.13.19",
"cost": 4
}
],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.15"
}
]
},
{
"address": "10.133.13.16",
"elementType": "laptop",
"area": 0,
"neighbors": [],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.16"
}
]
},
{
"address": "10.133.13.17",
"elementType": "desktop computer",
"area": 0,
"neighbors": [
{
"address": "10.133.13.18",
"cost": 0
},
{
"address": "10.133.13.19",
"cost": 0
}
],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.17"
}
]
},
{
"address": "10.133.13.18",
"elementType": "desktop computer",
"area": 0,
"neighbors": [
{
"address": "10.133.13.19",
"cost": 0
}
],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.18"
}
]
},
{
"address": "10.133.13.19",
"elementType": "desktop computer",
"area": 0,
"neighbors": [],
"edges": [
{
"rel": "self",
"href": "http://8e5eace76bac:8080/api/v1/devices/10.133.13.19"
}
]
}
]
curl -X POST -H 'Content-Type: application/json' http://localhost:8080/api/graphql -d '{ "query": "{ retrieveGraph { nodes { id area elementType} links { source target cost} } }" }'
{
"data": {
"retrieveGraph": {
"nodes": [
{
"id": "10.133.13.12",
"area": 0,
"elementType": "router"
},
{
"id": "10.133.13.13",
"area": 0,
"elementType": "server"
},
{
"id": "10.133.13.14",
"area": 0,
"elementType": "wireless router"
},
{
"id": "10.133.13.15",
"area": 0,
"elementType": "switch"
},
{
"id": "10.133.13.16",
"area": 0,
"elementType": "laptop"
},
{
"id": "10.133.13.17",
"area": 0,
"elementType": "desktop computer"
},
{
"id": "10.133.13.18",
"area": 0,
"elementType": "desktop computer"
},
{
"id": "10.133.13.19",
"area": 0,
"elementType": "desktop computer"
}
],
"links": [
{
"source": "10.133.13.15",
"target": "10.133.13.17",
"cost": 4
},
{
"source": "10.133.13.12",
"target": "10.133.13.14",
"cost": 3
},
{
"source": "10.133.13.12",
"target": "10.133.13.13",
"cost": 2
},
{
"source": "10.133.13.15",
"target": "10.133.13.18",
"cost": 4
},
{
"source": "10.133.13.14",
"target": "10.133.13.16",
"cost": 5
},
{
"source": "10.133.13.12",
"target": "10.133.13.15",
"cost": 1
},
{
"source": "10.133.13.17",
"target": "10.133.13.19",
"cost": 0
},
{
"source": "10.133.13.15",
"target": "10.133.13.19",
"cost": 4
},
{
"source": "10.133.13.17",
"target": "10.133.13.18",
"cost": 0
},
{
"source": "10.133.13.18",
"target": "10.133.13.19",
"cost": 0
}
]
}
}
}
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 tests as appropriate.