{"action":"created","issue":{"url":"https://api.github.com/repos/jenkinsci/naginator-plugin/issues/16","labels_url":"https://api.github.com/repos/jenkinsci/naginator-plugin/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/jenkinsci/naginator-plugin/issues/16/comments","events_url":"https://api.github.com/repos/jenkinsci/naginator-plugin/issues/16/events","html_url":"https://github.com/jenkinsci/naginator-plugin/pull/16","id":98506058,"number":16,"title":"[JENKINS-29715] Control rescheduling with action","user":{"login":"ikedam","id":3115961,"avatar_url":"https://avatars.githubusercontent.com/u/3115961?v=3","gravatar_id":"","url":"https://api.github.com/users/ikedam","html_url":"https://github.com/ikedam","followers_url":"https://api.github.com/users/ikedam/followers","following_url":"https://api.github.com/users/ikedam/following{/other_user}","gists_url":"https://api.github.com/users/ikedam/gists{/gist_id}","starred_url":"https://api.github.com/users/ikedam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ikedam/subscriptions","organizations_url":"https://api.github.com/users/ikedam/orgs","repos_url":"https://api.github.com/users/ikedam/repos","events_url":"https://api.github.com/users/ikedam/events{/privacy}","received_events_url":"https://api.github.com/users/ikedam/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-08-01T04:28:54Z","updated_at":"2015-08-02T14:53:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jenkinsci/naginator-plugin/pulls/16","html_url":"https://github.com/jenkinsci/naginator-plugin/pull/16","diff_url":"https://github.com/jenkinsci/naginator-plugin/pull/16.diff","patch_url":"https://github.com/jenkinsci/naginator-plugin/pull/16.patch"},"body":"[JENKINS-29715](https://issues.jenkins-ci.org/browse/JENKINS-29715)\r\n[Build-timeout plugin](https://wiki.jenkins-ci.org/display/JENKINS/Build-timeout+Plugin) plans a new feature to reschedule the build when timeout occurs.\r\n(jenkinsci/build-timeout-plugin#44, jenkinsci/build-timeout-plugin#45).\r\nThe rescheduling feature is already provided by naginator plugin and we want to reuse that feature from build-timeout plugin.\r\n\r\nThis change introduces `NaginatorScheduleAction`.\r\nYou can make naginator reschedule a build by adding `NaginatorScheduleAction` to the build.\r\n\r\nI changed to `NaginatorPublisher` to use that, and it allows naginator plugin works with [Flexible Publish plugin](https://wiki.jenkins-ci.org/display/JENKINS/Flexible+Publish+Plugin) ([JENKINS-23984](https://issues.jenkins-ci.org/browse/JENKINS-23984)).\r\n\r\nOutline of the change:\r\n* Introduced `NaginatorScheduleAction`, which provides following features:\r\n    * Check the retrying count and decides whether to reschedule.\r\n    * Always rerun all matrix children.\r\n* `NaginatorListener` now decides whether to reschedule the build with `NaginatorScheduleAction`. `NaginatorListener` now does followings:\r\n    * Calcuate retying counts.\r\n    * Reschedule the build.\r\n* `NaginatorPublisher` defines `NaginatorPublisher.Action` extending `NaginatorScheduleAction` which does almost all what was done in `NaginatorListener`. Many codes are copied from `NaginatorListener`:\r\n    * Check the build result\r\n    * Check the build log."},"comment":{"url":"https://api.github.com/repos/jenkinsci/naginator-plugin/issues/comments/127032225","html_url":"https://github.com/jenkinsci/naginator-plugin/pull/16#issuecomment-127032225","issue_url":"https://api.github.com/repos/jenkinsci/naginator-plugin/issues/16","id":127032225,"user":{"login":"KostyaSha","id":231611,"avatar_url":"https://avatars.githubusercontent.com/u/231611?v=3","gravatar_id":"","url":"https://api.github.com/users/KostyaSha","html_url":"https://github.com/KostyaSha","followers_url":"https://api.github.com/users/KostyaSha/followers","following_url":"https://api.github.com/users/KostyaSha/following{/other_user}","gists_url":"https://api.github.com/users/KostyaSha/gists{/gist_id}","starred_url":"https://api.github.com/users/KostyaSha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KostyaSha/subscriptions","organizations_url":"https://api.github.com/users/KostyaSha/orgs","repos_url":"https://api.github.com/users/KostyaSha/repos","events_url":"https://api.github.com/users/KostyaSha/events{/privacy}","received_events_url":"https://api.github.com/users/KostyaSha/received_events","type":"User","site_admin":false},"created_at":"2015-08-02T14:53:32Z","updated_at":"2015-08-02T14:53:32Z","body":"> The rescheduling feature is already provided by naginator plugin and we want to reuse that feature from build-timeout plugin.\r\n\r\ninfra is down, can't check documentation. Why there are 2 plugins? Why not merge functionality into one?"}}