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 comment true ipgateway true ipmask true speed true 6 2
10 20 30 40 50 60 70
10 20 30 40 50 10 20 30 40 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 50 60 70 80
10 20 30 40 10 20 30 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
70 Organization UR_ACTION_MODIFY UR_ALLOWED_YES 33 DataAdministration $pages/audit.php 50 DataAdministration 10 Catalogs SELECT Organization 1 20 1 ConfigManagement DashboardLayoutOneCol 0 0 Menu:ConfigManagement:AllDevices itop-config-mgmt/images/server.png Menu_ConfigManagement_AllDevices 3 Server 4 NetworkDevice 3 0 Menu:ConfigManagement:SWAndApps itop-config-mgmt/images/application.png 1 Middleware 2 DBServer 3 WebServer 4 PCSoftware 5 OtherSoftware 6 MiddlewareInstance 7 DatabaseSchema 7 WebApplication 8 Patch 9 Licence 4 0 Menu:ConfigManagement:Misc itop-config-mgmt/images/subnet.png 1 NetworkInterface 2 Subnet 4 BusinessProcess 5 ApplicationSolution 6 Group 2 ConfigManagement DashboardLayoutOneCol 0 1 Menu:Contact itop-config-mgmt/images/team.png Menu:Contact:Count SELECT Contact status active,inactive 2 Team 3 Person 3 Contact Contact 4 Contact Contact 3 ConfigManagement SELECT Location 1 4 ConfigManagement FunctionalCI 5 ConfigManagement FunctionalCI 6 ConfigManagement SELECT Document 1 7 ConfigManagement SELECT Software 1 8 ConfigManagement SELECT Group 1 80 Catalogs DashboardLayoutOneCol Menu:ConfigManagement:Typology 0 0 Menu:ConfigManagement:Typology itop-config-mgmt/images/typology.png 1 Brand 2 Model 3 OSFamily 4 OSVersion 5 IOSVersion 6 NetworkDeviceType 7 ContractType 8 ContactType 9 DocumentType