From 1d506d32aa9a2d854d10f3b54c2e6bc4ce4ff97d Mon Sep 17 00:00:00 2001 From: Mathieu Cottet Date: Thu, 6 Sep 2012 17:33:16 +0200 Subject: [PATCH 1/3] Add new item in delayed part of top menu : "Clean all delayed jobs" --- .../actions/topMenuComponent.class.php | 4 +++ .../actions/cleanAllDelayedAction.class.php | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100755 apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php diff --git a/apps/front/modules/default/actions/topMenuComponent.class.php b/apps/front/modules/default/actions/topMenuComponent.class.php index 30ea459..f53bb22 100755 --- a/apps/front/modules/default/actions/topMenuComponent.class.php +++ b/apps/front/modules/default/actions/topMenuComponent.class.php @@ -41,6 +41,10 @@ function execute($request) 'url' => 'jenkins/launchAllDelayed', 'title' => sprintf('Launch all delayed jobs (%s)', $nbJobDelayed), ), + 'Clean delayed jobs' => array( + 'url' => 'jenkins/cleanAllDelayed', + 'title' => sprintf('Clean all delayed jobs (%s)', $nbJobDelayed), + ), ) ), ); diff --git a/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php b/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php new file mode 100755 index 0000000..f42ffd2 --- /dev/null +++ b/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php @@ -0,0 +1,31 @@ +getUser()); + $numDelayedJobs = count($runs); + foreach ($runs as $run) + { + $run->delete(); + $numDelayedJobs--; + } + if ($numDelayedJobs > 0) + { + $this->getUser()->setFlash('info', sprintf('[%d] delayed jobs have been deleted', $numDelayedJobs)); + } + else + { + $this->getUser()->setFlash('info', 'All delayed jobs have been deleted'); + } + $this->redirect('@homepage'); + } + +} From b86eb5962bde01a09976532a48d54cc895788c07 Mon Sep 17 00:00:00 2001 From: Mathieu Cottet Date: Fri, 7 Sep 2012 10:26:35 +0200 Subject: [PATCH 2/3] Correction : don't delete the job but set the launched field to 1 --- .../modules/jenkins/actions/cleanAllDelayedAction.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php b/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php index f42ffd2..9f96f47 100755 --- a/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php +++ b/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php @@ -14,7 +14,8 @@ function execute($request) $numDelayedJobs = count($runs); foreach ($runs as $run) { - $run->delete(); + $run->setLaunched(1); + $run->save(); $numDelayedJobs--; } if ($numDelayedJobs > 0) From c2013bf21348105af7081d1ae5d6279c824483d6 Mon Sep 17 00:00:00 2001 From: Mathieu Cottet Date: Fri, 7 Sep 2012 11:12:21 +0200 Subject: [PATCH 3/3] Add a Delete button on the Delayed Jobs List page --- .../actions/cleanAllDelayedAction.class.php | 1 + .../jenkins/actions/delayedAction.class.php | 59 ++++++++++++------- .../jenkins/templates/delayedSuccess.php | 5 +- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php b/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php index 9f96f47..c696cff 100755 --- a/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php +++ b/apps/front/modules/jenkins/actions/cleanAllDelayedAction.class.php @@ -15,6 +15,7 @@ function execute($request) foreach ($runs as $run) { $run->setLaunched(1); + $run->setJobBuildNumber(null); $run->save(); $numDelayedJobs--; } diff --git a/apps/front/modules/jenkins/actions/delayedAction.class.php b/apps/front/modules/jenkins/actions/delayedAction.class.php index 271f86e..f914f26 100755 --- a/apps/front/modules/jenkins/actions/delayedAction.class.php +++ b/apps/front/modules/jenkins/actions/delayedAction.class.php @@ -22,34 +22,51 @@ function execute($request) $messages = array(); foreach ($form->getValue('runs') as $id => $datas) { - $run = JenkinsRunPeer::retrieveByPK($id); - if ('on' !== $datas['launch_job']) + if ($request->getParameter('launch_delayed')) { - $run->setLaunchDelayed(null); - $run->save(); - continue; - } + //launch selected jobs + $run = JenkinsRunPeer::retrieveByPK($id); + if ('on' !== $datas['launch_job']) + { + $run->setLaunchDelayed(null); + $run->save(); + continue; + } - $launchAt = null; - if (strlen($datas['scheduled_at']) > 0) - { - $launchAt = strtotime($datas['scheduled_at']); - } - - if (null === $launchAt) - { - $run->launchDelayed($this->getJenkins()); - $messages[] = sprintf('The job [%s] in build branch has been launched', $run->getJobName(), $run->getGitBranch()); + $launchAt = null; + if (strlen($datas['scheduled_at']) > 0) + { + $launchAt = strtotime($datas['scheduled_at']); + } + + if (null === $launchAt) + { + $run->launchDelayed($this->getJenkins()); + $messages[] = sprintf('The job [%s] in build branch has been launched', $run->getJobName(), $run->getGitBranch()); + } + else + { + $run->setLaunchDelayed($launchAt); + $run->save(); + $messages[] = sprintf( + 'The job [%s] in build %s branch will be launched at %s ', + $run->getJobName(), + $run->getGitBranch(), + $run->getLaunchDelayed('Y-m-d H:i') + ); + } } else { - $run->setLaunchDelayed($launchAt); + //undelayed selected jobs + $run = JenkinsRunPeer::retrieveByPK($id); + $run->setLaunched(1); + $run->setJobBuildNumber(null); $run->save(); $messages[] = sprintf( - 'The job [%s] in build %s branch will be launched at %s ', - $run->getJobName(), - $run->getGitBranch(), - $run->getLaunchDelayed('Y-m-d H:i') + 'The job [%s] in build branch has been deleted from the list', + $run->getJobName(), + $run->getGitBranch() ); } } diff --git a/apps/front/modules/jenkins/templates/delayedSuccess.php b/apps/front/modules/jenkins/templates/delayedSuccess.php index 64de9c6..d0642e7 100755 --- a/apps/front/modules/jenkins/templates/delayedSuccess.php +++ b/apps/front/modules/jenkins/templates/delayedSuccess.php @@ -51,9 +51,12 @@ + 0): ?> +