Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Deutsch

Um zu verstehen, wie die LMC Add-Ins funktionieren, müssen wir uns ansehen, welche Elemente auf die Konfiguration eines Geräts angewendet werden.

Im Folgenden wird der Prozess beschrieben, in dem die Konfiguration verändert werden kann:

  1. die ursprüngliche (oder Standard-) Konfiguration, die durch One-Time Add-Ins verändert wird
  2. die SD-WAN, SD-LAN, SD-WLAN, SD-Security Konfiguration
  3. die Konfiguration wird durch Global/Network Add-Ins unter Verwendung des ooid-Ansatzes geändert, sichtbar in der Vorschau
  4. die Skriptzeilen werden auf dem Gerät ausgeführt

Das Ergebnis von 1-4 wird als Konfigurationsdaten an das Gerät gesendet. Die Skripte aus Schritt 4. werden auf dem Gerät ausgeführt, nachdem die Konfigurationsdaten übernommen wurden.

Wie oben gezeigt, gibt es zwei Möglichkeiten, die Konfiguration eines Geräts mit Add-ins zu manipulieren.

  1. über Object Id (Oid): Dies ändert die Konfigurationsdaten, die durch die vorherigen Konfigurationskonzepte bereitgestellt werden.
  2. über ScriptLines: dies wird an das Gerät selbst gesendet und dort ausgeführt.
  3. über API-Methode: Senden von Anfragen an die UF-API für Konfigurationsänderungen für Unified Firewalls.
Operating Systemconfig.[...]ByOid(...)config.addScriptLine(...)ufAPI.Method
LCOS✅*
LCOS-SX✅*
LCOS-LX
LCOS-FX

* gerätespezifische Terminalsyntax

Object Id (Oid)

Jeder Konfigurationswert bzw. jede Tabelle wird durch eine maschinenlesbare Object Id, kurz oid, angegeben.

Die oid ist eine Folge von Zahlen, die durch Punkte getrennt sind (das folgende Beispiel bezeichnet die LCOS-Cron-Tabelle):

1.2.11.20

Um die Konfigurationsdaten zu ändern, können Sie entweder einzelne Werte (Skalare) oder Tabellen/Zeilen abrufen/einstellen.

Skalen

Skalen sind Einzelwerte in der Konfiguration.

Codeblock
languagejs
themeEclipse
exports.main = function (config, context) {
    var value = config.getScalarByOid("1.2.3.4.5.1");

    config.setScalarByOid("1.2.3.4.5.2", "test");
};

Tabellen

Tabellen können eine feste oder eine dynamische Anzahl von Zeilen haben.

Codeblock
languagejs
themeEclipse
exports.main = function (config, context) {
    var table = config.getTableByOid("1.2.3.4.5.3");
    var rows = table.getRows(); // array of rows

    var row = table.createNewRow(); //create a new empty row
    table.addOrMerge(row); // add/merge this row into table
};

Skript-Zeile

Um ein Skript auf dem Gerät auszuführen, nachdem die Konfiguration angewendet wurde, müssen Sie die Syntax addScriptLine verwenden:

Codeblock
languagejs
themeEclipse
exports.main = function (config, context) {
    config.addScriptLine("cd /2/3/4/5/2");
    config.addScriptLine("set 1 test");
};

Das Skript-Zeilen-Beispiel setzt den selben Wert wie das Skalen-Beispiel oben. Die erste Zahl wird weg gelassen, ebenso wie das ., das in / übersetzt wird. 
In diesem Fall sehen wir die Werte nicht in der UI in der detaillierten Konfiguration bei der Vorschau, sondern in der Vorschau des Skripts, das auf dem Gerät ausgeführt werden wird.

Im Gegensatz zum Setzen von Werten über oid, können wir auch die menschenlesbare Notation verwenden, z.B. config.addScriptLine("cd /Setup/WAN/DSL-Broadband-Peers").


Englisch

To understand of how LMC Add-ins work, we need to consider which elements are applied to the configuration of a device.

The following is the process in which the configuration can be modified:

  1. The existing (or default) configuration - visible in the detail configuration of a device - may be modified by One-time Add-ins or manual user changes.
  2. The Software Defined (SD-WAN,SD-LAN,SD-WLAN) configuration - also called Smart configuration - may be modified by global or network Add-ins using OIDs.
    Those changes are visible via show preview in the detail configuration.
  3. The ScriptLines are executed on the device after the configuration roll out and may not be visible in the LMC.

The result of steps 1 and 2 is sent as configuration data to the device.
The scripts from step 3 are sent as extra actions with a configuration roll out and will be executed on the device after the combined configuration data from step 1and 2 has been applied to the device.

As shown above, we have two ways of manipulating the configuration of a device with Add-ins.

  1. via Object Id (Oid): this modifies the configuration data provided by the previous config concepts.
  2. via ScriptLines: this is sent to and executed on the device itself.
  3. via API Method: send requests to the UF-API for configuration changes for Unified Firewalls.
Operating Systemconfig.[...]ByOid(...)config.addScriptLine(...)ufAPI.Method
LCOS✅*
LCOS-SX✅*
LCOS-LX
LCOS-FX

* device specific terminal syntax

Object Id (Oid)

Each configuration value or table is specified by a machine readable Object Id, short oid.
The oid is a sequence of numbers separated by dots (the following example denotes the LCOS cron-table):

1.2.11.20

To modify the configuration data you can either get/set single values (scalars) or tables/rows.

Scalars

Scalars are single values in the configuration.

Codeblock
languagejs
themeEclipse
exports.main = function (config, context) {
    var value = config.getScalarByOid("1.2.3.4.5.1");

    config.setScalarByOid("1.2.3.4.5.2", "test");
};

Tables

Tables can have a fixed or a dynamic number of rows.

Codeblock
languagejs
themeEclipse
exports.main = function (config, context) {
    var table = config.getTableByOid("1.2.3.4.5.3");
    var rows = table.getRows(); // array of rows

    var row = table.createNewRow(); //create a new empty row
    table.addOrMerge(row); // add/merge this row into table
};

Script-Line

To execute a script on the device after applying the configuration you need to use the addScriptLine syntax:

Codeblock
languagejs
themeEclipse
exports.main = function (config, context) {
    config.addScriptLine("cd /2/3/4/5/2");
    config.addScriptLine("set 1 test");
};

The scriptline example sets the same value as the scalar example above. The first number is ommitted as well as the . which is translated to /
In this case we will not see the values in the UI in the detailed config when previewing, but in the preview of the script that will be executed on the device.

In contrast to setting of values via oid, we can also use the human readable notation, e.g. config.addScriptLine("cd /Setup/WAN/DSL-Broadband-Peers").


...