Использование новых объектов Состояние

В этой теме приводится пример использования новых объектов Состояние.

В этом примере политика генерирует набор данных для виджета топологии. В ней есть выходной параметр worldObject, который представляет собой массив объектов Impact. При выполнении политики параметр worldObject загружает данные в виджет DASH (например, в виджет топологии или таблицы деревьев). Чтобы использовать этот пример для не топологического виджета (например, для таблицы), удалите атрибуты UITreeNode из данных объекта.

Дополнительную информацию о создании выходного параметра смотрите в разделе Конфигурирование параметров политик в редакторе политик в публикации IBM Tivoli Impact - Справочное руководство по политике или по ссылке Конфигурирование параметров политики в редакторе политик.

Выходной параметр должен содержать следующие атрибуты:

Имя: worldObject
Имя переменной политики: worldObject
Формат: Массив объектов Impact

Для поля Определение схемы нужно задать следующие три поля:

Имя

Формат

Поле ключа

Узел

Строка

TRUE

NetworkStatus

Состояние

FALSE

LastUpdate

Отметка времени

TRUE

Прим.: При данной настройке вы увидите те же самые функциональные возможности виджета, но Состояние узла имя-значение может быть как одним из объектов по умолчанию, так и новым пользовательским объектом Состояние.
Log("Customize Links");
worldObject = {};

Obj = NewObject();
Obj.Node = "World";
Obj.UITreeNodeId = 0;
Obj.UITreeNodeStatus = "Critical";
Obj.NetworkStatus =  Obj.UITreeNodeStatus;
Obj.UITreeNodeLabel = "World";
Obj.LastUpdate= LocalTime(GetDate()*90);
worldObject = worldObject + Obj;

Obj1 = NewObject();
Obj1.Node = "Africa";
Obj1.UITreeNodeId = 1;
Obj1.UITreeNodeLabel = "Africa";
Obj1.UITreeNodeParent = 0;
Obj1.UITreeNodeStatus = "Critical";
Obj1.NetworkStatus =  Obj1.UITreeNodeStatus;
Obj1.UITreeNodeRelation="Сеть в Африке не работает";
Obj1.LastUpdate= LocalTime(GetDate()+300*1);
worldObject = worldObject + Obj1;

Obj2 = NewObject();
Obj2.Node = "Asia";
Obj2.UITreeNodeId = 2;
Obj2.UITreeNodeLabel = "Asia";
Obj2.UITreeNodeParent = 0;
Obj2.UITreeNodeStatus = "Major";
Obj2.NetworkStatus =  Obj2.UITreeNodeStatus;
Obj2.UITreeNodeRelation="Проблема с сетью в Азии"; //этот текст будет показан при помещении указателя мыши на ссылку
Obj2.UITreeNodeSmallImage =  "[widget]/resources/common_assets/common_resource_icons/re64_hypervisor1_8.png";
Obj2.UITreeNodeScalarImage = "[widget]/resources/common_assets/common_resource_icons/re64_hypervisor1.json";
Obj2.LastUpdate= LocalTime(GetDate()+300*3);
worldObject =worldObject + Obj2;

Obj3 = NewObject();
Obj3.Node = "North America";
Obj3.UITreeNodeId = 3;
Obj3.UITreeNodeLabel = "North America";
Obj3.UITreeNodeParent = 0;
Obj3.UITreeNodeStatus = "Minor";
Obj3.NetworkStatus =  Obj3.UITreeNodeStatus;
Obj3.UITreeNodeRelation="Для сети в Северной Америке выполняется техобслуживание";
Obj3.UITreeNodeSmallImage =  "[widget]/resources/common_assets/common_resource_icons/re64_hypervisor1_8.png";
Obj3.UITreeNodeScalarImage = "[widget]/resources/common_assets/common_resource_icons/re64_hypervisor1.json";
Obj3.LastUpdate= LocalTime(GetDate()-300*60);
worldObject = worldObject + Obj3;

