CIData - Global
L’include de script CIData est une classe utilitaire qui fournit des méthodes pour travailler avec les structures de données d’éléments de configuration (CI) en JavaScript.
Cet include de script nécessite le module d’extension Découverte (com.snc.discovery.core). Vous pouvez l’utiliser dans n’importe quel script côté Découverte serveur.
Les instances de cette classe représentent un CI (à la fois son enregistrement de base et toutes les listes connexes), et les méthodes fournies permettent de charger ou de stocker à partir de l’enregistrement de base et des listes connexes, ou de les stocker.
- Carte unique représentant l’entrée de table CI de base (telle qu’une cmdb_ci_linux_server de ligne et ses superclasses). Vous pouvez récupérer cette carte à l’aide de la CIData : getData() méthode.
- Tableaux de cartes représentant les instances de listes connexes, chaque tableau représentant une liste connexe unique et chaque élément d’un tel tableau représentant une ligne unique de cette liste connexe. Ces tableaux peuvent être récupérés avec la CIData : getRelatedList(Table de chaînes, Champ de référence de chaîne) méthode.
- Tableaux de cartes représentant les instances de tables plusieurs-à-plusieurs, chaque tableau représentant une seule table plusieurs-à-plusieurs et chaque élément d’un tel tableau représentant une seule ligne de cette table plusieurs-à-plusieurs. Ces tableaux peuvent être récupérés avec la CIData : getM2MTable(Table de chaînes, Champ de référence de chaîne) méthode.
CIData : CIData (chaîne, debugFlag)
Crée une instance de la classe CIData.
| Nom | Type | Description |
|---|---|---|
| marqueur de débogage | Chaîne | Marqueur indiquant s’il faut activer la journalisation du débogage. Valeurs valides :
|
Cet exemple crée et ajoute une liste connexe à l’objet CIData.
var ciDataObj = new CIData();
var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci');
var sr = {};
sr['serial_number_type'] = "bios";
sr['serial_number'] = "1BC5E4z89246";
sr['valid'] = "true";
rl.addRec(sr);
ciDataObj.addRelatedList(rl);
CIData : addRelatedList(Tableau, relatedList)
Ajoute la liste connexe spécifiée à cette instance.
| Nom | Type | Description |
|---|---|---|
| Liste connexe | Tableau | Liste connexe à ajouter. |
| Type | Description |
|---|---|
| nul |
Cet exemple crée et ajoute une liste connexe à l’objet CIData.
var ciDataObj = new CIData();
var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci');
var sr = {};
sr['serial_number_type'] = "bios";
sr['serial_number'] = "1BC5E4z89246";
sr['valid'] = "true";
rl.addRec(sr);
ciDataObj.addRelatedList(rl);
CIData : convertRelatedList(String sensor, String tableName, String refField, String keyName)
Convertit la liste connexe spécifiée en liste connexe dans un capteur donné.
| Nom | Type | Description |
|---|---|---|
| capteur | Chaîne | Le capteur |
| tableName | Chaîne | Le nom de table |
| refField | Chaîne | Champ de référence |
| keyName | Chaîne | Le nom de la clé |
| Type | Description |
|---|---|
| nul |
CIData : fromXML(chaîne xml)
Initialise l’instance CIData actuelle à partir de la chaîne XML spécifiée.
| Nom | Type | Description |
|---|---|---|
| xml | Chaîne | Une chaîne XML. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre comment obtenir des données CI de test au format XML collectées lors de la découverte.
var xmlCIData = '<CIData><data><fld name="cpu_name">Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz</fld><fld name="host_name">ip-172-31-19-95</fld><fld name="kernel_release">3.10.0-1160.45.1.el7.x86_64</fld><fld name="os">Linux CentOS</fld></data></CIData>';
var ciData = new CIData();
ciData.fromXML(xmlCIData);
gs.log(ciData);
Sortie :
CIData instance:
cpu_name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
host_name: ip-172-31-19-95
kernel_release: 3.10.0-1160.45.1.el7.x86_64
os: Linux CentOS
[object Object]
CIData : getData()
Obtient la carte de données dans l’enregistrement de CI de base.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Objet | Le mappage de données |
CIData : getM2MTable(Table de chaînes, Champ de référence de chaîne)
Renvoie un tableau de cartes de données dans la liste plusieurs-à-plusieurs donnée (vers ce CI).
| Nom | Type | Description |
|---|---|---|
| Table | Chaîne | Nom de la table contenant la liste connexe. Dans le cas d’une liste plusieurs-à-plusieurs, il s’agit du nom de la table plusieurs-à-plusieurs, et non de la table cible. |
| refField | Chaîne | Nom du champ de la liste connexe qui fait référence à ce CI. Dans le cas d’une liste plusieurs-à-plusieurs, il s’agit du nom du champ de référence dans la table plusieurs-à-plusieurs, et non dans la table cible. |
| Type | Description |
|---|---|
| Tableau | Liste des cartes de données dans la liste plusieurs-à-plusieurs donnée. La liste n’est pas dans un ordre particulier. S’il ne s’agit pas d’une liste plusieurs-à-plusieurs, renvoie un tableau vide. |
Cet exemple montre comment obtenir les relations plusieurs-à-plusieurs pour le champ installed_on de la table cmdb_software_instance.
function () {
//Instantiate a new CIData class object
var cdta = new CIData();
//Load the current data from a CI record.
cdta.loadFromCI('b4fd7c8437201000deeabfc8bcbe5dc1');
// Returns an Array of Objects (records) of a given M2M related list
var records = cdta.getM2MTable('cmdb_software_instance', 'installed_on');
gs.info(JSON.stringify(records, null, 4));
})();
Sortie :
[
{
"sys_id": "208983661b3330106cdf0f26624bcb4b",
"software": "46c1ec3ca9fe198100beafe77332be9a",
"sys_updated_on": "2021-11-16 18:32:35",
"sys_created_on": "2021-11-16 18:32:35",
"name": "3D Groove Playback Engine-*ANNIE-IBM",
"installed_on": "b4fd7c8437201000deeabfc8bcbe5dc1"
},
{
"sys_id": "288983661b3330106cdf0f26624bcb4a",
"software": "0c43bc5fc61122750182c13269a7a3ef",
"sys_updated_on": "2021-11-16 18:32:35",
"sys_created_on": "2021-11-16 18:32:35",
"name": ".NET SDK 2003-*ANNIE-IBM",
"installed_on": "b4fd7c8437201000deeabfc8bcbe5dc1"
}
]
CIData : getRelatedList(Table de chaînes, Champ de référence de chaîne)
Obtient un tableau de cartes de données dans la liste connexe donnée (vers ce CI).
Le tableau n’est pas dans un ordre particulier. Dans le cas d’une liste plusieurs-à-plusieurs, il s’agira d’un tableau d’instances de la table cible, et non d’une table plusieurs-à-plusieurs. Par exemple, étant donné « cmdb_software_instance » et « installed_on » (une table plusieurs-à-plusieurs et le champ qui fait référence à un CI), cette méthode renvoie un tableau de cartes représentant cmdb_ci_spkg instances (la table cible).
| Nom | Type | Description |
|---|---|---|
| Table | Chaîne | Nom de la table contenant la liste connexe. Dans le cas d’une liste plusieurs-à-plusieurs, il s’agit du nom de la table plusieurs-à-plusieurs, et non de la table cible. |
| refField | Chaîne | Nom du champ de la liste connexe qui fait référence à ce CI. Dans le cas d’une liste plusieurs-à-plusieurs, il s’agit du nom du champ de référence dans la table plusieurs-à-plusieurs, et non dans la table cible. |
| Type | Description |
|---|---|
| Tableau | Tableau de cartes de données dans la liste connexe spécifiée. |
CIData : getRelatedListInstance(Table de chaînes, Champ de référence de chaîne)
Renvoie l’instance de CIRelatedList pour la liste donnée.
| Nom | Type | Description |
|---|---|---|
| Table | Chaîne | Nom de la table contenant la liste connexe. Dans le cas d’une liste plusieurs-à-plusieurs, il s’agit du nom de la table plusieurs-à-plusieurs, et non de la table cible. |
| refField | Chaîne | Nom du champ de la liste connexe qui fait référence à ce CI. Dans le cas d’une liste plusieurs-à-plusieurs, il s’agit du nom du champ de référence dans la table plusieurs-à-plusieurs, et non dans la table cible. |
| Type | Description |
|---|---|
| Objet | Instance de CIRelatedList pour la liste spécifiée. |
L’exemple de code suivant utilise la méthode getRelatedListInstance() pour trouver les relations de liste connexe à supprimer.
removeAllRelatedList: function(ci_id) {
var cdta = new CIData('false');
cdta.init();
cdta.loadFromCI(ci_id); // Get a Computer CI Instance
var cirelatedlist = cdta.getRelatedListInstance('cmdb_rel_ci', 'parent'); // Get the CIRelatedList instance holding all relationships of the above CI.
cirelatedlist.remove(); // Remove all the CI Relationships
}
CIData : init()
Initialise cette instance en vue du chargement d’un nouveau CI.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
var cdta = CIData('false');
cdta.init();
CIData : loadFromCI(String cmdb_ci)
Charge les données actuelles à partir d’une sys_id spécifiée.
| Nom | Type | Description |
|---|---|---|
| cmdb_ci | Chaîne | Le sys_id du CI |
| Type | Description |
|---|---|
| Objet | Les données actuelles du CI spécifié. |
var cdta = CIData('false');
cdta.init();
cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');
CIData : toString()
Convertit le nom de cette instance CIData en chaîne.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom de l'instance |
Cet exemple charge la CIData à partir du CI actuel et convertit cette nouvelle instance CIData au format chaîne.
var cidata = new CIData(); // Instantiate a new CIData class object
cidata.loadFromCI('0c43b0f5c6112275019abd2bb3dcd78f'); // Load the current data from a CI record. Use sys_id or ci name.
cidata.toString(); // Convert the name of this CIData instance to a string.
gs.info(cidata); // Display name value pairs of the current CI
Sortie :
CIData instance:
sys_id: 0c43b0f5c6112275019abd2bb3dcd78f
operational_status: 1
os_service_pack: Service Pack 1
cpu_manufacturer: 0c43b088c6112275011a4bd46a4e6cc4
sys_updated_on: 2022-01-11 07:44:05
discovery_source: Other Automated
ram: 503
cpu_speed: 1993
sys_domain_path: /
disk_space: 37.26
cost_center: d9d07bddc0a80a647cf932056ed24652
assigned: 2020-08-31 08:00:00
cd_speed: -1
can_print: 0
sys_class_name: cmdb_ci_computer
manufacturer: add7b97737e3100044e0bfc8bcbe5d96
cpu_count: 1
vendor: adb3d8ce37413000158bbfc8bcbe5d15
assigned_to: 5137153cc611227c000bbd1bd8cd2007
os_version: 5.1.2600
cd_rom: 0
unverified: 0
asset: aac1ba8837f3100044e0bfc8bcbe5d3b
skip_sync: 0
sys_created_on: 2005-05-24 01:14:19
sys_domain: global
cpu_type: GenuineIntel
install_date: 2020-05-19 07:00:00
asset_tag: P1000143
install_status: 1
name: ANDREWDWXP
subcategory: Computer
virtual: 0
sys_class_path: /!!/!2/!(
company: 31bea3d53790200044e0bfc8bcbe5dec
department: 221f3db5c6112284009f4becd3039cc9
cost: 1299.99
os: Windows XP Professional
attestation_status: Not Yet Reviewed
monitor: 0
ip_address: 195.11.1.1
cost_cc: USD
location: db9a923c0a0a0a6501068d6eaec25ee0
category: Hardware
fault_count: 0
[object Object]
CIData - toXML()
Renvoie une chaîne XML contenant une version sérialisée de cette instance (y compris toutes les listes connexes).
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Chaîne XML contenant une version sérialisée de cette instance et toutes les listes connexes. |
var cdta = CIData();
cdta.toXML();