$newLog = new Table_log();
$machineBuildPresent = false;
//=====Vérification de ce qui est renvoyé par le formulaire
$validIdMachine = filter_input(INPUT_POST, 'idMachine', FILTER_SANITIZE_STRING);
if (!is_null($validIdMachine)) {
    $machine = MachineDAL::findById($validIdMachine);
}
$validIdUser = filter_input(INPUT_POST, 'idUser', FILTER_SANITIZE_STRING);
if (!is_null($validIdUser)) {
    $user = UtilisateurDAL::findById($validIdUser);
    //=====Décrémente son quota de container======/
    $user->setNbVm($user->getNbVm() - 1);
    UtilisateurDAL::insertOnDuplicate($user);
}
//=====Vérif présence de machinebuild en base=====/
if (!is_null(MachineDAL::findByName($machine->getNom() . "_build"))) {
    $machineBuildPresent = true;
}
if (!$machineBuildPresent) {
    //=====Si machinebuild n'existe pas encore alors crée le======/
    $machineBuild = new Machine();
    MachineDAL::copy($machine, $machineBuild);
    $machineBuild->setNom($machine->getNom() . "_build");
    //====Prépare la quete POST pour créer ce new Container=====/
    $url_delete = "http://web-server/VirtualDemande/controller/pages/Delete_Container.php";
    // Tableau associatif $postFields des variables qui seront envoyées par POST au serveur
    $postfields_delete = array('page' => 'Rebuild_Container.php', 'nameContainer' => $machineBuild->getNom(), 'descriptionContainer' => $machineBuild->getDescription(), 'dist' => $machineBuild->getDistribAlias()->getId(), 'ram' => $machineBuild->getRam()->getId(), 'stock' => $machineBuild->getStockage()->getId(), 'cpu' => $machineBuild->getCpu()->getId(), 'user' => $user->getId());
    // Tableau contenant les options de téléchargement
    $options = array(CURLOPT_URL => $url_delete, CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false, CURLOPT_FAILONERROR => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $postFields_delete);
    // Création d'un nouvelle ressource cURL
    $CURL = curl_init();
if (!is_null($validUserId)) {
    $user = UtilisateurDAL::findById($validUserId);
    //sert à l'insert
    $newMachine->setUtilisateur($user);
    $loginUtilisateur = $user->getLogin();
}
$newDateCreation = date("Y-m-d");
$newMachine->setDateCreation($newDateCreation);
$date = date_create($newDateCreation);
date_add($date, date_interval_create_from_date_string('1 year'));
$dateExpiration = date_format($date, 'Y-m-d');
$newMachine->setDateExpiration($dateExpiration);
$newMachine->setEtat(2);
if (UtilisateurDAL::isFull($validUserId) == false) {
    //vérifie que l'user n'a pas atteint son quota
    if (is_null(MachineDAL::findByName($validName)) && !is_null($validName)) {
        //=====Insertion de la Machine en base=====/ - OK
        $validInsertMachine = MachineDAL::insertOnDuplicate($newMachine);
        if (!is_null($validInsertMachine)) {
            $newLog->setLevel("INFO");
            $newLog->setLoginUtilisateur($loginUtilisateur);
            $newLog->setMsg("Machine correctement ajoutée en base, d'id: " . $validInsertMachine);
            $newLog->setDateTime(date('Y/m/d G:i:s'));
            $validTableLog = Table_logDAL::insertOnDuplicate($newLog);
            //=====Incrémente le nombre de Container de l'utilisateur=====//
            $variable = $user->getNbVm() + 1;
            $user->setNbVm($variable);
            $validInsertNewNbCont = UtilisateurDAL::insertOnDuplicate($user);
            if (!is_null($validInsertNewNbCont)) {
                $newLog->setLevel("INFO");
                $newLog->setLoginUtilisateur($loginUtilisateur);
    $newLog->setMsg("Le nom rentrer n'est pas correct, echec de clonage");
    $newLog->setDateTime(date('Y/m/d G:i:s'));
    $validTableLog = Table_logDAL::insertOnDuplicate($newLog);
    exit;
}
//Modification de la date de création et d'expiration de la machine clonée
$newDateCreation = date("Y-m-d");
$machineClone->setDateCreation($newDateCreation);
$date = date_create($newDateCreation);
date_add($date, date_interval_create_from_date_string('1 year'));
$dateExpiration = date_format($date, 'Y-m-d');
$machineClone->setDateExpiration($dateExpiration);
$machineClone->setEtat(2);
//Modifie l'état de la machine clone à Creating
if (UtilisateurDAL::isFull($validUserId) == false) {
    if (is_null(MachineDAL::findByName($validNomMachineClone))) {
        //=====Insertion de la Machine en base=====/ - OK
        $validInsertMachineClone = MachineDAL::insertOnDuplicate($machineClone);
        if (!is_null($validInsertMachineClone)) {
            $newLog->setLevel("INFO");
            $newLog->setLoginUtilisateur($loginUtilisateur);
            $newLog->setMsg("Machine correctement ajoutée en base, d'id: " . $validInsertMachineClone);
            $newLog->setDateTime(date('Y/m/d G:i:s'));
            $validTableLog = Table_logDAL::insertOnDuplicate($newLog);
            //=====Incrémente le nombre de Container de l'utilisateur=====//
            $variable = $user->getNbVm() + 1;
            $user->setNbVm($variable);
            $validInsertNewNbCont = UtilisateurDAL::insertOnDuplicate($user);
            if (!is_null($validInsertNewNbCont)) {
                $newLog->setLevel("INFO");
                $newLog->setLoginUtilisateur($loginUtilisateur);