public function getVapplianceVMIInstances($vapplianceid)
 {
     $res = array();
     $m = new Default_Model_VAviews();
     $f1 = new Default_Model_VAviewsFilter();
     $f2 = new Default_Model_VAviewsFilter();
     $f3 = new Default_Model_VAviewsFilter();
     $f1->appid->numequals($vapplianceid);
     $f2->va_version_published->equals(true);
     $f3->va_version_archived->equals(false);
     $m->filter->chain($f1->chain($f2->chain($f3, "AND"), "AND"), "AND");
     if (count($m->items) > 0) {
         foreach ($m->items as $item) {
             $res[] = $item->getVmiinstanceID();
         }
     }
     return $res;
 }
 public function vmiAction()
 {
     $guid = trim($this->_getParam('guid'));
     $is_archived = false;
     $vmis = new Default_Model_VAviews();
     $f0 = new Default_Model_VAviewsFilter();
     $f0->vmiinstance_guid->equals($guid);
     $f1 = new Default_Model_VAviewsFilter();
     $f1->va_version_published->equals(true);
     $f2 = new Default_Model_VAviewsFilter();
     $f2->va_version_enabled->equals(true);
     $vmis->filter->chain($f0->chain($f1->chain($f2, "AND"), "AND"), "AND");
     $vmis->filter->orderBy('vmiinstance_addedon DESC');
     if (count($vmis->items) === 0) {
         return $this->echo_file(null);
     }
     $vmi = $vmis->items[0];
     $vmi_scripts = new Default_Model_VMIinstanceContextScripts();
     $vmi_scripts->filter->vmiinstanceid->numequals($vmi->vmiinstanceid);
     $vmi_scripts->filter->orderBy('addedon DESC');
     if (count($vmi_scripts->items) === 0) {
         return $this->echo_file(null);
     }
     $vmi_script = $vmi_scripts->items[0];
     $cscripts = new Default_Model_ContextScripts();
     $cscripts->filter->id->numequals($vmi_script->contextscriptid);
     if (count($cscripts->items) === 0) {
         return $this->echo_file(null);
     }
     $cscript = $cscripts->items[0];
     $url = $cscript->url;
     $cs_guid = $cscript->guid;
     $group = 'cs/vapp';
     $filename = basename($url);
     $path = Storage::search($group, $cs_guid, $filename, false);
     if (!$path) {
         $path = Storage::searchArchive($group, $guid, $filename);
         if ($path) {
             $is_archived = true;
         }
     }
     $this->echo_file($path, $is_archived);
 }