cmdbAbstractObject
bizmodel,searchable,structure
false
autoincrement
organization
id
%1$s
images/building.png
name
false
code
true
active
inactive
status
active
true
list
parent_id
true
DEL_MANUAL
parent_id
name
deliverymodel_id
DeliveryModel
true
DEL_MANUAL
deliverymodel_id
name
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
-
10
-
20
-
30
cmdbAbstractObject
bizmodel,searchable,structure
false
autoincrement
location
id
%1$s
images/location.png
name
false
active
inactive
status
active
true
list
org_id
Organization
false
DEL_MANUAL
org_id
name
address
true
postal_code
true
city
true
country
true
PhysicalDevice
location_id
add_only
0
0
Person
location_id
add_only
0
0
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
10
-
20
-
30
-
40
cmdbAbstractObject
bizmodel,searchable,structure
true
autoincrement
contact
id
finalclass
%1$s
images/team.png
name
false
active
inactive
status
active
false
list
org_id
Organization
false
DEL_MANUAL
org_id
name
email
true
phone
true
yes
no
notify
yes
true
radio_horizontal
function
true
lnkContactToFunctionalCI
contact_id
0
0
functionalci_id
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
10
-
20
-
30
-
40
-
50
Contact
bizmodel,searchable,structure
false
autoincrement
person
id
%1$s %2$s
images/person.png
first_name
false
employee_number
true
mobile_phone
true
org_id]]>
location_id
Location
true
DEL_MANUAL
location_id
name
manager_id
Person
true
DEL_MANUAL
manager_id
name
lnkPersonToTeam
person_id
0
0
team_id
Ticket
caller_id
add_only
0
0
-
10
-
20
-
30
-
40
-
10
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
50
-
10
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
10
-
20
-
30
-
40
-
50
-
60
Contact
bizmodel,searchable
false
autoincrement
team
id
%1$s
images/team.png
lnkPersonToTeam
team_id
0
0
person_id
Ticket
team_id
none
0
0
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
10
-
20
-
30
-
40
cmdbAbstractObject
bizmodel,searchable
true
autoincrement
document
id
finalclass
Document
images/document.png
name
false
org_id
Organization
false
DEL_MANUAL
org_id
name
documenttype_id
DocumentType
true
DEL_MANUAL
documenttype_id
name
description
true
draft
published
obsolete
status
true
list
lnkDocumentToFunctionalCI
document_id
0
0
functionalci_id
lnkContractToDocument
document_id
0
0
contract_id
lnkDocumentToService
document_id
0
0
service_id
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
Document
bizmodel,searchable
false
autoincrement
documentfile
id
%1$s
images/document.png
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
Document
bizmodel,searchable
false
autoincrement
documentnote
id
%1$s
images/document.png
text
false
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
Document
bizmodel,searchable
false
autoincrement
documentweb
id
%1$s
images/document.png
url
true
_blank
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
cmdbAbstractObject
bizmodel,searchable
true
autoincrement
functionalci
id
finalclass
%1$s
images/server.png
name
false
description
true
org_id
Organization
false
DEL_MANUAL
org_id
name
high
medium
low
business_criticity
low
true
list
move2production
true
lnkContactToFunctionalCI
functionalci_id
0
0
contact_id
lnkDocumentToFunctionalCI
functionalci_id
0
0
document_id
lnkApplicationSolutionToFunctionalCI
functionalci_id
0
0
applicationsolution_id
lnkFunctionalCIToProviderContract
functionalci_id
0
0
providercontract_id
lnkFunctionalCIToService
functionalci_id
0
0
service_id
SoftwareInstance
system_id
in_place
0
0
lnkFunctionalCIToTicket
functionalci_id
0
0
ticket_id
true
public
Overload-DBObject
array("sQuery"=>"SELECT Contact AS c JOIN lnkContactToFunctionalCI AS l1 ON l1.contact_id = c.id WHERE l1.functionalci_id = :this->id", "bPropagate"=>true, "iDistance"=>3),
"solution" => array("sQuery"=>"SELECT ApplicationSolution AS s JOIN lnkApplicationSolutionToFunctionalCI AS l1 ON l1.applicationsolution_id = s.id WHERE l1.functionalci_id = :this->id", "bPropagate"=>true, "iDistance"=>2),
"SoftwareInstances" => array("sQuery"=>"SELECT SoftwareInstance AS s WHERE s.system_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
FunctionalCI
bizmodel,searchable
true
autoincrement
physicaldevice
id
%1$s
images/server.png
serialnumber
true
org_id]]>
location_id
Location
true
DEL_MANUAL
location_id
name
production
implementation
stock
obsolete
status
production
true
list
brand_id
Brand
true
DEL_MANUAL
brand_id
name
brand_id AND type=:this->finalclass]]>
model_id
Model
true
DEL_MANUAL
model_id
name
asset_number
true
purchase_date
true
end_of_warranty
true
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
PhysicalDevice
bizmodel,searchable
true
autoincrement
connectableci
id
%1$s
images/server.png
lnkConnectableCIToNetworkDevice
connectableci_id
0
0
networkdevice_id
true
PhysicalInterface
connectableci_id
in_place
0
0
true
public
Overload-DBObject
array("sQuery"=>"SELECT NetworkDevice AS nw JOIN lnkConnectableCIToNetworkDevice AS l1 ON l1.networkdevice_id = nw.id WHERE l1.connectableci_id = :this->id AND l1.connection_type='downlink'", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
ConnectableCI
bizmodel,searchable
true
autoincrement
datacenterdevice
id
%1$s
images/server.png
location_id]]>
rack_id
Rack
true
DEL_MANUAL
rack_id
name
rack_id]]>
enclosure_id
Enclosure
true
DEL_MANUAL
enclosure_id
name
nb_u
true
managementip
true
location_id]]>
powera_id
PowerConnection
true
DEL_MANUAL
powerA_id
name
location_id]]>
powerB_id
PowerConnection
true
DEL_MANUAL
powerB_id
name
FiberChannelInterface
datacenterdevice_id
in_place
0
0
lnkSanToDatacenterDevice
datacenterdevice_id
0
0
san_id
true
public
Overload-DBObject
"SELECT Enclosure WHERE id = :this->enclosure_id", "bPropagate"=>true, "iDistance"=>10);
}
if (class_exists('SANSwitch'))
{
$aRels['SANSwitch'] = array("sQuery"=>"SELECT SANSwitch AS san JOIN lnkSanToDatacenterDevice AS l1 ON l1.san_id = san.id WHERE l1.datacenterdevice_id = :this->id", "bPropagate"=>true, "iDistance"=>10);
}
if (class_exists('PowerConnection'))
{
$aRels['PowerA'] = array(
"sQuery"=>"SELECT PowerConnection WHERE id = :this->powerA_id",
"bPropagate"=>true,
"iDistance"=>10
);
$aRels['PowerB'] = array(
"sQuery"=>"SELECT PowerConnection WHERE id = :this->powerB_id",
"bPropagate"=>true,
"iDistance"=>10
);
}
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
170
-
180
-
190
-
200
-
210
-
220
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
DatacenterDevice
bizmodel,searchable
false
autoincrement
networkdevice
id
%1$s
images/switch.png
networkdevicetype_id
NetworkDeviceType
false
DEL_MANUAL
networkdevicetype_id
name
lnkConnectableCIToNetworkDevice
networkdevice_id
0
0
connectableci_id
true
iosversion_id
IOSVersion
true
DEL_MANUAL
iosversion_id
name
ram
true
true
public
Overload-DBObject
array("sQuery"=>"SELECT ConnectableCI AS d JOIN lnkConnectableCIToNetworkDevice AS l1 ON l1.connectableci_id = d.id WHERE l1.networkdevice_id = :this->id AND l1.connection_type='downlink'", "bPropagate"=>true, "iDistance"=>1),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case "depends on":
$aRels = array(
// "connected_network" => array("sQuery"=>"SELECT NetworkDevice AS nw JOIN lnkConnectableCIToNetworkDevice AS l1 ON l1.networkdevice_id = nw.id WHERE l1.connectableci_id = :this->id AND l1.connection_type='uplink'", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
10
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
20
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
10
-
10
-
20
-
30
-
20
-
10
-
20
-
30
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
10
-
20
-
30
-
40
-
50
-
60
-
70
DatacenterDevice
bizmodel,searchable
false
autoincrement
server
id
%1$s
images/server.png
osfamily_id
OSFamily
true
DEL_MANUAL
osfamily_id
name
osfamily_id]]>
osversion_id
OSVersion
true
DEL_MANUAL
osversion_id
name
osversion_id]]>
oslicence_id
OSLicence
true
DEL_MANUAL
oslicence_id
name
cpu
true
ram
true
lnkServerToVolume
server_id
0
0
volume_id
true
public
Overload-DBObject
array("sQuery"=>"SELECT Hypervisor WHERE server_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
}
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case "depends on":
$aRels = array(
"volume" => array("sQuery"=>"SELECT LogicalVolume AS v JOIN lnkServerToVolume AS l1 ON l1.volume_id=v.id WHERE l1.server_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
10
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
20
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
130
-
10
-
10
-
20
-
30
-
20
-
10
-
20
-
30
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
10
-
20
-
30
-
40
-
50
-
60
-
70
FunctionalCI
bizmodel,searchable
false
autoincrement
applicationsolution
id
%1$s
images/solution.png
lnkApplicationSolutionToFunctionalCI
applicationsolution_id
0
0
functionalci_id
lnkApplicationSolutionToBusinessProcess
applicationsolution_id
0
0
businessprocess_id
active
inactive
status
active
true
list
true
public
Overload-DBObject
array("sQuery"=>"SELECT BusinessProcess AS p JOIN lnkApplicationSolutionToBusinessProcess AS l1 ON l1.businessprocess_id = p.id WHERE l1.applicationsolution_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case "depends on":
$aRels = array(
"solution" => array("sQuery"=>"SELECT FunctionalCI AS ci JOIN lnkApplicationSolutionToFunctionalCI AS l1 ON l1.functionalci_id = ci.id WHERE l1.applicationsolution_id = :this->id", "bPropagate"=>true, "iDistance"=>2),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
10
-
20
-
30
-
40
-
10
-
20
-
30
FunctionalCI
bizmodel,searchable
false
autoincrement
businessprocess
id
%1$s
images/business-process.png
lnkApplicationSolutionToBusinessProcess
businessprocess_id
0
0
applicationsolution_id
active
inactive
status
active
true
list
true
public
Overload-DBObject
array("sQuery"=>"SELECT ApplicationSolution AS app JOIN lnkApplicationSolutionToBusinessProcess AS l1 ON l1.applicationsolution_id = app.id WHERE l1.businessprocess_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
10
-
20
-
30
-
40
-
10
-
20
-
30
FunctionalCI
bizmodel,searchable
true
autoincrement
softwareinstance
id
%1$s %2$s
images/application.png
functionalci_id
FunctionalCI
false
DEL_AUTO
system_id
name
finalclass]]>
software_id
Software
true
DEL_MANUAL
software_id
name
software_id]]>
softwarelicence_id
SoftwareLicence
true
DEL_MANUAL
softwarelicence_id
name
path
true
active
inactive
status
true
list
true
public
Overload-DBObject
array("sQuery"=>"SELECT FunctionalCI AS s JOIN SoftwareInstance AS app ON app.system_id = s.id WHERE app.id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
-
50
SoftwareInstance
bizmodel,searchable
false
autoincrement
middleware
id
%1$s %2$s
images/middleware.png
MiddlewareInstance
middleware_id
in_place
0
0
true
public
Overload-DBObject
array("sQuery"=>"SELECT MiddlewareInstance AS mi WHERE middleware_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case 'depends on':
$aRels = array(
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
170
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
SoftwareInstance
bizmodel,searchable
false
autoincrement
dbserver
id
%1$s %2$s
images/database.png
DatabaseSchema
dbserver_id
in_place
0
0
true
public
Overload-DBObject
array("sQuery"=>"SELECT DatabaseSchema AS db WHERE dbserver_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case 'depends on':
$aRels = array(
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
170
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
SoftwareInstance
bizmodel,searchable
false
autoincrement
webserver
id
%1$s %2$s
images/webserver.png
WebApplication
webserver_id
in_place
0
0
true
public
Overload-DBObject
array("sQuery"=>"SELECT WebApplication AS db WHERE webserver_id = :this->id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
case 'depends on':
$aRels = array(
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
170
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
SoftwareInstance
bizmodel,searchable
false
autoincrement
pcsoftware
id
%1$s %2$s
images/application.png
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
SoftwareInstance
bizmodel,searchable
false
autoincrement
othersoftware
id
%1$s %2$s
images/application.png
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
140
-
150
-
160
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
FunctionalCI
bizmodel,searchable
false
autoincrement
middlewareinstance
id
%1$s
images/middleware.png
middleware_id
Middleware
false
DEL_MANUAL
middleware_id
name
true
public
Overload-DBObject
array("sQuery"=>"SELECT Middleware WHERE id = :this->middleware_id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
10
-
20
-
30
-
40
-
10
-
20
-
30
FunctionalCI
bizmodel,searchable
false
autoincrement
databaseschema
id
%1$s
images/database-schema.png
dbserver_id
DBServer
false
DEL_MANUAL
dbserver_id
name
true
public
Overload-DBObject
array("sQuery"=>"SELECT DBServer WHERE id = :this->dbserver_id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
10
-
20
-
30
-
40
-
10
-
20
-
30
FunctionalCI
bizmodel,searchable
false
autoincrement
webapplication
id
%1$s
images/webapp.png
webserver_id
WebServer
false
DEL_MANUAL
webserver_id
name
url
true
_blank
true
public
Overload-DBObject
array("sQuery"=>"SELECT WebServer WHERE id = :this->webserver_id", "bPropagate"=>true, "iDistance"=>10),
);
return array_merge($aRels, parent::GetRelationQueries($sRelCode));
break;
default:
return parent::GetRelationQueries($sRelCode);
}
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
90
-
100
-
110
-
120
-
130
-
10
-
20
-
30
-
40
-
10
-
20
-
30
cmdbAbstractObject
bizmodel,searchable
false
autoincrement
software
id
%1$s
images/software.png
name
false
vendor
false
version
false
lnkDocumentToSoftware
software_id
0
0
document_id
Middleware
DBServer
PCSoftware
OtherSoftware
WebServer
type
true
list
SoftwareInstance
software_id
add_only
0
0
SoftwarePatch
software_id
add_only
0
0
SoftwareLicence
software_id
add_only
0
0
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
10
-
20
-
30
-
40
-
10
-
20
-
30
cmdbAbstractObject
bizmodel,searchable
true
autoincrement
patch
id
finalclass
%1$s
images/patch.png
name
false
lnkDocumentToPatch
patch_id
0
0
document_id
description
true
-
10
-
20
-
30
-
10
-
10
-
20
Patch
bizmodel,searchable
false
autoincrement
ospatch
id
%1$s
images/patch.png
lnkFunctionalCIToOSPatch
ospatch_id
0
0
functionalci_id
osversion_id
OSVersion
false
DEL_MANUAL
osversion_id
name
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
10
-
20
Patch
bizmodel,searchable
false
autoincrement
softwarepatch
id
%1$s
images/patch.png
software_id
Software
false
DEL_MANUAL
software_id
name
lnkSoftwareInstanceToSoftwarePatch
softwarepatch_id
0
0
softwareinstance_id
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
10
-
20
cmdbAbstractObject
bizmodel,searchable
true
autoincrement
licence
id
finalclass
%1$s
images/licence.png
name
false
lnkDocumentToLicence
licence_id
0
0
document_id
org_id
Organization
false
DEL_MANUAL
org_id
name
usage_limit
true
description
true
start_date
true
end_date
true
licence_key
true
yes
no
perpetual
no
false
list
-
10
-
20
-
30
-
40
-
50
-
55
-
60
-
70
-
80
-
10
-
15
-
20
-
30
-
40
-
10
-
20
-
30
-
40
-
50
-
60
-
70
Licence
bizmodel,searchable
false
autoincrement
oslicence
id
%1$s
images/licence.png
osversion_id
OSVersion
false
DEL_MANUAL
osversion_id
name
VirtualMachine
oslicence_id
none
0
0
Server
oslicence_id
none
0
0
-
10
-
20
-
30
-
40
-
50
-
60
-
65
-
70
-
80
-
90
-
100
-
110
-
10
-
15
-
20
-
30
-
40
-
10
-
20
-
30
-
40
-
50
-
60
-
70
Licence
bizmodel,searchable
false
autoincrement
softwarelicence
id
%1$s
images/licence.png
software_id
Software
false
DEL_MANUAL
software_id
name
SoftwareInstance
softwarelicence_id
none
0
0
-
10
-
20
-
30
-
40
-
50
-
60
-
65
-
70
-
80
-
90
-
100
-
10
-
15
-
20
-
30
-
40
-
10
-
20
-
30
-
40
-
50
-
60
-
70
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkdocumenttolicence
id
%1$s %2$s
licence_id
Licence
false
DEL_AUTO
licence_id
name
document_id
Document
false
DEL_AUTO
document_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
bizmodel,searchable
true
autoincrement
typology
id
finalclass
%1$s
name
false
-
10
-
10
-
10
Typology
bizmodel,searchable
false
autoincrement
osversion
id
%1$s
osfamily_id
OSFamily
false
DEL_MANUAL
osfamily_id
name
-
10
-
20
-
10
-
10
-
20
Typology
bizmodel,searchable
false
autoincrement
osfamily
id
%1$s
-
10
-
10
-
10
Typology
bizmodel,searchable
false
autoincrement
documenttype
id
%1$s
-
10
-
10
-
10
Typology
bizmodel,searchable
false
autoincrement
contacttype
id
%1$s
-
10
-
10
-
10
Typology
bizmodel,searchable
false
autoincrement
brand
id
%1$s
PhysicalDevice
brand_id
add_only
0
0
-
10
-
20
-
10
-
10
Typology
bizmodel,searchable
false
autoincrement
model
id
%1$s
brand_id
Brand
false
DEL_MANUAL
brand_id
name
NetworkDevice
Server
SANSwitch
StorageSystem
Rack
Enclosure
PC
Tablet
Telephone
MobilePhone
Printer
DiskArray
NAS
TapeLibrary
IPPhone
Peripheral
PowerSource
PDU
type
false
list
PhysicalDevice
model_id
add_only
0
0
-
10
-
20
-
30
-
40
-
10
-
20
-
10
-
20
-
30
Typology
bizmodel,searchable
false
autoincrement
networkdevicetype
id
%1$s
NetworkDevice
networkdevicetype_id
add_only
0
0
-
10
-
20
-
10
-
10
Typology
bizmodel,searchable
false
autoincrement
iosversion
id
%1$s %2$s
brand_id
Brand
false
DEL_MANUAL
brand_id
name
-
10
-
20
-
10
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkdocumenttopatch
id
%1$s %2$s
patch_id
Patch
false
DEL_AUTO
patch_id
name
document_id
Document
false
DEL_AUTO
document_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnksoftwareinstancetosoftwarepatch
id
%1$s %2$s
softwarepatch_id
SoftwarePatch
false
DEL_AUTO
softwarepatch_id
name
softwareinstance_id
SoftwareInstance
false
DEL_AUTO
softwareinstance_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkfunctionalcitoospatch
id
%1$s %2$s
ospatch_id
OSPatch
false
DEL_AUTO
ospatch_id
name
functionalci_id
FunctionalCI
false
DEL_AUTO
functionalci_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkdocumenttosoftware
id
%1$s %2$s
software_id
Software
false
DEL_AUTO
software_id
name
document_id
Document
false
DEL_AUTO
document_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkcontacttofunctionalci
id
%1$s %2$s
functionalci_id
FunctionalCI
false
DEL_AUTO
functionalci_id
name
contact_id
Contact
false
DEL_AUTO
contact_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkdocumenttofunctionalci
id
%1$s %2$s
functionalci_id
FunctionalCI
false
DEL_AUTO
functionalci_id
name
document_id
Document
false
DEL_AUTO
document_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
bizmodel,searchable,configmgmt
false
autoincrement
subnet
id
%1$s %2$s
images/subnet.png
description
true
org_id
Organization
false
DEL_MANUAL
org_id
name
ip
false
ip_mask
false
false
public
Overload-cmdbAbstractObject
SetCurrentTab(Dict::S('Class:Subnet/Tab:IPUsage'));
$bit_ip = ip2long($this->Get('ip'));
$bit_mask = ip2long($this->Get('ip_mask'));
$iIPMin = sprintf('%u', ($bit_ip & $bit_mask) | 1); // exclude the first one: identifies the subnet itself
$iIPMax = sprintf('%u', (($bit_ip | (~$bit_mask))) & 0xfffffffe); // exclude the last one : broadcast address
$sIPMin = long2ip($iIPMin);
$sIPMax = long2ip($iIPMax);
$oPage->p(Dict::Format('Class:Subnet/Tab:IPUsage-explain', $sIPMin, $sIPMax));
$oIfFilter = DBObjectSearch::FromOQL("SELECT IPInterface AS if WHERE INET_ATON(if.ipaddress) >= INET_ATON('$sIPMin') AND INET_ATON(if.ipaddress) <= INET_ATON('$sIPMax')");
$oIfSet = new CMDBObjectSet($oIfFilter);
$oBlock = new DisplayBlock($oIfFilter, 'list', false);
$oBlock->Display($oPage, 'nwif', array('menu' => false));
$iCountUsed = $oIfSet->Count();
$iCountRange = $iIPMax - $iIPMin; // On 32-bit systems the substraction will be computed using floats for values greater than PHP_MAX_INT;
$iFreeCount = $iCountRange - $iCountUsed;
$oPage->SetCurrentTab(Dict::S('Class:Subnet/Tab:FreeIPs'));
$oPage->p(Dict::Format('Class:Subnet/Tab:FreeIPs-count', $iFreeCount));
$oPage->p(Dict::S('Class:Subnet/Tab:FreeIPs-explain'));
$aUsedIPs = $oIfSet->GetColumnAsArray('ipaddress', false);
$iAnIP = $iIPMin;
$iFound = 0;
while (($iFound < min($iFreeCount, 10)) && ($iAnIP <= $iIPMax))
{
$sAnIP = long2ip($iAnIP);
if (!in_array($sAnIP, $aUsedIPs))
{
$iFound++;
$oPage->p($sAnIP);
}
else
{
}
$iAnIP++;
}
}
}]]>
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
cmdbAbstractObject
bizmodel,searchable
true
autoincrement
networkinterface
id
finalclass
%1$s
images/interface.png
name
false
-
10
-
10
-
10
NetworkInterface
bizmodel,searchable
true
autoincrement
ipinterface
id
%1$s
images/interface.png
ipaddress
true
macaddress
true
ipgateway
true
ipmask
true
speed
true
6
2
-
10
-
20
-
30
-
50
-
60
-
70
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
50
-
60
-
70
IPInterface
bizmodel,searchable
false
autoincrement
physicalinterface
id
%1$s %2$s
images/interface.png
connectableci_id
ConnectableCI
false
DEL_AUTO
connectableci_id
name
-
10
-
20
-
30
-
40
-
60
-
70
-
80
-
10
-
20
-
30
-
40
-
10
-
20
-
40
-
50
-
60
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkconnectablecitonetworkdevice
id
%1$s %2$s
networkdevice_id
NetworkDevice
false
DEL_AUTO
networkdevice_id
name
connectableci_id
ConnectableCI
false
DEL_AUTO
connectableci_id
name
network_port
true
device_port
true
uplink
downlink
type
downlink
false
list
false
protected
Overload-cmdbAbstractObject
Get('networkdevice_id');
$iDeviceID = $this->Get('connectableci_id');
$oDevice = MetaModel::GetObject('ConnectableCI', $this->Get('connectableci_id'));
$sOQL = "SELECT lnkConnectableCIToNetworkDevice WHERE connectableci_id = :device AND networkdevice_id = :network AND network_port = :nwport AND device_port = :devport";
$oConnectionSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
array(),
array(
'network' => $this->Get('connectableci_id'),
'device' => $this->Get('networkdevice_id'),
'devport' => $this->Get('network_port'),
'nwport' => $this->Get('device_port'),
)
);
$iAlreadyExist = $oConnectionSet->count();
if ((get_class($oDevice) == 'NetworkDevice') && ($iAlreadyExist == 0))
{
$sLink = $this->Get('connection_type');
$sConnLink = ($sLink == 'uplink') ? 'downlink' : 'uplink';
$oNewLink = new lnkConnectableCIToNetworkDevice();
$oNewLink->Set('networkdevice_id', $this->Get('connectableci_id'));
$oNewLink->Set('connectableci_id', $this->Get('networkdevice_id'));
$oNewLink->Set('network_port', $this->Get('device_port'));
$oNewLink->Set('device_port', $this->Get('network_port'));
$oNewLink->Set('connection_type', $sConnLink);
$oMyChange = MetaModel::NewObject("CMDBChange");
$oMyChange->Set("date", time());
if (UserRights::IsImpersonated())
{
$sUserString = Dict::Format('UI:Archive_User_OnBehalfOf_User', UserRights::GetRealUser(), UserRights::GetUser());
}
else
{
$sUserString = UserRights::GetUser();
}
$oMyChange->Set("userinfo", $sUserString);
$iChangeId = $oMyChange->DBInsert();
$oNewLink->DBInsertTracked($oMyChange);
}
}]]>
false
protected
Overload-cmdbAbstractObject
Get('networkdevice_id');
$iDeviceID = $this->Get('connectableci_id');
$oDevice = MetaModel::GetObject('ConnectableCI', $this->Get('connectableci_id'));
$sOQL = "SELECT lnkConnectableCIToNetworkDevice WHERE connectableci_id = :device AND networkdevice_id = :network AND network_port = :nwport AND device_port = :devport";
$oConnectionSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
array(),
array(
'network' => $this->Get('connectableci_id'),
'device' => $this->Get('networkdevice_id'),
'devport' => $this->Get('network_port'),
'nwport' => $this->Get('device_port'),
)
);
$iAlreadyExist = $oConnectionSet->count();
if ((get_class($oDevice) == 'NetworkDevice') && ($iAlreadyExist != 0))
{
$sLink = $this->Get('connection_type');
$sConnLink = ($sLink == 'uplink') ? 'downlink' : 'uplink';
$oMyChange = MetaModel::NewObject("CMDBChange");
$oMyChange->Set("date", time());
if (UserRights::IsImpersonated())
{
$sUserString = Dict::Format('UI:Archive_User_OnBehalfOf_User', UserRights::GetRealUser(), UserRights::GetUser());
}
else
{
$sUserString = UserRights::GetUser();
}
$oMyChange->Set("userinfo", $sUserString);
$iChangeId = $oMyChange->DBInsert();
$oConnection = $oConnectionSet->Fetch();
$oConnection->Set('connection_type', $sConnLink);
$oConnection->DBUpdateTracked($oMyChange);
}
}]]>
false
protected
Overload-cmdbAbstractObject
Get('networkdevice_id');
$iDeviceID = $this->Get('connectableci_id');
$oDevice = MetaModel::GetObject('ConnectableCI', $this->Get('connectableci_id'));
$sOQL = "SELECT lnkConnectableCIToNetworkDevice WHERE connectableci_id = :device AND networkdevice_id = :network AND network_port = :nwport AND device_port = :devport";
$oConnectionSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
array(),
array(
'network' => $this->Get('connectableci_id'),
'device' => $this->Get('networkdevice_id'),
'devport' => $this->Get('network_port'),
'nwport' => $this->Get('device_port'),
)
);
$iAlreadyExist = $oConnectionSet->count();
if ((get_class($oDevice) == 'NetworkDevice') && ($iAlreadyExist != 0))
{
$oMyChange = MetaModel::NewObject("CMDBChange");
$oMyChange->Set("date", time());
if (UserRights::IsImpersonated())
{
$sUserString = Dict::Format('UI:Archive_User_OnBehalfOf_User', UserRights::GetRealUser(), UserRights::GetUser());
}
else
{
$sUserString = UserRights::GetUser();
}
$oMyChange->Set("userinfo", $sUserString);
$iChangeId = $oMyChange->DBInsert();
$oConnection = $oConnectionSet->Fetch();
$oConnection->DBDeleteTracked($oMyChange);
}
}]]>
false
protected
Overload-DBObject
AddConnectedNetworkDevice();
parent::AfterInsert();
}]]>
false
protected
Overload-DBObject
UpdateConnectedNetworkDevice();
parent::AfterUpdate();
}]]>
false
protected
Overload-DBObject
DeleteConnectedNetworkDevice();
parent::AfterDelete();
}]]>
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
-
50
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkapplicationsolutiontofunctionalci
id
%1$s %2$s
applicationsolution_id
ApplicationSolution
false
DEL_AUTO
applicationsolution_id
name
functionalci_id
FunctionalCI
false
DEL_AUTO
functionalci_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkapplicationsolutiontobusinessprocess
id
%1$s %2$s
businessprocess_id
BusinessProcess
false
DEL_AUTO
businessprocess_id
name
applicationsolution_id
ApplicationSolution
false
DEL_AUTO
applicationsolution_id
name
-
10
-
20
-
10
-
20
-
10
-
20
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkpersontoteam
id
%1$s %2$s
team_id
Team
false
DEL_AUTO
team_id
name
person_id
Person
false
DEL_AUTO
person_id
name
role_id
ContactType
true
DEL_MANUAL
role_id
name
-
10
-
20
-
30
-
10
-
20
-
30
-
10
-
20
-
30
cmdbAbstractObject
bizmodel,searchable,configmgmt
false
autoincrement
group
id
%1$s
images/group.png
name
false
production
implementation
obsolete
status
implementation
false
list
org_id
Organization
false
DEL_MANUAL
org_id
name
description
true
type
true
parent_id
true
DEL_MANUAL
parent_id
name
lnkGroupToCI
group_id
0
0
ci_id
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
10
-
20
-
30
-
40
-
10
-
20
-
30
-
40
cmdbAbstractObject
1
bizmodel,configmgmt
false
autoincrement
lnkgrouptoci
id
%1$s
group_id
Group
false
DEL_AUTO
group_id
name
ci_id
FunctionalCI
false
DEL_AUTO
ci_id
name
reason
true
-
10
-
20
-
30
-
10
-
20
-
30
-
10
-
20
-
30