IPAddressFixup – Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 5 Minuten Lesedauer
  • Die IPAddressFixup- API stellt Methoden bereit, die sicherstellen, dass kein anderes Gerät dieselbe IP-Adresse hat, nachdem ein Gerät erfolgreich erkannt wurde. Wenn Duplikate gefunden wurden, wird das IP-Adressfeld gelöscht.

    Zur Verwendung mit jedem serverseitigen Discovery-Skript zum Überprüfen von IP-Adressen.

    IPAddressFixup – dedupe(String tableName, String ip)

    Entfernt Duplikate der angegebenen IP-Adresse in der angegebenen Tabelle.

    Nachdem ein Gerät erfolgreich erkannt wurde, können Sie die Methode dedupe() verwenden, um die doppelten IP-Adressen für dieses Gerät zu entfernen.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    tableName Zeichenfolge Tabelle, die auf Duplikate überprüft werden soll.
    ip Zeichenfolge IP-Adresse, nach der gesucht werden soll.
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie dedupe() in einem Hintergrundskript verwendet wird, um doppelte IP-Adressen für die angegebene IP-Adresse in der Tabelle „cmdb_ci_hardware“ zu entfernen.

    var grDiscovery=new GlideRecord("discovery_device_history");
    grDiscovery.addQuery('sys_id','<sys id of the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
      {
        var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference 
        fx.dedupe('cmdb_ci_hardware','192.161.1.1'); // Pass the IP address and table which removes duplicates of the specified IP address in the specified table.
      }

    Das folgende Beispiel zeigt, wie dedupe() in einer Business Rule verwendet wird, um doppelte IP-Adressen für die angegebene IP-Adresse in der Tabelle „cmdb_ci_hardware“ zu entfernen.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        ipf.dedupe('cmdb_ci_hardware','168.128.1.1'); // Removes duplicates of the specified IP address in the specified table.
      }
    })(current, previous);

    IPAddressFixup – dedupeAll()

    Entfernt alle doppelten IP-Adressen aus den Tabellen.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie dedupeAll() in einem Hintergrundskript verwendet wird, um alle doppelten IP-Adressen zu entfernen.

    var grDiscovery=new GlideRecord("discovery_device_history"); 
    grDiscovery.addQuery('sys_id','<sys id of the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
    {
      var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Call script include IPAddressFixup and pass cmdb reference
      fx.dedupeAll(); //Removes all duplicate IP addresses from the tables.
    }

    Das folgende Beispiel zeigt, wie dedupeAll() in einer Business Rule verwendet wird, um alle doppelten IP-Adressen zu entfernen.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
    {
      var ipf = new IPAddressFixup(cmdb_ci); //call script include IPAddressFixup and pass cmdb reference
      ipf.dedupeAll(); //Removes all duplicate IP addresses from the tables.
    })(current, previous);

    IPAddressFixup – fix()

    Entfernt alle doppelten IP-Adressen und stellt sicher, dass der übergeordnete ip_address-Datensatz auf eine der IP-Adressen der Netzwerkschnittstellenkarte (NIC) festgelegt wird.

    Nachdem ein Gerät erfolgreich erkannt wurde, können Sie die Methode dedupe() verwenden, um die doppelten IP-Adressen für dieses Gerät zu entfernen und den übergeordneten Datensatzwert ip_address festzulegen.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie fix() in einem Hintergrundskript verwendet wird, um doppelte IP-Adressen zu entfernen und die übergeordnete IP-Adresse festzulegen.

    var grDiscovery=new GlideRecord("discovery_device_history"); 
    grDiscovery.addQuery('sys_id','<sys id of the the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
      {
        var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        fx.fix(); // Remove all duplicate IP addresses and ensure that the parent ip_address record is set to one of the NIC's IP addresses.
      }

    Das folgende Beispiel zeigt, wie fix() in einer Business Rule verwendet wird, um doppelte IP-Adressen zu entfernen und die übergeordnete IP-Adresse festzulegen.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        ipf.fix(); /// Remove all duplicate IP addresses and ensure that the parent ip_address record is set to one of the NIC's IP addresses.
      }
    })(current, previous);

    IPAddressFixup – getParentIP()

    Gibt die übergeordnete IP-Adresse für das aktuelle Gerät zurück.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Übergeordnete IP-Adresse

    Das folgende Beispiel zeigt, wie getParentIP() in einem Hintergrundskript verwendet wird, um die übergeordnete IP-Adresse zu erhalten.

    var grDiscovery=new GlideRecord("discovery_device_history"); // current.cmdb_ci can be used in case of Business rule on discovery_device_history table
    grDiscovery.addQuery('sys_id','<sys id of the the record>'); // sys_id of the device discovery_device_history
    grDiscovery.query();
    if(grDiscovery.next())
      {
        var fx=new IPAddressFixup(grDiscovery.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        gs.info(fx.getParentIP()); // Display the parent IP address of the device 
      }

    Ausgabe:

    172.21.12.11

    Das folgende Beispiel zeigt, wie getParentIP() in einer Business Rule verwendet wird, um die übergeordnete IP-Adresse zu erhalten.

    ((function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        gs.log(ipf.getParentIP()); // Log the parent IP address of the device. Located in the system logs table 
      }
    })(current, previous);

    IPAddressFixup – syncIP()

    Stellt sicher, dass der übergeordnete ip_address-Datensatz auf eine der IP-Adressen der Netzwerkkarte festgelegt ist, oder behält ihn bei, wenn keine Netzwerkkarten vorhanden sind.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    void

    Dies zeigt ein Beispiel für die Verwendung der syncIP()- Methode in einem Hintergrundskript.

    var grDevHistory=new GlideRecord("discovery_device_history");
    grDevHistory.addQuery('sys_id','a14e43b31bb4051070cb96c6b04bcb23'); // Sys_id of the device in discovery_device_history table. Put your own sys_id here.
    grDevHistory.query();
    if(grDevHistory.next())
      {
        var fx=new IPAddressFixup(grDevHistory.cmdb_ci); // Call the script include IPAddressFixup and pass cmdb reference
        fx.syncIP(); // Ensures that the parent ip_address record is set to one of the NIC's IP addresses, or leaves it alone if there were no NICs.
      }

    Dies zeigt ein Beispiel für die Verwendung der syncIP()- Methode in einer Business Rule.

    (function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Call script include IPAddressFixup and pass cmdb reference
        ipf.syncIP(); // Ensures that the parent ip_address record is set to one of the NIC's IP addresses, or leaves it alone if there were no NICs.
      }
    })(current, previous);
    

    IPAddressFixup – setParentIP(String ip)

    Legt das übergeordnete IP-Adressfeld für das aktuelle CI fest.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    ip Zeichenfolge Übergeordnete IP-Adresse für das aktuelle CI.
    Tabelle : 12. Ergebnisse
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie setParentIP() in einem Hintergrundskript zum Speichern der übergeordneten IP-Adresse verwendet wird.

    var grDiscover=new GlideRecord("discovery_device_history"); 
    grDiscover.addQuery('sys_id','a14e43b31bb4051070cb96c6b04bcb23'); // sys_id of the device in discovery_device_history table. Put your own sys_id here.
    grDiscover.query();
    if(grDiscover.next())
      {
        var fx=new IPAddressFixup(grDiscover.cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference.
        fx.setParentIP('197.111.1.1'); // Pass IP address to set as new IP on current mentioned CI.
      }

    Das folgende Beispiel zeigt, wie setParentIP() in einer Business Rule zum Speichern der übergeordneten IP-Adresse verwendet wird.

    ((function executeRule(current, previous /*null when async*/) {
    
    var cmdb_ci = current.cmdb_ci + '';
    if (cmdb_ci) 
      {
        var ipf = new IPAddressFixup(cmdb_ci); // Instantiate IPAddressFixup - pass cmdb reference
        fx.setParentIP('195.11.1.1'); // Set the new IP address of the CI 
      }
    })(current, previous);