Europe Region Demo data script written.
- Added LayoutLocation class
- Added RegionAddPeerLocCommand class
Note: still need to plumb through peer locations to UI JSON.

Change-Id: Ic3513a3880f50b440fe318dce6896b66d7e79704
diff --git a/tools/test/topos/regions-europe.sh b/tools/test/topos/regions-europe.sh
index d0f6d04..a0fcfbd 100755
--- a/tools/test/topos/regions-europe.sh
+++ b/tools/test/topos/regions-europe.sh
@@ -38,6 +38,8 @@
 region-add rDE "Germany" COUNTRY 50.863152  9.761971 ${host}
 region-add rES "Spain"   COUNTRY 40.416704 -3.7035824 ${host}
 
+region-add rMilan "Milan" METRO 45.4654 9.1859 ${host}
+
 EOF
 
 
@@ -60,7 +62,7 @@
 layout-add lES @europe rES root 21.41 -9994.5 -10135.6
 
 # -- layouts for country sub-regions
-# TODO
+layout-add lMilan +segmentRoutingTwo rMilan lIT 0.86 68.58 54.71
 
 # -- summary of installed layouts
 layouts
@@ -109,11 +111,11 @@
 null-create-link direct Leeds Warrington
 
 # -- UK Peers
-
-# rUK_rES 50.4060  -3.3860
-# rUK_rFR 50.4060  -1.8482
-# rUK_rIT 50.4060  -0.1361
-# rUK_rDE 50.4060   1.2491
+## TODO: figure out why this data isn't getting put into runtime config?!
+region-add-peer-loc rUK rES 50.4060  -3.3860
+region-add-peer-loc rUK rFR 50.4060  -1.8482
+region-add-peer-loc rUK rIT 50.4060  -0.1361
+region-add-peer-loc rUK rDE 50.4060   1.2491
 
 
 # -- France Devices
@@ -151,10 +153,152 @@
 
 # -- France Peers
 
