public function save(Default_Model_ContextScript $value)
 {
     global $application;
     $data = array();
     if (!isnull($value->getId())) {
         $data['id'] = $value->getId();
     }
     if (!isnull($value->getName())) {
         $data['name'] = $value->getName();
     }
     if (!isnull($value->getTitle())) {
         $data['title'] = $value->getTitle();
     }
     if (!isnull($value->getDescription())) {
         $data['description'] = $value->getDescription();
     }
     if (!isnull($value->getUrl())) {
         $data['url'] = $value->getUrl();
     }
     if (!isnull($value->getFormatID())) {
         $data['formatid'] = $value->getFormatID();
     }
     if (!isnull($value->getChecksum())) {
         $data['checksum'] = $value->getChecksum();
     }
     if (!isnull($value->getChecksumfunc())) {
         $data['checksumfunc'] = $value->getChecksumfunc();
     }
     if (!isnull($value->getSize())) {
         $data['size'] = $value->getSize();
     }
     if (!isnull($value->getGuID())) {
         $data['guid'] = $value->getGuID();
     }
     if (!isnull($value->getAddedByID())) {
         $data['addedby'] = $value->getAddedByID();
     }
     if (!isnull($value->getAddedOn())) {
         $data['addedon'] = $value->getAddedOn();
     }
     if (!isnull($value->getLastupdatedByID())) {
         $data['lastupdatedby'] = $value->getLastupdatedByID();
     }
     if (!isnull($value->getLastupdatedOn())) {
         $data['lastupdatedon'] = $value->getLastupdatedOn();
     }
     $q1 = 'id = ?';
     $q2 = $value->id;
     if (null === ($id = $value->id)) {
         unset($data['id']);
         $value->id = $this->getDbTable()->insert($data);
     } else {
         $s = $this->getDbTable()->getAdapter()->quoteInto($q1, $q2);
         $this->getDbTable()->update($data, $s);
     }
 }
示例#2
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;
 }
示例#3
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;
 }