/** * 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()); } }