コード例 #1
0
// Delete device store in database and not in the data array
$q0 = get_link()->prepare('SELECT name AS NAME FROM ' . get_ini('BDD_PREFIX') . 'cmdb_devices WHERE deleted_date=0 OR deleted_date>:deleted_date');
$q0->execute(array('deleted_date' => time()));
while ($r0 = $q0->fetch(PDO::FETCH_OBJ)) {
    if (!in_array($r0->NAME, $serversIndex)) {
        $devM->delete($devM->getId('server', $r0->NAME));
    }
}
foreach ($serversIndex as $server) {
    if ($devM->getId('server', $serversArray[$server]['PARENT']) > 0) {
        $parentId = $devM->getId('server', $serversArray[$server]['PARENT']);
    } else {
        $parentId = 0;
    }
    if ($devM->getId('server', $server) > 0) {
        $devM->update($devM->getId('server', $server), $parentId, $server, 'server', '');
    } else {
        $devM->create($parentId, $server, 'server', '');
    }
    $dev = new device($devM->getId('server', $server));
    foreach ($dev->mdpeIdArray as $mdpeId) {
        if (!in_array($dev->mdpeArray[$mdpeId]['ENVIRONMENT'], $serversArray[$server]['ENVIRONMENTS']['environmentsIndex'])) {
            $devM->deleteMdpe($mdpeId);
        }
    }
    foreach ($serversArray[$server]['ENVIRONMENTS']['environmentsIndex'] as $serverEnv) {
        foreach ($serversArray[$server]['ENVIRONMENTS'][$serverEnv] as $serverEnvProj) {
            if ($envM->getId($serverEnv) > 0 && $projM->getId($serverEnvProj) > 0) {
                if ($devM->getIdMdpe($dev->id, $projM->getId($serverEnvProj), $envM->getId($serverEnv)) == 0) {
                    $devM->createMdpe($devM->getId('server', $server), $projM->getId($serverEnvProj), $envM->getId($serverEnv));
                }