Ejemplo n.º 1
0
 private static function addScriptData($data, $vmiinstanceid, $user, $usetransaction = true)
 {
     try {
         if ($usetransaction) {
             db()->beginTransaction();
         }
         //create context script entry
         $script = new Default_Model_ContextScript();
         //$script->id = -1;
         $script->name = trim($data["name"]);
         $script->url = trim($data["url"]);
         $script->formatid = intval($data["formatid"]);
         $script->checksum = $data["md5"];
         $script->checksumfunc = "md5";
         $script->size = $data["size"];
         $script->addedbyid = $user->id;
         $script->save();
         $script = VapplianceStorage::store($script, $vmiinstanceid, $user->id);
         self::relateScriptToVmiInstance($vmiinstanceid, $script, $user, false);
         if ($usetransaction) {
             db()->commit();
         }
     } catch (Exception $ex) {
         if ($usetransaction) {
             db()->rollback();
             return $ex->getMessage();
         } else {
             throw $ex;
         }
     }
     return $script;
 }
Ejemplo n.º 2
0
 public function createContextScript($contextscriptxml)
 {
     //create new context script
     $contextscript = new Default_Model_ContextScript();
     if ($contextscriptxml->xpath("./virtualization:url") > 0) {
         $csp = $contextscriptxml->xpath("./virtualization:url");
         $csp = trim(strval($csp[0]));
         $contextscript->url = $csp;
     }
     if (!$contextscript->url || trim($contextscript->url) === "") {
         return "Url is mandatory for contextualization scripts";
     }
     if ($contextscriptxml->xpath("./virtualization:checksum") > 0) {
         $csp = $contextscriptxml->xpath("./virtualization:checksum");
         $csp = $csp[0];
         $hashtype = trim(strval($csp->attributes()->hashtype));
         if ($hashtype === "") {
             $hashtype = "md5";
         }
         $contextscript->checksumfunc = $hashtype;
         $csp = trim(strval($csp));
         $contextscript->checksum = $csp;
     }
     if (trim($contextscript->checksum) === "") {
         return "Cannot create contextscript without checksum";
     }
     if ($contextscriptxml->xpath("./virtualization:format") > 0) {
         $csp = $contextscriptxml->xpath("./virtualization:format");
         $csp = $csp[0];
         $csp = trim(strval($csp->attributes()->id));
         if ($csp === "" || is_numeric($csp) && intval($csp) <= 0) {
             $csp = "1";
         }
         $contextscript->formatid = intval($csp);
     }
     if ($contextscriptxml->xpath("./virtualization:name") > 0) {
         $csp = $contextscriptxml->xpath("./virtualization:name");
         $csp = trim(strval($csp[0]));
         $contextscript->name = $csp;
     } else {
         $contextscript->name = "";
     }
     if ($contextscriptxml->xpath("./virtualization:title") > 0) {
         $csp = $contextscriptxml->xpath("./virtualization:title");
         $csp = trim(strval($csp[0]));
         $contextscript->title = $csp;
     }
     if ($contextscriptxml->xpath("./virtualization:size") > 0) {
         $csp = $contextscriptxml->xpath("./virtualization:size");
         $csp = trim(strval($csp[0]));
         $contextscript->size = $csp;
     }
     try {
         $contextscript->save();
     } catch (Exception $ex) {
         return $ex->getMessage();
     }
     return $contextscript;
 }