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; }
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; }