Variablen

Um die Nutzung der Add-ins  weiter auszubauen, besteht die Möglichkeit Variablen zu verwenden. Diese können als schreibgeschützte Werte in Add-ins verwendet werden.

Eine Variable besteht aus den folgenden Parametern:

  • Name
  • Typ
  • Wert

Variables können in dem Menü Add-ins → Variablen erstellt und bearbeitet werden.



Variablen hinzufügen:

Eine Variable kann an verschiedenen Stellen verwendet werden. Bei Verwendung der gleichen Variable an mehreren Stellen überschreibt die letzte Variable die vorherigen Einträge.

  • Global
  • Netze
  • Standort
  • Gerät


Global:

Wird einer Variable ein Wert zugewiesen, gilt diese global. Diese kann dann in einem Add-in verwendet werden.


Netze:

1. Wechseln Sie in das Menü Netze, wählen ein Netzwerk aus und klicken auf Variablen → Variablen hinzufügen.

2. Wählen Sie die gewünschte Variable aus und weisen dieser gegebenenfalls einen Wert zu bzw. wählen die Aktion aus. Klicken Sie anschließend auf Hinzufügen.


Standorte:

1. Wechseln Sie in das Menü Standorte, wählen einen Standort aus und klicken auf Variablen → Variablen hinzufügen.

2. Wählen Sie die gewünschte Variable aus und weisen dieser gegebenenfalls einen Wert zu bzw. wählen die Aktion aus. Klicken Sie anschließend auf Hinzufügen.


Geräte:

1. Wechseln Sie in das Menü Geräte, wählen ein Gerät aus und klicken auf Variablen → Variablen hinzufügen.

2. Wählen Sie die gewünschte Variable aus und weisen dieser gegebenenfalls einen Wert zu bzw. wählen die Aktion aus. Klicken Sie anschließend auf Hinzufügen.



Neuen Variablen-Typ definieren:

1. Wechseln Sie in das Menü Add-ins und klicken auf Variablen.

2. Klicken Sie auf Variablen-Typen.

3. Klicken Sie anschließend auf Neuen Typ hinzufügen.

4. Es gibt zwei mögliche Variablen-Typen (String selection und Regulärer Ausdruck).

String selection:

Passen Sie die folgenden Parameter  an und klicken auf Speichern

  • Variablen Typ: Wählen Sie die Option String selection aus.
  • Name: Vergeben Sie einen aussagekräftigen Namen für die Variable (in diesem Beispiel Switch).
  • Name / Wert: Vergeben Sie einen oder mehrere Namen und zugehörige Wert(e) (in diesem Beispiel enable → on und disabled → off).


Regulärer Ausdruck:

Um die Eingabe-Möglichkeiten für Variablen zu limitieren, wird auch die Möglichkeit zur Verwendung regulärer Ausdrücke (regular expressions - Regex) unterstützt. 

Für die regulären Ausdrücke stehen die folgenden Optionen zur Verfügung:

Regulärer AusdruckBeschreibung
IPv4Dieser Variablen-Typ unterstützt nur valide IPv4-Adressen.
Subnet maskDieser Variablen-Typ unterstützt nur valide Subnetzmasken.
[A-Z a-z]*Dieser Variablen-Typ unterstützt nur ASCII-Zeichen von A-Z und a-z.
User definedMit dieser Option können Sie einen eigenen regulären Ausdruck erstellen, um die Eingabe zu limitieren.

Passen Sie die folgenden Parameter an und klicken auf Speichern

  • Variablen Typ: Wählen Sie die Option Regulärer Ausdruck aus.
  • Name: Vergeben Sie einen aussagekräftigen Namen für die Variable (in diesem Beispiel IP).
  • Anzeigename: In diesem Beispiel wird zum besseren Verständnis zusätzlich ein Anzeigename hinterlegt, da im Namen kein Bindestrich verwendet werden darf. 
  • Regulärer Ausdruck: Wählen Sie im Dropdown-Menü die gewünschte Option aus (in diesem Beispiel IPv4).

 


Neue Variable anlegen:

1. Wechseln Sie in das Menü Add-ins → Variablen und klicken auf Neue Variable.

2. Passen Sie die folgenden Parameter an und klicken auf Speichern:

  • Name: Vergeben Sie einen aussagekräftigen Namen für die Variable (in diesem Beispiel wlanstate).
  • Variablen Typ: Wählen Sie im Dropdown-Menü einen Variablen Typ aus (in diesem Beispiel den im Abschnitt Neuen Variablen-Typ definieren erstellten Typ Switch).
  • Wert: Vergeben Sie einen Wert für die Variable oder wählen im Dropdown-Menü eine Option aus.



Verwenden von Variablen:

Werte von Variablen können in dem Objekt context.vars verwendet werde:

      
        /**
 * @param {Config} config
          
 * @param {Context} context
          
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = 
          function (config, context) {
    if (context.vars.deviceName) { // checks if the variable is set
        context.setScalarByOid("1.2.1" /* /Setup/Name */, config.vars.deviceName);
    }
};

