Esempio n. 1
0
 private static function removeRelatedScript($id, $script, $userid, $usetransaction = true)
 {
     try {
         $vmiinstanceid = 0;
         if ($usetransaction) {
             db()->beginTransaction();
         }
         $vmis = new Default_Model_VMIinstanceContextScripts();
         $vmis->filter->id->numequals($id);
         if (count($vmis->items) > 0) {
             $vmi = $vmis->items[0];
             if ($vmi->contextscriptid === $script->id) {
                 $vmiinstanceid = $vmi->vmiinstanceid;
                 $vmis->remove($vmi);
             }
         }
         $vmis = new Default_Model_VMIinstanceContextScripts();
         $vmis->filter->contextscriptid->numequals($script->id);
         if (count($vmis->items) === 0) {
             //The script is not longer used. Remove it.
             $scripts = new Default_Model_ContextScripts();
             $scripts->filter->id->numequals($script->id);
             if (count($scripts->items) > 0) {
                 VapplianceStorage::remove($scripts->items[0], $vmiinstanceid, $userid);
                 $scripts->remove($scripts->items[0]);
             }
         }
         if ($usetransaction) {
             db()->commit();
         }
     } catch (Exception $ex) {
         if ($usetransaction) {
             db()->rollback();
             return $ex->getMessage();
         } else {
             throw $ex;
         }
     }
     return true;
 }
Esempio n. 2
0
 public function deleteContextScriptRelation($vmiinstanceid)
 {
     if ($vmiinstanceid) {
         $scriptids = array();
         $vmiscripts = new Default_Model_VMIinstanceContextScripts();
         $vmiscripts->filter->vmiinstanceid->numequals($vmiinstanceid);
         if (count($vmiscripts->items) > 0) {
             foreach ($vmiscripts->items as $item) {
                 $scriptids[] = $item->contextscriptid;
                 $vmiscripts->remove($item);
             }
         }
         $scriptids = array_unique($scriptids);
         //check if the referenced scripts have relations
         //if no relation found remove them from db.
         foreach ($scriptids as $id) {
             $vmiscripts = new Default_Model_VMIinstanceContextScripts();
             $vmiscripts->filter->contextscriptid->numequals($id);
             if (count($vmiscripts->items) === 0) {
                 $scripts = new Default_Model_ContextScripts();
                 $scripts->filter->id->numequals($id);
                 if (count($scripts->items) > 0) {
                     VapplianceStorage::remove($scripts->items[0], $vmiinstanceid);
                     $scripts->remove($scripts->items[0]);
                 }
             }
         }
     }
 }