IPAddressFixup - Global
L’API IPAddressFixup fournit des méthodes qui garantissent qu’aucun autre appareil n’a la même adresse IP, après qu’un appareil a été détecté avec succès. Si des doublons sont trouvés, le champ d’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 périphérique a été détecté avec succès, vous pouvez utiliser la méthode dedupe() pour supprimer les adresses IP en double pour ce périphérique.
| Nom | Type | Description |
|---|---|---|
| tableName | Chaîne | Table pour rechercher des doublons. |
| ip | Chaîne | Adresse IP à vérifier. |
| 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.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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 ip_address parent.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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 de l’appareil actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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 - syncIP()
Garantit 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 carte réseau.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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);
IPAddressFixup - setParentIP(String ip)
Définit le champ d’adresse IP parent pour le CI actuel.
| Nom | Type | Description |
|---|---|---|
| ip | Chaîne | Adresse IP parent du CI actuel. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre comment utiliser setParentIP() dans un script d’arrière-plan pour stocker l’adresse IP parent.
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 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
fx.setParentIP('195.11.1.1'); // Set the new IP address of the CI
}
})(current, previous);