public function run() { onapp_debug(__METHOD__); global $_ALIASES, $_SCREEN_IDS; $route = onapp_get_arg('route'); onapp_debug('route => ' . $route); if (array_key_exists($route, $_SCREEN_IDS)) { $method_name = $_SCREEN_IDS[$route]['method']; $class_name = $_SCREEN_IDS[$route]['class']; } else { if (is_null($route)) { onapp_debug('$route is null!, Redirecting :' . ONAPP_BASE_URL . '/' . $_ALIASES[ONAPP_DEFAULT_ALIAS]); onapp_redirect(ONAPP_BASE_URL . '/' . $_ALIASES[ONAPP_DEFAULT_ALIAS]); } else { onapp_debug('There is no such page, Redirecting Base Url'); trigger_error('There is no such page => ' . ONAPP_BASE_URL . $route); $_SESSION['message'] = 'THERE_IS_NO_SUCH_PAGE'; onapp_redirect(ONAPP_BASE_URL); } } $file_path = ONAPP_PATH . ONAPP_DS . 'controllers' . ONAPP_DS . ONAPP_CONTROLLERS . ONAPP_DS . strtolower('c_' . $class_name . '') . '.php'; if (file_exists($file_path)) { require_once "{$file_path}"; } else { onapp_die("Could not find file {$file_path}"); } onapp_debug("ONAPP_Controller->run: args => " . print_r(array('route' => $route, 'file' => $file_path, 'class' => $class_name, 'method' => $method_name), true)); $new_class = new $class_name(); $new_class->{$method_name}(); }
/** * Creates a new mail template * * @global array $_ALIASES menu page aliases * @return void */ private function create() { global $_ALIASES; onapp_debug(__METHOD__); $template = onapp_get_arg('template'); if (is_null($template)) { $this->show_template_create(); } else { $content = ":template_name: " . $template['_template_name'] . "\n" . ":from: " . $template['_from'] . "\n" . ":from_name:" . $template['_from_name'] . "\n" . ":to:" . $template['_to'] . "\n" . ":copy: " . $template['_copy'] . "\n" . ":subject: " . $template['_subject'] . "\n" . "" . "\n" . $template['_message'] . "\n "; $path = ONAPP_PATH . ONAPP_DS . 'events' . ONAPP_DS . $template['_new_event'] . ONAPP_DS . 'mail' . ONAPP_DS . 'mail'; $k = 1; while (file_exists($path . $k)) { $k++; } $written = onapp_file_write($content, NULL, $path . $k); if ($written) { $_SESSION['message'] = 'TEMPLATE_HAS_BEEN_CREATED_SUCCESSFULLY'; onapp_redirect(ONAPP_BASE_URL . '/' . $_ALIASES['email_templates'] . '?action=view'); } else { $error = onapp_string('TEMPLATE_HAS_NOT_BEEN_CREATED_CHECK_EVENTS_FOLDER_PERMISSIONS'); trigger_error($error); $this->show_template_view($error); } } }
/** * Creates new cron job in cron file * * @global array $_ALIASES url aliases * @return void */ private function create() { onapp_debug(__METHOD__); global $_ALIASES; $cron = onapp_get_arg('cron'); if (!$cron) { $this->show_template_create(); } else { if ($cron['command'] == '') { $error = onapp_string('COMMAND_FIELD_COULD_NOT_BE_EMPTY'); trigger_error($error); $this->show_template_create($error); exit; } $this->ssh_connect(); $this->append_cronjob($cron['minute'] . ' ' . $cron['hour'] . ' ' . $cron['day'] . ' ' . $cron['month'] . ' ' . $cron['weekday'] . ' ' . $cron['command']); $_SESSION['message'] = 'CRON_JOB_HAS_BEEN_CREATED_SUCCESSFULLY'; onapp_redirect(ONAPP_BASE_URL . '/' . $_ALIASES['cron_manager']); } }
/** * Startups load balancer * * @global array $_ALIASES menu page aliases * @param integer balancer Id * @return void */ private function startup($id) { global $_ALIASES; onapp_debug(__METHOD__); onapp_debug('id => ' . $id); onapp_permission(array('load_balancers', 'load_balancing_clusters', 'load_balancing_clusters.read', 'load_balancing_clusters.read.own')); $onapp = $this->get_factory(); $load_balancer = $onapp->factory('LoadBalancer', ONAPP_WRAPPER_LOG_REPORT_ENABLE); $load_balancer->_id = $id; $load_balancer->startup(); if (is_null($load_balancer->error)) { onapp_event_exec('load_balancer_startup', array($load_balancer->_obj, $this->load('User', array($load_balancer->_obj->_user_id)))); $_SESSION['message'] = 'BALANCER_STARTUP_HAS_BEEN_QUEUED'; onapp_redirect(ONAPP_BASE_URL . '/' . $_ALIASES['load_balancers'] . '?action=details&id=' . $id); } else { onapp_event_exec('load_balancer_startup_failed', array($load_balancer->_obj, $this->load('User', array($load_balancer->_obj->_user_id)))); trigger_error(print_r($load_balancer->error, true)); $this->show_template_view($load_balancer->error); } }
/** * Edits user group * * @global array $_ALIASES menu page aliases * @param integer user group id * @return void */ private function group_edit($id) { global $_ALIASES; onapp_debug(__CLASS__ . ' :: ' . __FUNCTION__); onapp_debug('id => ' . $id); onapp_permission(array('groups', 'groups.update')); $group = onapp_get_arg('group'); if (is_null($group)) { $this->show_template_group_edit($id); } else { $onapp = $this->get_factory(); $group_obj = $onapp->factory('UserGroup', ONAPP_WRAPPER_LOG_REPORT_ENABLE); foreach ($group as $key => $value) { $group_obj->{$key} = $value; } $group_obj->_id = $id; //TODO delete this when fixed Ticket #2511 $group_obj->_tagRoot = 'pack'; //***************************** $group_obj->save(); onapp_debug('group_obj =>' . print_r($group_obj, true)); if (is_null($group_obj->error)) { onapp_event_exec('group_edit', array($group_obj->_obj)); $_SESSION['message'] = 'GROUP_HAS_BEEN_UPDATED_SUCCESSFULLY'; onapp_redirect(ONAPP_BASE_URL . '/' . $_ALIASES['users_and_groups'] . '?action=groups'); } else { onapp_event_exec('group_edit_failed', array($group_obj->_obj)); trigger_error(print_r($group_obj->error, true)); $this->show_template_groups($group_obj->error); } } }
/** * Performs Logout action * * @global array $_ALIASES menu page aliases * @return void */ function logout() { global $_ALIASES; //session_start( ); session_regenerate_id(); session_destroy(); unset($_SESSION); //session_start( ); onapp_redirect($_ALIASES["login"]); }
/** * Opens virtual machine console id * * @global array $_ALIASES menu page aliases * @param interger virtual machine id * @return void */ private function console($id) { global $_ALIASES; onapp_debug(__CLASS__ . ' :: ' . __FUNCTION__); onapp_debug('id => ' . $id); onapp_permission(array('virtual_machines', 'virtual_machines.console', 'virtual_machines.console.own')); $onapp = $this->get_factory(); $console = $onapp->factory('Console', ONAPP_WRAPPER_LOG_REPORT_ENABLE); $console_obj = $console->load($id); onapp_debug('console_obj => ' . print_r($console_obj, true)); $url = $_SESSION['host'] . ONAPP_DS . 'console_remote' . ONAPP_DS . $console->_obj->_remote_key; if (is_null($console->error)) { onapp_redirect($url); } else { trigger_error(print_r($vm->error, true)); $this->show_template_details($id, $vm->error); } }
/** * Edits hypervisor's params * * @global array $_ALIASES menu page aliases * @param integer hypervisor id * @return void */ private function edit($id) { global $_ALIASES; onapp_debug(__METHOD__); onapp_debug('id => ' . $id); $hypervisor = onapp_get_arg('hypervisor'); onapp_permission(array('hypervisors.update', 'hypervisors')); if (is_null($hypervisor)) { $this->show_template_edit($id); } else { $onapp = $this->get_factory(); $id = onapp_get_arg('id'); $hypervisor_obj = $onapp->factory('Hypervisor', ONAPP_WRAPPER_LOG_REPORT_ENABLE); foreach ($hypervisor as $key => $value) { $hypervisor_obj->{$key} = $value; } $hypervisor_obj->_id = $id; $hypervisor_obj->save(); onapp_debug('hypervisor_obj =>' . print_r($hypervisor_obj, true)); if (is_null($hypervisor_obj->error)) { onapp_event_exec('hypervisor_edit', array($hypervisor_obj->_obj)); $_SESSION['message'] = 'HYPERVISOR_HAS_BEEN_UPDATED_SUCCESSFULLY'; onapp_redirect(ONAPP_BASE_URL . '/' . $_ALIASES['hypervisors']); } else { onapp_event_exec('hypervisor_edit_failed', array($hypervisor_obj->_obj)); trigger_error(print_r($hypervisor_obj->error, true)); $this->show_template_view($hypervisor_obj->error); } } }