aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao/src
diff options
context:
space:
mode:
authorBenoƮt Gianinetti <benoit.gianinetti@sonarsource.com>2019-02-01 13:57:05 +0100
committersonartech <sonartech@sonarsource.com>2019-03-06 11:30:18 +0100
commitffb6ac23bee90134b99a02959c1eabb986d7d998 (patch)
tree8270c62110460884aae70fb71fb34e547f87d372 /server/sonar-db-dao/src
parent8fea84e4d16e93e20930efa3bbea044625071e31 (diff)
downloadsonarqube-ffb6ac23bee90134b99a02959c1eabb986d7d998.tar.gz
sonarqube-ffb6ac23bee90134b99a02959c1eabb986d7d998.zip
SONARCLOUD-379 Add ORG_ALM_BINDING#MEMBERS_SYNC column
Diffstat (limited to 'server/sonar-db-dao/src')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java7
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java13
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java2
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml9
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java17
5 files changed, 44 insertions, 4 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java
index dcc495136d2..10c91dd5099 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java
@@ -59,7 +59,7 @@ public class OrganizationAlmBindingDao implements Dao {
return ofNullable(getMapper(dbSession).selectByInstallationUuid(almAppInstall.getUuid()));
}
- public void insert(DbSession dbSession, OrganizationDto organization, AlmAppInstallDto almAppInstall, String url, String userUuid) {
+ public void insert(DbSession dbSession, OrganizationDto organization, AlmAppInstallDto almAppInstall, String url, String userUuid, boolean membersSync) {
long now = system2.now();
getMapper(dbSession).insert(new OrganizationAlmBindingDto()
.setUuid(uuidFactory.create())
@@ -68,6 +68,7 @@ public class OrganizationAlmBindingDao implements Dao {
.setAlmId(almAppInstall.getAlm())
.setUrl(url)
.setUserUuid(userUuid)
+ .setMembersSyncEnabled(membersSync)
.setCreatedAt(now));
}
@@ -79,6 +80,10 @@ public class OrganizationAlmBindingDao implements Dao {
getMapper(dbSession).deleteByAlmAppInstallUuid(almAppInstall.getUuid());
}
+ public void updateMembersSync(DbSession dbSession, OrganizationAlmBindingDto orgAlmBinding, boolean enabled) {
+ getMapper(dbSession).updateMembersSync(orgAlmBinding.getUuid(), enabled);
+ }
+
private static OrganizationAlmBindingMapper getMapper(DbSession dbSession) {
return dbSession.getMapper(OrganizationAlmBindingMapper.class);
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java
index b8dbf5137d2..6831e87cb85 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java
@@ -53,6 +53,10 @@ public class OrganizationAlmBindingDto {
*/
private String userUuid;
/**
+ * If the members of the org are automatically sync with the ALM org
+ */
+ private boolean membersSyncEnabled;
+ /**
* Technical creation date
*/
private long createdAt;
@@ -114,6 +118,15 @@ public class OrganizationAlmBindingDto {
return this;
}
+ public boolean isMembersSyncEnable() {
+ return membersSyncEnabled;
+ }
+
+ public OrganizationAlmBindingDto setMembersSyncEnabled(boolean membersSyncEnabled) {
+ this.membersSyncEnabled = membersSyncEnabled;
+ return this;
+ }
+
public long getCreatedAt() {
return createdAt;
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java
index 62961d2cbf1..d59c5bfd0ce 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java
@@ -39,4 +39,6 @@ public interface OrganizationAlmBindingMapper {
void deleteByOrganizationUuid(@Param("organizationUuid") String organizationUuid);
void deleteByAlmAppInstallUuid(@Param("almAppInstallUuid") String almAppInstallUuid);
+
+ void updateMembersSync(@Param("uuid") String uuid, @Param("membersSyncEnabled") boolean membersSyncEnabled);
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml
index 1f636ee415b..e55533434ea 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml
@@ -10,6 +10,7 @@
alm_id as rawAlmId,
url,
user_uuid as userUuid,
+ members_sync_enabled as membersSyncEnabled,
created_at as createdAt
</sql>
@@ -52,6 +53,7 @@
alm_id,
url,
user_uuid,
+ members_sync_enabled,
created_at
)
VALUES (
@@ -61,6 +63,7 @@
#{dto.rawAlmId, jdbcType=VARCHAR},
#{dto.url, jdbcType=VARCHAR},
#{dto.userUuid, jdbcType=VARCHAR},
+ #{dto.membersSyncEnabled, jdbcType=BOOLEAN},
#{dto.createdAt, jdbcType=BIGINT}
)
</insert>
@@ -73,4 +76,10 @@
DELETE FROM organization_alm_bindings WHERE alm_app_install_uuid = #{almAppInstallUuid, jdbcType=VARCHAR}
</delete>
+ <update id="updateMembersSync" parameterType="map">
+ update organization_alm_bindings set
+ members_sync_enabled = #{membersSyncEnabled, jdbcType=BOOLEAN}
+ where
+ uuid = #{uuid, jdbcType=VARCHAR}
+ </update>
</mapper>
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java
index b1d38519d97..b72e7a6e12c 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java
@@ -152,12 +152,12 @@ public class OrganizationAlmBindingDaoTest {
UserDto user = db.users().insertUser();
AlmAppInstallDto almAppInstall = db.alm().insertAlmAppInstall();
- underTest.insert(db.getSession(), organization, almAppInstall, "http://myorg.com", user.getUuid());
+ underTest.insert(db.getSession(), organization, almAppInstall, "http://myorg.com", user.getUuid(), true);
assertThat(db.selectFirst(db.getSession(),
"select" +
" uuid as \"uuid\", organization_uuid as \"organizationUuid\", alm_app_install_uuid as \"almAppInstallUuid\", url as \"url\", alm_id as \"almId\"," +
- " user_uuid as \"userUuid\", created_at as \"createdAt\"" +
+ " user_uuid as \"userUuid\", members_sync_enabled as \"membersSync\", created_at as \"createdAt\"" +
" from organization_alm_bindings" +
" where organization_uuid='" + organization.getUuid() + "'"))
.contains(
@@ -167,7 +167,8 @@ public class OrganizationAlmBindingDaoTest {
entry("almId", "github"),
entry("url", "http://myorg.com"),
entry("userUuid", user.getUuid()),
- entry("createdAt", NOW));
+ entry("createdAt", NOW),
+ entry("membersSync", true));
}
@Test
@@ -200,4 +201,14 @@ public class OrganizationAlmBindingDaoTest {
assertThat(underTest.selectByOrganization(db.getSession(), otherOrganization)).isPresent();
}
+ @Test
+ public void updateMembersSync() {
+ OrganizationDto organization = db.organizations().insert();
+ AlmAppInstallDto almAppInstall = db.alm().insertAlmAppInstall();
+ OrganizationAlmBindingDto orgAlmBindingDto = db.alm().insertOrganizationAlmBinding(organization, almAppInstall);
+
+ underTest.updateMembersSync(db.getSession(), orgAlmBindingDto, false);
+
+ assertThat(db.getDbClient().organizationAlmBindingDao().selectByOrganization(db.getSession(), organization).get().isMembersSyncEnable()).isFalse();
+ }
}