Example #1
0
 /**
  * Build a package
  */
 public function packageBuilderAction()
 {
     $request = $this->getRequest();
     $name = $request->getParam('name');
     $file = $request->getParam('file');
     $this->_packageManager->buildPackage(array('Name' => $name, 'Comment' => null, 'FileName' => basename($file), 'FileLocation' => $file, 'Priority' => $this->_config->defaultPackagePriority, 'Platform' => $this->_config->defaultPlatform, 'DeployAction' => $this->_config->defaultAction, 'ActionParam' => $this->_config->defaultActionParam, 'Warn' => $this->_config->defaultWarn, 'WarnMessage' => $this->_config->defaultWarnMessage, 'WarnCountdown' => $this->_config->defaultWarnCountdown, 'WarnAllowAbort' => $this->_config->defaultWarnAllowAbort, 'WarnAllowDelay' => $this->_config->defaultWarnAllowDelay, 'PostInstMessage' => $this->_config->defaultPostInstMessage, 'MaxFragmentSize' => $this->_config->defaultMaxFragmentSize), false);
     $this->console->writeLine('Package successfully built.');
 }
 /**
  * Update a package
  *
  * Query params: name
  *
  * @return \Zend\View\Model\ViewModel|\Zend\Http\Response form template or redirect response
  */
 public function updateAction()
 {
     $oldName = $this->params()->fromQuery('name');
     try {
         $package = $this->_packageManager->getPackage($oldName);
     } catch (\Model\Package\RuntimeException $e) {
         $this->flashMessenger()->addErrorMessage($e->getMessage());
         return $this->redirectToRoute('package', 'index');
     }
     $form = $this->_updateForm;
     if ($this->getRequest()->isPost()) {
         $form->setData($this->params()->fromPost() + $this->params()->fromFiles());
         if ($form->isValid()) {
             $data = $form->getData();
             $data['FileName'] = $data['File']['name'];
             $data['FileLocation'] = $data['File']['tmp_name'];
             try {
                 $this->_packageManager->updatePackage($package, $data, true, $data['Deploy']['Pending'], $data['Deploy']['Running'], $data['Deploy']['Success'], $data['Deploy']['Error'], $data['Deploy']['Groups']);
                 $names = array($oldName, $data['Name']);
                 $this->flashMessenger()->addSuccessMessage(array($this->_('Package \'%s\' was successfully changed to \'%s\'.') => $names));
                 $this->flashMessenger()->addMessage($data['Name'], 'packageName');
             } catch (\Model\Package\RuntimeException $e) {
                 $this->flashMessenger()->addErrorMessage("Error changing Package '{$oldName}' to '{$data['Name']}': " . $e->getMessage());
             }
             return $this->redirectToRoute('package', 'index');
         }
     } else {
         $this->setActiveMenu('Packages');
         $form->setData(array('Deploy' => array('Pending' => $this->_config->defaultDeployPending, 'Running' => $this->_config->defaultDeployRunning, 'Success' => $this->_config->defaultDeploySuccess, 'Error' => $this->_config->defaultDeployError, 'Groups' => $this->_config->defaultDeployGroups), 'MaxFragmentSize' => $this->_config->defaultMaxFragmentSize, 'Name' => $package['Name'], 'Comment' => $package['Comment'], 'Platform' => $package['Platform'], 'DeployAction' => $package['DeployAction'], 'ActionParam' => $package['ActionParam'], 'Priority' => $package['Priority'], 'Warn' => $package['Warn'], 'WarnMessage' => $package['WarnMessage'], 'WarnCountdown' => $package['WarnCountdown'], 'WarnAllowAbort' => $package['WarnAllowAbort'], 'WarnAllowDelay' => $package['WarnAllowDelay'], 'PostInstMessage' => $package['PostInstMessage']));
     }
     return $this->printForm($form);
 }
 /**
  * Delete a package and send feedback via flashMessenger
  *
  * @param string $name Package name
  * @return bool Success
  */
 protected function _deletePackage($name)
 {
     $flashMessenger = $this->flashMessenger();
     try {
         $this->_packageManager->delete($name);
         $flashMessenger->addSuccessMessage(array($this->_('Package \'%s\' was successfully deleted.') => $name));
         return true;
     } catch (\Model\Package\RuntimeException $e) {
         $flashMessenger->addErrorMessage($e->getMessage());
         return false;
     }
 }
 public function testUpdateActionPostValidReconstructionError()
 {
     $postData = array('Name' => 'newName');
     $this->_updateForm->expects($this->never())->method('setData');
     $this->_updateForm->expects($this->never())->method('getData');
     $this->_updateForm->expects($this->never())->method('isValid');
     $this->_updateForm->expects($this->never())->method('render');
     $this->_packageManager->expects($this->once())->method('getPackage')->with('oldName')->will($this->throwException(new \Model\Package\RuntimeException('getPackage() error')));
     $this->_packageManager->expects($this->never())->method('updatePackage');
     $this->dispatch('/console/package/update/?name=oldName', 'POST', $postData);
     $this->assertRedirectTo('/console/package/index/');
     $this->assertEquals(array('getPackage() error'), $this->_getControllerPlugin('FlashMessenger')->getCurrentErrorMessages());
 }
 /**
  * Common tests for actions invoking _deletePackage()
  *
  * @param string $url URL to dispatch to
  * @param array $postData $POST data
  * @param string $name Package name
  * @param bool $success Deletion success to test
  */
 protected function _testDeletePackage($url, $postData, $name, $success)
 {
     $flashMessenger = $this->_getControllerPlugin('FlashMessenger');
     $errors = array(array('format1' => array('arg1', 'arg2')), array('format2' => array('arg3', 'arg4')));
     if ($success) {
         $this->_packageManager->expects($this->once())->method('delete')->with($name);
     } else {
         $this->_packageManager->expects($this->once())->method('delete')->with($name)->will($this->throwException(new \Model\Package\RuntimeException('delete error')));
     }
     $this->dispatch($url, 'POST', $postData);
     if ($success) {
         $this->assertContains(array('Package \'%s\' was successfully deleted.' => $name), $flashMessenger->getCurrentSuccessMessages());
         $this->assertEquals(array(), $flashMessenger->getCurrentErrorMessages());
     } else {
         $this->assertEquals(array(), $flashMessenger->getCurrentSuccessMessages());
         $this->assertEquals(array('delete error'), $flashMessenger->getCurrentErrorMessages());
     }
 }