diff options
author | lukasz-jarocki-sonarsource <lukasz.jarocki@sonarsource.com> | 2024-07-15 16:33:09 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-07-24 20:02:48 +0000 |
commit | 34cf59a340ea31410cbb60019e6e445e9d8d2929 (patch) | |
tree | 0306dfe0d482cb8526b5c74d883ca083595fdc41 /server/sonar-webserver-auth | |
parent | c9d48b7138e2f73637da4ead7ee9c54c78447381 (diff) | |
download | sonarqube-34cf59a340ea31410cbb60019e6e445e9d8d2929.tar.gz sonarqube-34cf59a340ea31410cbb60019e6e445e9d8d2929.zip |
SONAR-22479 moved 'user_enabled' metric to sonar-telemetry
Diffstat (limited to 'server/sonar-webserver-auth')
5 files changed, 1 insertions, 221 deletions
diff --git a/server/sonar-webserver-auth/src/it/java/org/sonar/server/telemetry/TelemetryUserEnabledProviderIT.java b/server/sonar-webserver-auth/src/it/java/org/sonar/server/telemetry/TelemetryUserEnabledProviderIT.java deleted file mode 100644 index 801835ef851..00000000000 --- a/server/sonar-webserver-auth/src/it/java/org/sonar/server/telemetry/TelemetryUserEnabledProviderIT.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 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.telemetry; - -import java.util.Map; -import org.junit.Rule; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.sonar.api.impl.utils.AlwaysIncreasingSystem2; -import org.sonar.api.utils.System2; -import org.sonar.db.DbTester; - -import static org.assertj.core.api.Assertions.assertThat; - -class TelemetryUserEnabledProviderIT { - - private final System2 system2 = new AlwaysIncreasingSystem2(); - - @Rule - public final DbTester db = DbTester.create(system2); - - - private final TelemetryUserEnabledProvider underTest = new TelemetryUserEnabledProvider(db.getDbClient()); - - @BeforeEach - public void beforeEach() { - db.executeUpdateSql("delete from users"); - } - - @Test - void getUuidValues_whenNoUsersInDatabase_shouldReturnEmptyMap() { - Map<String, Boolean> uuidValues = underTest.getUuidValues(); - - assertThat(uuidValues).isEmpty(); - } - - @Test - void getUuidValues_whenSomeUsersActive_shouldReturnBothBooleanValues() { - db.users().insertUser(user -> user.setUuid("uuid1").setActive(true)); - db.users().insertUser(user -> user.setUuid("uuid1").setActive(false)); - db.getSession().commit(); - - Map<String, Boolean> uuidValues = underTest.getUuidValues(); - - assertThat(uuidValues).hasSize(2); - assertThat(uuidValues.values().stream().filter(Boolean::booleanValue)).hasSize(1); - assertThat(uuidValues.values().stream().filter(b -> !b)).hasSize(1); - } - - @Test - void getUuidValues_when10ActiveUsers_shouldReturn10BooleanValues() { - for (int i = 0; i < 10; i++) { - db.users().insertUser(user -> user.setActive(true)); - } - db.getSession().commit(); - - Map<String, Boolean> uuidValues = underTest.getUuidValues(); - - assertThat(uuidValues).hasSize(10); - assertThat(uuidValues.values().stream().filter(Boolean::booleanValue)).hasSize(10); - } -} diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/AuthenticationModule.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/AuthenticationModule.java index 23a470c9872..9e83675ebd4 100644 --- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/AuthenticationModule.java +++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/AuthenticationModule.java @@ -23,7 +23,6 @@ import org.sonar.core.platform.Module; import org.sonar.server.authentication.event.AuthenticationEventImpl; import org.sonar.server.authentication.purge.ExpiredSessionsCleaner; import org.sonar.server.authentication.purge.ExpiredSessionsCleanerExecutorServiceImpl; -import org.sonar.server.telemetry.TelemetryUserEnabledProvider; public class AuthenticationModule extends Module { @Override @@ -55,7 +54,6 @@ public class AuthenticationModule extends Module { ExpiredSessionsCleanerExecutorServiceImpl.class, UserLastConnectionDatesUpdaterImpl.class, UserRegistrarImpl.class, - UserSessionInitializer.class, - TelemetryUserEnabledProvider.class); + UserSessionInitializer.class); } } diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/telemetry/TelemetryUserEnabledProvider.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/telemetry/TelemetryUserEnabledProvider.java deleted file mode 100644 index adcf530d0ed..00000000000 --- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/telemetry/TelemetryUserEnabledProvider.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 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.telemetry; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.sonar.db.DbClient; -import org.sonar.db.DbSession; -import org.sonar.db.user.UserDto; -import org.sonar.db.user.UserQuery; - -public class TelemetryUserEnabledProvider implements TelemetryDataProvider<Boolean> { - - private final DbClient dbClient; - - public TelemetryUserEnabledProvider(DbClient dbClient) { - this.dbClient = dbClient; - } - - @Override - public String getMetricKey() { - return "user_enabled"; - } - - @Override - public Dimension getDimension() { - return Dimension.USER; - } - - @Override - public Granularity getGranularity() { - return Granularity.DAILY; - } - - @Override - public TelemetryDataType getType() { - return TelemetryDataType.BOOLEAN; - } - - @Override - public Map<String, Boolean> getUuidValues() { - Map<String, Boolean> result = new HashMap<>(); - int pageSize = 1000; - int page = 1; - try (DbSession dbSession = dbClient.openSession(false)) { - List<UserDto> userDtos = null; - do { - userDtos = dbClient.userDao().selectUsers(dbSession, UserQuery.builder().build(), page, pageSize); - for (UserDto userDto : userDtos) { - result.put(userDto.getUuid(), userDto.isActive()); - } - page++; - } while (!userDtos.isEmpty()); - } - return result; - } -} diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/telemetry/package-info.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/telemetry/package-info.java deleted file mode 100644 index a1adc893867..00000000000 --- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/telemetry/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 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. - */ -@ParametersAreNonnullByDefault -package org.sonar.server.telemetry; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/telemetry/TelemetryUserEnabledProviderTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/telemetry/TelemetryUserEnabledProviderTest.java deleted file mode 100644 index 57c0a2de161..00000000000 --- a/server/sonar-webserver-auth/src/test/java/org/sonar/server/telemetry/TelemetryUserEnabledProviderTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 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.telemetry; - -import org.junit.jupiter.api.Test; -import org.sonar.db.DbClient; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; - -class TelemetryUserEnabledProviderTest { - - private final DbClient dbClient = mock(DbClient.class); - - private final TelemetryUserEnabledProvider underTest = new TelemetryUserEnabledProvider(dbClient); - - @Test - void testGetters() { - assertThat(underTest.getDimension()).isEqualTo(Dimension.USER); - assertThat(underTest.getGranularity()).isEqualTo(Granularity.DAILY); - assertThat(underTest.getMetricKey()).isEqualTo("user_enabled"); - assertThat(underTest.getType()).isEqualTo(TelemetryDataType.BOOLEAN); - } -} |