CIData - グローバル
JavaScript の CI データ構造を操作するためのユーティリティ クラス。
CIData API には ディスカバリー (com.snc.discovery.core) プラグインが必要です。これはサーバー側の ディスカバリー スクリプトで使用できます。
このクラスのインスタンスは、CI (基本レコードと関連リストの両方) を表し、提供されたメソッドは、基本レコードと関連リストの両方からの読み込みまたはこれらを格納することを許可します。
- ベースCIテーブルエントリを表す単一のマップ(cmdb_ci_linux_serverとそのスーパークラスなど)。このマップは、 getData()メソッドで読み出すことができます。
- 関連するリストのインスタンスを表すマップのアレイ。各アレイは単一の関連リストとその関連リストの単一の行を表すそのようなアレイの各要素を表します。これらのアレイは、 getRelatedList()メソッドで読み出すことができます。
- 多対多表のインスタンスを表すマップのアレイ。各アレイは単一の多対多表を表し、そのようなアレイの各要素はその多対多表の単一行を表します。これらのアレイは、 getM2MTable() メソッドで読み出すことができます。
CIData - addRelatedList(アレイ relatedList)
指定された関連リストをこのインスタンスに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| relatedList | アレイ | 追加する関連リストです。 |
| タイプ | 説明 |
|---|---|
| なし |
この例は、関連リストを作成して 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(文字列 debugFlag)
CIData クラスのインスタンスを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| debugFlag | 文字列 | デバッグログを有効にするかどうかを示すフラグです。 有効な値:
|
この例は、関連リストを作成して 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)
指定された関連リストを、指定されたセンサーの関連リストに変換します。
| 名前 | タイプ | 説明 |
|---|---|---|
| センサー | 文字列 | センサー |
| tableName | 文字列 | テーブル名 |
| refField | 文字列 | 参照フィールド |
| keyName | 文字列 | キー名 |
| タイプ | 説明 |
|---|---|
| なし |
CIData - fromXML(文字列 xml)
指定された XML 文字列から現在の CIData インスタンスを初期化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| xml | 文字列 | XML 文字列です。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、検出中に収集された XML 形式のテスト CI データを取得する方法を示しています。
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);
出力:
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()
ベース CI レコードのデータマップを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | データマップ |
CIData - getM2MTable(文字列 table, 文字列 refField)
指定された多対多リスト内のデータマップのアレイを (この CI に) 返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| テーブル | 文字列 | 関連リストを含むテーブルの名前。多対多リストの場合、これはターゲット テーブルではなく、多対多テーブルの名前になります。 |
| refField | 文字列 | このCIを参照する関連リスト内のフィールドの名前。多対多リストの場合、ターゲット テーブルではなく、他タイ他テーブルの参照フィールドの名前になります。 |
| タイプ | 説明 |
|---|---|
| アレイ | 指定された多対多リスト内のデータマップのリストです。リストは順不同になります。 多対多リストでない場合、空のアレイを返します。 |
この例は、cmdb_software_instance テーブルの installed_on フィールドの多対多の関係を取得する方法を示しています。
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));
})();
出力:
[
{
"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(Stringテーブル、String refField)
指定された関連リスト(この CI への)のデータのマップのアレイを取得します。
このアレイは特定の順番ではありません。多対多リストの場合、これは多対多テーブルではなく、ターゲット テーブルのインスタンスのアレイになります。例えば、 'cmdb_software_instance'と 'installed_on'(多対多テーブルと CI を参照するフィールド)を指定すると、このメソッドは cmdb_ci_spkg(ターゲット テーブル)インスタンスを表すマップのアレイを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| テーブル | 文字列 | 関連リストを含むテーブルの名前。多対多リストの場合、これはターゲット テーブルではなく、多対多テーブルの名前になります。 |
| refField | 文字列 | このCIを参照する関連リスト内のフィールドの名前。多対多リストの場合、ターゲット テーブルではなく、他タイ他テーブルの参照フィールドの名前になります。 |
| タイプ | 説明 |
|---|---|
| アレイ | 指定された関連リスト内のデータのマップのアレイ |
CIData getRelatedListInstance(String table、String refField)
指定されたリストの CIRelatedList のインスタンスを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| テーブル | 文字列 | 関連リストを含むテーブルの名前。多対多リストの場合、これはターゲット テーブルではなく、多対多テーブルの名前になります。 |
| refField | 文字列 | このCIを参照する関連リスト内のフィールドの名前。多対多リストの場合、ターゲット テーブルではなく、他タイ他テーブルの参照フィールドの名前になります。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 指定されたリストの CIRelatedList のインスタンスです。 |
次のコード例は、getRelatedListInstance() メソッドを使用して、削除する関連リストの関係を検索します。
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()
新しい CI を読み込む準備としてこのインスタンスを初期化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
var cdta = CIData('false');
cdta.init();
CIData - loadFromCI(文字列 cmdb_ci)
指定された sys_id から現在のデータをロードします。
| 名前 | タイプ | 説明 |
|---|---|---|
| cmdb_ci | 文字列 | CI の sys_id |
| タイプ | 説明 |
|---|---|
| オブジェクト | 指定された CI からの現在のデータ |
var cdta = CIData('false');
cdta.init();
cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');
CIData - toString()
この CIData インスタンスの名前を文字列に変換します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | インスタンスの名前 |
この例は、現在の CI から CIData をロードし、この新しい CIData インスタンスを文字列形式に変換します。
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
出力:
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()
このインスタンスのシリアル化されたバージョン(関連リストを含む)を含む XML 文字列を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | このインスタンスと関連するリストのシリアル化されたバージョンを含む XML 文字列 |
var cdta = CIData();
cdta.toXML();