IPAddressFixup - Global

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 5 min. de leitura
  • A inclusão de script IPAddressFixup fornece métodos que garantem que nenhum outro dispositivo tenha o mesmo endereço IP, depois que um dispositivo for descoberto com sucesso. Se forem encontradas duplicatas, o campo de endereço IP será limpo.

    Use com qualquer script de descoberta do lado do servidor para validar endereços IP.

    IPAddressFixup - dedupe (cadeia de caracteres "tableName", cadeia de caracteres "IP")

    Remove duplicatas do endereço IP especificado na tabela especificada.

    Depois que um dispositivo for descoberto com sucesso, você poderá usar o método dedupe() para remover os endereços IP duplicados desse dispositivo.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres Tabela para verificar se há duplicatas.
    ip Cadeia de caracteres Endereço IP a ser verificado.
    Tabela 2. Retornos
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como usar dedupe() em um script em segundo plano para remover endereços IP duplicados para o endereço IP especificado na tabela 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.
      }

    O exemplo a seguir mostra como usar dedupe() em uma regra de negócio para remover endereços IP duplicados para o endereço IP especificado na tabela 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()

    Remove todos os endereços IP duplicados das tabelas.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como usar dedupeAll() em um script em segundo plano para remover todos os endereços IP duplicados.

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

    O exemplo a seguir mostra como usar dedupeAll() em uma regra de negócio para remover todos os endereços IP duplicados.

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

    Remove todos os endereços IP duplicados e garante que o registro ip_address primário esteja definido como um dos endereços IP da placa de interface de rede (NIC).

    Depois que um dispositivo for descoberto com sucesso, você poderá usar o método dedupe() para remover os endereços IP duplicados desse dispositivo e definir o valor do registro ip_address primário.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como usar fix() em um script em segundo plano para remover endereços IP duplicados e definir o endereço IP primário.

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

    O exemplo a seguir mostra como usar fix() em uma regra de negócio para remover endereços IP duplicados e definir o endereço IP primário.

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

    Retorna o endereço IP primário do dispositivo atual.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 8. Retorna
    Tipo Descrição
    Cadeia de caracteres Endereço IP primário

    O exemplo a seguir mostra como usar getParentIP() em um script em segundo plano para obter o endereço IP primário.

    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 
      }

    Saída:

    172.21.12.11

    O exemplo a seguir mostra como usar getParentIP() em uma regra de negócio para obter o endereço IP primário.

    ((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(cadeia de caracteres ip)

    Define o campo de endereço IP primário do IC atual.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    ip Cadeia de caracteres Endereço IP primário do IC atual.
    Tabela 10. Retornos
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como usar setParentIP() em um script em segundo plano para armazenar o endereço IP primário.

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

    O exemplo a seguir mostra como usar setParentIP() em uma regra de negócio para armazenar o endereço IP primário.

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

    Garante que o registro ip_address primário esteja definido como um dos endereços IP da NIC ou o deixa inalterado se não houver NICs.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    vazio

    Isso mostra um exemplo do uso do métodosyncIP () em um script em segundo plano.

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

    Isso mostra um exemplo do uso do métodosyncIP () em uma regra de negócio.

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