private static final String MESSAGE_STATUS_SUCCEEDED = "Migration succeeded.";
private static final String MESSAGE_STATUS_FAILED = "Migration failed: %s.<br/> Please check logs.";
+ private static final String STATUS_NOT_SUPPORTED = "NOT_SUPPORTED";
+ private static final String STATUS_NO_MIGRATION = "NO_MIGRATION";
+ private static final String STATUS_MIGRATION_RUNNING = "MIGRATION_RUNNING";
+ private static final String STATUS_MIGRATION_FAILED = "MIGRATION_FAILED";
+ private static final String STATUS_MIGRATION_SUCCEEDED = "MIGRATION_SUCCEEDED";
+
private final DatabaseVersion databaseVersion;
private final DatabaseMigration databaseMigration;
private final Database database;
"<br/>" +
"State values are:" +
"<ul>" +
- "<li>NO_MIGRATION: DB is up to date with current version of SonarQube</li>" +
- "<li>MIGRATION_RUNNING: DB migration is under go</li>" +
- "<li>MIGRATION_SUCCEEDED: DB migration has run and has been successful</li>" +
+ "<li>NO_MIGRATION: DB is up to date with current version of SonarQube.</li>" +
+ "<li>NOT_SUPPORTED: Migration is not supported on embedded databases.</li>" +
+ "<li>MIGRATION_RUNNING: DB migration is under go.</li>" +
+ "<li>MIGRATION_SUCCEEDED: DB migration has run and has been successful.</li>" +
"<li>MIGRATION_FAILED: DB migration has run and failed. SonarQube must be restarted in order to retry a " +
- "DB migration (optionally after DB has been restored from backup)</li>" +
+ "DB migration (optionally after DB has been restored from backup).</li>" +
"</ul>")
.setSince("5.2")
.setPost(true)
JsonWriter jsonWriter = response.newJsonWriter();
jsonWriter.beginObject()
.prop("operational", false)
- .prop("state", statusToJson(NONE))
- .prop("message", "Upgrade is not supported. Please use a <a href=\"http://redirect.sonarsource.com/doc/requirements.html\">production-ready database</a>.")
+ .prop("state", STATUS_NOT_SUPPORTED)
+ .prop("message", "Upgrade is not supported on embedded database.")
.endObject();
jsonWriter.close();
}
private String statusToJson(DatabaseMigration.Status status) {
switch (status) {
case NONE:
- return "NO_MIGRATION";
+ return STATUS_NO_MIGRATION;
case RUNNING:
- return "MIGRATION_RUNNING";
+ return STATUS_MIGRATION_RUNNING;
case FAILED:
- return "MIGRATION_FAILED";
+ return STATUS_MIGRATION_FAILED;
case SUCCEEDED:
- return "MIGRATION_SUCCEEDED";
+ return STATUS_MIGRATION_SUCCEEDED;
default:
throw new IllegalArgumentException(
"Unsupported DatabaseMigration.Status " + status + " can not be converted to JSON value");
public class MigrateDbSystemWsActionTest {
private static final String UPTODATE_MSG = "Database is up-to-date, no migration needed.";
- private static final String MIG_NOT_SUPPORTED_MSG = "Upgrade is not supported. Please use a <a href=\\\"http://redirect.sonarsource.com/doc/requirements.html\\\">production-ready database</a>.";
+ private static final String MIG_NOT_SUPPORTED_MSG = "Upgrade is not supported on embedded database.";
private static final String RUNNING_MSG = "Database migration is running.";
private static final Date SOME_DATE = new Date();
private static final String SOME_THROWABLE_MSG = "blablabla pop !";
private static final int OLD_VERSION = CURRENT_VERSION - 1;
private static final int NEWER_VERSION = CURRENT_VERSION + 1;
private static final String STATUS_NONE = "NO_MIGRATION";
+ private static final String STATUS_NOT_SUPPORTED = "NOT_SUPPORTED";
private static final String STATUS_RUNNING = "MIGRATION_RUNNING";
private static final String STATUS_SUCCEEDED = "MIGRATION_SUCCEEDED";
private static final String STATUS_FAILED = "MIGRATION_FAILED";
underTest.handle(request, response);
- assertJson(response.outputAsString()).isSimilarTo(expectedResponse(false, STATUS_NONE, MIG_NOT_SUPPORTED_MSG));
+ assertJson(response.outputAsString()).isSimilarTo(expectedResponse(false, STATUS_NOT_SUPPORTED, MIG_NOT_SUPPORTED_MSG));
}
@Test