From be3b33265544189b1c90daa95ca57ddbc1b47b4a Mon Sep 17 00:00:00 2001 From: Julian Kiedaisch Date: Tue, 29 Sep 2026 21:28:55 +0000 Subject: [PATCH] feat(fls): import host file systems into the model importProject turns a PC's or notebook's Java file tree into Swift's virtual file system, as Swift's registerVirtualFileSystem does: images by type or extension from Base64, text by type, unknown types as binary data or text, unsafe names and collisions left out with a warning, and the whole import rejected over the project quota. NSString.pathExtension is measured in the oracle, which now writes every imported file system. On the 13 files Swift reads completely every file matches, images compared by hash. Intended: a host whose file has no file system stays empty, as in Java, where Swift adds the demo files of a new device. Pending the applications step, the comparison reads our /webserver as Swift's /www and leaves out the e-mail and Gnutella state files. Co-Authored-By: Claude Opus 5.5 --- CHANGES.md | 2 +- corpus/corpus.swift.json | 3734 ++++++++++++++++++ packages/core/src/util/swiftString.ts | 13 + packages/core/test/strings.cases.json | 18 + packages/core/test/strings.swift.json | 18 + packages/core/test/strings.test.ts | 7 + packages/fls/src/importProject.ts | 126 +- packages/fls/test/importProject.test.ts | 180 +- tools/swift-oracle/Sources/Oracle/main.swift | 3 + 9 files changed, 4091 insertions(+), 10 deletions(-) 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),