예제 #1
0
 public function run()
 {
     Logger::debug('main', 'ServerStatusChangedTask::run');
     $needs_cleanup = false;
     $data = get_from_cache('events', 'ServerStatusChanged');
     if ($data == NULL) {
         $data[$this->ev->fqdn] = $this->ev->status;
         if ($this->ev->status != ServerStatusChanged::$ONLINE) {
             $needs_cleanup = true;
         }
     } else {
         if ($this->ev->status != ServerStatusChanged::$ONLINE) {
             $needs_cleanup = true;
         }
     }
     if ($needs_cleanup) {
         Logger::debug('main', 'ServerStatusChangedTask::run cleanup task for ' . $this->ev->fqdn);
         set_cache($data, 'events', 'ServerStatusChanged');
         $tm = new Tasks_Manager();
         $tm->load_from_server($this->ev->fqdn);
         foreach ($tm->tasks as $a_task) {
             $tm->remove($a_task->id);
         }
     }
     return true;
 }
예제 #2
0
파일: actions.php 프로젝트: skdong/nfs-ovd
                $task = false;
                foreach ($tm->tasks as $t) {
                    if ($t->id == $id) {
                        $task = $t;
                        break;
                    }
                }
                if ($task === false) {
                    popup_error('Unable to find task id ' . $id);
                    redirect('tasks.php');
                }
                if (!($task->succeed() || $task->failed())) {
                    popup_error('Task ' . $id . ' not removable');
                    redirect('tasks.php');
                }
                $tm->remove($id);
                popup_info(_('Task successfully deleted'));
                redirect('tasks.php');
            }
        }
        redirect('tasks.php');
    }
}
function action_add_sharedfolder()
{
    $sharedfolderdb = SharedFolderDB::getInstance();
    $sharedfolder_name = $_REQUEST['sharedfolder_name'];
    if ($sharedfolder_name == '') {
        popup_error(_('You must provide a name to your shared folder'));
        return false;
    }
예제 #3
0
파일: api.php 프로젝트: bloveing/openulteo
 public function task_remove($task_id_)
 {
     $tm = new Tasks_Manager();
     $tm->load_all();
     $tm->refresh_all();
     $task = false;
     foreach ($tm->tasks as $t) {
         if ($task_id_ = $t->id) {
             $task = $t;
             break;
         }
     }
     if ($task === false) {
         Logger::error('api', sprintf('Unknown task "%s"', $task_id_));
         return false;
     }
     if (!($task->succeed() || $task->failed())) {
         Logger::error('api', sprintf('Task "%s" not removable', $task_id_));
         return false;
     }
     $tm->remove($task_id_);
     $this->log_action('task_remove', array('id' => $task_id_));
     return true;
 }
예제 #4
0
 public static function removeRole($fqdn_, $role_)
 {
     Logger::debug('main', "Starting Abstract_Server::removeRole for '{$fqdn_}' removing '{$role_}'");
     if (substr($fqdn_, -1) == '.') {
         $fqdn_ = substr($fqdn_, 0, strlen($fqdn_) - 1);
     }
     $a_server = Abstract_Server::load($fqdn_);
     if (is_object($a_server) == false) {
         Logger::error('main', "Starting Abstract_Server::removeRole error failed to load server '{$fqdn_}'");
         return false;
     }
     $roles = $a_server->getAttribute('roles');
     if (is_array($roles) == false) {
         return false;
     }
     if (in_array($role_, $roles) == false) {
         return false;
     }
     switch ($role_) {
         case Server::SERVER_ROLE_APS:
             $prefs = Preferences::getInstance();
             if (!$prefs) {
                 die_error('get Preferences failed', __FILE__, __LINE__);
             }
             $slave_server_settings = $prefs->get('general', 'slave_server_settings');
             $remove_orphan = (bool) $slave_server_settings['remove_orphan'];
             Abstract_Liaison::delete('ApplicationServer', NULL, $fqdn_);
             if ($remove_orphan) {
                 $apps = $a_server->getApplications();
                 $applicationDB = ApplicationDB::getInstance();
                 // remove the orphan applications
                 if (is_array($apps)) {
                     foreach ($apps as $an_application) {
                         if ($an_application->isOrphan()) {
                             Logger::debug('main', "Abstract_Server::delete {$an_application} is orphan");
                             $applicationDB->remove($an_application);
                         }
                     }
                 }
             }
             $tm = new Tasks_Manager();
             $tm->load_from_server($fqdn_);
             foreach ($tm->tasks as $a_task) {
                 $tm->remove($a_task->id);
             }
             break;
         case Server::SERVER_ROLE_FS:
             if (Preferences::moduleIsEnabled('ProfileDB')) {
                 $profiledb = ProfileDB::getInstance();
                 $folders = $profiledb->importFromServer($fqdn_);
                 foreach ($folders as $a_folder) {
                     $profiledb->remove($a_folder->id);
                 }
             }
             if (Preferences::moduleIsEnabled('SharedFolderDB')) {
                 $sharedfolderdb = SharedFolderDB::getInstance();
                 $folders = $sharedfolderdb->importFromServer($fqdn_);
                 foreach ($folders as $a_folder) {
                     $profiledb->remove($a_folder->id);
                 }
             }
             break;
             // 			case Server::SERVER_ROLE_GATEWAY:
             // 			break;
     }
     return true;
 }