System-Variablen:

System-Variablen verwalten spezifische Aspekte der Smart-Konfiguration.

  • Alle System-Variablen (außer der Variable UF_DEFAULT_IF) können in den Projektvorgaben angepasst werden.
  • System-Variablen können nicht durch Add-in Skripte modifiziert werden (Read-Only).
  • System-Variablen können nur in den Menüs Netze und Geräte verwendet werden.
  • System-Variablen können nur für Status-Anfragen verwendet werden (die Konfiguration wird ausgerollt, wenn eine System-Variable einen bestimmten Wert hat).

Beispiel für eine Status-Anfrage:

Der folgende Code-Auszug zeigt die generelle Herangehensweise für eine Status-Anfrage. Tauschen Sie die Variablen “Systemvariable” und “Value” je nach Bedarf aus. Der Add-in Code muss unter der auskommentierten Zeile “Code will be executed, if variable is met.” eingefügt werden.

      
        /**
 * @param {Config} config
          
 * @param {Context} context
          
 * Do not edit this comment or parameter types. Required for code suggestions
*/
 exports.main = 
          function (config, context) {

     if Systemvariable == ("Value"){

            //Code will be executed, if variable is met.

     };

};

    

Verfügbare System-Variablen:

  • INITIAL_TEST_MODE_ENABLED:

    • Aktiviert einen Test-Modus von 300 Sekunden für den initialen Konfigurations-Rollout (im Standard aktiv).
    • Kann nach dem initialen Konfigurations-Rollout mit der Einstellung Testmodus nach initialem Konfigurations-Rollout in dem Menü Projektvorgaben → Inbetriebnahme von Geräten angepasst werden. 
  • PASSWORD:

    • Globales Haupt-Geräte-Passwort.
    • Kann unter Projektvorgaben → Basis angepasst werden.
  • UF_CLEAR_DEFAULT_CFG:

    • Deaktiviert die Standard-Schnittstellen einer Unified Firewall während des Konfigurations-Rollouts (im Standard deaktiviert).
    • Kann mit der Einstellung Default-Netze beim Konfigurations-Rollout auf LANCOM R&S®Unified Firewalls deaktivieren in dem Menü Projektvorgaben → Inbetriebnahme von Geräten angepasst werden.
  • UF_DEFAULT_IF:

    • Standard-Schnittstelle für den Netzwerk-Rollout per LANCOM Management Cloud.
    • Die Standard-Schnittstelle ist eth1 und kann ausschließlich per API geändert werden.
  • LMC_DOMAIN:

    • URL für private LMC-Instanzen.
  • UF_ETH0_NETWORKS ... UF_ETH10_NETWORKS:

    • Zuweisung der ETH-Ports von Unified Firewalls zu den Netzwerken.
  • VPN_IDENTITY_SEPARATOR:

    • Zeichen, welches für die automatische Erstelleung von VPN-Verbindungen verwendet wird (z.B. mit dem Standard-Zeichen "@": ALL@HQ__).


Werte

Schreiben

Sie können die Konfiguration, welche an ein Gerät gesendet werden soll, per config.setScalarByOid modifizieren:

      
        /**
 * @param {Config} config
          
 * @param {Context} context
          
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = 
          function (config, context) {
    config.setScalarByOid("1.2.9.11", "Comment 1");
    config.setScalarByOid("1.2.9.12", "Comment 2");
};

    

Konfigurations-Änderungen, welche per config.setScalarByOid vorgenommen wurden, sind in der Konfigurations-Vorschau sichtbar, da diese in der Konfiguration hinzugefüht werden, bevor diese an das Gerät gesendet wird.

Dies kann auch per config.addScriptLine erreicht werden:

      
        /**
 * @param {Config} config
          
 * @param {Context} context
          
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = 
          function (config, context) {
    // LCOS only:
    config.addScriptLine('set /Setup/SNMP/Comment-1 "Hello"');
    config.addScriptLine('set /Setup/SNMP/Comment-2 "World"');
};

    

Konfigurations-Änderungen, die per config.addScriptLine vorgenommen wurden, sind nicht in der Konfigurations-Vorschau sichtbar, da diese nur auf dem Gerät ausgeführt werden. Diese Mehode funktioniert ausschließlich auf LCOS-basierten Geräten.


Lesen

Informationen können von einem Gerät über die Funktion config.getScalarByOid ausgelesen werden:

      
        /**
 * @param {Config} config
          
 * @param {Context} context
          
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = 
          function (config, context) {
    var comment1 = config.getScalarByOid("1.2.9.11");
    var comment2 = config.getScalarByOid("1.2.9.12");
};

    

Es gibt kein Äquivalent für config.addScriptLine , um Daten vom Gerät zu lesen.