CIData - Global
Classe de utilitário para trabalhar com estruturas de dados de IC em JavaScript.
A API CIData requer o plug-in Descoberta (com.snc.discovery.core) e pode ser usada em qualquer script Descoberta do lado do servidor.
As instâncias desta classe representam um IC (seu registro base e quaisquer listas relacionadas), e os métodos fornecidos permitem carregar ou armazenar o registro base e as listas relacionadas.
- Um único mapa que representa a entrada da tabela de IC base (como uma linha cmdb_ci_linux_server e suas superclasses). Este mapa pode ser recuperado com o método getData().
- Matrizes de mapas que representam as instâncias de listas relacionadas, com cada matriz representando uma única lista relacionada e cada elemento dessa matriz representando uma única linha dessa lista relacionada. Essas matrizes podem ser recuperadas com o método getRelatedList().
- Matrizes de mapas que representam as instâncias de tabelas de muitos para muitos, com cada matriz representando uma única tabela de muitos para muitos e cada elemento dessa matriz representando uma única linha dessa tabela de muitos para muitos. Essas matrizes podem ser recuperadas com o método getM2MTable().
CIData - addRelatedList(Array relatedList)
Adiciona a lista relacionada especificada a esta instância.
| Nome | Tipo | Descrição |
|---|---|---|
| Lista relacionada | Matriz | Lista relacionada a ser adicionada. |
| Tipo | Descrição |
|---|---|
| vazio |
Este exemplo cria e adiciona uma lista relacionada ao objeto 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 - CIData(cadeia de caracteres debugFlag)
Cria uma instância da classe CIData.
| Nome | Tipo | Descrição |
|---|---|---|
| DebugFlag | Cadeia de caracteres | Sinalizador que indica se o log de depuração deve ser habilitado. Valores válidos:
|
Este exemplo cria e adiciona uma lista relacionada ao objeto 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(cadeia de caracteres sensor, cadeia de caracteres tableName, cadeia de caracteres refField, cadeia de caracteres keyName)
Converte a lista relacionada especificada em uma lista relacionada em um determinado sensor.
| Nome | Tipo | Descrição |
|---|---|---|
| sensor | Cadeia de caracteres | O sensor |
| tableName | Cadeia de caracteres | O nome da tabela |
| refField | Cadeia de caracteres | O campo de referência |
| keyName | Cadeia de caracteres | O nome da chave |
| Tipo | Descrição |
|---|---|
| vazio |
CIData - fromXML(cadeia de caracteres xml)
Inicializa a instância CIData atual da cadeia de caracteres XML especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| xml | Cadeia de caracteres | Uma cadeia de caracteres XML. |
| Tipo | Descrição |
|---|---|
| vazio |
O exemplo a seguir mostra como obter dados de IC formatados em XML de teste coletados durante a descoberta.
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);
Saída:
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()
Obtém o mapa de dados no registro de IC de base.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | O mapa de dados |
CIData - getM2MTable(cadeia de caracteres tabela, cadeia de caracteres refField)
Retorna uma matriz de mapas de dados na lista de muitos para muitos fornecida (para este IC).
| Nome | Tipo | Descrição |
|---|---|---|
| tabela | Cadeia de caracteres | Nome da tabela que contém a lista relacionada. No caso de uma lista de muitos para muitos, este é o nome da tabela de muitos para muitos, não a tabela de destino. |
| refField | Cadeia de caracteres | Nome do campo na lista relacionada que se refere a este IC. No caso de uma lista de muitos para muitos, este é o nome do campo de referência na tabela de muitos para muitos, não na tabela de destino. |
| Tipo | Descrição |
|---|---|
| Matriz | Lista de mapas de dados na lista de muitos para muitos fornecida. A lista não está em nenhuma ordem específica. Se esta não for uma lista de muitos para muitos, retornará uma matriz vazia. |
Este exemplo mostra como obter os relacionamentos muitos para muitos para o campo install_on da tabela 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));
})();
Saída:
[
{
"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(cadeia de caracteres tabela, cadeia de caracteres refField)
Obtém uma matriz de mapas de dados na lista relacionada fornecida (para este IC).
A matriz não está em nenhuma ordem específica. No caso de uma lista de muitos para muitos, será uma matriz de instâncias da tabela de destino, não a tabela de muitos para muitos. Por exemplo, dado "cmdb_software_instance" e "installed_on" (uma tabela de muitos para muitos e o campo que se refere a um IC), este método retornará uma matriz de mapas que representa as instâncias de cmdb_ci_spkg (a tabela de destino).
| Nome | Tipo | Descrição |
|---|---|---|
| tabela | Cadeia de caracteres | Nome da tabela que contém a lista relacionada. No caso de uma lista de muitos para muitos, este é o nome da tabela de muitos para muitos, não a tabela de destino. |
| refField | Cadeia de caracteres | Nome do campo na lista relacionada que se refere a este IC. No caso de uma lista de muitos para muitos, este é o nome do campo de referência na tabela de muitos para muitos, não na tabela de destino. |
| Tipo | Descrição |
|---|---|
| Matriz | Uma matriz de mapas de dados na lista relacionada especificada. |
CIData - getRelatedListInstance(cadeia de caracteres tabela, cadeia de caracteres refField)
Retorna a instância de CIRelatedList para a lista fornecida.
| Nome | Tipo | Descrição |
|---|---|---|
| tabela | Cadeia de caracteres | Nome da tabela que contém a lista relacionada. No caso de uma lista de muitos para muitos, este é o nome da tabela de muitos para muitos, não a tabela de destino. |
| refField | Cadeia de caracteres | Nome do campo na lista relacionada que se refere a este IC. No caso de uma lista de muitos para muitos, este é o nome do campo de referência na tabela de muitos para muitos, não na tabela de destino. |
| Tipo | Descrição |
|---|---|
| Objeto | Instância de CIRelatedList para a lista especificada. |
O exemplo de código a seguir usa o método getRelatedListInstance() para encontrar os relacionamentos da lista relacionada a serem removidos.
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()
Inicializa esta instância em preparação para carregar um novo IC.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| vazio |
var cdta = CIData('false');
cdta.init();
CIData - loadFromCI(cadeia de caracteres cmdb_ci)
Carrega os dados atuais de um sys_id especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| cmdb_ci | Cadeia de caracteres | O sys_id do IC |
| Tipo | Descrição |
|---|---|
| Objeto | Os dados atuais do IC especificado. |
var cdta = CIData('false');
cdta.init();
cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');
CIData - toString()
Converte o nome desta instância CIData em uma cadeia de caracteres.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Nome da instância |
Este exemplo carrega o CIData do IC atual e converte esta nova instância CIData em formato de cadeia de caracteres.
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
Saída:
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()
Retorna uma cadeia de caracteres XML contendo uma versão serializada desta instância (incluindo todas as listas relacionadas).
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | A cadeia de caracteres XML que contém uma versão serializada desta instância e todas as listas relacionadas. |
var cdta = CIData();
cdta.toXML();