mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-18 01:44:10 +01:00
Compare commits
8 Commits
feature/re
...
feature/89
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba05da4a17 | ||
|
|
b3a1565771 | ||
|
|
ffe98a6649 | ||
|
|
b42f5566ba | ||
|
|
ee0c65d81b | ||
|
|
29736d794b | ||
|
|
7ea4aa4cea | ||
|
|
32778eeea0 |
@@ -97,77 +97,33 @@ class RestUtils
|
||||
* @throws Exception
|
||||
* @api
|
||||
*/
|
||||
public static function GetFieldList($sClass, $oData, $sParamName, $bFailIfNotFound = true)
|
||||
public static function GetFieldList($sClass, $oData, $sParamName)
|
||||
{
|
||||
$sFields = self::GetOptionalParam($oData, $sParamName, '*');
|
||||
return match($sFields) {
|
||||
'*' => self::GetFieldListForClass($sClass),
|
||||
'*+' => self::GetFieldListForParentClass($sClass),
|
||||
default => self::GetLimitedFieldListForClass($sClass, $sFields, $sParamName, $bFailIfNotFound),
|
||||
};
|
||||
}
|
||||
|
||||
public static function HasRequestedExtendedOutput(string $sFields): bool
|
||||
{
|
||||
return match($sFields) {
|
||||
'*' => false,
|
||||
'*+' => true,
|
||||
default => substr_count($sFields, ':') > 1,
|
||||
};
|
||||
}
|
||||
|
||||
public static function HasRequestedAllOutputFields(string $sFields): bool
|
||||
{
|
||||
return match($sFields) {
|
||||
'*', '*+' => true,
|
||||
default => false,
|
||||
};
|
||||
}
|
||||
|
||||
protected static function GetFieldListForClass(string $sClass): array
|
||||
{
|
||||
return [$sClass => array_keys(MetaModel::ListAttributeDefs($sClass))];
|
||||
}
|
||||
|
||||
protected static function GetFieldListForParentClass(string $sClass): array
|
||||
{
|
||||
$aFieldList = array();
|
||||
foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sRefClass) {
|
||||
$aFieldList = array_merge($aFieldList, self::GetFieldListForClass($sRefClass));
|
||||
}
|
||||
return $aFieldList;
|
||||
}
|
||||
|
||||
protected static function GetLimitedFieldListForSingleClass(string $sClass, string $sFields, string $sParamName, bool $bFailIfNotFound = true): array
|
||||
{
|
||||
$aFieldList = [$sClass => []];
|
||||
foreach (explode(',', $sFields) as $sAttCode) {
|
||||
$sAttCode = trim($sAttCode);
|
||||
if (($sAttCode == 'id') || (MetaModel::IsValidAttCode($sClass, $sAttCode))) {
|
||||
$aFieldList[$sClass][] = $sAttCode;
|
||||
} else {
|
||||
if ($bFailIfNotFound) {
|
||||
throw new Exception("$sParamName: invalid attribute code '$sAttCode' for class '$sClass'");
|
||||
$aShowFields = [];
|
||||
if ($sFields == '*') {
|
||||
foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) {
|
||||
$aShowFields[$sClass][] = $sAttCode;
|
||||
}
|
||||
} elseif ($sFields == '*+') {
|
||||
foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sRefClass) {
|
||||
foreach (MetaModel::ListAttributeDefs($sRefClass) as $sAttCode => $oAttDef) {
|
||||
$aShowFields[$sRefClass][] = $sAttCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $aFieldList;
|
||||
}
|
||||
|
||||
protected static function GetLimitedFieldListForClass(string $sClass, string $sFields, string $sParamName, bool $bFailIfNotFound = true): array
|
||||
{
|
||||
if (!str_contains($sFields, ':')) {
|
||||
return self::GetLimitedFieldListForSingleClass($sClass, $sFields, $sParamName, $bFailIfNotFound);
|
||||
} else {
|
||||
foreach (explode(',', $sFields) as $sAttCode) {
|
||||
$sAttCode = trim($sAttCode);
|
||||
if (($sAttCode != 'id') && (!MetaModel::IsValidAttCode($sClass, $sAttCode))) {
|
||||
throw new Exception("$sParamName: invalid attribute code '$sAttCode'");
|
||||
}
|
||||
$aShowFields[$sClass][] = $sAttCode;
|
||||
}
|
||||
}
|
||||
|
||||
$aFieldList = [];
|
||||
$aFieldListParts = explode(';', $sFields);
|
||||
foreach ($aFieldListParts as $sClassFields) {
|
||||
list($sSubClass, $sSubClassFields) = explode(':', $sClassFields);
|
||||
$aFieldList = array_merge($aFieldList, self::GetLimitedFieldListForSingleClass(trim($sSubClass), trim($sSubClassFields), $sParamName, $bFailIfNotFound));
|
||||
}
|
||||
return $aFieldList;
|
||||
return $aShowFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read and interpret object search criteria from a Rest/Json structure
|
||||
*
|
||||
|
||||
@@ -389,7 +389,7 @@ JS
|
||||
* Resize an image so that it fits the maximum width/height defined in the config file
|
||||
* @param ormDocument $oImage The original image stored as an array (content / mimetype / filename)
|
||||
* @return ormDocument The resampled image (or the original one if it already fit)
|
||||
* @deprecated since 3.3.0 Replaced by ormDocument::ResizeImageToFit
|
||||
* @deprecated Replaced by ormDocument::ResizeImageToFit
|
||||
*/
|
||||
public static function ResizeImageToFit(ormDocument $oImage, &$aDimensions = null)
|
||||
{
|
||||
|
||||
@@ -248,45 +248,6 @@ class RestResultWithObjects extends RestResult
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @package RESTAPI
|
||||
* @api
|
||||
*/
|
||||
class RestResultWithObjectSets extends RestResultWithObjects
|
||||
{
|
||||
private $current_object = null;
|
||||
|
||||
public function MakeNewObjectSet()
|
||||
{
|
||||
$arr = array();
|
||||
$this->current_object = &$arr;
|
||||
$this->objects[] = &$arr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Report the given object
|
||||
*
|
||||
* @api
|
||||
* @param string $sObjectAlias Name of the subobject, usually the OQL class alias
|
||||
* @param int $iCode An error code (RestResult::OK is no issue has been found)
|
||||
* @param string $sMessage Description of the error if any, an empty string otherwise
|
||||
* @param DBObject $oObject The object being reported
|
||||
* @param array|null $aFieldSpec An array of class => attribute codes (Cf. RestUtils::GetFieldList). List of the attributes to be reported.
|
||||
* @param boolean $bExtendedOutput Output all of the link set attributes ?
|
||||
*
|
||||
* @return void
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \MySQLException
|
||||
*/
|
||||
public function AppendSubObject($sObjectAlias, $iCode, $sMessage, $oObject, $aFieldSpec = null, $bExtendedOutput = false)
|
||||
{
|
||||
$oObjRes = ObjectResult::FromDBObject($oObject, $aFieldSpec, $bExtendedOutput, $iCode, $sMessage);
|
||||
$this->current_object[$sObjectAlias] = $oObjRes;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @package RESTAPI
|
||||
* @api
|
||||
@@ -539,22 +500,15 @@ class CoreServices implements iRestServiceProvider, iRestInputSanitizer
|
||||
break;
|
||||
|
||||
case 'core/get':
|
||||
$sClassParam = RestUtils::GetMandatoryParam($aParams, 'class');
|
||||
$sClass = RestUtils::GetClass($aParams, 'class');
|
||||
$key = RestUtils::GetMandatoryParam($aParams, 'key');
|
||||
$sShowFields = RestUtils::GetOptionalParam($aParams, 'output_fields', '*');
|
||||
$aShowFields = RestUtils::GetFieldList($sClass, $aParams, 'output_fields');
|
||||
$bExtendedOutput = (RestUtils::GetOptionalParam($aParams, 'output_fields', '*') == '*+');
|
||||
$iLimit = (int)RestUtils::GetOptionalParam($aParams, 'limit', 0);
|
||||
$iPage = (int)RestUtils::GetOptionalParam($aParams, 'page', 1);
|
||||
|
||||
// Validate the class(es)
|
||||
$aClass = explode(',', $sClassParam);
|
||||
foreach ($aClass as $sClass) {
|
||||
if (!MetaModel::IsValidClass(trim($sClass))) {
|
||||
throw new Exception("class '$sClass' is not valid");
|
||||
}
|
||||
}
|
||||
|
||||
$oObjectSet = RestUtils::GetObjectSetFromKey($sClassParam, $key, $iLimit, self::getOffsetFromLimitAndPage($iLimit, $iPage));
|
||||
$sTargetClass = $oObjectSet->GetFilter()->GetClass();
|
||||
$oObjectSet = RestUtils::GetObjectSetFromKey($sClass, $key, $iLimit, self::getOffsetFromLimitAndPage($iLimit, $iPage));
|
||||
$sTargetClass = $oObjectSet->GetFilter()->GetClass();
|
||||
|
||||
if (UserRights::IsActionAllowed($sTargetClass, UR_ACTION_READ) != UR_ALLOWED_YES) {
|
||||
$oResult->code = RestResult::UNAUTHORIZED;
|
||||
@@ -565,67 +519,19 @@ class CoreServices implements iRestServiceProvider, iRestInputSanitizer
|
||||
} elseif ($iPage < 1) {
|
||||
$oResult->code = RestResult::INVALID_PAGE;
|
||||
$oResult->message = "The request page number is not valid. It must be an integer greater than 0";
|
||||
} elseif (count($oObjectSet->GetSelectedClasses()) > 1) {
|
||||
$oResult = new RestResultWithObjectSets();
|
||||
$aCache = [];
|
||||
$aShowFields = [];
|
||||
foreach ($oObjectSet->GetSelectedClasses() as $sSelectedClass) {
|
||||
$aShowFields = array_merge( $aShowFields, RestUtils::GetFieldList($sSelectedClass, $aParams, 'output_fields', false));
|
||||
}
|
||||
|
||||
while ($oObjects = $oObjectSet->FetchAssoc()) {
|
||||
$oResult->MakeNewObjectSet();
|
||||
|
||||
foreach ($oObjects as $sAlias => $oObject) {
|
||||
if (!$oObject) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!array_key_exists($sAlias, $aCache)) {
|
||||
$sClass = get_class($oObject);
|
||||
$bExtendedOutput = RestUtils::HasRequestedExtendedOutput($sShowFields);
|
||||
|
||||
if (!RestUtils::HasRequestedAllOutputFields($sShowFields)) {
|
||||
$aFields = $aShowFields[$sClass];
|
||||
//Id is not a valid attribute to optimize
|
||||
if ($aFields && in_array('id', $aFields)) {
|
||||
unset($aFields[array_search('id', $aFields)]);
|
||||
}
|
||||
$aAttToLoad = [$sAlias => $aFields];
|
||||
$oObjectSet->OptimizeColumnLoad($aAttToLoad);
|
||||
}
|
||||
$aCache[$sAlias] = [
|
||||
'aShowFields' => $aShowFields,
|
||||
'bExtendedOutput' => $bExtendedOutput,
|
||||
];
|
||||
} else {
|
||||
$aShowFields = $aCache[$sAlias]['aShowFields'];
|
||||
$bExtendedOutput = $aCache[$sAlias]['bExtendedOutput'];
|
||||
}
|
||||
|
||||
$oResult->AppendSubObject($sAlias, 0, '', $oObject, $aShowFields, $bExtendedOutput);
|
||||
}
|
||||
}
|
||||
$oResult->message = "Found: ".$oObjectSet->Count();
|
||||
} else {
|
||||
$aShowFields =[];
|
||||
foreach ($aClass as $sSelectedClass) {
|
||||
$sSelectedClass = trim($sSelectedClass);
|
||||
$aShowFields = array_merge($aShowFields, RestUtils::GetFieldList($sSelectedClass, $aParams, 'output_fields', false));
|
||||
}
|
||||
|
||||
if (!RestUtils::HasRequestedAllOutputFields($sShowFields) && count($aShowFields) == 1) {
|
||||
$aFields = $aShowFields[$sClass];
|
||||
//Id is not a valid attribute to optimize
|
||||
if (in_array('id', $aFields)) {
|
||||
unset($aFields[array_search('id', $aFields)]);
|
||||
}
|
||||
if (!$bExtendedOutput && RestUtils::GetOptionalParam($aParams, 'output_fields', '*') != '*') {
|
||||
$aFields = $aShowFields[$sClass];
|
||||
//Id is not a valid attribute to optimize
|
||||
if (in_array('id', $aFields)) {
|
||||
unset($aFields[array_search('id', $aFields)]);
|
||||
}
|
||||
$aAttToLoad = [$oObjectSet->GetClassAlias() => $aFields];
|
||||
$oObjectSet->OptimizeColumnLoad($aAttToLoad);
|
||||
}
|
||||
$oObjectSet->OptimizeColumnLoad($aAttToLoad);
|
||||
}
|
||||
|
||||
while ($oObject = $oObjectSet->Fetch()) {
|
||||
$oResult->AddObject(0, '', $oObject, $aShowFields, RestUtils::HasRequestedExtendedOutput($sShowFields));
|
||||
$oResult->AddObject(0, '', $oObject, $aShowFields, $bExtendedOutput);
|
||||
}
|
||||
$oResult->message = "Found: ".$oObjectSet->Count();
|
||||
}
|
||||
|
||||
@@ -579,7 +579,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', [
|
||||
//
|
||||
|
||||
Dict::Add('CS CZ', 'Czech', 'Čeština', [
|
||||
'Class:WebServer' => 'Web server',
|
||||
'Class:WebServer' => 'Web Server',
|
||||
'Class:WebServer+' => '',
|
||||
'Class:WebServer/Attribute:webapp_list' => 'Web aplikace',
|
||||
'Class:WebServer/Attribute:webapp_list+' => 'Všechny webové aplikace dostupné na tomto web serveru',
|
||||
|
||||
@@ -103,7 +103,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:FunctionalCI' => 'Functional CI',
|
||||
'Class:FunctionalCI+' => '',
|
||||
'Class:FunctionalCI+' => 'Abstract class grouping multiple types of Configuration Items.',
|
||||
'Class:FunctionalCI/Attribute:name' => 'Name',
|
||||
'Class:FunctionalCI/Attribute:name+' => '',
|
||||
'Class:FunctionalCI/Attribute:description' => 'Description',
|
||||
@@ -142,7 +142,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PhysicalDevice' => 'Physical Device',
|
||||
'Class:PhysicalDevice+' => '',
|
||||
'Class:PhysicalDevice+' => 'Abstract class grouping physical types of Configuration Items. A Physical Device can be located. It has usually a Brand and Model.',
|
||||
'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:PhysicalDevice/Attribute:serialnumber' => 'Serial number',
|
||||
'Class:PhysicalDevice/Attribute:serialnumber+' => '',
|
||||
@@ -182,7 +182,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Rack' => 'Rack',
|
||||
'Class:Rack+' => '',
|
||||
'Class:Rack+' => 'A physical container for Datacenter Devices and Enclosures.',
|
||||
'Class:Rack/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Rack/Attribute:nb_u' => 'Rack units',
|
||||
'Class:Rack/Attribute:nb_u+' => '',
|
||||
@@ -198,7 +198,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:TelephonyCI' => 'Telephony CI',
|
||||
'Class:TelephonyCI+' => '',
|
||||
'Class:TelephonyCI+' => 'Abstract class grouping telephony devices',
|
||||
'Class:TelephonyCI/Attribute:phonenumber' => 'Phone number',
|
||||
'Class:TelephonyCI/Attribute:phonenumber+' => '',
|
||||
]);
|
||||
@@ -209,7 +209,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Phone' => 'Phone',
|
||||
'Class:Phone+' => '',
|
||||
'Class:Phone+' => 'End User device. Plain wired phone',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -218,7 +218,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:MobilePhone' => 'Mobile Phone',
|
||||
'Class:MobilePhone+' => '',
|
||||
'Class:MobilePhone+' => 'End User device. Wireless phone',
|
||||
'Class:MobilePhone/Attribute:imei' => 'IMEI',
|
||||
'Class:MobilePhone/Attribute:imei+' => '',
|
||||
'Class:MobilePhone/Attribute:hw_pin' => 'Hardware PIN',
|
||||
@@ -231,7 +231,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:IPPhone' => 'IP Phone',
|
||||
'Class:IPPhone+' => '',
|
||||
'Class:IPPhone+' => 'Physical device dedicated to phone calls, connected to a network',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -240,7 +240,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Tablet' => 'Tablet',
|
||||
'Class:Tablet+' => '',
|
||||
'Class:Tablet+' => 'End User device. For example iPad, Galaxy Note/Tab Nexus, Kindle...',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -249,7 +249,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:ConnectableCI' => 'Connectable CI',
|
||||
'Class:ConnectableCI+' => 'Physical CI',
|
||||
'Class:ConnectableCI+' => 'Physical Device which can be connected to a network.',
|
||||
'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Network devices',
|
||||
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device',
|
||||
@@ -263,7 +263,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:DatacenterDevice' => 'Datacenter Device',
|
||||
'Class:DatacenterDevice+' => '',
|
||||
'Class:DatacenterDevice+' => 'Connectable CI which can be racked in a datacenter',
|
||||
'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:DatacenterDevice/Attribute:rack_id' => 'Rack',
|
||||
'Class:DatacenterDevice/Attribute:rack_id+' => '',
|
||||
@@ -302,7 +302,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:NetworkDevice' => 'Network Device',
|
||||
'Class:NetworkDevice+' => '',
|
||||
'Class:NetworkDevice+' => 'Any type of network device: router, switch, hub, load balancer, firewall…',
|
||||
'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_id' => 'Network type',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_id+' => '',
|
||||
@@ -324,7 +324,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Server' => 'Server',
|
||||
'Class:Server+' => '',
|
||||
'Class:Server+' => 'Datacenter Device managing access to centralized resources or services. It contains an OS Version executing Software Instances.',
|
||||
'Class:Server/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Server/Attribute:osfamily_id' => 'OS family',
|
||||
'Class:Server/Attribute:osfamily_id+' => '',
|
||||
@@ -352,7 +352,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:StorageSystem' => 'Storage System',
|
||||
'Class:StorageSystem+' => '',
|
||||
'Class:StorageSystem+' => 'Datacenter Device. Network switch compatible with the Fibre Channel protocol used by storage networks.',
|
||||
'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logical volumes',
|
||||
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system',
|
||||
@@ -364,7 +364,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:SANSwitch' => 'SAN Switch',
|
||||
'Class:SANSwitch+' => '',
|
||||
'Class:SANSwitch+' => 'A SAN Switch is a network switch compatible with the Fibre Channel protocol used by storage networks. It is a Datacenter Device.',
|
||||
'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Devices',
|
||||
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch',
|
||||
@@ -376,7 +376,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:TapeLibrary' => 'Tape Library',
|
||||
'Class:TapeLibrary+' => '',
|
||||
'Class:TapeLibrary+' => 'Datacenter Device which hosts multiple magnetic Tapes (or cartridge). Tape Libraries are used for data backup or archiving.',
|
||||
'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:TapeLibrary/Attribute:tapes_list' => 'Tapes',
|
||||
'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library',
|
||||
@@ -388,7 +388,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:NAS' => 'NAS',
|
||||
'Class:NAS+' => '',
|
||||
'Class:NAS+' => 'Datacenter Device. High-capacity storage device connected to a network. In '.ITOP_APPLICATION_SHORT.' a NAS (Network-attached storage) is linked to NAS File Systems.',
|
||||
'Class:NAS/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:NAS/Attribute:nasfilesystem_list' => 'Filesystems',
|
||||
'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS',
|
||||
@@ -400,7 +400,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PC' => 'PC',
|
||||
'Class:PC+' => '',
|
||||
'Class:PC+' => 'Connectable CI. A Personal Computer (PC) is a Physical Device, Desktop or Laptop, running an operating system and designed to execute Software Instances.',
|
||||
'Class:PC/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:PC/Attribute:osfamily_id' => 'OS family',
|
||||
'Class:PC/Attribute:osfamily_id+' => '',
|
||||
@@ -428,7 +428,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Printer' => 'Printer',
|
||||
'Class:Printer+' => '',
|
||||
'Class:Printer+' => 'Connectable CI. Physical Device connected either to the network or to a PC.',
|
||||
'Class:Printer/ComplementaryName' => '%1$s - %2$s',
|
||||
]);
|
||||
|
||||
@@ -438,7 +438,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PowerConnection' => 'Power Connection',
|
||||
'Class:PowerConnection+' => '',
|
||||
'Class:PowerConnection+' => 'Abstract class grouping physical devices used for electrical power supply.',
|
||||
'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s',
|
||||
]);
|
||||
|
||||
@@ -448,7 +448,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PowerSource' => 'Power Source',
|
||||
'Class:PowerSource+' => '',
|
||||
'Class:PowerSource+' => 'Physical Power Connection. Used in a datacenter to document any kind of power source (main power inlet, breaker…) that is not a PDU.',
|
||||
'Class:PowerSource/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:PowerSource/Attribute:pdus_list' => 'PDUs',
|
||||
'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source',
|
||||
@@ -460,7 +460,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PDU' => 'PDU',
|
||||
'Class:PDU+' => '',
|
||||
'Class:PDU+' => 'Power Connection. PDU (Power Distribution Unit) is a device fitted with multiple outputs designed to distribute electric power, especially to racks of computers and networking equipment located within a datacenter.',
|
||||
'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s',
|
||||
'Class:PDU/Attribute:rack_id' => 'Rack',
|
||||
'Class:PDU/Attribute:rack_id+' => '',
|
||||
@@ -478,7 +478,8 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Peripheral' => 'Peripheral',
|
||||
'Class:Peripheral+' => '',
|
||||
'Class:Peripheral+' => 'Physical device, used to document any kind of computer peripheral.
|
||||
For example: external hard drives, scanners, input devices (trackballs, bar code scanners), etc…',
|
||||
'Class:Peripheral/ComplementaryName' => '%1$s - %2$s',
|
||||
]);
|
||||
|
||||
@@ -488,7 +489,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Enclosure' => 'Enclosure',
|
||||
'Class:Enclosure+' => '',
|
||||
'Class:Enclosure+' => 'Physical Device. Cabinet containing baffles, fans... which can be mounted inside a Rack or directly fitted on the wall of a datacenter.',
|
||||
'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s',
|
||||
'Class:Enclosure/Attribute:rack_id' => 'Rack',
|
||||
'Class:Enclosure/Attribute:rack_id+' => '',
|
||||
@@ -506,7 +507,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:ApplicationSolution' => 'Application Solution',
|
||||
'Class:ApplicationSolution+' => '',
|
||||
'Class:ApplicationSolution+' => 'Application Solutions describe complex applications that are made of (or depend on) several basic components. The main information conveyed by an Application Solution is its list of relationships.',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'All the configuration items that compose this application solution',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Business processes',
|
||||
@@ -529,7 +530,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:BusinessProcess' => 'Business Process',
|
||||
'Class:BusinessProcess+' => '',
|
||||
'Class:BusinessProcess+' => 'A Business Process is used to document a high-level process or an important application for the operations. It is quite similar to an Application Solution but for describing higher level applications or whole processes in the organization.',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Application solutions',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'All the application solutions that impact this business process',
|
||||
'Class:BusinessProcess/Attribute:status' => 'Status',
|
||||
@@ -540,13 +541,49 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'inactive',
|
||||
]);
|
||||
|
||||
//
|
||||
// Class: Software
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Software' => 'Software',
|
||||
'Class:Software+' => 'Software is a generic item in the software catalog. It has a particular version. In '.ITOP_APPLICATION_SHORT.' a Software has a category amongst: DB Server, Middleware, PC Software, Web Server and Other Software.',
|
||||
'Class:Software/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Software/Attribute:name' => 'Name',
|
||||
'Class:Software/Attribute:name+' => '',
|
||||
'Class:Software/Attribute:vendor' => 'Vendor',
|
||||
'Class:Software/Attribute:vendor+' => '',
|
||||
'Class:Software/Attribute:version' => 'Version',
|
||||
'Class:Software/Attribute:version+' => '',
|
||||
'Class:Software/Attribute:documents_list' => 'Documents',
|
||||
'Class:Software/Attribute:documents_list+' => 'All the documents linked to this software',
|
||||
'Class:Software/Attribute:type' => 'Type',
|
||||
'Class:Software/Attribute:type+' => '',
|
||||
'Class:Software/Attribute:type/Value:DBServer' => 'DB Server',
|
||||
'Class:Software/Attribute:type/Value:DBServer+' => 'DB Server',
|
||||
'Class:Software/Attribute:type/Value:Middleware' => 'Middleware',
|
||||
'Class:Software/Attribute:type/Value:Middleware+' => 'Middleware',
|
||||
'Class:Software/Attribute:type/Value:OtherSoftware' => 'Other Software',
|
||||
'Class:Software/Attribute:type/Value:OtherSoftware+' => 'Other Software',
|
||||
'Class:Software/Attribute:type/Value:PCSoftware' => 'PC Software',
|
||||
'Class:Software/Attribute:type/Value:PCSoftware+' => 'PC Software',
|
||||
'Class:Software/Attribute:type/Value:WebServer' => 'Web Server',
|
||||
'Class:Software/Attribute:type/Value:WebServer+' => 'Web Server',
|
||||
'Class:Software/Attribute:softwareinstance_list' => 'Software Instances',
|
||||
'Class:Software/Attribute:softwareinstance_list+' => 'All the software instances for this software',
|
||||
'Class:Software/Attribute:softwarepatch_list' => 'Software Patches',
|
||||
'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software',
|
||||
'Class:Software/Attribute:softwarelicence_list' => 'Software Licenses',
|
||||
'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software',
|
||||
]);
|
||||
|
||||
//
|
||||
// Class: SoftwareInstance
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:SoftwareInstance' => 'Software Instance',
|
||||
'Class:SoftwareInstance+' => '',
|
||||
'Class:SoftwareInstance+' => 'Abstract class representing the deployment of a Software on a device (Server, PC, VirtualMachine). In '.ITOP_APPLICATION_SHORT.' there are different types of Software Instance: DB Server, Middleware, PC Software, Web Server and Other Software',
|
||||
'Class:SoftwareInstance/Attribute:system_id' => 'System',
|
||||
'Class:SoftwareInstance/Attribute:system_id+' => 'The system can be a Server, a Virtual Machine, a PC, ...',
|
||||
'Class:SoftwareInstance/Attribute:system_name' => 'System name',
|
||||
@@ -575,7 +612,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Middleware' => 'Middleware',
|
||||
'Class:Middleware+' => '',
|
||||
'Class:Middleware+' => 'Software Instance offering services to other software (like: Tomcat, JBoss, Talend, Microsoft BizTalk, IBM Websphere or Lotus Domino) installed on a particular system (PC, Server or Virtual Machine).',
|
||||
'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware instances',
|
||||
'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware',
|
||||
]);
|
||||
@@ -586,7 +623,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:DBServer' => 'DB Server',
|
||||
'Class:DBServer+' => '',
|
||||
'Class:DBServer+' => 'Software Instance offering Web services (like Apache 2.4, Nginx 1.29.4, IIS 7.0) installed on a specific system (PC, Server or Virtual Machine).',
|
||||
'Class:DBServer/Attribute:dbschema_list' => 'DB schemas',
|
||||
'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server',
|
||||
]);
|
||||
@@ -596,8 +633,8 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:WebServer' => 'Web server',
|
||||
'Class:WebServer+' => '',
|
||||
'Class:WebServer' => 'Web Server',
|
||||
'Class:WebServer+' => 'It is a Software Instance, offering Web services (like Apache 2.4, Nginx 1.29.4, IIS 7.0) installed on a specific system (PC, Server or Virtual Machine).',
|
||||
'Class:WebServer/Attribute:webapp_list' => 'Web applications',
|
||||
'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server',
|
||||
]);
|
||||
@@ -608,7 +645,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PCSoftware' => 'PC Software',
|
||||
'Class:PCSoftware+' => '',
|
||||
'Class:PCSoftware+' => 'Software Instance for software (like MS Office, Adobe Photoshop or Filezilla) installed on a PC.',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -617,7 +654,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:OtherSoftware' => 'Other Software',
|
||||
'Class:OtherSoftware+' => '',
|
||||
'Class:OtherSoftware+' => 'Any type of Software Instance that do not fit in the other categories: PC Software, Middleware, DB server or Web Server.',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -626,7 +663,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:MiddlewareInstance' => 'Middleware Instance',
|
||||
'Class:MiddlewareInstance+' => '',
|
||||
'Class:MiddlewareInstance+' => 'Functional CI representing a piece of one Middleware. A Middleware being in '.ITOP_APPLICATION_SHORT.' is a Software Instance offering services to other software.',
|
||||
'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:MiddlewareInstance/Attribute:middleware_id' => 'Middleware',
|
||||
'Class:MiddlewareInstance/Attribute:middleware_id+' => '',
|
||||
@@ -640,7 +677,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:DatabaseSchema' => 'Database Schema',
|
||||
'Class:DatabaseSchema+' => '',
|
||||
'Class:DatabaseSchema+' => 'Functional CI. Dabatase instance running of a specific DB server.',
|
||||
'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:DatabaseSchema/Attribute:dbserver_id' => 'DB server',
|
||||
'Class:DatabaseSchema/Attribute:dbserver_id+' => '',
|
||||
@@ -654,7 +691,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:WebApplication' => 'Web Application',
|
||||
'Class:WebApplication+' => '',
|
||||
'Class:WebApplication+' => 'Functional CI. Instance of an application accessible using a web browser and that runs on a given Web Server instance. For eg. this iTop that you\'re looking at.',
|
||||
'Class:WebApplication/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:WebApplication/Attribute:webserver_id' => 'Web server',
|
||||
'Class:WebApplication/Attribute:webserver_id+' => '',
|
||||
@@ -670,7 +707,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:VirtualDevice' => 'Virtual Device',
|
||||
'Class:VirtualDevice+' => '',
|
||||
'Class:VirtualDevice+' => 'Functional CI. Abstract class used for server virtualization.',
|
||||
'Class:VirtualDevice/Attribute:status' => 'Status',
|
||||
'Class:VirtualDevice/Attribute:status+' => '',
|
||||
'Class:VirtualDevice/Attribute:status/Value:implementation' => 'implementation',
|
||||
@@ -691,7 +728,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:VirtualHost' => 'Virtual Host',
|
||||
'Class:VirtualHost+' => '',
|
||||
'Class:VirtualHost+' => 'Virtual Device. Abstract class used for devices hosting Virtual Machines.',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtual machines',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host',
|
||||
]);
|
||||
@@ -702,7 +739,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Hypervisor' => 'Hypervisor',
|
||||
'Class:Hypervisor+' => '',
|
||||
'Class:Hypervisor+' => 'Virtual Host. Virtualization software (MS Hyper-V, VMWare ESX, Xen, etc.), running on a physical Server and supporting the creation of Virtual Machines.',
|
||||
'Class:Hypervisor/Attribute:farm_id' => 'Farm',
|
||||
'Class:Hypervisor/Attribute:farm_id+' => '',
|
||||
'Class:Hypervisor/Attribute:farm_name' => 'Farm name',
|
||||
@@ -719,7 +756,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Farm' => 'Farm',
|
||||
'Class:Farm+' => '',
|
||||
'Class:Farm+' => 'Virtual Host. A Farm (or cluster) is a group of Hypervisors pooled together and sharing storage resources to provide an overall fault tolerant system for hosting Virtual Machines.',
|
||||
'Class:Farm/Attribute:hypervisor_list' => 'Hypervisors',
|
||||
'Class:Farm/Attribute:hypervisor_list+' => 'All the hypervisors that compose this farm',
|
||||
'Class:Farm/Attribute:redundancy' => 'High availability',
|
||||
@@ -734,7 +771,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:VirtualMachine' => 'Virtual Machine',
|
||||
'Class:VirtualMachine+' => '',
|
||||
'Class:VirtualMachine+' => 'Virtual Device. Virtual equivalent to a Server, it is hosted either on an Hypervisor or on a Farm.',
|
||||
'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:VirtualMachine/Attribute:virtualhost_id' => 'Virtual host',
|
||||
'Class:VirtualMachine/Attribute:virtualhost_id+' => '',
|
||||
@@ -768,7 +805,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:LogicalVolume' => 'Logical Volume',
|
||||
'Class:LogicalVolume+' => '',
|
||||
'Class:LogicalVolume+' => 'The unit of storage managed inside a Storage System.',
|
||||
'Class:LogicalVolume/Attribute:name' => 'Name',
|
||||
'Class:LogicalVolume/Attribute:name+' => '',
|
||||
'Class:LogicalVolume/Attribute:lun_id' => 'LUN ID',
|
||||
@@ -857,7 +894,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Tape' => 'Tape',
|
||||
'Class:Tape+' => '',
|
||||
'Class:Tape+' => 'A Tape (or cartridge) within '.ITOP_APPLICATION_SHORT.' is removable piece of storage part of a Tape Library. ',
|
||||
'Class:Tape/Attribute:name' => 'Name',
|
||||
'Class:Tape/Attribute:name+' => '',
|
||||
'Class:Tape/Attribute:description' => 'Description',
|
||||
@@ -876,7 +913,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:NASFileSystem' => 'NAS File System',
|
||||
'Class:NASFileSystem+' => '',
|
||||
'Class:NASFileSystem+' => 'Represents a shared file system hosted inside a given NAS (Network Attached Storage).',
|
||||
'Class:NASFileSystem/Attribute:name' => 'Name',
|
||||
'Class:NASFileSystem/Attribute:name+' => '',
|
||||
'Class:NASFileSystem/Attribute:description' => 'Description',
|
||||
@@ -891,49 +928,13 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:NASFileSystem/Attribute:nas_name+' => '',
|
||||
]);
|
||||
|
||||
//
|
||||
// Class: Software
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Software' => 'Software',
|
||||
'Class:Software+' => '',
|
||||
'Class:Software/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Software/Attribute:name' => 'Name',
|
||||
'Class:Software/Attribute:name+' => '',
|
||||
'Class:Software/Attribute:vendor' => 'Vendor',
|
||||
'Class:Software/Attribute:vendor+' => '',
|
||||
'Class:Software/Attribute:version' => 'Version',
|
||||
'Class:Software/Attribute:version+' => '',
|
||||
'Class:Software/Attribute:documents_list' => 'Documents',
|
||||
'Class:Software/Attribute:documents_list+' => 'All the documents linked to this software',
|
||||
'Class:Software/Attribute:type' => 'Type',
|
||||
'Class:Software/Attribute:type+' => '',
|
||||
'Class:Software/Attribute:type/Value:DBServer' => 'DB Server',
|
||||
'Class:Software/Attribute:type/Value:DBServer+' => 'DB Server',
|
||||
'Class:Software/Attribute:type/Value:Middleware' => 'Middleware',
|
||||
'Class:Software/Attribute:type/Value:Middleware+' => 'Middleware',
|
||||
'Class:Software/Attribute:type/Value:OtherSoftware' => 'Other Software',
|
||||
'Class:Software/Attribute:type/Value:OtherSoftware+' => 'Other Software',
|
||||
'Class:Software/Attribute:type/Value:PCSoftware' => 'PC Software',
|
||||
'Class:Software/Attribute:type/Value:PCSoftware+' => 'PC Software',
|
||||
'Class:Software/Attribute:type/Value:WebServer' => 'Web Server',
|
||||
'Class:Software/Attribute:type/Value:WebServer+' => 'Web Server',
|
||||
'Class:Software/Attribute:softwareinstance_list' => 'Software Instances',
|
||||
'Class:Software/Attribute:softwareinstance_list+' => 'All the software instances for this software',
|
||||
'Class:Software/Attribute:softwarepatch_list' => 'Software Patches',
|
||||
'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software',
|
||||
'Class:Software/Attribute:softwarelicence_list' => 'Software Licenses',
|
||||
'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software',
|
||||
]);
|
||||
|
||||
//
|
||||
// Class: Patch
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Patch' => 'Patch',
|
||||
'Class:Patch+' => '',
|
||||
'Class:Patch+' => 'Abstract class, for patch, hotfix, security fix or service pack for an OS or a Software.',
|
||||
'Class:Patch/Attribute:name' => 'Name',
|
||||
'Class:Patch/Attribute:name+' => '',
|
||||
'Class:Patch/Attribute:documents_list' => 'Documents',
|
||||
@@ -950,7 +951,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:OSPatch' => 'OS Patch',
|
||||
'Class:OSPatch+' => '',
|
||||
'Class:OSPatch+' => 'Patch, hotfix, security fix or service pack for a given operating system.',
|
||||
'Class:OSPatch/Attribute:functionalcis_list' => 'Devices',
|
||||
'Class:OSPatch/Attribute:functionalcis_list+' => 'All the systems where this patch is installed',
|
||||
'Class:OSPatch/Attribute:osversion_id' => 'OS version',
|
||||
@@ -965,7 +966,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:SoftwarePatch' => 'Software Patch',
|
||||
'Class:SoftwarePatch+' => '',
|
||||
'Class:SoftwarePatch+' => 'Patch, hotfix, security fix or service pack for a given software.',
|
||||
'Class:SoftwarePatch/Attribute:software_id' => 'Software',
|
||||
'Class:SoftwarePatch/Attribute:software_id+' => '',
|
||||
'Class:SoftwarePatch/Attribute:software_name' => 'Software name',
|
||||
@@ -980,8 +981,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Licence' => 'License',
|
||||
'Class:Licence+' => '',
|
||||
|
||||
'Class:Licence+' => 'Abstract class. A license contract for a particular OS version or Software',
|
||||
'Class:Licence/Attribute:name' => 'Name',
|
||||
'Class:Licence/Attribute:name+' => '',
|
||||
'Class:Licence/Attribute:documents_list' => 'Documents',
|
||||
@@ -1016,7 +1016,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:OSLicence' => 'OS License',
|
||||
'Class:OSLicence+' => '',
|
||||
'Class:OSLicence+' => 'A license contract for a particular operating system. The license is related to one operating system (for example Windows 2008 R2) and can be associated with several servers or virtual machines.',
|
||||
'Class:OSLicence/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:OSLicence/Attribute:osversion_id' => 'OS version',
|
||||
'Class:OSLicence/Attribute:osversion_id+' => '',
|
||||
@@ -1034,7 +1034,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:SoftwareLicence' => 'Software License',
|
||||
'Class:SoftwareLicence+' => '',
|
||||
'Class:SoftwareLicence+' => 'A license contract for a particular software. The license is related to one software (for example MS Office 2010) and can be associated with several instances of this software.',
|
||||
'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:SoftwareLicence/Attribute:software_id' => 'Software',
|
||||
'Class:SoftwareLicence/Attribute:software_id+' => '',
|
||||
@@ -1068,7 +1068,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:OSVersion' => 'OS Version',
|
||||
'Class:OSVersion+' => '',
|
||||
'Class:OSVersion+' => 'Typology. List of the possible values for the "OS Version" of a computer (Server, Virtual Machine or PC). The OS Versions are organized per OS Family.',
|
||||
'Class:OSVersion/Attribute:osfamily_id' => 'OS family',
|
||||
'Class:OSVersion/Attribute:osfamily_id+' => '',
|
||||
'Class:OSVersion/Attribute:osfamily_name' => 'OS family name',
|
||||
@@ -1081,7 +1081,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:OSFamily' => 'OS Family',
|
||||
'Class:OSFamily+' => '',
|
||||
'Class:OSFamily+' => 'Typology. List of the possible values for the "OS Family" attribute of Servers, Virtual Machines and PCs.',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -1090,7 +1090,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Brand' => 'Brand',
|
||||
'Class:Brand+' => '',
|
||||
'Class:Brand+' => 'Typology. List of the possible values for the "Brand" attribute of Physical Device.',
|
||||
'Class:Brand/Attribute:logo' => 'Logo',
|
||||
'Class:Brand/Attribute:logo+' => '',
|
||||
'Class:Brand/Attribute:physicaldevices_list' => 'Physical devices',
|
||||
@@ -1105,7 +1105,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Model' => 'Device Model',
|
||||
'Class:Model+' => '',
|
||||
'Class:Model+' => 'Typology. List the possible values for the "Model" attribute of a Physical Device. Each Model belongs to a single Brand, and usually applies to a single type of Physical Devices.',
|
||||
'Class:Model/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Model/Attribute:brand_id' => 'Brand',
|
||||
'Class:Model/Attribute:brand_id+' => '',
|
||||
@@ -1163,7 +1163,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:NetworkDeviceType' => 'Network Device Type',
|
||||
'Class:NetworkDeviceType+' => '',
|
||||
'Class:NetworkDeviceType+' => 'Typology. The possible values for the "Type" of a Network Device (e.g. Router, Switch, Firewall, etc.).',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Network devices',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type',
|
||||
]);
|
||||
@@ -1174,7 +1174,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:IOSVersion' => 'IOS Version',
|
||||
'Class:IOSVersion+' => '',
|
||||
'Class:IOSVersion+' => 'Typology. Possible values for the types of operating system for network devices (IOS from Cisco\'s Internetwork Operating System).',
|
||||
'Class:IOSVersion/Attribute:brand_id' => 'Brand',
|
||||
'Class:IOSVersion/Attribute:brand_id+' => '',
|
||||
'Class:IOSVersion/Attribute:brand_name' => 'Brand name',
|
||||
@@ -1259,7 +1259,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Subnet' => 'Subnet',
|
||||
'Class:Subnet+' => '',
|
||||
'Class:Subnet+' => 'Segment of an IP network, defined by an IP address and a mask',
|
||||
'Class:Subnet/Name' => '%1$s/%2$s',
|
||||
'Class:Subnet/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Subnet/Attribute:description' => 'Description',
|
||||
@@ -1284,7 +1284,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:VLAN' => 'VLAN',
|
||||
'Class:VLAN+' => '',
|
||||
'Class:VLAN+' => 'A Virtual LAN is used to group together in a logical way networks Subnets and Physical Interfaces that participate in the same VLAN.',
|
||||
'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag',
|
||||
'Class:VLAN/Attribute:vlan_tag+' => '',
|
||||
'Class:VLAN/Attribute:description' => 'Description',
|
||||
@@ -1325,7 +1325,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:NetworkInterface' => 'Network Interface',
|
||||
'Class:NetworkInterface+' => '',
|
||||
'Class:NetworkInterface+' => 'Abstract class for all types of network interfaces.',
|
||||
'Class:NetworkInterface/Attribute:name' => 'Name',
|
||||
'Class:NetworkInterface/Attribute:name+' => '',
|
||||
'Class:NetworkInterface/Attribute:finalclass' => 'NetworkInterface sub-class',
|
||||
@@ -1338,7 +1338,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:IPInterface' => 'IP Interface',
|
||||
'Class:IPInterface+' => '',
|
||||
'Class:IPInterface+' => 'Abstract class. A type of Network Interface with an IP address',
|
||||
'Class:IPInterface/Attribute:ipaddress' => 'IP address',
|
||||
'Class:IPInterface/Attribute:ipaddress+' => '',
|
||||
|
||||
@@ -1360,12 +1360,16 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PhysicalInterface' => 'Physical Interface',
|
||||
'Class:PhysicalInterface+' => '',
|
||||
'Class:PhysicalInterface+' => 'A type of IP Interface that represents a physical network interface (e.g. an Ethernet card).',
|
||||
'Class:PhysicalInterface/Name' => '%2$s %1$s',
|
||||
'Class:PhysicalInterface/Attribute:connectableci_id' => 'Device',
|
||||
'Class:PhysicalInterface/Attribute:connectableci_id+' => '',
|
||||
'Class:PhysicalInterface/Attribute:connectableci_name' => 'Device name',
|
||||
'Class:PhysicalInterface/Attribute:connectableci_name+' => '',
|
||||
'Class:PhysicalInterface/Attribute:org_id' => 'Org id',
|
||||
'Class:PhysicalInterface/Attribute:org_id+' => '',
|
||||
'Class:PhysicalInterface/Attribute:location_id' => 'Location id',
|
||||
'Class:PhysicalInterface/Attribute:location_id+' => '',
|
||||
'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs',
|
||||
'Class:PhysicalInterface/Attribute:vlans_list+' => '',
|
||||
]);
|
||||
@@ -1398,7 +1402,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:LogicalInterface' => 'Logical Interface',
|
||||
'Class:LogicalInterface+' => '',
|
||||
'Class:LogicalInterface+' => 'IP Interface which is not associated permanently with a particular physical port, the association is dynamic. It can be used for Virtual Machine.',
|
||||
'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtual machine',
|
||||
'Class:LogicalInterface/Attribute:virtualmachine_id+' => '',
|
||||
'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Virtual machine name',
|
||||
@@ -1411,7 +1415,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:FiberChannelInterface' => 'Fiber Channel Interface',
|
||||
'Class:FiberChannelInterface+' => '',
|
||||
'Class:FiberChannelInterface+' => 'Network Interface to a high-speed network technology primarily used for connecting Storage Systems.',
|
||||
'Class:FiberChannelInterface/Attribute:speed' => 'Speed',
|
||||
'Class:FiberChannelInterface/Attribute:speed+' => '',
|
||||
'Class:FiberChannelInterface/Attribute:topology' => 'Topology',
|
||||
@@ -1494,7 +1498,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Group' => 'Group',
|
||||
'Class:Group+' => '',
|
||||
'Class:Group+' => 'Group is designed to define explicit sets of configurations items for any project purpose. In contrast to Application Solution, a Group is not impacted by any of its component and does not impact them. For example when doing an OS migration, Group can be convenient to gather “Servers to be migrated”. Migrated servers being removed from the group as the migration progresses.',
|
||||
'Class:Group/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Group/Attribute:name' => 'Name',
|
||||
'Class:Group/Attribute:name+' => '',
|
||||
@@ -1515,7 +1519,6 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Group/Attribute:type' => 'Type',
|
||||
'Class:Group/Attribute:type+' => '',
|
||||
'Class:Group/Attribute:parent_id' => 'Parent Group',
|
||||
|
||||
'Class:Group/Attribute:parent_id+' => '',
|
||||
'Class:Group/Attribute:parent_name' => 'Name',
|
||||
'Class:Group/Attribute:parent_name+' => '',
|
||||
@@ -1629,15 +1632,4 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
'Menu:OSVersion+' => '',
|
||||
'Menu:Software' => 'Software catalog',
|
||||
'Menu:Software+' => 'Software catalog',
|
||||
]);
|
||||
|
||||
//
|
||||
// Class: PhysicalInterface
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:PhysicalInterface/Attribute:org_id' => 'Org id',
|
||||
'Class:PhysicalInterface/Attribute:org_id+' => '',
|
||||
'Class:PhysicalInterface/Attribute:location_id' => 'Location id',
|
||||
'Class:PhysicalInterface/Attribute:location_id+' => '',
|
||||
]);
|
||||
]);
|
||||
@@ -596,7 +596,7 @@ Dict::Add('EN GB', 'British English', 'British English', [
|
||||
//
|
||||
|
||||
Dict::Add('EN GB', 'British English', 'British English', [
|
||||
'Class:WebServer' => 'Web server',
|
||||
'Class:WebServer' => 'Web Server',
|
||||
'Class:WebServer+' => '',
|
||||
'Class:WebServer/Attribute:webapp_list' => 'Web applications',
|
||||
'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server',
|
||||
|
||||
@@ -85,7 +85,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:FunctionalCI' => 'CI Fonctionnel',
|
||||
'Class:FunctionalCI+' => '',
|
||||
'Class:FunctionalCI+' => 'Classe abstraite regroupant plusieurs types d’éléments de configuration.',
|
||||
'Class:FunctionalCI/Attribute:name' => 'Nom',
|
||||
'Class:FunctionalCI/Attribute:name+' => '',
|
||||
'Class:FunctionalCI/Attribute:description' => 'Description',
|
||||
@@ -134,7 +134,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:PhysicalDevice' => 'Matériel physique',
|
||||
'Class:PhysicalDevice+' => '',
|
||||
'Class:PhysicalDevice+' => 'Classe abstraite regroupant les types physiques d’éléments de configuration. Un matériel physique peut être localisé. Il possède généralement une marque et un modèle.',
|
||||
'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:PhysicalDevice/Attribute:serialnumber' => 'Numéro de série',
|
||||
'Class:PhysicalDevice/Attribute:serialnumber+' => '',
|
||||
@@ -174,7 +174,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:Rack' => 'Rack',
|
||||
'Class:Rack+' => '',
|
||||
'Class:Rack+' => 'Conteneur physique pour équipements et châssis.',
|
||||
'Class:Rack/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Rack/Attribute:nb_u' => 'NB Unité',
|
||||
'Class:Rack/Attribute:nb_u+' => '',
|
||||
@@ -202,7 +202,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:TelephonyCI' => 'CI Téléphonie',
|
||||
'Class:TelephonyCI+' => '',
|
||||
'Class:TelephonyCI+' => 'Classe abstraite regroupant les équipements de téléphonie.',
|
||||
'Class:TelephonyCI/Attribute:phonenumber' => 'Numéro',
|
||||
'Class:TelephonyCI/Attribute:phonenumber+' => '',
|
||||
]);
|
||||
@@ -213,7 +213,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:Phone' => 'Téléphone',
|
||||
'Class:Phone+' => '',
|
||||
'Class:Phone+' => 'Équipement individuel. Téléphone filaire classique.',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -222,7 +222,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:MobilePhone' => 'Téléphone mobile',
|
||||
'Class:MobilePhone+' => '',
|
||||
'Class:MobilePhone+' => 'Équipement individuel. Téléphone portable.',
|
||||
'Class:MobilePhone/Attribute:imei' => 'IMEI',
|
||||
'Class:MobilePhone/Attribute:imei+' => '',
|
||||
'Class:MobilePhone/Attribute:hw_pin' => 'PIN',
|
||||
@@ -235,7 +235,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:IPPhone' => 'Téléphone IP',
|
||||
'Class:IPPhone+' => '',
|
||||
'Class:IPPhone+' => 'Équipement individuel. Équipement physique dédié aux appels téléphoniques, connecté à un réseau.',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -244,7 +244,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:Tablet' => 'Tablette',
|
||||
'Class:Tablet+' => '',
|
||||
'Class:Tablet+' => 'Équipement individuel. Par exemple iPad, Galaxy Note/Tab Nexus, Kindle...',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -252,8 +252,8 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
//
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:ConnectableCI' => 'CI connecté',
|
||||
'Class:ConnectableCI+' => '',
|
||||
'Class:ConnectableCI' => 'Matériel connecté',
|
||||
'Class:ConnectableCI+' => 'Matériel physique pouvant être connecté à un réseau.',
|
||||
'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Equipements réseaux',
|
||||
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Tous les équipements réseaux connectés à ce matériel',
|
||||
@@ -272,8 +272,8 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
//
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:DatacenterDevice' => 'Matériel Datacenter',
|
||||
'Class:DatacenterDevice+' => '',
|
||||
'Class:DatacenterDevice' => 'Matériel de Datacenter',
|
||||
'Class:DatacenterDevice+' => 'Matériel connecté. Un équipement physique installé dans un datacenter, généralement dans un rack ou un châssis. Il peut s’agir de serveurs, de systèmes de stockage, de switchs SAN, de bandothèques, de NAS…',
|
||||
'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:DatacenterDevice/Attribute:rack_id' => 'Rack',
|
||||
'Class:DatacenterDevice/Attribute:rack_id+' => '',
|
||||
@@ -317,7 +317,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:NetworkDevice' => 'Equipement réseau',
|
||||
'Class:NetworkDevice+' => '',
|
||||
'Class:NetworkDevice+' => 'Matériel connecté et rackable. Tout type d’équipement réseau : routeur, switch, hub, load balancer, firewall…',
|
||||
'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_id' => 'Type',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_id+' => '',
|
||||
@@ -339,7 +339,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:Server' => 'Serveur',
|
||||
'Class:Server+' => '',
|
||||
'Class:Server+' => 'Matériel connecté et rackable qui fournit des ressources de calcul, de stockage ou de connectivité. Il tourne sous une Version d\'OS et héberge des Applications Logicielles.',
|
||||
'Class:Server/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Server/Attribute:osfamily_id' => 'Famille OS',
|
||||
'Class:Server/Attribute:osfamily_id+' => '',
|
||||
@@ -385,7 +385,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:SANSwitch' => 'Switch SAN',
|
||||
'Class:SANSwitch+' => '',
|
||||
'Class:SANSwitch+' => 'Matériel connecté et rackable. C\'est un switch utilisé par les réseaux de stockage (Storage Area Network). Il support le protocole Fibre Channel.',
|
||||
'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Matériels connectés',
|
||||
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Tous les matériels connectés à ce switch SAN',
|
||||
@@ -397,7 +397,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:TapeLibrary' => 'Bandothèque',
|
||||
'Class:TapeLibrary+' => '',
|
||||
'Class:TapeLibrary+' => 'Matériel connecté et rackable hébergeant plusieurs bandes magnétiques (ou cartouches). Utilisé pour la sauvegarde ou l’archivage.',
|
||||
'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:TapeLibrary/Attribute:tapes_list' => 'Bandes',
|
||||
'Class:TapeLibrary/Attribute:tapes_list+' => 'Toutes les bandes dans cette bandothèque',
|
||||
@@ -415,7 +415,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:NAS' => 'NAS',
|
||||
'Class:NAS+' => '',
|
||||
'Class:NAS+' => 'Matériel connecté et rackable fournissant un stockage de haute capacité. Dans '.ITOP_APPLICATION_SHORT.', un NAS (Network-attached storage) est lié à des systèmes de fichiers NAS.',
|
||||
'Class:NAS/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:NAS/Attribute:nasfilesystem_list' => 'Systèmes de fichier NAS',
|
||||
'Class:NAS/Attribute:nasfilesystem_list+' => 'Tous les systèmes de fichier dans ce NAS',
|
||||
@@ -433,7 +433,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:PC' => 'PC',
|
||||
'Class:PC+' => '',
|
||||
'Class:PC+' => 'CI connectable. Un ordinateur personnel (PC) est un matériel physique, de bureau ou portable, tournant avec une version d\'OS et conçu pour exécuter des instances logicielles.',
|
||||
'Class:PC/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:PC/Attribute:osfamily_id' => 'Famille OS',
|
||||
'Class:PC/Attribute:osfamily_id+' => '',
|
||||
@@ -461,7 +461,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:Printer' => 'Imprimante',
|
||||
'Class:Printer+' => '',
|
||||
'Class:Printer+' => 'Connectable CI. Physical Device connected either to the network or to a PC.',
|
||||
'Class:Printer/ComplementaryName' => '%1$s - %2$s',
|
||||
]);
|
||||
|
||||
@@ -551,7 +551,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:ApplicationSolution' => 'Solution applicative',
|
||||
'Class:ApplicationSolution+' => '',
|
||||
'Class:ApplicationSolution+' => 'Les solutions applicatives décrivent des applications complexes composées de plusieurs composants de base. L’information principale est la liste de ses relations.',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'Tous les éléments de configuration qui composent cette solution applicative',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Processus métiers',
|
||||
@@ -563,7 +563,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:ApplicationSolution/Attribute:status/Value:inactive' => 'Inactif',
|
||||
'Class:ApplicationSolution/Attribute:status/Value:inactive+' => '',
|
||||
'Class:ApplicationSolution/Attribute:redundancy' => 'Analyse d\'impact : configuration de la redondance',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'La solution est opérationelle si tous les CIs qui la composent sont opérationnels',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'La solution est opérationnelle si tous les CIs qui la composent sont opérationnels',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/count' => 'Nombre minimal de CIs pour que la solution soit opérationnelle : %1$s',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/percent' => 'Pourcentage minimal de CIs pour que la solution soit opérationnelle : %1$s %%',
|
||||
]);
|
||||
@@ -574,7 +574,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:BusinessProcess' => 'Processus métier',
|
||||
'Class:BusinessProcess+' => '',
|
||||
'Class:BusinessProcess+' => 'Un processus métier sert à documenter un processus de haut niveau ou une application importante pour les opérations. Similaire à une solution applicative mais pour des applications ou processus d’organisation de plus haut niveau.',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Solutions applicatives',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'Toutes les solutions applicatives qui impactent ce processus métier',
|
||||
'Class:BusinessProcess/Attribute:applicationsolutions_list/UI:Links:Add:Button+' => 'Ajouter une %4$s',
|
||||
@@ -595,7 +595,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:SoftwareInstance' => 'Instance logiciel',
|
||||
'Class:SoftwareInstance+' => '',
|
||||
'Class:SoftwareInstance+' => 'Classe abstraite représentant le déploiement d’un logiciel sur un équipement (serveur, PC, machine virtuelle). Dans iTop, il existe différents types d’instances logicielles.',
|
||||
'Class:SoftwareInstance/Attribute:system_id' => 'Système',
|
||||
'Class:SoftwareInstance/Attribute:system_id+' => '',
|
||||
'Class:SoftwareInstance/Attribute:system_name' => 'Nom du système',
|
||||
@@ -675,7 +675,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:PCSoftware' => 'Logiciel PC',
|
||||
'Class:PCSoftware+' => 'Application logicielle sur PC',
|
||||
'Class:PCSoftware+' => 'Instance logicielle pour des logiciels (ex : MS Office, Photoshop, Filezilla) installés sur un PC.',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -707,7 +707,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:DatabaseSchema' => 'Instance de base de données',
|
||||
'Class:DatabaseSchema+' => '',
|
||||
'Class:DatabaseSchema+' => 'CI fonctionnel. Instance de base de données fonctionnant sur un serveur de BDD spécifique.',
|
||||
'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:DatabaseSchema/Attribute:dbserver_id' => 'Serveur de base de données',
|
||||
'Class:DatabaseSchema/Attribute:dbserver_id+' => '',
|
||||
@@ -721,7 +721,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:WebApplication' => 'Application Web',
|
||||
'Class:WebApplication+' => '',
|
||||
'Class:WebApplication+' => 'CI fonctionnel. Instance d’une application accessible via un navigateur web et s’exécutant sur un serveur web donné.',
|
||||
'Class:WebApplication/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:WebApplication/Attribute:webserver_id' => 'Serveur Web',
|
||||
'Class:WebApplication/Attribute:webserver_id+' => '',
|
||||
@@ -737,7 +737,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:VirtualDevice' => 'Equipement Virtuel',
|
||||
'Class:VirtualDevice+' => '',
|
||||
'Class:VirtualDevice+' => 'CI fonctionnel. Classe abstraite utilisée pour la virtualisation de serveurs.',
|
||||
'Class:VirtualDevice/Attribute:status' => 'Etat',
|
||||
'Class:VirtualDevice/Attribute:status+' => '',
|
||||
'Class:VirtualDevice/Attribute:status/Value:implementation' => 'Implémentation',
|
||||
@@ -758,7 +758,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:VirtualHost' => 'Hôte Virtuel',
|
||||
'Class:VirtualHost+' => '',
|
||||
'Class:VirtualHost+' => 'Équipement virtuel. Classe abstraite pour les équipements hébergeant des machines virtuelles.',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Machines virtuelles',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Toutes les machiens virtuelles hébergées par cet hôte',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list/UI:Links:Create:Button+' => 'Créer une %4$s',
|
||||
@@ -853,7 +853,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:LogicalVolume' => 'Volume logique',
|
||||
'Class:LogicalVolume+' => '',
|
||||
'Class:LogicalVolume+' => 'Unité de stockage gérée à l’intérieur d’un système de stockage.',
|
||||
'Class:LogicalVolume/Attribute:name' => 'Nom',
|
||||
'Class:LogicalVolume/Attribute:name+' => '',
|
||||
'Class:LogicalVolume/Attribute:lun_id' => 'LUN ID',
|
||||
@@ -982,7 +982,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:Software' => 'Logiciel',
|
||||
'Class:Software+' => '',
|
||||
'Class:Software+' => 'Un logiciel est un élément générique du catalogue logiciel. Il possède une version particulière. Dans iTop, un logiciel appartient à une catégorie : serveur de BDD, middleware, logiciel PC, serveur web ou autre.',
|
||||
'Class:Software/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Software/Attribute:name' => 'Nom',
|
||||
'Class:Software/Attribute:name+' => '',
|
||||
@@ -1128,7 +1128,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:OSLicence' => 'Licence OS',
|
||||
'Class:OSLicence+' => '',
|
||||
'Class:OSLicence+' => 'Contrat de licence pour un système d’exploitation particulier.',
|
||||
'Class:OSLicence/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:OSLicence/Attribute:osversion_id' => 'Version OS',
|
||||
'Class:OSLicence/Attribute:osversion_id+' => '',
|
||||
@@ -1158,7 +1158,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:SoftwareLicence' => 'Licence Logiciel',
|
||||
'Class:SoftwareLicence+' => '',
|
||||
'Class:SoftwareLicence+' => 'Contrat de licence pour un logiciel particulier.',
|
||||
'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:SoftwareLicence/Attribute:software_id' => 'Logiciel',
|
||||
'Class:SoftwareLicence/Attribute:software_id+' => '',
|
||||
@@ -1241,7 +1241,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:Model' => 'Modèle de matériel',
|
||||
'Class:Model+' => '',
|
||||
'Class:Model+' => 'Typologie. Liste des valeurs possibles pour le modèle d’un matériel physique.',
|
||||
'Class:Model/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Model/Attribute:brand_id' => 'Marque',
|
||||
'Class:Model/Attribute:brand_id+' => '',
|
||||
@@ -1305,7 +1305,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:NetworkDeviceType' => 'Type d\'équipement réseau',
|
||||
'Class:NetworkDeviceType+' => '',
|
||||
'Class:NetworkDeviceType+' => 'Typologie. Valeurs possibles pour le type d’un équipement réseau (ex : routeur, switch, firewall, etc.).',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Equipements réseaux',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Tous les équipements réseaux correspondant à ce type',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list/UI:Links:Create:Button+' => 'Créer un %4$s',
|
||||
@@ -1322,7 +1322,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:IOSVersion' => 'Version IOS',
|
||||
'Class:IOSVersion+' => '',
|
||||
'Class:IOSVersion+' => 'Typologie. Valeurs possibles pour les types de systèmes d’exploitation pour équipements réseau.',
|
||||
'Class:IOSVersion/Attribute:brand_id' => 'Marque',
|
||||
'Class:IOSVersion/Attribute:brand_id+' => '',
|
||||
'Class:IOSVersion/Attribute:brand_name' => 'Nom Marque',
|
||||
@@ -1490,7 +1490,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:IPInterface' => 'Interface IP',
|
||||
'Class:IPInterface+' => '',
|
||||
'Class:IPInterface+' => 'Classe abstraite. Type d’interface réseau avec une adresse IP.',
|
||||
'Class:IPInterface/Attribute:ipaddress' => 'Adresse IP',
|
||||
'Class:IPInterface/Attribute:ipaddress+' => '',
|
||||
'Class:IPInterface/Attribute:macaddress' => 'Adresse MAC',
|
||||
@@ -1511,7 +1511,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:PhysicalInterface' => 'Interface physique',
|
||||
'Class:PhysicalInterface+' => '',
|
||||
'Class:PhysicalInterface+' => 'Type d’interface IP représentant une interface réseau physique (ex : carte Ethernet).',
|
||||
'Class:PhysicalInterface/Name' => '%2$s %1$s',
|
||||
'Class:PhysicalInterface/Attribute:connectableci_id' => 'Matériel',
|
||||
'Class:PhysicalInterface/Attribute:connectableci_id+' => '',
|
||||
@@ -1562,7 +1562,7 @@ Dict::Add('FR FR', 'French', 'Français', [
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', [
|
||||
'Class:FiberChannelInterface' => 'Interface Fibre',
|
||||
'Class:FiberChannelInterface+' => '',
|
||||
'Class:FiberChannelInterface+' => 'Interface réseau vers une technologie haut débit principalement utilisée pour connecter des systèmes de stockage.',
|
||||
'Class:FiberChannelInterface/Attribute:speed' => 'Vitesse',
|
||||
'Class:FiberChannelInterface/Attribute:speed+' => '',
|
||||
'Class:FiberChannelInterface/Attribute:topology' => 'Topologie',
|
||||
|
||||
@@ -577,7 +577,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', [
|
||||
//
|
||||
|
||||
Dict::Add('IT IT', 'Italian', 'Italiano', [
|
||||
'Class:WebServer' => 'Web server',
|
||||
'Class:WebServer' => 'Web Server',
|
||||
'Class:WebServer+' => '~~',
|
||||
'Class:WebServer/Attribute:webapp_list' => 'Applicazioni web',
|
||||
'Class:WebServer/Attribute:webapp_list+' => 'Tutte le applicazioni web disponibili su questo server web',
|
||||
|
||||
@@ -577,7 +577,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
|
||||
//
|
||||
|
||||
Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
|
||||
'Class:WebServer' => 'Web server',
|
||||
'Class:WebServer' => 'Web Server',
|
||||
'Class:WebServer+' => '~~',
|
||||
'Class:WebServer/Attribute:webapp_list' => 'Webové aplikácie',
|
||||
'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~',
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:KnownError' => 'Known Error',
|
||||
'Class:KnownError+' => 'Error documented for a known issue',
|
||||
'Class:KnownError+' => 'Error with multiple occurrences, documented to ease troubleshooting.',
|
||||
'Class:KnownError/Attribute:name' => 'Name',
|
||||
'Class:KnownError/Attribute:name+' => 'This is expected to be a unique identifier within the Known Errors of this organization',
|
||||
'Class:KnownError/Attribute:org_id' => 'Organization',
|
||||
@@ -61,7 +61,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:KnownError/Attribute:cust_name' => 'Organization Name',
|
||||
'Class:KnownError/Attribute:cust_name+' => '',
|
||||
'Class:KnownError/Attribute:problem_id' => 'Related Problem',
|
||||
'Class:KnownError/Attribute:problem_id+' => 'The problem which couldn\'t be solved immediately and has led to the creation of this known error',
|
||||
'Class:KnownError/Attribute:problem_id+' => 'The problem which could\'nt be solved immediately and has led to the creation of this known error',
|
||||
'Class:KnownError/Attribute:problem_ref' => 'Related Problem Ref',
|
||||
'Class:KnownError/Attribute:problem_ref+' => '',
|
||||
'Class:KnownError/Attribute:symptom' => 'Symptom',
|
||||
|
||||
@@ -77,7 +77,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Problem' => 'Problem',
|
||||
'Class:Problem+' => '',
|
||||
'Class:Problem+' => 'An incident becomes a Problem when it is not resolved in a timely manner or when it recurs frequently',
|
||||
'Class:Problem/Attribute:status' => 'Status',
|
||||
'Class:Problem/Attribute:status+' => '',
|
||||
'Class:Problem/Attribute:status/Value:new' => 'New',
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Organization' => 'Organization',
|
||||
'Class:Organization+' => '',
|
||||
'Class:Organization+' => 'It can be a customer, a provider, your company or departments within your company. Organizations can be structured hierarchically. Users can be limited to objects belonging to some organizations only.',
|
||||
'Class:Organization/Attribute:name' => 'Name',
|
||||
'Class:Organization/Attribute:name+' => 'Common name',
|
||||
'Class:Organization/Attribute:code' => 'Code',
|
||||
@@ -114,7 +114,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Contact' => 'Contact',
|
||||
'Class:Contact+' => '',
|
||||
'Class:Contact+' => 'Abstract class. A Contact can be linked to Tickets and FunctionalCIs for different purposes, such as incident dispatching and notifications.',
|
||||
'Class:Contact/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Contact/Attribute:name' => 'Name',
|
||||
'Class:Contact/Attribute:name+' => '',
|
||||
@@ -152,7 +152,8 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Person' => 'Person',
|
||||
'Class:Person+' => '',
|
||||
'Class:Person+' => 'A type of Contact used to describe physical persons. Persons can be grouped into Teams. Persons can be linked to other configuration items (eg. to describe who to contact in case of incident with an application).
|
||||
Other usage: the caller of a User request is a Person as well as the agent assigned to resolve it.',
|
||||
'Class:Person/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Person/Attribute:name' => 'Last Name',
|
||||
'Class:Person/Attribute:name+' => '',
|
||||
@@ -193,7 +194,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Team' => 'Team',
|
||||
'Class:Team+' => '',
|
||||
'Class:Team+' => 'A type of Contact. Often used to group Persons, but not only. Teams are expected to watch Tickets dispatched to them, and assign it to an agent, usually a member of that team.',
|
||||
'Class:Team/ComplementaryName' => '%1$s - %2$s',
|
||||
'Class:Team/Attribute:persons_list' => 'Members',
|
||||
'Class:Team/Attribute:persons_list+' => 'All the people belonging to this team',
|
||||
@@ -214,7 +215,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Document' => 'Document',
|
||||
'Class:Document+' => '',
|
||||
'Class:Document+' => 'Abstract class. - A document that can be shared across multiple objects, making it easy and quick to retrieve from all relevant locations.',
|
||||
'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s',
|
||||
'Class:Document/Attribute:name' => 'Name',
|
||||
'Class:Document/Attribute:name+' => '',
|
||||
@@ -250,7 +251,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:DocumentFile' => 'Document File',
|
||||
'Class:DocumentFile+' => '',
|
||||
'Class:DocumentFile+' => 'It\'s a type of Document which includes an uploaded file (in any format: Word, PDF, Spreadsheet, etc.).',
|
||||
'Class:DocumentFile/Attribute:file' => 'File',
|
||||
'Class:DocumentFile/Attribute:file+' => '',
|
||||
]);
|
||||
@@ -261,7 +262,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:DocumentNote' => 'Document Note',
|
||||
'Class:DocumentNote+' => '',
|
||||
'Class:DocumentNote+' => 'Used to store a text document. HTML formatting is supported using the WYSIWYG editor. Search can be performed on its content.',
|
||||
'Class:DocumentNote/Attribute:text' => 'Text',
|
||||
'Class:DocumentNote/Attribute:text+' => '',
|
||||
]);
|
||||
@@ -272,7 +273,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:DocumentWeb' => 'Document Web',
|
||||
'Class:DocumentWeb+' => '',
|
||||
'Class:DocumentWeb+' => 'Hyperlinks to external applications or documents, acting as pointers to external resources. You cannot search in their content from '.ITOP_APPLICATION_SHORT,
|
||||
'Class:DocumentWeb/Attribute:url' => 'URL',
|
||||
'Class:DocumentWeb/Attribute:url+' => '',
|
||||
]);
|
||||
@@ -283,7 +284,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:Typology' => 'Typology',
|
||||
'Class:Typology+' => '',
|
||||
'Class:Typology+' => 'Abstract class. ExternalKeyAttribute to a Typology subclass are used in place of an EnumAttribute, to have more dynamic values.',
|
||||
'Class:Typology/Attribute:name' => 'Name',
|
||||
'Class:Typology/Attribute:name+' => '',
|
||||
'Class:Typology/Attribute:finalclass' => 'Typology sub-class',
|
||||
@@ -296,7 +297,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:DocumentType' => 'Document Type',
|
||||
'Class:DocumentType+' => '',
|
||||
'Class:DocumentType+' => 'Typology. A classification system used to organize and logically group documents',
|
||||
]);
|
||||
|
||||
//
|
||||
@@ -305,7 +306,7 @@ Dict::Add('EN US', 'English', 'English', [
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', [
|
||||
'Class:ContactType' => 'Contact Type',
|
||||
'Class:ContactType+' => '',
|
||||
'Class:ContactType+' => 'Typology to organize your Contacts and group them logically for you.',
|
||||
]);
|
||||
|
||||
//
|
||||
|
||||
@@ -139,158 +139,6 @@ JSON;
|
||||
$this->assertJsonStringEqualsJsonString($sExpectedJsonOuput, $sJSONOutput);
|
||||
}
|
||||
|
||||
|
||||
public function testCoreApiGet_Select2SubClasses(){
|
||||
// Create ticket
|
||||
$description = date('dmY H:i:s');
|
||||
$iIdCaller = $this->CreatePerson(1)->GetKey();
|
||||
$oUserRequest = $this->CreateSampleTicket($description, 'UserRequest', $iIdCaller);
|
||||
$oChange = $this->CreateSampleTicket($description, 'Change', $iIdCaller);
|
||||
$iIdUserRequest = $oUserRequest->GetKey();
|
||||
$iIdChange = $oChange->GetKey();
|
||||
|
||||
$sJSONOutput = $this->CallCoreRestApi_Internally(<<<JSON
|
||||
{
|
||||
"operation": "core/get",
|
||||
"class": "UserRequest, Change",
|
||||
"key": "SELECT UserRequest WHERE id=$iIdUserRequest UNION SELECT Change WHERE id=$iIdChange",
|
||||
"output_fields": "id, description, outage"
|
||||
}
|
||||
JSON);
|
||||
|
||||
$sExpectedJsonOuput = <<<JSON
|
||||
{
|
||||
"code": 0,
|
||||
"message": "Found: 2",
|
||||
"objects": {
|
||||
"UserRequest::$iIdUserRequest": {
|
||||
"class": "UserRequest",
|
||||
"code": 0,
|
||||
"fields": {
|
||||
"description": "<p>$description</p>",
|
||||
"id": "$iIdUserRequest"
|
||||
},
|
||||
"key": "$iIdUserRequest",
|
||||
"message": ""
|
||||
},
|
||||
"Change::$iIdChange": {
|
||||
"class": "Change",
|
||||
"code": 0,
|
||||
"fields": {
|
||||
"description": "<p>$description</p>",
|
||||
"id": "$iIdChange",
|
||||
"outage": "no"
|
||||
},
|
||||
"key": "$iIdChange",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
JSON;
|
||||
$this->assertJsonStringEqualsJsonString($sExpectedJsonOuput, $sJSONOutput);
|
||||
}
|
||||
|
||||
|
||||
public function testCoreApiGet_SelectTicketAndPerson(){
|
||||
// Create ticket
|
||||
$description = date('dmY H:i:s');
|
||||
$iIdCaller = $this->CreatePerson(1)->GetKey();
|
||||
$oUserRequest = $this->CreateSampleTicket($description, 'UserRequest', $iIdCaller);
|
||||
$iIdUserRequest = $oUserRequest->GetKey();
|
||||
|
||||
$sJSONOutput = $this->CallCoreRestApi_Internally(<<<JSON
|
||||
{
|
||||
"operation": "core/get",
|
||||
"class": "UserRequest, Change",
|
||||
"key": "SELECT UR, P FROM UserRequest AS UR JOIN Person AS P ON UR.caller_id = P.id WHERE UR.id=$iIdUserRequest ",
|
||||
"output_fields": "id, title, description, name, email"
|
||||
}
|
||||
JSON);
|
||||
|
||||
$sExpectedJsonOuput = <<<JSON
|
||||
{
|
||||
"code": 0,
|
||||
"message": "Found: 1",
|
||||
"objects": [{
|
||||
"UR": {
|
||||
"class": "UserRequest",
|
||||
"code": 0,
|
||||
"fields": {
|
||||
"description": "<p>$description</p>",
|
||||
"id": "$iIdUserRequest",
|
||||
"title": "Houston, got a problem"
|
||||
},
|
||||
"key": "$iIdUserRequest",
|
||||
"message": ""
|
||||
},
|
||||
"P": {
|
||||
"class": "Person",
|
||||
"code": 0,
|
||||
"fields": {
|
||||
"email": "",
|
||||
"id": "$iIdCaller",
|
||||
"name": "Person_1"
|
||||
},
|
||||
"key": "$iIdCaller",
|
||||
"message": ""
|
||||
}
|
||||
}]
|
||||
}
|
||||
JSON;
|
||||
$this->assertJsonStringEqualsJsonString($sExpectedJsonOuput, $sJSONOutput);
|
||||
}
|
||||
|
||||
public function testCoreApiGetWithUnionAndDifferentOutputFields(){
|
||||
// Create ticket
|
||||
$description = date('dmY H:i:s');
|
||||
$oUserRequest = $this->CreateSampleTicket($description);
|
||||
$oChange = $this->CreateSampleTicket($description, 'Change');
|
||||
$iUserRequestId = $oUserRequest->GetKey();
|
||||
$sUserRequestRef = $oUserRequest->Get('ref');
|
||||
$iChangeId = $oChange->GetKey();
|
||||
$sChangeRef = $oChange->Get('ref');
|
||||
|
||||
$sJSONOutput = $this->CallCoreRestApi_Internally(<<<JSON
|
||||
{
|
||||
"operation": "core/get",
|
||||
"class": "Ticket",
|
||||
"key": "SELECT UserRequest WHERE id=$iUserRequestId UNION SELECT Change WHERE id=$iChangeId",
|
||||
"output_fields": "Ticket:ref;UserRequest:ref,status,origin;Change:ref,status,outage"
|
||||
}
|
||||
JSON);
|
||||
|
||||
$sExpectedJsonOuput = <<<JSON
|
||||
{
|
||||
"code": 0,
|
||||
"message": "Found: 2",
|
||||
"objects": {
|
||||
"Change::$iChangeId": {
|
||||
"class": "Change",
|
||||
"code": 0,
|
||||
"fields": {
|
||||
"outage": "no",
|
||||
"ref": "$sChangeRef",
|
||||
"status": "new"
|
||||
},
|
||||
"key": "$iChangeId",
|
||||
"message": ""
|
||||
},
|
||||
"UserRequest::$iUserRequestId": {
|
||||
"class": "UserRequest",
|
||||
"code": 0,
|
||||
"fields": {
|
||||
"origin": "phone",
|
||||
"ref": "$sUserRequestRef",
|
||||
"status": "new"
|
||||
},
|
||||
"key": "$iUserRequestId",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
JSON;
|
||||
$this->assertJsonStringEqualsJsonString($sExpectedJsonOuput, $sJSONOutput);
|
||||
}
|
||||
public function testCoreApiCreate()
|
||||
{
|
||||
// Create ticket
|
||||
@@ -403,13 +251,12 @@ JSON;
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
private function CreateSampleTicket($description, $sType = 'UserRequest', $iIdCaller = null)
|
||||
private function CreateSampleTicket($description)
|
||||
{
|
||||
$oTicket = $this->createObject($sType, [
|
||||
$oTicket = $this->createObject('UserRequest', [
|
||||
'org_id' => $this->getTestOrgId(),
|
||||
"title" => "Houston, got a problem",
|
||||
"description" => $description,
|
||||
"caller_id" => $iIdCaller,
|
||||
]);
|
||||
return $oTicket;
|
||||
}
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Combodo\iTop\Test\UnitTest\Webservices;
|
||||
|
||||
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
|
||||
use MetaModel;
|
||||
use RestUtils;
|
||||
use Ticket;
|
||||
use UserRequest;
|
||||
|
||||
|
||||
class RestUtilsTest extends ItopDataTestCase
|
||||
{
|
||||
public function testGetFieldListForSingleClass(): void
|
||||
{
|
||||
$aList = RestUtils::GetFieldList(Ticket::class, (object) ['output_fields' => 'ref,start_date,end_date'], 'output_fields');
|
||||
$this->assertSame([Ticket::class => ['ref', 'start_date', 'end_date']], $aList);
|
||||
}
|
||||
|
||||
public function testGetFieldListForSingleClassWithInvalidFieldNameFails(): void
|
||||
{
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('output_fields: invalid attribute code \'something\' for class \'Ticket\'');
|
||||
$aList = RestUtils::GetFieldList(Ticket::class, (object) ['output_fields' => 'ref,something'], 'output_fields');
|
||||
$this->assertSame([Ticket::class => ['ref', 'start_date', 'end_date']], $aList);
|
||||
}
|
||||
|
||||
public function testGetFieldListWithAsteriskOnParentClass(): void
|
||||
{
|
||||
$aList = RestUtils::GetFieldList(Ticket::class, (object) ['output_fields' => '*'], 'output_fields');
|
||||
$this->assertArrayHasKey(Ticket::class, $aList);
|
||||
$this->assertContains('operational_status', $aList[Ticket::class]);
|
||||
$this->assertNotContains('status', $aList[Ticket::class], 'Representation of Class Ticket should not contain status, since it is defined by children');
|
||||
}
|
||||
|
||||
public function testGetFieldListWithAsteriskPlusOnParentClass(): void
|
||||
{
|
||||
$aList = RestUtils::GetFieldList(Ticket::class, (object) ['output_fields' => '*+'], 'output_fields');
|
||||
$this->assertArrayHasKey(Ticket::class, $aList);
|
||||
$this->assertArrayHasKey(UserRequest::class, $aList);
|
||||
$this->assertContains('operational_status', $aList[Ticket::class]);
|
||||
$this->assertContains('status', $aList[UserRequest::class]);
|
||||
}
|
||||
|
||||
public function testGetFieldListForMultipleClasses(): void
|
||||
{
|
||||
$aList = RestUtils::GetFieldList(Ticket::class, (object) ['output_fields' => 'Ticket:ref,start_date,end_date;UserRequest:ref,status'], 'output_fields');
|
||||
$this->assertArrayHasKey(Ticket::class, $aList);
|
||||
$this->assertArrayHasKey(UserRequest::class, $aList);
|
||||
$this->assertContains('ref', $aList[Ticket::class]);
|
||||
$this->assertContains('end_date', $aList[Ticket::class]);
|
||||
$this->assertNotContains('status', $aList[Ticket::class]);
|
||||
$this->assertContains('status', $aList[UserRequest::class]);
|
||||
$this->assertNotContains('end_date', $aList[UserRequest::class]);
|
||||
}
|
||||
|
||||
public function testGetFieldListForMultipleClassesWithInvalidFieldNameFails(): void
|
||||
{
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('output_fields: invalid attribute code \'something\'');
|
||||
RestUtils::GetFieldList(Ticket::class, (object) ['output_fields' => 'Ticket:ref;UserRequest:ref,something'], 'output_fields');
|
||||
}
|
||||
|
||||
|
||||
public function testGetFieldListForMultipleClassesWithInvalidFieldName(): void
|
||||
{
|
||||
$aList = RestUtils::GetFieldList(Ticket::class, (object) ['output_fields' => 'ref, something'], 'output_fields', false);
|
||||
$this->assertContains('ref', $aList[Ticket::class]);
|
||||
$this->assertNotContains('something', $aList[Ticket::class]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @dataProvider extendedOutputDataProvider
|
||||
*/
|
||||
public function testIsExtendedOutputRequest(bool $bExpected, string $sFields): void
|
||||
{
|
||||
$this->assertSame($bExpected, RestUtils::HasRequestedExtendedOutput($sFields));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider allFieldsOutputDataProvider
|
||||
*/
|
||||
public function testIsAllFieldsOutputRequest(bool $bExpected, string $sFields): void
|
||||
{
|
||||
$this->assertSame($bExpected, RestUtils::HasRequestedAllOutputFields($sFields));
|
||||
}
|
||||
|
||||
public function extendedOutputDataProvider(): array
|
||||
{
|
||||
return [
|
||||
[false, 'ref,start_date,end_date'],
|
||||
[false, '*'],
|
||||
[true, '*+'],
|
||||
[false, 'Ticket:ref'],
|
||||
[true, 'Ticket:ref;UserRequest:ref'],
|
||||
];
|
||||
}
|
||||
|
||||
public function allFieldsOutputDataProvider(): array
|
||||
{
|
||||
return [
|
||||
[false, 'ref,start_date,end_date'],
|
||||
[true, '*'],
|
||||
[true, '*+'],
|
||||
[false, 'Ticket:ref'],
|
||||
[false, 'Ticket:ref;UserRequest:ref'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user