diff --git a/CHANGES.md b/CHANGES.md index 039afce..a25861b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -37,7 +37,7 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `src/zip.ts` | `Persistence/TopologyFLSArchive.swift` (Fehler, Grenzen, Pfadregeln, ZIP-Leser/-Schreiber, CRC-32) | übertragen; DEFLATE über `fflate`, mit Apples Abschneide-Verhalten nachgebildet; Pfadfaltung (NFC, Breite, volles Case-Folding) an 41 Paaren gegen das Swift-Orakel gemessen | | `src/archive.ts` | ebenda, Archiv-Teil von Import und Export | übertragen, ohne die XML-Ebene | | `src/javabeans.ts`, `src/javaDefaults.json` | — | neu: XMLEncoder-Leser nach den Regeln von `java.beans.XMLDecoder` (Swift liest elementweise und verliert geteilte Werte); Getter-Standardwerte und statische Konstanten mit `tools/java-oracle` gemessen | -| `src/importProject.ts` | `Persistence/TopologyProjectStore.swift` (Knoten, Ports, Kabel, IP-Konfiguration, Switch/WLAN, Routen, RIP, Firewall, DHCP, Portweiterleitung, Modem, Doku-Elemente des Imports) | übertragen, Eingabe ist Javas Sicht: Name und Port-Anzahl wie Java, abgelehnte Adresse → Swift-Standard, Router-Standardgateway wie Java (Swift verliert es), jede Router-Firewall eingetragen, Konfigurationstexte wie in Swift getrimmt (`swiftTrim`); gegen Swifts importiertes Modell auf 13 Dateien geprüft | +| `src/importProject.ts` | `Persistence/TopologyProjectStore.swift` (Knoten, Ports, Kabel, IP-Konfiguration, Switch/WLAN, Routen, RIP, Firewall, DHCP, Portweiterleitung, Modem, Dateisysteme, Doku-Elemente des Imports) | übertragen, Eingabe ist Javas Sicht: Name und Port-Anzahl wie Java, abgelehnte Adresse → Swift-Standard, Router-Standardgateway wie Java (Swift verliert es), jede Router-Firewall eingetragen, Konfigurationstexte wie in Swift getrimmt (`swiftTrim`), Rechner ohne Dateisystem leer wie in Java (Swift: Demo-Dateien); gegen Swifts importiertes Modell auf 13 Dateien geprüft | | `test/importProject.test.ts` | — | neu: Swifts importiertes Modell (13 Dateien, zwei begründete Abweichungen), Vollständigkeit aller 23, Pings im Kern (über einen Router; über drei Router mit manuellen Routen und Router-Gateways) | | `src/systemSoftware.ts` | Java `SwitchFirmware`, `Betriebssystem`, `VermittlungsrechnerBetriebssystem`, `GatewayFirmware`, `Weiterleitungstabelle`, `Firewall`, `FirewallRule`, `DHCPServer`, `ModemFirmware`, `Dateisystem`, `Datei` | neu nach Java: SSID, Lernzeit, RIP, manuelle Routen, Router-Firewall (an allen Stellen, an denen die Datei sie erreicht), DHCP, statische NAT, Modem, Dateisystem von Rechner und Notebook; `Character.isWhitespace` am JDK gemessen; gegen Java geprüft | | `src/javaIp.ts` | Java `IP.inetAton`/`ipCheck` | neu nach Java; an 46 Fällen mit Java gemessen | diff --git a/corpus/corpus.swift.json b/corpus/corpus.swift.json index 97ed3cb..2514a61 100644 --- a/corpus/corpus.swift.json +++ b/corpus/corpus.swift.json @@ -62,6 +62,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -231,6 +232,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (lokal)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "filius.de. MX 3600 smtp.filius.de.\ndns-root. A 3600 141.99.5.13\n. NS 3600 dns-root.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -259,6 +275,32 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Webserver", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "\n \n Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -287,6 +329,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -315,6 +415,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (.)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "dns.de. A 3600 141.99.5.14\nde. NS 3600 dns.de.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -338,6 +453,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -507,6 +623,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (de.)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "dns.filius.de. A 3600 141.99.5.15\nfilius.de. NS 3600 dns.filius.de.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -535,6 +666,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (filius.de.)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de. A 3600 141.99.5.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -864,6 +1010,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.12", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -890,6 +1042,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -939,6 +1092,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "mywebserver.de (160.10.20.10)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h2> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -967,6 +1142,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "8.8.8.8", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "mywebserver.de. A 3600 160.10.20.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -995,6 +1185,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -1021,6 +1217,7 @@ { "device" : null, "displayName" : "Wifi Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -1243,6 +1440,7 @@ { "device" : null, "displayName" : "Switch 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -1407,6 +1605,7 @@ { "device" : null, "displayName" : "Switch 2", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -1576,6 +1775,46 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server 2.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de A 3600 141.99.2.10\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www.conf\/vhosts", + "text" : "*\nwebserver\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\n" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2010 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -1604,6 +1843,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -1632,6 +1929,37 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www.conf\/vhosts", + "text" : "null\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\n" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -1655,6 +1983,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -1738,6 +2067,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Server 10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -1766,6 +2153,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -1789,6 +2234,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -1958,6 +2404,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 2", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -2029,6 +2533,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -2067,6 +2629,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.101", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -2095,6 +2715,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.100", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -2118,6 +2796,7 @@ { "device" : null, "displayName" : "Switch \/ WLAN", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -2287,6 +2966,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.100", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -2315,6 +3052,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -2407,6 +3202,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -2576,6 +3372,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (lokal)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "filius.de. MX 3600 smtp.filius.de.\ndns-root. A 3600 141.99.5.13\n. NS 3600 dns-root.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -2604,6 +3415,32 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Webserver", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -2632,6 +3469,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -2660,6 +3555,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (.)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "dns.de. A 3600 141.99.5.14\nde. NS 3600 dns.de.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -2683,6 +3593,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -2852,6 +3763,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (de.)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "dns.filius.de. A 3600 141.99.5.15\nfilius.de. NS 3600 dns.filius.de.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -2880,6 +3806,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server (filius.de.)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de. A 3600 141.99.5.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -2999,6 +3940,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 1", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3027,6 +4026,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 2", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3055,6 +4112,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 3", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3083,6 +4198,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 4", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3111,6 +4284,58 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.mein-server.de A 3600 192.168.0.100\nxy A 3600 192.168.0.100\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www.conf\/vhosts", + "text" : "*\nwebserver\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\n" + }, + { + "bytes" : 86696, + "kind" : "image", + "mediaType" : "image\/jpeg", + "path" : "\/www\/800px-Loewe_3.JPG", + "sha256" : "0b6e981346cd0c5fc8716ed02c6f19077b27d2ff8731dfcba2c4f8bcc6d59570" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p><a href=\"meine-seite.html\">Meine Seite!! <\/a><\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2010 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "kind" : "text", + "path" : "\/www\/meine-seite.html", + "text" : "<html>\n<head>\n <title>Meine persoenliche Seite <\/title>\n<\/head>\n<body>\n <img src=\"800px-loewe_3.jpg\" \/>\n<\/body>\n<\/html>" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3144,6 +4369,7 @@ { "device" : null, "displayName" : "Switch 3", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -3313,6 +4539,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 1", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3341,6 +4625,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 2", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3369,6 +4711,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 3", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3397,6 +4797,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 4", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3420,6 +4878,7 @@ { "device" : null, "displayName" : "Switch 2", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -3584,6 +5043,7 @@ { "device" : null, "displayName" : "Switch 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -3826,6 +5286,28 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Web-Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3854,6 +5336,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Rechner 3", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "141.99.50.233;141.99.50.233;110;25;rechner3;rechner3;3;Rechner;rechner3@senior.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"rechner3@senior.de\",\"inbox\":[],\"name\":\"Rechner 3\",\"nextMessageID\":1,\"password\":\"rechner3\",\"pop3Host\":\"141.99.50.233\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"141.99.50.233\",\"smtpPort\":25,\"username\":\"rechner3\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3882,6 +5384,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Rechner 4", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "141.99.50.233;141.99.50.233;110;25;rechner4;rechner4;4;Rechner;rechner4@senior.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"rechner4@senior.de\",\"inbox\":[],\"name\":\"Rechner 4\",\"nextMessageID\":1,\"password\":\"rechner4\",\"pop3Host\":\"141.99.50.233\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"141.99.50.233\",\"smtpPort\":25,\"username\":\"rechner4\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3910,6 +5432,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Rechner 1", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "141.99.50.232;141.99.50.232;110;25;rechner1;rechner1;1;Rechner;rechner1@filius.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"rechner1@filius.de\",\"inbox\":[],\"name\":\"Rechner 1\",\"nextMessageID\":1,\"password\":\"rechner1\",\"pop3Host\":\"141.99.50.232\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"141.99.50.232\",\"smtpPort\":25,\"username\":\"rechner1\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3938,6 +5480,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Rechner 2", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "141.99.50.232;141.99.50.232;110;25;rechner2;rechner2;2;Rechner;rechner2@filius.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"rechner2@filius.de\",\"inbox\":[],\"name\":\"Rechner 2\",\"nextMessageID\":1,\"password\":\"rechner2\",\"pop3Host\":\"141.99.50.232\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"141.99.50.232\",\"smtpPort\":25,\"username\":\"rechner2\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -3961,6 +5523,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -4130,6 +5693,21 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "DNS-Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de A 3600 141.99.50.231\nmail-filius.de A 3600 141.99.50.232\nmail-senior.de A 3600 141.99.50.233\nfilius.de MX 3600 mail-filius.de\nsenior.de MX 3600 mail-senior.de\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -4158,6 +5736,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Mail-Server (filius.de)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"rechner1\",\"username\":\"rechner1\"},{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"rechner2\",\"username\":\"rechner2\"}],\"domain\":\"filius.de\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "rechner1;filius.de;rechner1;Nachname;Vorname;\nrechner2;filius.de;rechner2;Nachname;Vorname;\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -4186,6 +5784,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Mail-Server (senior.de)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"rechner3\",\"username\":\"rechner3\"},{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"rechner4\",\"username\":\"rechner4\"}],\"domain\":\"senior.de\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "rechner3;senior.de;rechner3;Nachname;Vorname;\nrechner4;senior.de;rechner4;Nachname;Vorname;\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -4595,6 +6213,26 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "10.10.20.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "mail.gmx.com;mail.gmx.com;110;25;herbert;herbert1234;Schmidt;Herbert;herbert@gmx.com\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"herbert@gmx.com\",\"inbox\":[],\"name\":\"Herbert Schmidt\",\"nextMessageID\":1,\"password\":\"herbert1234\",\"pop3Host\":\"mail.gmx.com\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"mail.gmx.com\",\"smtpPort\":25,\"username\":\"herbert\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -4618,6 +6256,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -4787,6 +6426,26 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "10.10.20.12", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "mail.webmail.com;mail.webmail.com;110;25;frimp;frimp1234;Mueller;Frimp;frimp@webmail.com\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"frimp@webmail.com\",\"inbox\":[],\"name\":\"Frimp Mueller\",\"nextMessageID\":1,\"password\":\"frimp1234\",\"pop3Host\":\"mail.webmail.com\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"mail.webmail.com\",\"smtpPort\":25,\"username\":\"frimp\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -4810,6 +6469,7 @@ { "device" : null, "displayName" : "Provider 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -4854,6 +6514,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -4907,6 +6568,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -4951,6 +6613,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -5013,6 +6676,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -5057,6 +6721,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -5097,6 +6762,26 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "DNS (8.8.8.8)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "webserver.com. A 3600 120.130.140.80\ngmx.com. MX 3600 mail.gmx.com.\nmail.gmx.com. A 3600 130.100.200.25\nmail.webmail.com. A 3600 140.100.200.25\nwebmail.com. MX 3600 mail.webmail.com.\nmyschool.org. A 3600 42.0.0.10\n" + }, + { + "kind" : "text", + "path" : "\/dns\/restored-1770036475063", + "text" : "myschool.org. A 3600 42.0.0.10\ngmx.com. MX 3600 mail.gmx.com.\nwebmail.com. MX 3600 mail.webmail.com.\nmail.gmx.com. A 3600 130.100.200.25\nmail.webmail.com. A 3600 140.100.200.25\nwebserver.com. A 3600 120.130.140.80\n\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5125,6 +6810,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "webserver.com (120.130.140.80)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h3> FILIUS - Webserver <\/h2>\n\n <h1>Externer WebServer!<\/h1>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5153,6 +6860,26 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "mail.gmx.com (130.100.200.25)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"herbert1234\",\"username\":\"herbert\"},{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"george1234\",\"username\":\"george\"}],\"domain\":\"gmx.com\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "herbert;gmx.com;herbert1234;Nachname;Vorname;\ngeorge;gmx.com;george1234;Nachname;Vorname;\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5181,6 +6908,26 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "mail.webmail.com (140.100.200.25)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"frimp1234\",\"username\":\"frimp\"}],\"domain\":\"webmail.com\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "frimp;webmail.com;frimp1234;Nachname;Vorname;\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5209,6 +6956,37 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "myschool.org (10.0.0.1)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "meine-schule.de. A 3600 10.0.0.1\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h3> FILIUS - Webserver <\/h3>\n\n <h1>Welcome to My School!<\/h1>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5254,6 +7032,26 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.1.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "mail.gmx.com;mail.gmx.com;110;25;george;george1234;Brown;George;george@gmx.com\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"george@gmx.com\",\"inbox\":[],\"name\":\"George Brown\",\"nextMessageID\":1,\"password\":\"george1234\",\"pop3Host\":\"mail.gmx.com\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"mail.gmx.com\",\"smtpPort\":25,\"username\":\"george\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5282,6 +7080,64 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "iPad 3", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5313,6 +7169,12 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "iPad 4", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5339,6 +7201,7 @@ { "device" : null, "displayName" : "Access Point", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -5503,6 +7366,7 @@ { "device" : null, "displayName" : "Provider 2", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -5543,6 +7407,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Provider 2 DHCP- Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -5576,6 +7446,7 @@ { "device" : null, "displayName" : "Provider 2 Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -6085,6 +7956,26 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "10.10.20.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "mail.gmx.de;mail.gmx.de;110;25;herbert;herbert1234;Schmidt;Herbert;herbert@gmx.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"herbert@gmx.de\",\"inbox\":[],\"name\":\"Herbert Schmidt\",\"nextMessageID\":4,\"password\":\"herbert1234\",\"pop3Host\":\"mail.gmx.de\",\"pop3Port\":110,\"sent\":[{\"bcc\":[],\"body\":\"Huhu! \\n\\nHi Frimp!\\n\\nDein \\nHerbert\",\"cc\":[],\"from\":{\"mailAddress\":\"herbert@gmx.de\",\"name\":\"Herbert Schmidt\"},\"id\":1,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"Hallo Frimp!\",\"to\":[{\"mailAddress\":\"frimp@webmail.de\"}]},{\"bcc\":[],\"body\":\"Hallo Frimp!\\n\\nFrimp Müller <frimp@webmail.de> schrieb:\\n> Huhu! \\n> \\n> Hi Herbert!\\n> \\n> Dein \\n> Frimp\\n> \",\"cc\":[],\"from\":{\"mailAddress\":\"herbert@gmx.de\",\"name\":\"Herbert Schmidt\"},\"id\":2,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"RE: Hallo Herbert!\",\"to\":[{\"mailAddress\":\"frimp@webmail.de\"}]},{\"bcc\":[],\"body\":\"jetzt?!\\n\\nFrimp Mueller <frimp@webmail.de> schrieb:\\n> Hi Herbert Again!\\n> \\n> Herbert Schmidt <herbert@gmx.de> schrieb:\\n> > Hallo Frimp!\\n> > \\n> > Frimp Müller <frimp@webmail.de> schrieb:\\n> > > Huhu! \\n> > > \\n> > > Hi Herbert!\\n> > > \\n> > > Dein \\n> > > Frimp\\n> > >\\n> >\\n> \",\"cc\":[],\"from\":{\"mailAddress\":\"herbert@gmx.de\",\"name\":\"Herbert Schmidt\"},\"id\":3,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"RE: RE: RE: Hallo Herbert!\",\"to\":[{\"mailAddress\":\"frimp@webmail.de\",\"name\":\"Frimp Mueller\"}]}],\"smtpHost\":\"mail.gmx.de\",\"smtpPort\":25,\"username\":\"herbert\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6108,6 +7999,7 @@ { "device" : null, "displayName" : "Switch 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -6272,6 +8164,7 @@ { "device" : null, "displayName" : "Provider 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -6316,6 +8209,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -6369,6 +8263,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -6413,6 +8308,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -6475,6 +8371,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -6519,6 +8416,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -6559,6 +8457,21 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "DNS (8.8.8.8)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "webserver.de. A 3600 120.130.140.80\ngmx.de. MX 3600 mail.gmx.de.\nmail.gmx.de. A 3600 130.100.200.25\nmail.webmail.de. A 3600 140.100.200.25\nwebmail.de. MX 3600 mail.webmail.de.\nmeine-schule.de. A 3600 42.0.0.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6587,6 +8500,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "webserver.de (120.130.140.80)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h3> FILIUS - Webserver <\/h2>\n\n <h1>Externer WebServer!<\/h1>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6615,6 +8550,26 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "mail.gmx.de (130.100.200.25)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"herbert1234\",\"username\":\"herbert\"},{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"george1234\",\"username\":\"george\"}],\"domain\":\"gmx.de\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "herbert;gmx.de;herbert1234;Nachname;Vorname;\ngeorge;gmx.de;george1234;Nachname;Vorname;\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6643,6 +8598,26 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "mail.webmail.de (140.100.200.25)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"frimp1234\",\"username\":\"frimp\"}],\"domain\":\"webmail.de\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "frimp;webmail.de;frimp1234;Nachname;Vorname;\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6671,6 +8646,37 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "meine-schule.de (10.0.0.1)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "meine-schule.de. A 3600 10.0.0.1\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h3> FILIUS - Webserver <\/h3>\n\n <h1>Herzlich Willkommen bei Meine-Schule!<\/h1>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6716,6 +8722,26 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.1.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "mail.gmx.de;mail.gmx.de;110;25;george;george1234;Brown;George;george@gmx.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"george@gmx.de\",\"inbox\":[],\"name\":\"George Brown\",\"nextMessageID\":1,\"password\":\"george1234\",\"pop3Host\":\"mail.gmx.de\",\"pop3Port\":110,\"sent\":[],\"smtpHost\":\"mail.gmx.de\",\"smtpPort\":25,\"username\":\"george\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6744,6 +8770,64 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "iPad 3", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6775,6 +8859,12 @@ "subnetMask" : "255.0.0.0" }, "displayName" : "iPad 4", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -6801,6 +8891,7 @@ { "device" : null, "displayName" : "Access Point", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -6965,6 +9056,7 @@ { "device" : null, "displayName" : "Provider 2", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -7005,6 +9097,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Provider 2 DCHP Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -7038,6 +9188,7 @@ { "device" : null, "displayName" : "Provider 2 Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -7314,6 +9465,7 @@ { "device" : null, "displayName" : "Switch 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -7478,6 +9630,7 @@ { "device" : null, "displayName" : "Switch 2", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -7642,6 +9795,7 @@ { "device" : null, "displayName" : "Router", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -7677,6 +9831,7 @@ { "device" : null, "displayName" : "Router", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -7734,6 +9889,7 @@ { "device" : null, "displayName" : "Router", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -7769,6 +9925,7 @@ { "device" : null, "displayName" : "Switch 4", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -7938,6 +10095,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server 2.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de A 3600 141.99.5.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -7966,6 +10138,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -7994,6 +10188,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 3.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8022,6 +10274,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Webserver 5.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8050,6 +10324,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 4.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8073,6 +10405,7 @@ { "device" : null, "displayName" : "Switch 5", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -8242,6 +10575,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 5.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8394,6 +10785,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Alice", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "141.99.50.233;141.99.50.233;110;25;alice;alice;3;Alice;alice@senior.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"alice@senior.de\",\"inbox\":[{\"bcc\":[],\"body\":\"test\",\"cc\":[],\"from\":{\"mailAddress\":\"rechner1@filius.de\",\"name\":\"Rechner 1\"},\"id\":1,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":false,\"subject\":\"test\",\"to\":[{\"mailAddress\":\"rechner3@senior.de\"}]},{\"bcc\":[],\"body\":\"\",\"cc\":[],\"from\":{\"mailAddress\":\"bob@filius.de\",\"name\":\"Bob 1\"},\"id\":2,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":false,\"subject\":\"test3\",\"to\":[{\"mailAddress\":\"alice@senior.de\"}]},{\"bcc\":[],\"body\":\"test bl\\n\",\"cc\":[],\"from\":{\"mailAddress\":\"bob@filius.de\",\"name\":\"Bob 1\"},\"id\":3,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":false,\"subject\":\"test bl\",\"to\":[{\"mailAddress\":\"alice@senior.de\"}]}],\"name\":\"Alice 3\",\"nextMessageID\":10,\"password\":\"alice\",\"pop3Host\":\"141.99.50.233\",\"pop3Port\":110,\"sent\":[{\"bcc\":[],\"body\":\"Hallo Bob,\\n\\nschön von dir zu hören.\\n\\nGruß\\nAlice\",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":4,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"Beste Grüße\",\"to\":[{\"mailAddress\":\"Bob@filius.de\"}]},{\"bcc\":[],\"body\":\"test\",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":5,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"test\",\"to\":[{\"mailAddress\":\"bob@filius.de\"}]},{\"bcc\":[],\"body\":\"\\n\\nBob 1 schrieb:\\n> \",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":6,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"RE: test3\",\"to\":[{\"mailAddress\":\"bob@filius.de\"}]},{\"bcc\":[],\"body\":\"\\n\\nBob 1 schrieb:\\n> \",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":7,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"RE: test3\",\"to\":[{\"mailAddress\":\"bob@filius.de\"}]},{\"bcc\":[],\"body\":\"huhu bob!\\n\\nBob 1 <bob@filius.de> schrieb:\\n> test bl\\n> \",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":8,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"RE: test bl\",\"to\":[{\"mailAddress\":\"bob@filius.de\",\"name\":\"Bob 1\"}]},{\"bcc\":[],\"body\":\"Hi BoB!\",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":9,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"Hi Bob!\",\"to\":[{\"mailAddress\":\"bob@filius.de\"}]}],\"smtpHost\":\"141.99.50.233\",\"smtpPort\":25,\"username\":\"alice\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8422,6 +10833,40 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Eve (Man-in-the-middle 141.99.50.184)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "mail-senior.de. A 3600 141.99.50.233\nmail-filius.de. A 3600 141.99.50.232\nfilius.de. MX 3600 mail-filius.de.\nsenior.de. MX 3600 mail-senior.de.\n" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "141.99.50.233;141.99.50.233;110;25;rechner4;rechner4;4;Rechner;rechner4@senior.de\n" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[],\"domain\":\"eve.de\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8450,6 +10895,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Bob", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/konten.txt", + "text" : "141.99.50.232;141.99.50.232;110;25;bob;bob;1;Bob;bob@filius.de\n" + }, + { + "kind" : "directory", + "path" : "\/mail" + }, + { + "kind" : "text", + "path" : "\/mail\/.filiuspad-email-client.json", + "text" : "{\"drafts\":[],\"email\":\"bob@filius.de\",\"inbox\":[{\"bcc\":[],\"body\":\"Bob 1 schrieb:\\n>\",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":1,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":false,\"subject\":\"RE: test3\",\"to\":[{\"mailAddress\":\"bob@filius.de\"}]}],\"name\":\"Bob 1\",\"nextMessageID\":5,\"password\":\"bob\",\"pop3Host\":\"141.99.50.232\",\"pop3Port\":110,\"sent\":[{\"bcc\":[],\"body\":\"test\",\"cc\":[],\"from\":{\"mailAddress\":\"rechner1@filius.de\",\"name\":\"Rechner 1\"},\"id\":2,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"test\",\"to\":[{\"mailAddress\":\"rechner3@senior.de\"}]},{\"bcc\":[],\"body\":\"\",\"cc\":[],\"from\":{\"mailAddress\":\"bob@filius.de\",\"name\":\"Bob 1\"},\"id\":3,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"test3\",\"to\":[{\"mailAddress\":\"alice@senior.de\"}]},{\"bcc\":[],\"body\":\"test bl\",\"cc\":[],\"from\":{\"mailAddress\":\"bob@filius.de\",\"name\":\"Bob 1\"},\"id\":4,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":true,\"subject\":\"test bl\",\"to\":[{\"mailAddress\":\"alice@senior.de\"}]}],\"smtpHost\":\"141.99.50.232\",\"smtpPort\":25,\"username\":\"bob\"}" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8473,6 +10938,7 @@ { "device" : null, "displayName" : "Internet", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -8642,6 +11108,21 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Manipulierter DNS-Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de. A 3600 141.99.50.231\nfilius.de. MX 3600 mail-filius.de.\nsenior.de. MX 3600 mail-senior.de.\nmail-filius.de. A 3600 141.99.50.184\nmail-senior.de. A 3600 141.99.50.184\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8670,6 +11151,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Mail-Server (filius.de 141.99.50.232)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[{\"bcc\":[],\"body\":\"huhu bob!\\n\\nBob 1 <bob@filius.de> schrieb:\\n> test bl\\n>\\n\",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":1,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":false,\"receivedAtMilliseconds\":1,\"subject\":\"RE: test bl\",\"to\":[{\"mailAddress\":\"bob@filius.de\",\"name\":\"Bob 1\"}]},{\"bcc\":[],\"body\":\"Hi BoB!\\n\",\"cc\":[],\"from\":{\"mailAddress\":\"alice@senior.de\",\"name\":\"Alice 3\"},\"id\":2,\"isMarkedForDeletion\":false,\"isNew\":true,\"isSent\":false,\"receivedAtMilliseconds\":2,\"subject\":\"Hi Bob!\",\"to\":[{\"mailAddress\":\"bob@filius.de\"}]}],\"name\":\"Vorname Nachname\",\"password\":\"bob\",\"username\":\"bob\"}],\"domain\":\"filius.de\",\"nextMessageID\":3,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "bob;filius.de;bob;Nachname;Vorname;#Alice 3 <alice@senior.de>$Bob 1 <bob@filius.de>$$$1$RE: test bl$huhu bob!||Bob 1 <bob@filius.de> schrieb:|> test bl|>|#Alice 3 <alice@senior.de>$<bob@filius.de>$$$2$Hi Bob!$Hi BoB!|\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8698,6 +11199,26 @@ "subnetMask" : "255.255.255.128" }, "displayName" : "Mail-Server (senior.de 141.99.50.233)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/mailserver" + }, + { + "kind" : "text", + "path" : "\/mailserver\/.filiuspad-email-server.json", + "text" : "{\"accounts\":[{\"mailbox\":[],\"name\":\"Vorname Nachname\",\"password\":\"alice\",\"username\":\"alice\"}],\"domain\":\"senior.de\",\"nextMessageID\":1,\"pop3Port\":110}" + }, + { + "kind" : "text", + "path" : "\/mailserver\/konten.txt", + "text" : "alice;senior.de;alice;Nachname;Vorname;\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8763,6 +11284,32 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 0.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> http:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8791,6 +11338,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 0.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8814,6 +11367,7 @@ { "device" : null, "displayName" : "Modem (Zugreifend)", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8841,6 +11395,7 @@ { "device" : null, "displayName" : "Modem (Zugangspunkt)", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8917,6 +11472,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.1", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8945,6 +11558,26 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/peer2peer" + }, + { + "kind" : "text", + "path" : "\/peer2peer\/.filiuspad-gnutella.json", + "text" : "{\"maximumKnownPeers\":3}" + }, + { + "kind" : "text", + "path" : "\/test.txt", + "text" : "blaaa" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -8976,6 +11609,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.20", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -9002,6 +11693,7 @@ { "device" : null, "displayName" : "Switch \/ WLAN", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -9440,6 +12132,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -9604,6 +12297,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -9768,6 +12462,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -9803,6 +12498,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -9860,6 +12556,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -9900,6 +12597,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de. A 3600 141.99.5.10\nwww.jupiter.de. A 3600 141.99.4.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -9928,6 +12640,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -9956,6 +12674,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.101", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -9984,6 +12724,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Webserver www.jupiter.de", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Jupiter<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h2> Jupiter - Webserver <\/h2>\n\n <p>Welcome at Jupiter<\/p>\n\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -10012,6 +12774,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Webserver - 192.168.0.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -10035,6 +12819,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -10204,6 +12989,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 5.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -10227,6 +13018,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -10432,6 +13224,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.100", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h2> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -10460,6 +13274,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "10.0.0.100", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -10483,6 +13303,7 @@ { "device" : null, "displayName" : "Internet", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -10838,6 +13659,7 @@ { "device" : null, "displayName" : "Switch \/ WLAN", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -11007,6 +13829,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -11035,6 +13863,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -11058,6 +13908,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -11227,6 +14078,37 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "141.99.2.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de. A 3600 141.99.2.10\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h2> FILIUS - Webserver <\/h2>\n\n <p>Welcome at FILIUS!<\/p>\n\n <p> This page has been delivered as default page.\n Feel free to add your own contents! <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -11539,6 +14421,7 @@ { "device" : null, "displayName" : "WLAN Access Point", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -11708,6 +14591,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -11736,6 +14625,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/webserver" + }, + { + "kind" : "text", + "path" : "\/webserver\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/webserver\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -11759,6 +14670,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -11928,6 +14840,37 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Provider Server www.filius.de (42.0.0.2)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de. A 3600 42.0.0.2\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h3> FILIUS - Webserver <\/h3>\n\n <h1>Welcome to your FILIUS Provider!<\/h1>\n\n <p> This page has been delivered as default page.\n Feel free to add your own contents! <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -11961,6 +14904,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -12010,6 +14954,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "webserver.de (120.130.140.10)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h3> External - Webserver <\/h3>\n\n <h1>Herzlich Willkommen auf dem externen Server im Internetz!<\/h1>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -12038,6 +15004,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS (8.8.8.8)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "webserver.de. A 3600 120.130.140.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -12061,6 +15042,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -12413,6 +15395,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.12", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -12439,6 +15427,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -12488,6 +15477,28 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "mywebserver.de (160.10.20.10)", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h2> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> https:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -12516,6 +15527,21 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "8.8.8.8", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "mywebserver.de. A 3600 160.10.20.10\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -12544,6 +15570,12 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "192.168.0.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -12570,6 +15602,7 @@ { "device" : null, "displayName" : "Wifi Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -12778,6 +15811,44 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Webserver", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "bytes" : 24480, + "kind" : "image", + "mediaType" : "image\/jpeg", + "path" : "\/www\/Ahornblatt.jpg", + "sha256" : "e2f222f0a1e140001ad8db7151516c83b7cdde7ff37acef394c4fa6158eade58" + }, + { + "kind" : "text", + "path" : "\/www\/beispiel.html", + "text" : "<html>\n<head>\n<title>Eine Beispielseite<\/title>\n<\/head>\n<body>\n<p> Ein Beispielseite mit Ahornblatt <\/p>\n<img src=\"Ahornblatt.jpg\" \/>\n<\/body>\n<\/html>" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccddff\" style=\"font-family:Verdana; text-align:center;\">\n <h2> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n<p> Hier geht es zur <a href=\"beispiel.html\">Beispielseite<\/a>! <\/p>\n\n \n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> http:\/\/www.lernsoftware-filius.de <\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "ipAddress", "interfaces" : [ null @@ -12806,6 +15877,17 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "text", + "path" : "\/test", + "text" : "blaaa" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -12829,6 +15911,7 @@ { "device" : null, "displayName" : "Switch", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -13049,6 +16132,7 @@ { "device" : null, "displayName" : "Switch 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -13213,6 +16297,7 @@ { "device" : null, "displayName" : "Switch 2", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -13382,6 +16467,46 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "DNS-Server 2.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.filius.de A 3600 141.99.2.10\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www.conf\/vhosts", + "text" : "*\nwebserver\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\n" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2010 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13410,6 +16535,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.10", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13438,6 +16621,37 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Notebook 1.11", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www.conf\/vhosts", + "text" : "null\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\n" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p> Diese Seite wurde automatisch mit der installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2008 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13461,6 +16675,7 @@ { "device" : null, "displayName" : "Vermittlungsrechner", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ { @@ -13592,6 +16807,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 1", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13620,6 +16893,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 2", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13648,6 +16979,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 3", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13676,6 +17065,64 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Rechner 4", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13704,6 +17151,58 @@ "subnetMask" : "255.255.255.0" }, "displayName" : "Server", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/dns" + }, + { + "kind" : "text", + "path" : "\/dns\/hosts", + "text" : "www.mein-server.de A 3600 192.168.0.100\nxy A 3600 192.168.0.100\n" + }, + { + "kind" : "directory", + "path" : "\/www" + }, + { + "kind" : "directory", + "path" : "\/www.conf" + }, + { + "kind" : "text", + "path" : "\/www.conf\/vhosts", + "text" : "*\nwebserver\nnull\nnull\nnull\nnull\nnull\nnull\nnull\nnull\n" + }, + { + "bytes" : 86696, + "kind" : "image", + "mediaType" : "image\/jpeg", + "path" : "\/www\/800px-Loewe_3.JPG", + "sha256" : "0b6e981346cd0c5fc8716ed02c6f19077b27d2ff8731dfcba2c4f8bcc6d59570" + }, + { + "kind" : "text", + "path" : "\/www\/index.html", + "text" : "<html>\n <head>\n <title>Standardseite<\/title>\n <\/head>\n <body bgcolor=\"#ccccff\">\n <h2 align=\"center\"> FILIUS - Webserver <\/h2>\n\n <p>Herzlich Willkommen auf dem Webserver der Anwendung FILIUS!<\/p>\n\n <p><a href=\"meine-seite.html\">Meine Seite!! <\/a><\/p>\n\n <p> Diese Seite wurde automatisch mit der Installation des \n Webservers eingerichtet, es lassen sich jedoch auch \n eigene Seiten hier unterbringen. <\/p>\n\n <p align=\"center\"> <img src=\"splashscreen-mini.png\"> <\/p>\n\n <p> Universität Siegen 2010 \n (http:\/\/www.die.informatik.uni-siegen.de\/pgfilius\/)<\/p>\n <\/body>\n<\/html>\n" + }, + { + "kind" : "text", + "path" : "\/www\/meine-seite.html", + "text" : "<html>\n<head>\n <title>Meine persoenliche Seite <\/title>\n<\/head>\n<body>\n <img src=\"800px-loewe_3.jpg\" \/>\n<\/body>\n<\/html>" + }, + { + "bytes" : 6216, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/www\/splashscreen-mini.png", + "sha256" : "4b1d04c700def6e3691f7d8538f2f198ae01d7c5f1327df06969eac0df73c097" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13737,6 +17236,7 @@ { "device" : null, "displayName" : "Switch 3", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -13906,6 +17406,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 1", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13934,6 +17492,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 2", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13962,6 +17578,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 3", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -13990,6 +17664,64 @@ "subnetMask" : "0.0.0.0" }, "displayName" : "Notebook 4", + "fileSystem" : [ + { + "kind" : "directory", + "path" : "\/" + }, + { + "kind" : "directory", + "path" : "\/home" + }, + { + "kind" : "text", + "path" : "\/home\/lab-notes.txt", + "text" : "Document deterministic runtime notes here." + }, + { + "kind" : "text", + "path" : "\/home\/topology-exports.csv", + "text" : "timestamp,event,detail\n" + }, + { + "kind" : "directory", + "path" : "\/images" + }, + { + "bytes" : 2352, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/network-map.png", + "sha256" : "4105bdb0131a539791f3b0f00e43341de6a5e04ab21b0cda19ac49548cd0cdd1" + }, + { + "bytes" : 1478, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/switch-backplane.png", + "sha256" : "8ae2492515a66cd69d729d70d449ece4e6c23ee151f98da44c6b7862058c463f" + }, + { + "bytes" : 6195, + "kind" : "image", + "mediaType" : "image\/png", + "path" : "\/images\/traffic-heatmap.png", + "sha256" : "6b541170a55a139281170fcf1176ce0b962f1ab58b1f26b9d2cff7558711825b" + }, + { + "kind" : "directory", + "path" : "\/var" + }, + { + "kind" : "directory", + "path" : "\/var\/log" + }, + { + "kind" : "text", + "path" : "\/var\/log\/runtime-events.log", + "text" : "Virtual runtime initialized.\n" + } + ], "hostLabelPolicy" : "manual", "interfaces" : [ null @@ -14013,6 +17745,7 @@ { "device" : null, "displayName" : "Switch 2", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, @@ -14177,6 +17910,7 @@ { "device" : null, "displayName" : "Switch 1", + "fileSystem" : null, "hostLabelPolicy" : "manual", "interfaces" : [ null, diff --git a/packages/core/src/util/swiftString.ts b/packages/core/src/util/swiftString.ts index 8336669..a76d562 100644 --- a/packages/core/src/util/swiftString.ts +++ b/packages/core/src/util/swiftString.ts @@ -69,6 +69,19 @@ export function swiftHasPrefix(value: string, prefix: string): boolean { return value.startsWith(prefix) || value.normalize('NFC').startsWith(prefix.normalize('NFC')); } +/** + * `(path as NSString).pathExtension` (measured): what follows the last dot + * of the last component, trailing slashes ignored — empty when the dot + * starts or ends the name (".bashrc", "a."). + */ +export function swiftPathExtension(path: string): string { + const trimmed = path.replace(/\/+$/, ''); + const name = trimmed.slice(trimmed.lastIndexOf('/') + 1); + const dot = name.lastIndexOf('.'); + if (dot <= 0) return ''; + return name.slice(dot + 1); +} + const BASE64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; /** diff --git a/packages/core/test/strings.cases.json b/packages/core/test/strings.cases.json index d8d1afd..f8ae6ae 100644 --- a/packages/core/test/strings.cases.json +++ b/packages/core/test/strings.cases.json @@ -126,5 +126,23 @@ "\ufeff", "a\ud83d\ude00", "a\ue000" + ], + "pathExtension": [ + "a.txt", + "a.tar.gz", + ".bashrc", + "a.", + "a", + "/x/a.png", + "a.PNG", + "a..b", + "a b.c d", + "x.y/z", + "/x.y/", + "webserver/index.html", + "..", + "a.b.", + ".a.b", + "\u00e9.PNG" ] } \ No newline at end of file diff --git a/packages/core/test/strings.swift.json b/packages/core/test/strings.swift.json index 8f0b2c0..9256856 100644 --- a/packages/core/test/strings.swift.json +++ b/packages/core/test/strings.swift.json @@ -2253,6 +2253,24 @@ "äöü", "k" ], + "pathExtension" : [ + "txt", + "gz", + "", + "", + "", + "png", + "PNG", + "b", + "c d", + "", + "y", + "html", + "", + "", + "b", + "PNG" + ], "sort" : [ [ "B", diff --git a/packages/core/test/strings.test.ts b/packages/core/test/strings.test.ts index 2f4d1b2..2212836 100644 --- a/packages/core/test/strings.test.ts +++ b/packages/core/test/strings.test.ts @@ -12,6 +12,7 @@ import { swiftCompare, swiftEqual, swiftLowercased, + swiftPathExtension, swiftTrim, } from '../src/index.js'; @@ -23,6 +24,7 @@ const cases = JSON.parse(readFileSync(join(here, 'strings.cases.json'), 'utf8')) sort: string[][]; base64: string[]; controlCharacters: string[]; + pathExtension: string[]; }; const swift = JSON.parse(readFileSync(join(here, 'strings.swift.json'), 'utf8')) as { trim: string[]; @@ -31,6 +33,7 @@ const swift = JSON.parse(readFileSync(join(here, 'strings.swift.json'), 'utf8')) sort: string[][]; base64: (number[] | null)[]; controlCharacters: boolean[]; + pathExtension: string[]; whitespacesAndNewlinesSet: [number, number][]; controlCharactersSet: [number, number][]; }; @@ -76,6 +79,10 @@ describe('Swift string semantics', () => { expect(cases.controlCharacters.map(containsSwiftControlCharacter)).toEqual(swift.controlCharacters); }); + it('finds the extension like NSString.pathExtension', () => { + expect(cases.pathExtension.map(swiftPathExtension)).toEqual(swift.pathExtension); + }); + it('trims exactly the scalars Swift trims, all of Unicode', () => { expect(scalarRanges((scalar) => swiftTrim(`${scalar}a`) === 'a')).toEqual(swift.whitespacesAndNewlinesSet); }); diff --git a/packages/fls/src/importProject.ts b/packages/fls/src/importProject.ts index 1c74ec4..b76c5b9 100644 --- a/packages/fls/src/importProject.ts +++ b/packages/fls/src/importProject.ts @@ -24,7 +24,10 @@ // names stay as Java has them; // - a Java modem becomes an in-project remote link pair keyed by its port, // as in Swift — two FILIUS instances on different hosts are not joined. -// Not here yet: file systems and applications. +// - a PC or notebook whose file has no file system gets an empty one, as in +// Java — Swift gives it the demo files of a new device; +// - a file system's root is Java's root, whatever its user object says. +// Not here yet: applications (with them the web server's /webserver → /www). import { canonicalMacAddress, @@ -38,7 +41,13 @@ import { inDeterministicRenderOrder, interfaceKey, isSafeFrame, + swiftBase64Decode, + swiftLowercased, + swiftPathExtension, swiftTrim, + normalizedAbsolutePath, + VirtualFileSystem, + VirtualFileSystemError, topologyNode, DOCUMENTATION_BLACK, DOCUMENTATION_PALE_YELLOW, @@ -64,8 +73,9 @@ import { type TopologyGraph, type TopologyLink, type TopologyNode, + type VirtualFileContent, } from '@mdg-filius/core'; -import type { FlsFirewall } from './systemSoftware.js'; +import type { FlsFileTree, FlsFirewall } from './systemSoftware.js'; import type { FlsDocumentationItem, FlsInterface, FlsNode, FlsNodeClass, FlsTopology } from './topology.js'; export interface ImportedProject { @@ -84,6 +94,8 @@ export interface ImportedProject { dhcpServerConfigurations: Map<Id, DhcpServerConfiguration>; portForwardingRowsByNodeId: Map<Id, GatewayPortForwardingRow[]>; remoteLinkConfigurations: Map<Id, RemoteLinkConfiguration>; + /** Every PC and notebook. */ + virtualFileSystems: Map<Id, VirtualFileSystem>; /** In render order: rectangles below text, then by order. */ documentationItems: DocumentationItem[]; /** The topology's warnings, then this step's. */ @@ -119,12 +131,16 @@ export function importProject(topology: FlsTopology, newId: () => Id): ImportedP dhcpServerConfigurations: new Map(), portForwardingRowsByNodeId: new Map(), remoteLinkConfigurations: new Map(), + virtualFileSystems: new Map(), }; const nodes = topology.nodes.map((source) => { const node = importNode(source, newId, warnings); registerConfigurations(source, node, deviceConfigurations, interfaceConfigurations); registerSystemConfigurations(source, node, system, warnings); registerServiceConfigurations(source, node, system, newId, warnings); + if (node.kind === 'pc' || node.kind === 'notebook') { + system.virtualFileSystems.set(node.id, importFileSystem(source.system.fileSystem, node.displayName, warnings)); + } return node; }); @@ -160,6 +176,9 @@ export function importProject(topology: FlsTopology, newId: () => Id): ImportedP }); }); + // Swift rejects the whole import when the files exceed the quotas. + VirtualFileSystem.validateProjectQuotas(system.virtualFileSystems.values()); + const documentationItems: DocumentationItem[] = []; for (const item of topology.documentation) { const imported = importDocumentationItem(item, documentationItems.length, warnings); @@ -311,6 +330,7 @@ type SystemConfigurations = Pick< | 'dhcpServerConfigurations' | 'portForwardingRowsByNodeId' | 'remoteLinkConfigurations' + | 'virtualFileSystems' >; /** A row of text cells, trimmed, or undefined unless it has exactly four. */ @@ -460,6 +480,108 @@ function firewallConfigurationOf(firewall: FlsFirewall, where: string, warnings: }; } +const IMAGE_TYPES = new Set(['png', 'jpg', 'jpeg', 'gif', 'bmp', 'image']); +const TEXT_TYPES = new Set(['', 'text', 'txt', 'text/txt', 'html', 'htm', 'css', 'xml', 'csv', 'conf', 'log']); +const encoder = new TextEncoder(); + +/** + * Swift's importedContent: an image by type or extension (Base64), text by + * type, else Base64 as binary data, else text — each fallback with a warning. + */ +function importedContent( + rawType: string | null, + rawContent: string | null, + path: string, + warn: (message: string) => void, +): VirtualFileContent { + const type = swiftLowercased(trimmedOrEmpty(rawType)); + const content = rawContent ?? ''; + const extension = swiftLowercased(swiftPathExtension(path)); + const binary = (data: Uint8Array): VirtualFileContent => + type === '' ? { kind: 'binary', data } : { kind: 'binary', data, mediaType: `application/${type}` }; + if (IMAGE_TYPES.has(type) || IMAGE_TYPES.has(extension)) { + const data = swiftBase64Decode(content); + if (data !== undefined) { + const subtype = type === 'image' || type === '' ? (extension === '' ? 'png' : extension) : type; + return { kind: 'image', data, mediaType: `image/${subtype === 'jpg' ? 'jpeg' : subtype}` }; + } + warn(`Java file '${path}' declared image type '${type}' but was not valid Base64; imported as UTF-8 binary data.`); + return binary(encoder.encode(content)); + } + if (TEXT_TYPES.has(type)) return { kind: 'text', text: content }; + const data = swiftBase64Decode(content); + if (data !== undefined && (data.length > 0 || swiftTrim(content) === '')) { + warn(`Java file '${path}' used unknown type '${type}'; preserved as binary data.`); + return binary(data); + } + warn(`Java file '${path}' used unknown type '${type}'; preserved as UTF-8 text.`); + return { kind: 'text', text: content }; +} + +/** A usable name: not empty after trimming, no path separator. */ +function safeName(name: string | null): string | undefined { + const trimmed = trimmedOrEmpty(name); + return trimmed === '' || trimmed.includes('/') || trimmed.includes('\\') ? undefined : trimmed; +} + +/** + * Swift's registerVirtualFileSystem: the children of Java's root, depth + * first; an item that cannot be written is left out with a warning, the + * rest goes on. + */ +function importFileSystem(root: FlsFileTree | undefined, nodeName: string, warnings: string[]): VirtualFileSystem { + const fileSystem = new VirtualFileSystem(); + const warn = (message: string) => warnings.push(message); + const describe = (error: unknown) => (error instanceof VirtualFileSystemError ? error.message : String(error)); + + const append = (tree: FlsFileTree, parent: string): void => { + if (tree.kind === 'file') { + const name = safeName(tree.name); + if (name === undefined) { + warn(`Ignored Java filesystem file with missing or unsafe name on '${nodeName}'.`); + return; + } + const rawPath = parent === '/' ? `/${name}` : `${parent}/${name}`; + try { + const path = normalizedAbsolutePath(rawPath); + const content = importedContent(tree.type, tree.content, path, warn); + switch (content.kind) { + case 'text': + fileSystem.writeTextFile(path, content.text, false); + break; + case 'binary': + fileSystem.writeBinaryFile(path, content.data, content.mediaType, false); + break; + case 'image': + fileSystem.writeImageFile(path, content.data, content.mediaType, false); + break; + case 'directory': + break; + } + } catch (error) { + warn(`Ignored Java filesystem file '${rawPath}' on '${nodeName}': ${describe(error)}`); + } + return; + } + const name = tree.kind === 'directory' ? safeName(tree.name) : undefined; + if (name === undefined) { + warn(`Ignored Java filesystem directory with missing or unsafe name on '${nodeName}'.`); + return; + } + const rawPath = parent === '/' ? `/${name}` : `${parent}/${name}`; + try { + const path = normalizedAbsolutePath(rawPath); + fileSystem.createDirectory(path, true); + for (const child of tree.children) append(child, path); + } catch (error) { + warn(`Ignored Java filesystem directory '${rawPath}' on '${nodeName}': ${describe(error)}`); + } + }; + + for (const child of root?.children ?? []) append(child, '/'); + return fileSystem; +} + /** * Swift's finalizeCurrentDocumentationCandidate: RECT = 1, TEXT = 2; a frame * inside the editor's world; the id from the item's values and its order. diff --git a/packages/fls/test/importProject.test.ts b/packages/fls/test/importProject.test.ts index 7c78ab8..4a2838f 100644 --- a/packages/fls/test/importProject.test.ts +++ b/packages/fls/test/importProject.test.ts @@ -3,6 +3,7 @@ // file Swift reads completely. On the others Swift loses devices (plan §13, // M2); there Java is the reference, checked in topology.test.ts. +import { createHash } from 'node:crypto'; import { readdirSync, readFileSync, statSync } from 'node:fs'; import { dirname, join, relative } from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -17,14 +18,17 @@ import { NetworkRuntimeEngine, portSnapshot, topologySnapshot, + VirtualFileSystem, type Id, type NodeKind, + type VirtualFileEntry, } from '@mdg-filius/core'; import { decodeJavaBeans, importProject, readFlsArchive, readTopology, + type FlsFileTree, type FlsNode, type FlsTopology, type ImportedProject, @@ -58,6 +62,34 @@ function importFile(file: string): ImportedProject { return importProject(readTopology(values), counter()); } +/** describeFileEntries' shape (tools/swift-oracle). */ +function describeFileEntries(entries: VirtualFileEntry[]): unknown[] { + return entries.map(({ path, content }) => { + switch (content.kind) { + case 'directory': + return { path, kind: 'directory' }; + case 'text': + return { path, kind: 'text', text: content.text }; + case 'binary': + case 'image': + return { + path, + kind: content.kind, + bytes: content.data.length, + mediaType: content.mediaType ?? null, + sha256: createHash('sha256').update(content.data).digest('hex'), + }; + } + }); +} + +function fileEntriesOf(fileSystem: VirtualFileSystem | undefined): unknown { + return fileSystem === undefined ? null : describeFileEntries(fileSystem.allEntries()); +} + +const DEFAULT_FILES = describeFileEntries(VirtualFileSystem.defaultForDevice().allEntries()); +const EMPTY_FILES = describeFileEntries(new VirtualFileSystem().allEntries()); + /** * describeSystem's shape. A firewall as the core has it without one * (inactive, drop, no rules) is left out: Swift keeps a configuration only @@ -132,6 +164,7 @@ function asSwiftState(project: ImportedProject) { device: project.deviceConfigurations.get(node.id) ?? null, interfaces: node.ports.map((port) => project.interfaceConfigurations.get(interfaceKey(node.id, port.id)) ?? null), system: systemOf(project, node.id), + fileSystem: fileEntriesOf(project.virtualFileSystems.get(node.id)), })), links: links.map((link) => [ nodeIndex.get(link.sourceNodeId), @@ -166,14 +199,18 @@ const JAVA_DEFAULT_NAMES: Partial<Record<NodeKind, string>> = { * pass unnoticed. */ function withJavaDefaultNames(state: unknown): unknown { - const { nodes, ...rest } = state as { nodes: { kind: NodeKind; displayName: string }[] }; + const { nodes, ...rest } = state as { nodes: { kind: NodeKind; displayName: string; fileSystem: unknown }[] }; return { ...rest, - nodes: nodes.map((node) => - node.displayName === defaultDisplayName(node.kind) && JAVA_DEFAULT_NAMES[node.kind] !== undefined - ? { ...node, displayName: JAVA_DEFAULT_NAMES[node.kind] } - : node, - ), + nodes: nodes.map((node) => { + const named = + node.displayName === defaultDisplayName(node.kind) && JAVA_DEFAULT_NAMES[node.kind] !== undefined + ? { ...node, displayName: JAVA_DEFAULT_NAMES[node.kind] } + : node; + // A host the file gives no files: empty, as in Java — Swift fills in + // the demo files of a new device. + return deepEqual(named.fileSystem, DEFAULT_FILES) ? { ...named, fileSystem: EMPTY_FILES } : named; + }), }; } @@ -198,6 +235,41 @@ function withSwiftErrorsCorrected(name: string, state: unknown): unknown { return { ...rest, nodes: nodes.map((node, index) => ({ ...node, ...corrections[index] })) }; } +/** + * What applications do to a file system, which the applications step ports: + * Swift keeps the e-mail and Gnutella state as files (left out on both + * sides here), and moves a web server's /webserver to /www (compared here + * by reading our /webserver as /www where Swift has one). Everything else + * in a file system must match. + */ +const APPLICATION_DIRECTORIES = ['/mail', '/mailserver', '/peer2peer']; + +type FileEntries = { path: string }[] | null; + +function withoutApplicationDirectories(state: unknown, webRootOf?: (index: number) => boolean): unknown { + const { nodes, ...rest } = state as { nodes: { fileSystem: FileEntries }[] }; + const outside = (entry: { path: string }) => + !APPLICATION_DIRECTORIES.some((directory) => entry.path === directory || entry.path.startsWith(`${directory}/`)); + const asWebRoot = (entry: { path: string }) => + entry.path === '/webserver' || entry.path.startsWith('/webserver/') + ? { ...entry, path: `/www${entry.path.slice('/webserver'.length)}` } + : entry; + return { + ...rest, + nodes: nodes.map((node, index) => { + if (node.fileSystem === null) return node; + const entries = node.fileSystem.filter(outside).map((entry) => (webRootOf?.(index) ? asWebRoot(entry) : entry)); + return { ...node, fileSystem: entries.sort((lhs, rhs) => (lhs.path < rhs.path ? -1 : lhs.path > rhs.path ? 1 : 0)) }; + }), + }; +} + +/** Whether Swift moved node `index`'s web files to /www. */ +function swiftWebRoots(state: unknown): (index: number) => boolean { + const { nodes } = state as { nodes: { fileSystem: FileEntries }[] }; + return (index) => nodes[index]?.fileSystem?.some((entry) => entry.path === '/www') ?? false; +} + const complete = (summary: SwiftSummary) => summary.skipped === 0 && !(summary.warnings ?? []).some((warning) => warning.startsWith('Skipped')); @@ -213,7 +285,10 @@ describe('corpus: the imported model as Swift builds it', () => { it(name, () => { const project = importFile(file); - expect(asSwiftState(project)).toEqual(withSwiftErrorsCorrected(name, withJavaDefaultNames(swiftView[name]!.state))); + const expected = withSwiftErrorsCorrected(name, withJavaDefaultNames(swiftView[name]!.state)); + expect(withoutApplicationDirectories(asSwiftState(project), swiftWebRoots(expected))).toEqual( + withoutApplicationDirectories(expected), + ); expect(project.warnings).toEqual([]); }); } @@ -549,6 +624,97 @@ describe('importProject rules', () => { ]); }); + it("maps a host's files by type and extension, as Swift does, and says what it had to guess", () => { + const file = (name: string | null, type: string | null, content: string | null): FlsFileTree => ({ + kind: 'file', + name, + type, + content, + children: [], + }); + const directory = (name: string | null, children: FlsFileTree[]): FlsFileTree => ({ kind: 'directory', name, children }); + const project = importProject( + topology({ + nodes: [ + flsNode('Rechner', { + interfaces: [nic('10.0.0.1')], + system: { + fileSystem: directory('root', [ + directory(' docs ', [ + file('a.txt', 'text/txt', 'hallo'), + file('pic.JPG', 'txt', 'AAEC'), + file('bad.png', 'png', 'not base64!'), + file('blob.bin', 'Bin', 'AAEC'), + file('odd.xyz', 'xyz', 'plain words'), + file('empty.dat', 'dat', '!!!'), + file('icon', 'image', 'AAEC'), + file(' ', 'txt', 'x'), + file('A.TXT', 'txt', 'collides'), + ]), + directory(null, [file('lost.txt', 'txt', 'x')]), + directory('docs', []), + ]), + }, + }), + ], + }), + counter(), + ); + const files = project.virtualFileSystems.get(project.graph.nodes[0]!.id)!; + + expect(files.allEntries().map(({ path, content }) => [path, content.kind, 'mediaType' in content ? content.mediaType : undefined])).toEqual([ + ['/', 'directory', undefined], + ['/docs', 'directory', undefined], + ['/docs/a.txt', 'text', undefined], + ['/docs/bad.png', 'binary', 'application/png'], + ['/docs/blob.bin', 'binary', 'application/bin'], + ['/docs/empty.dat', 'text', undefined], + ['/docs/icon', 'image', 'image/png'], + ['/docs/odd.xyz', 'text', undefined], + ['/docs/pic.JPG', 'image', 'image/txt'], + ]); + expect(project.warnings).toEqual([ + "Java file '/docs/bad.png' declared image type 'png' but was not valid Base64; imported as UTF-8 binary data.", + "Java file '/docs/blob.bin' used unknown type 'bin'; preserved as binary data.", + "Java file '/docs/odd.xyz' used unknown type 'xyz'; preserved as UTF-8 text.", + "Java file '/docs/empty.dat' used unknown type 'dat'; preserved as UTF-8 text.", + "Ignored Java filesystem file with missing or unsafe name on 'Rechner'.", + "Ignored Java filesystem file '/docs/A.TXT' on 'Rechner': caseInsensitiveSiblingCollision(/docs/a.txt, /docs/A.TXT)", + "Ignored Java filesystem directory with missing or unsafe name on 'Rechner'.", + "Ignored Java filesystem directory '/docs' on 'Rechner': itemAlreadyExists(/docs)", + ]); + }); + + it('leaves out a file over the per-file quota, and rejects an import over the project quota', () => { + const tooBig = 'A'.repeat(8 * 1024 * 1024 + 1); + const host = (files: FlsFileTree[]) => + flsNode('Rechner', { interfaces: [nic('10.0.0.1')], system: { fileSystem: { kind: 'directory', name: 'root', children: files } } }); + const single = importProject(topology({ nodes: [host([{ kind: 'file', name: 'big.txt', type: 'txt', content: tooBig, children: [] }])] }), counter()); + + expect(single.virtualFileSystems.get(single.graph.nodes[0]!.id)!.contains('/big.txt')).toBe(false); + expect(single.warnings).toEqual([ + "Ignored Java filesystem file '/big.txt' on 'Rechner': fileSizeQuotaExceeded(/big.txt, 8388609, 8388608)", + ]); + + // Three hosts at their 32 MiB limit exceed the 64 MiB project limit: + // the import fails as a whole (one 8 MiB string, shared). + const limit = 'A'.repeat(8 * 1024 * 1024); + const fullHost = () => + host([0, 1, 2, 3].map((index): FlsFileTree => ({ kind: 'file', name: `f${index}.txt`, type: 'txt', content: limit, children: [] }))); + expect(() => importProject(topology({ nodes: [fullHost(), fullHost(), fullHost()] }), counter())).toThrow( + 'totalSizeQuotaExceeded(100663296, 67108864)', + ); + + // Three devices at their 32 MiB limit exceed the 64 MiB project limit. + const full = new Uint8Array(8 * 1024 * 1024); + const devices = [0, 1, 2].map(() => { + const fileSystem = new VirtualFileSystem(); + for (let index = 0; index < 4; index++) fileSystem.writeBinaryFile(`/f${index}`, full); + return fileSystem; + }); + expect(() => VirtualFileSystem.validateProjectQuotas(devices)).toThrow('totalSizeQuotaExceeded(100663296, 67108864)'); + }); + it('leaves out a cable to itself and one to a port that already has a cable', () => { const project = importProject( topology({ diff --git a/tools/swift-oracle/Sources/Oracle/main.swift b/tools/swift-oracle/Sources/Oracle/main.swift index 83c8df7..6990de3 100644 --- a/tools/swift-oracle/Sources/Oracle/main.swift +++ b/tools/swift-oracle/Sources/Oracle/main.swift @@ -325,6 +325,7 @@ func describeImportedState(_ state: TopologyEditorState) -> JSON { "device": device, "interfaces": interfaces, "system": describeSystem(state, node), + "fileSystem": state.virtualFileSystemsByNodeID[node.id].map { describeFileEntries($0.allEntries()) } ?? NSNull(), ] } let links: [[Int]] = state.graph.links.map { link in @@ -527,6 +528,7 @@ struct StringCases: Decodable { let sort: [[String]] let base64: [String] let controlCharacters: [String] + let pathExtension: [String] } /// What Swift makes of strings where JavaScript differs (packages/core/test/strings.cases.json). @@ -542,6 +544,7 @@ func measureStrings(_ cases: StringCases) -> JSON { "controlCharacters": cases.controlCharacters.map { text in text.unicodeScalars.contains(where: { CharacterSet.controlCharacters.contains($0) }) }, + "pathExtension": cases.pathExtension.map { ($0 as NSString).pathExtension }, // The whole sets, scalar by scalar, as ranges [first, last]. "whitespacesAndNewlinesSet": scalarRanges(in: .whitespacesAndNewlines), "controlCharactersSet": scalarRanges(in: .controlCharacters),