From 7d8052837730ed748a0dd48f647395a81e2a8d1e Mon Sep 17 00:00:00 2001 From: Jacek <52388493+jacek-poreda-sonarsource@users.noreply.github.com> Date: Fri, 19 Jul 2019 10:59:07 +0200 Subject: SONAR-8115 Storing default qgate in table (blue green deploy safety) (#1925) * add DDL for project_qgate table * support saving/update/delete to project quality gate and properties * add db migration tests --- .../db/qualitygate/ProjectQgateAssociationDao.java | 24 +++++++ .../qualitygate/ProjectQgateAssociationMapper.java | 12 ++++ .../org/sonar/db/qualitygate/QualityGateDao.java | 4 ++ .../sonar/db/qualitygate/QualityGateMapper.java | 2 + .../qualitygate/ProjectQgateAssociationMapper.xml | 42 +++++++++++ .../org/sonar/db/qualitygate/QualityGateMapper.xml | 9 +++ .../ProjectQgateAssociationDaoTest.java | 83 ++++++++++++++++++---- .../sonar/db/qualitygate/QualityGateDaoTest.java | 14 ++++ .../sonar/db/qualitygate/QualityGateDbTester.java | 8 +++ 9 files changed, 186 insertions(+), 12 deletions(-) (limited to 'server/sonar-db-dao') diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java index 1cd23ae5d46..9e9152935fe 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java @@ -40,8 +40,32 @@ public class ProjectQgateAssociationDao implements Dao { return id == null ? Optional.empty() : Optional.of(Long.valueOf(id)); } + /** + * @return quality gate uuid if a specific Quality Gate has been defined for the given component uuid.
+ * Returns {@link Optional#empty()} otherwise (ex: default quality gate applies) + */ + public Optional selectQGateUuidByComponentUuid(DbSession dbSession, String componentUuid) { + String uuid = mapper(dbSession).selectQGateUuidByComponentUuid(componentUuid); + return Optional.ofNullable(uuid); + } + private static ProjectQgateAssociationMapper mapper(DbSession session) { return session.getMapper(ProjectQgateAssociationMapper.class); } + public void deleteByProjectUuid(DbSession dbSession, String projectUuid) { + mapper(dbSession).deleteByProjectUuid(projectUuid); + } + + public void deleteByQGateUuid(DbSession dbSession, String qGateUuid) { + mapper(dbSession).deleteByQGateUuid(qGateUuid); + } + + public void insertProjectQGateAssociation(DbSession dbSession, String projectUuid, String qGateUuid) { + mapper(dbSession).insertProjectQGateAssociation(projectUuid, qGateUuid); + } + + public void updateProjectQGateAssociation(DbSession dbSession, String projectUuid, String qGateUuid) { + mapper(dbSession).updateProjectQGateAssociation(projectUuid, qGateUuid); + } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java index d1f8ab689f5..4d282c6a091 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java @@ -29,4 +29,16 @@ public interface ProjectQgateAssociationMapper { @CheckForNull String selectQGateIdByComponentId(long componentId); + + @CheckForNull + String selectQGateUuidByComponentUuid(String componentUuid); + + void deleteByProjectUuid(String projectUuid); + + void insertProjectQGateAssociation(@Param("projectUuid") String projectUuid, @Param("qGateUuid") String qGateUuid); + + void deleteByQGateUuid(String qGateUuid); + + void updateProjectQGateAssociation(@Param("projectUuid") String projectUuid, @Param("qGateUuid") String qGateUuid); + } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java index b73dd5ceb96..cc9e7a2b415 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java @@ -101,4 +101,8 @@ public class QualityGateDao implements Dao { private static QualityGateMapper mapper(DbSession session) { return session.getMapper(QualityGateMapper.class); } + + public QualityGateDto selectByProjectUuid(DbSession dbSession, String uuid) { + return mapper(dbSession).selectByProjectUuid(uuid); + } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java index bdcc9c121f4..490f3bbbadc 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java @@ -56,4 +56,6 @@ public interface QualityGateMapper { void update(QualityGateDto qGate); void ensureOneBuiltInQualityGate(String builtInQualityName); + + QualityGateDto selectByProjectUuid(@Param("projectUuid") String projectUuid); } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml index 5d9239182ed..ac1a2960ac8 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml @@ -36,4 +36,46 @@ + + + + DELETE + FROM project_qgates + WHERE + project_uuid=#{uuid,jdbcType=VARCHAR} + + + + DELETE + FROM project_qgates + WHERE + quality_gate_uuid=#{uuid,jdbcType=VARCHAR} + + + + INSERT into project_qgates + ( + project_uuid, + quality_gate_uuid + ) + VALUES ( + #{projectUuid,jdbcType=VARCHAR}, + #{qGateUuid,jdbcType=VARCHAR} + ) + + + + UPDATE project_qgates + SET + quality_gate_uuid=#{qGateUuid,jdbcType=VARCHAR} + WHERE + project_uuid = #{projectUuid,jdbcType=VARCHAR} + + diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml index f7ea50278a6..4d46494c2ff 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml @@ -76,6 +76,15 @@ qg.id = #{id, jdbcType=BIGINT} + + Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/apps/encryption/lib/HookManager.php
blob: 324c0d718da5e33c117ca8d747cd3fa5f949a241 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60