Obj4 = NewObject();
Obj4.Node = "South America";
Obj4.UITreeNodeId = 4;
Obj4.UITreeNodeLabel = "South America";
Obj4.UITreeNodeParent = 0;
Obj4.UITreeNodeStatus = "Normal";
Obj4.NetworkStatus =  Obj4.UITreeNodeStatus;
Obj4.UITreeNodeRelation="Сеть в Южной Америке работает нормально";
Obj4.UITreeNodeSmallImage =  "[widget]/resources/common_assets/common_resource_icons/re64_hypervisor1_8.png";
Obj4.UITreeNodeScalarImage = "[widget]/resources/common_assets/common_resource_icons/re64_hypervisor1.json";
Obj4.LastUpdate= LocalTime(GetDate()+300*9);
worldObject =worldObject + Obj4;

Obj5 = NewObject();
Obj5.Node = "Brazil";
Obj5.UITreeNodeId = 5;
Obj5.UITreeNodeLabel = "Brazil";
Obj5.UITreeNodeParent = 4;
Obj5.UITreeNodeStatus = "Normal";
Obj5.NetworkStatus =  Obj5.UITreeNodeStatus;
Obj5.UITreeNodeRelation="Сеть в Бразилии работает нормально";
Obj5.UITreeNodeSmallImage =  "[widget]/resources/common_assets/common_resource_icons/re64_jobinstance1_8.png";
Obj5.UITreeNodeScalarImage = "[widget]/resources/common_assets/common_resource_icons/re64_jobinstance1.json";
Obj5.LastUpdate= LocalTime(GetDate()+300*100);
worldObject =worldObject + Obj5;

Obj6 = NewObject();
Obj6.Node = "Egypt";
Obj6.UITreeNodeId = 6;
Obj6.UITreeNodeLabel = "Egypt";
Obj6.UITreeNodeParent = 1;
Obj6.UITreeNodeStatus = "Intermediate";
Obj6.NetworkStatus =  Obj6.UITreeNodeStatus;
Obj6.UITreeNodeRelation="Сеть в Египте не работает";
Obj6.UITreeNodeSmallImage =  "[widget]/resources/common_assets/common_resource_icons/re64_jobinstance1_8.png";
Obj6.UITreeNodeScalarImage = "[widget]/resources/common_assets/common_resource_icons/re64_jobinstance1.json";
Obj6.LastUpdate= LocalTime(GetDate()+300*80);
worldObject =worldObject + Obj6;

// пользовательский объект состояния для Турции - ’newcritical’
Obj7 = NewObject();
Obj7.Node = "Turkey";
Obj7.UITreeNodeId = 7;
Obj7.UITreeNodeLabel = "Turkey";
Obj7.UITreeNodeParent = 2;
Obj7.UITreeNodeStatus = "newcritical";
Obj7.NetworkStatus = "newcritical";
Obj7.UITreeNodeRelation="Сеть в Турции не работает";
Obj7.UITreeNodeSmallImage =  "[widget]/resources/common_assets/common_resource_icons/re64_jobinstance1_8.png";
Obj7.UITreeNodeScalarImage = "[widget]/resources/common_assets/common_resource_icons/re64_jobinstance1.json";
Obj7.LastUpdate= LocalTime(GetDate()+300*80);
worldObject =worldObject + Obj7;

// пользовательский объект состояния для Аргентины - ’newmajor’
Obj8 = NewObject();
Obj8.Node = "Argentina";
Obj8.UITreeNodeId = 8;
Obj8.UITreeNodeLabel = "Argentina";
Obj8.UITreeNodeParent = 4;
Obj8.UITreeNodeStatus = "newmajor";
Obj8.NetworkStatus = "newmajor";
Obj8.UITreeNodeRelation="Сеть в Аргентине не работает";
// используется другое внутреннее изображение (с шестеренкой в середине) для узла виджета в состоянии ’newmajor’
Obj8.UITreeNodeSmallImage =  "[widget]/resources/common_assets/common_resource_icons/re64_phantomappserver1_8.png";
Obj8.UITreeNodeScalarImage = "[widget]/resources/common_assets/common_resource_icons/re64_phantomappserver1.json";
Obj8.LastUpdate= LocalTime(GetDate()+300*80);
worldObject =worldObject + Obj8;

Log(worldObject);