Exemplo n.º 1
0
 function run($iterations)
 {
     global $taskWorkArea;
     for ($i = 0; $i < $iterations; $i++) {
         $taskWorkArea->holdCount = 0;
         $taskWorkArea->qpktCount = 0;
         $task_state = new TaskState();
         new IdleTask(I_IDLE, 1, 10000, $task_state->running(), new IdleTaskRec());
         $wkq = new Packet(null, 0, K_WORK);
         $wkq = new Packet($wkq, 0, K_WORK);
         $task_state = new TaskState();
         new WorkTask(I_WORK, 1000, $wkq, $task_state->waitingWithPacket(), new WorkTaskRec());
         $wkq = new Packet(null, I_DEVA, K_DEV);
         $wkq = new Packet($wkq, I_DEVA, K_DEV);
         $wkq = new Packet($wkq, I_DEVA, K_DEV);
         $task_state = new TaskState();
         new HandlerTask(I_HANDLERA, 2000, $wkq, $task_state->waitingWithPacket(), new HandlerTaskRec());
         $wkq = new Packet(null, I_DEVB, K_DEV);
         $wkq = new Packet($wkq, I_DEVB, K_DEV);
         $wkq = new Packet($wkq, I_DEVB, K_DEV);
         $task_state = new TaskState();
         new HandlerTask(I_HANDLERB, 3000, $wkq, $task_state->waitingWithPacket(), new HandlerTaskRec());
         $wkq = null;
         $task_state = new TaskState();
         new DeviceTask(I_DEVA, 4000, $wkq, $task_state->waiting(), new DeviceTaskRec());
         $task_state = new TaskState();
         new DeviceTask(I_DEVB, 5000, $wkq, $task_state->waiting(), new DeviceTaskRec());
         schedule();
         if (!($taskWorkArea->holdCount == 9297 && $taskWorkArea->qpktCount == 23246)) {
             return false;
         }
     }
     return true;
 }
 /** multicast()
 		Creates the multicast session.
 	*/
 public function multicast()
 {
     // Set title
     $this->title = $this->foglang['Multicast'];
     unset($this->headerData);
     $this->attributes = array(array(), array());
     $this->templates = array('${field}', '${input}');
     $fields = array(_('Session Name') => '<input type="text" name="name" id="iName" autocomplete="off" value="" />', _('Client Count') => '<input type="text" name="count" id="iCount" autocomplete="off" />', _('Timeout') . '(' . _('minutes') . ')' => '<input type="text" name="timeout" id="iTimeout" autocomplete="off" />', _('Select Image') => '${select_image}', '<input type="hidden" name="start" value="1" />' => '<input type="submit" value="' . _('Start') . '" /><!--<i class="icon fa fa-question" title="TODO!"></i>-->');
     print "\n\t\t\t<h2>" . _('Start Multicast Session') . '</h2>';
     print "\n\t\t\t" . '<form method="post" action="' . $this->formAction . '">';
     foreach ((array) $fields as $field => $input) {
         $this->data[] = array('field' => $field, 'input' => $input, 'session_name' => $_REQUEST['name'], 'client_count' => $_REQUEST['count'], 'session_timeout' => $_REQUEST['timeout'], 'select_image' => $this->getClass('ImageManager')->buildSelectBox($_REQUEST['image'], '', 'name'));
     }
     // Hook
     $this->HookManager->processEvent('IMAGE_MULTICAST_SESS', array('headerData' => &$this->headerData, 'data' => &$this->data, 'templates' => &$this->templates, 'attributes' => &$this->attributes));
     // Output
     $this->render();
     unset($this->data);
     $this->headerData = array(_('Task Name'), _('Clients'), _('Start Time'), _('Percent'), _('State'), _('Stop Task'));
     $this->attributes = array(array(), array(), array(), array(), array(), array('class' => 'r'));
     $this->templates = array('${mc_name}<br/><small>${image_name}:${os}</small>', '${mc_count}', '<small>${mc_start}</small>', '${mc_percent}', '${mc_state}', '<a href="?node=' . $this->node . '&sub=stop&mcid=${mc_id}" title="Remove"><i class="fa fa-minus-circle" alt="' . _('Kill') . '"></i></a>');
     $MulticastSessions = $this->getClass('MulticastSessionsManager')->find(array('stateID' => array(0, 1, 2, 3)));
     foreach ($MulticastSessions as $MulticastSession) {
         if ($MulticastSession && $MulticastSession->isValid()) {
             $Image = new Image($MulticastSession->get('image'));
             $TaskState = new TaskState($MulticastSession->get('stateID'));
             $this->data[] = array('mc_name' => $MulticastSession->get('name'), 'mc_count' => $MulticastSession->get('sessclients'), 'image_name' => $Image->get('name'), 'os' => $Image->getOS(), 'mc_start' => $this->formatTime($MulticastSession->get('starttime'), 'Y-m-d H:i:s'), 'mc_percent' => $MulticastSession->get('percent'), 'mc_state' => $TaskState->get('name'), 'mc_id' => $MulticastSession->get('id'));
         }
     }
     // Hook
     $this->HookManager->processEvent('IMAGE_MULTICAST_START', array('headerData' => &$this->headerData, 'data' => &$this->data, 'templates' => &$this->templates, 'attributes' => &$this->attributes));
     // Output
     $this->render();
     print '</form>';
 }
 public function active_multicast()
 {
     // Set title
     $this->title = _('Active Multi-cast Tasks');
     // Header row
     $this->headerData = array(_('Task Name'), _('Hosts'), _('Start Time'), _('State'), _('Status'), _('Kill'));
     // Row templates
     $this->templates = array('${name}', '${count}', '${start_date}', '${state}', '${percent}', '<a href="?node=task&sub=remove-multicast-task&id=${id}"><i class="icon fa fa-minus-circle" title="Kill Task"></i></a>');
     // Row attributes
     $this->attributes = array(array(), array('class' => 'c'), array('class' => 'c'), array('class' => 'c'), array('class' => 'c'), array('width' => 40, 'class' => 'c'));
     // Multicast data
     foreach ((array) $this->getClass('MulticastSessionsManager')->find(array('stateID' => array(1, 2, 3))) as $MS) {
         $TS = new TaskState($MS->get('stateID'));
         $this->data[] = array('id' => $MS->get('id'), 'name' => $MS->get('name') ? $MS->get('name') : 'Multicast Task', 'count' => $this->getClass('MulticastSessionsAssociationManager')->count(array('msID' => $MS->get('id'))), 'start_date' => $MS->get('starttime'), 'state' => $TS->get('name') ? $TS->get('name') : null, 'percent' => $MS->get('percent'));
     }
     // Hook
     $this->HookManager->processEvent('TaskActiveMulticastData', array('headerData' => &$this->headerData, 'data' => &$this->data, 'templates' => &$this->templates, 'attributes' => &$this->attributes));
     // Output
     $this->render();
 }