[FIX JENKINS-33663] - Upgrade wizard

Add Upgrade Wizard
Add 'replace' handlebars method in jenkins.js
Fix state transitions to follow a single basic pattern
Suggested plugins selected by default
Add an install state for INITIAL_SECURITY_SETUP
Removed duplicate setupWizard.js on page [FIX JENKINS-34676]
Exclude plugins which are already installed when determining platform
Change 'snooze' to not look like a 'close' button
Make sure unlock screen doesn't show up after new install
Add compatibility check when offering suggested plugins
More appropriate handling of security token filter
This commit is contained in:
kzantow committed 2016-05-20 09:35:16 -04:00
1 parent 74d0412d74
commit 89a24abcb0
41 files changed
+1129 -515

No files matched your search

+7 -11
View File
@@ -670,7 +670,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
*/
protected void loadDetachedPlugins() {
InstallState installState = Jenkins.getActiveInstance().getInstallState();
if (installState == InstallState.UPGRADE) {
if (InstallState.UPGRADE.equals(installState)) {
VersionNumber lastExecVersion = new VersionNumber(InstallUtil.getLastExecVersion());
LOGGER.log(INFO, "Upgrading Jenkins. The last running version was {0}. This Jenkins is version {1}.",
@@ -1199,9 +1199,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
public void doInstallPluginsDone() {
Jenkins j = Jenkins.getInstance();
j.checkPermission(Jenkins.ADMINISTER);
if(InstallState.INITIAL_PLUGINS_INSTALLING.equals(j.getInstallState())) {
Jenkins.getInstance().setInstallState(InstallState.INITIAL_PLUGINS_INSTALLING.getNextState());
}
InstallUtil.proceedToNextStateFrom(InstallState.INITIAL_PLUGINS_INSTALLING);
}
/**
@@ -1313,20 +1311,18 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
installJobs.add(jobFuture);
}
if (Jenkins.getActiveInstance().getInstallState() == InstallState.NEW) {
trackInitialPluginInstall(installJobs);
}
trackInitialPluginInstall(installJobs);
return installJobs;
}
private void trackInitialPluginInstall(@Nonnull final List<Future<UpdateCenter.UpdateCenterJob>> installJobs) {
final Jenkins jenkins = Jenkins.getActiveInstance();
final Jenkins jenkins = Jenkins.getInstance();
final UpdateCenter updateCenter = jenkins.getUpdateCenter();
updateCenter.persistInstallStatus();
if (jenkins.getInstallState() == InstallState.NEW) {
if (!Jenkins.getInstance().getInstallState().isSetupComplete()) {
jenkins.setInstallState(InstallState.INITIAL_PLUGINS_INSTALLING);
updateCenter.persistInstallStatus();
new Thread() {
@Override
public void run() {
@@ -1352,7 +1348,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
}
updateCenter.persistInstallStatus();
if(!failures) {
jenkins.setInstallState(InstallState.INITIAL_PLUGINS_INSTALLING.getNextState());
InstallUtil.proceedToNextStateFrom(InstallState.INITIAL_PLUGINS_INSTALLING);
}
}
}.start();