diff options
author | Stas Vilchik <stas.vilchik@sonarsource.com> | 2019-01-10 11:06:24 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2019-01-16 09:43:14 +0100 |
commit | fe47aba9290135027cf3dd9f6ff8b6b4bd92dde7 (patch) | |
tree | 03232df2d99133f4371f86707072cd37f0c19e90 /server/sonar-db-migration | |
parent | b6b3e364da93f6fd138112f58d71fb60b90b8e8c (diff) | |
download | sonarqube-fe47aba9290135027cf3dd9f6ff8b6b4bd92dde7.tar.gz sonarqube-fe47aba9290135027cf3dd9f6ff8b6b4bd92dde7.zip |
SONAR-11615 Drop "sonar.onboardingTutorial.showToNewUsers" setting
Diffstat (limited to 'server/sonar-db-migration')
7 files changed, 134 insertions, 32 deletions
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java index ca6f4ac6201..0120cef7707 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java @@ -23,7 +23,6 @@ import java.sql.SQLException; import org.sonar.api.utils.System2; import org.sonar.db.Database; import org.sonar.server.platform.db.migration.step.DataChange; -import org.sonar.server.platform.db.migration.step.Select; public class PopulateUsersOnboarded extends DataChange { @@ -41,14 +40,5 @@ public class PopulateUsersOnboarded extends DataChange { .setLong(2, system2.now()) .execute() .commit(); - long users = context.prepareSelect("select count(u.id) from users u").get(Select.LONG_READER); - if (users == 1) { - context.prepareUpsert("update users set onboarded=?, updated_at=? where login=?") - .setBoolean(1, false) - .setLong(2, system2.now()) - .setString(3, "admin") - .execute() - .commit(); - } } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java index 98804723ac6..0e4d4b57991 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java @@ -33,6 +33,8 @@ public class DbVersion76 implements DbVersion { .add(2503, "Delete useless 'sonar.dbcleaner.cleanDirectory' property", DeleteUselessProperty.class) .add(2504, "Delete useless module and folder level measures", DeleteModuleAndFolderMeasures.class) .add(2505, "Fix the direction values of certain metrics (prepare for migration of conditions)", FixDirectionOfMetrics.class) - .add(2506, "Migrate quality gate conditions using warning, period and no more supported operations", MigrateNoMoreUsedQualityGateConditions.class); + .add(2506, "Migrate quality gate conditions using warning, period and no more supported operations", MigrateNoMoreUsedQualityGateConditions.class) + .add(2507, "Delete sonar.onboardingTutorial.showToNewUsers from settings", DeleteUselessOnboardingSetting.class) + ; } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSetting.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSetting.java new file mode 100644 index 00000000000..3af455d03cf --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSetting.java @@ -0,0 +1,50 @@ +/* + * SonarQube + * Copyright (C) 2009-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v76; + +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.DataChange; +import org.sonar.server.platform.db.migration.step.MassUpdate; + +import java.sql.SQLException; + +/** + * Remove the "sonar.onboardingTutorial.showToNewUsers" settings from the PROPERTIES table + */ +public class DeleteUselessOnboardingSetting extends DataChange { + + public DeleteUselessOnboardingSetting(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + MassUpdate massUpdate = context.prepareMassUpdate().rowPluralName("useless onboarding settings"); + massUpdate.select("SELECT id FROM properties WHERE prop_key=?") + .setString(1, "sonar.onboardingTutorial.showToNewUsers"); + massUpdate.update("DELETE FROM properties WHERE id=?"); + massUpdate.execute((row, update) -> { + long propertyId = row.getLong(1); + update.setLong(1, propertyId); + return true; + }); + } + +} diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java index 361c15f3baf..08026834445 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java @@ -33,8 +33,8 @@ import static org.assertj.core.groups.Tuple.tuple; public class PopulateUsersOnboardedTest { - private final static long PAST = 100_000_000_000l; - private final static long NOW = 500_000_000_000l; + private final static long PAST = 100_000_000_000L; + private final static long NOW = 500_000_000_000L; private System2 system2 = new TestSystem2().setNow(NOW); @@ -54,24 +54,6 @@ public class PopulateUsersOnboardedTest { assertUsers(tuple("admin", true, NOW), tuple("user", true, NOW)); } - @Test - public void set_onboarded_to_false_when_single_admin_user() throws SQLException { - insertUser("admin"); - - underTest.execute(); - - assertUsers(tuple("admin", false, NOW)); - } - - @Test - public void set_onboarded_to_true_when_single_user_but_not_admin() throws SQLException { - insertUser("user"); - - underTest.execute(); - - assertUsers(tuple("user", true, NOW)); - } - private void insertUser(String login) { db.executeInsert("USERS", "LOGIN", login, "ONBOARDED", false, "IS_ROOT", true, "CREATED_AT", PAST, "UPDATED_AT", PAST); } diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java index deba20879e5..ab1c60e4152 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java @@ -35,7 +35,7 @@ public class DbVersion76Test { @Test public void verify_migration_count() { - verifyMigrationCount(underTest, 7); + verifyMigrationCount(underTest, 8); } } diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest.java new file mode 100644 index 00000000000..b4cc72abb59 --- /dev/null +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest.java @@ -0,0 +1,67 @@ +/* + * SonarQube + * Copyright (C) 2009-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v76; + +import com.google.common.collect.ImmutableMap; +import org.junit.Rule; +import org.junit.Test; +import org.sonar.db.CoreDbTester; + +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Map; + +import static java.lang.String.valueOf; +import static org.assertj.core.api.Assertions.assertThat; + +public class DeleteUselessOnboardingSettingTest { + + private static final String TABLE_PROPERTIES = "properties"; + + @Rule + public CoreDbTester db = CoreDbTester.createForSchema(DeleteUselessOnboardingSettingTest.class, "properties.sql"); + + private DeleteUselessOnboardingSetting underTest = new DeleteUselessOnboardingSetting(db.database()); + + @Test + public void migration_has_no_effect_on_empty_tables() throws SQLException { + underTest.execute(); + + assertThat(db.countRowsOfTable(TABLE_PROPERTIES)).isZero(); + } + + @Test + public void migration_removes_onboarding_setting() throws SQLException { + insertProperty("sonar.onboardingTutorial.showToNewUsers"); + + underTest.execute(); + + assertThat(db.countRowsOfTable(TABLE_PROPERTIES)).isZero(); + } + + private void insertProperty(String key) { + Map<String, Object> values = new HashMap<>(ImmutableMap.of( + "PROP_KEY", key, + "IS_EMPTY", false, + "CREATED_AT", 456789)); + db.executeInsert(TABLE_PROPERTIES, values); + } + +} diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest/properties.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest/properties.sql new file mode 100644 index 00000000000..d84c238cd48 --- /dev/null +++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest/properties.sql @@ -0,0 +1,11 @@ +CREATE TABLE "PROPERTIES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PROP_KEY" VARCHAR(512) NOT NULL, + "RESOURCE_ID" INTEGER, + "USER_ID" INTEGER, + "IS_EMPTY" BOOLEAN NOT NULL, + "TEXT_VALUE" VARCHAR(4000), + "CLOB_VALUE" CLOB, + "CREATED_AT" BIGINT +); +CREATE INDEX "PROPERTIES_KEY" ON "PROPERTIES" ("PROP_KEY"); |