-# rFR_rES  42.6806  -2.1273
-# rFR_rUK  50.6164  -2.1013
-# rFR_rIT  45.1105   9.7450
-# rFR_rDE  49.6307   7.9326
+region-add-peer-loc rFR rES  42.6806  -2.1273
+region-add-peer-loc rFR rUK  50.6164  -2.1013
+region-add-peer-loc rFR rIT  45.1105   9.7450
+region-add-peer-loc rFR rDE  49.6307   7.9326
+
+
+# -- Italy Devices
+
+# these four in a mini fabric (data center?)
+
+null-create-device switch Milan-1      ${nports} 10.0 20.0 grid
+null-create-device switch Milan-2      ${nports} 10.0 50.0 grid
+null-create-device switch Milan-3      ${nports} 45.0 20.0 grid
+null-create-device switch Milan-4      ${nports} 45.0 50.0 grid
+
+null-create-host Milan-3 192.168.3.13 60.0 15.0 grid
+null-create-host Milan-4 192.168.3.14 60.0 45.0 grid
+
+region-add-devices rMilan \
+    null:000000000000000c \
+    null:000000000000000d \
+    null:000000000000000e \
+    null:000000000000000f \
+
+null-create-device switch Venice  ${nports} 45.4408  12.3155
+null-create-device switch Rome    ${nports} 41.9028  12.4964
+null-create-device switch Naples  ${nports} 40.8518  14.2681
+
+region-add-devices rIT \
+    null:0000000000000010 \
+    null:0000000000000011 \
+    null:0000000000000012 \
+
+# -- Italy Connectivity
+
+null-create-link direct Milan-1 Milan-3
+null-create-link direct Milan-1 Milan-4
+null-create-link direct Milan-2 Milan-3
+null-create-link direct Milan-2 Milan-4
+
+null-create-link direct Milan-1 Venice
+null-create-link direct Milan-2 Rome
+
+null-create-link direct Venice Rome
+null-create-link direct Venice Naples
+null-create-link direct Rome Naples
+
+# -- Italy Peers
+
+#region-add-peer-loc rIT rES  xx.xxxx  xx.xxxx
+#region-add-peer-loc rIT rUK  xx.xxxx  xx.xxxx
+#region-add-peer-loc rIT rFR  xx.xxxx  xx.xxxx
+#region-add-peer-loc rIT rDE  xx.xxxx  xx.xxxx
+
+# -- Germany Devices
+
+null-create-device switch Munich     ${nports} 48.1351 11.5820
+null-create-device switch Berlin     ${nports} 52.5200 13.4050
+null-create-device switch Bremen     ${nports} 53.0793  8.8017
+null-create-device switch Frankfurt  ${nports} 50.1109  8.6821
+null-create-device switch Stuttgart  ${nports} 48.7758  9.1829
+
+null-create-host Munich 192.168.4.1  47.4818 11.7441
+null-create-host Berlin 192.168.4.2  53.0537 13.5310
+
+region-add-devices rDE \
+    null:0000000000000013 \
+    null:0000000000000014 \
+    null:0000000000000015 \
+    null:0000000000000016 \
+    null:0000000000000017 \
+
+# -- Germany Connectivity
+
+null-create-link direct Munich Berlin
+null-create-link direct Munich Stuttgart
+null-create-link direct Munich Stuttgart
+null-create-link direct Frankfurt Stuttgart
+null-create-link direct Frankfurt Bremen
+null-create-link direct Berlin Bremen
+null-create-link direct Berlin Frankfurt
+
+# -- Germany Peers
+
+#region-add-peer-loc rDE rES  xx.xxxx  xx.xxxx
+#region-add-peer-loc rDE rUK  xx.xxxx  xx.xxxx
+#region-add-peer-loc rDE rFR  xx.xxxx  xx.xxxx
+#region-add-peer-loc rDE rIT  xx.xxxx  xx.xxxx
+
+# -- Spain Devices
+
+null-create-device switch Madrid     ${nports} 40.4168 -3.7038
+null-create-device switch Barcelona  ${nports} 41.3851  2.1734
+null-create-device switch Valencia   ${nports} 39.4699 -0.3763
+null-create-device switch Seville    ${nports} 37.3891 -5.9845
+
+null-create-host Madrid    192.168.5.1  41.0797 -3.9559
+null-create-host Barcelona 192.168.5.2  41.8507  2.0399
+null-create-host Valencia  192.168.5.3  38.8488 -0.5097
+null-create-host Seville   192.168.5.4  38.0110 -6.4442
+
+region-add-devices rES \
+    null:0000000000000018 \
+    null:0000000000000019 \
+    null:000000000000001a \
+    null:000000000000001b \
+
+# -- Spain Connectivity
+
+null-create-link direct Barcelona Madrid
+null-create-link direct Barcelona Valencia
+null-create-link direct Seville Madrid
+null-create-link direct Seville Valencia
+null-create-link direct Madrid Valencia
+
+# -- Spain Peers
+
+#region-add-peer-loc rES rDE  xx.xxxx  xx.xxxx
+#region-add-peer-loc rES rUK  xx.xxxx  xx.xxxx
+#region-add-peer-loc rES rFR  xx.xxxx  xx.xxxx
+#region-add-peer-loc rES rIT  xx.xxxx  xx.xxxx
+
+
+# -- Inter-Region Connectivity
+
+# Spain-France
+null-create-link direct Barcelona Marseille
+null-create-link direct Madrid Bordeaux
+
+# France-Italy
+null-create-link direct Rome Nice
+null-create-link direct Milan-1 Lyon
+
+# Italy-Germany
+null-create-link direct Venice Munich
+
+# France-Germany
+null-create-link direct Lyon Stuttgart
+null-create-link direct Paris Frankfurt
+
+# England-France
+null-create-link direct Portsmouth Paris
+
+# England-Germany
+null-create-link direct London Bremen
+null-create-link direct London Frankfurt
 
 EOF