IPAddressFixup : global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 5 minutes de lecture
  • L’include de script IPAddressFixup fournit des méthodes qui garantissent qu’aucun autre appareil n’a la même adresse IP, une fois qu’un appareil a été détecté avec succès. Si des doublons sont trouvés, le champ Adresse IP est effacé.

    À utiliser avec n’importe quel script Discovery côté serveur pour valider les adresses IP.

    IPAddressFixup : dedupe(String tableName, String ip)

    Supprime les doublons de l’adresse IP spécifiée dans la table spécifiée.

    Une fois qu’un appareil a été détecté avec succès, vous pouvez utiliser la méthode dedupe() pour supprimer les adresses IP en double pour cet appareil.

    Tableau 1. Paramètres
    Nom Type Description
    tableName Chaîne Table pour vérifier les doublons.
    ip Chaîne Adresse IP à vérifier.
    Tableau 2. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser dedupe() dans un script en arrière-plan pour supprimer les adresses IP en double pour l’adresse IP spécifiée dans la table cmdb_ci_hardware.

    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.
      }

    L’exemple suivant montre comment utiliser dedupe() dans une règle métier pour supprimer les adresses IP en double pour l’adresse IP spécifiée dans la table cmdb_ci_hardware.

    (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()

    Supprime toutes les adresses IP en double des tables.

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser dedupeAll() dans un script en arrière-plan pour supprimer toutes les adresses IP en double.

    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.
    }

    L’exemple suivant montre comment utiliser dedupeAll() dans une règle métier pour supprimer toutes les adresses IP en double.

    (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()

    Supprime toutes les adresses IP en double et s’assure que l’enregistrement de ip_address parent est défini sur l’une des adresses IP de la carte d’interface réseau (NIC).

    Une fois qu’un appareil a été détecté avec succès, vous pouvez utiliser la méthode dedupe() pour supprimer les adresses IP en double pour cet appareil et définir la valeur de l’enregistrement de ip_address parent.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser fix() dans un script d’arrière-plan pour supprimer les adresses IP en double et définir l’adresse IP parente.

    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.
      }

    L’exemple suivant montre comment utiliser fix() dans une règle métier pour supprimer les adresses IP en double et définir l’adresse IP parente.

    (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()

    Renvoie l’adresse IP parent pour l’appareil actuel.

    Tableau 7. Paramètres
    Nom Type Description
    Aucun
    Tableau 8. Renvoie
    Type Description
    Chaîne Adresse IP parent

    L’exemple suivant montre comment utiliser getParentIP() dans un script en arrière-plan pour obtenir l’adresse IP parent.

    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 
      }

    Sortie :

    172.21.12.11

    L’exemple suivant montre comment utiliser getParentIP() dans une règle métier pour obtenir l’adresse IP parent.

    ((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 : setParentIP(String ip)

    Définit le champ d’adresse IP parent pour le CI actuel.

    Tableau 9. Paramètres
    Nom Type Description
    ip Chaîne Adresse IP parent du CI actuel.
    Tableau 10. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment utiliser setParentIP() dans un script d’arrière-plan pour stocker l’adresse IP parente.

    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.
      }

    L’exemple suivant montre comment utiliser setParentIP() dans une règle métier pour stocker l’adresse IP parente.

    ((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);

    IPAddressFixup : syncIP()

    S’assure que l’enregistrement de ip_address parent est défini sur l’une des adresses IP de la carte réseau ou le laisse tel quel s’il n’y avait pas de cartes réseau.

    Tableau 11. Paramètres
    Nom Type Description
    Aucun
    Tableau 12. Renvoie
    Type Description
    nul

    Voici un exemple d’utilisation de la méthode syncIP() dans un script en arrière-plan.

    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.
      }

    Voici un exemple d’utilisation de la méthode syncIP() dans une règle métier.

    (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);