Interface DeploymentRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment,,String> org.springframework.data.jpa.repository.JpaRepository<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment,,String> org.springframework.data.repository.ListCrudRepository<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment,,String> org.springframework.data.repository.ListPagingAndSortingRepository<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment,,String> org.springframework.data.repository.PagingAndSortingRepository<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment,,String> org.springframework.data.repository.query.QueryByExampleExecutor<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment>,org.springframework.data.repository.Repository<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment,String>
@Repository
public interface DeploymentRepository
extends org.springframework.data.jpa.repository.JpaRepository<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment,String>
-
Method Summary
Modifier and TypeMethodDescriptionlongcountByDomain(String domain) voiddeleteAllByChainId(String chainId) voiddeleteAllBySnapshotId(String snapshotId) voiddeleteObsoleteDeployments(Collection<String> deployed, Collection<String> notDeployed) List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment> findAllByChainId(String chainId) List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment> findAllByDomain(String domain) findDeploymentsToRemove(String domainName, String excludeIds) findDeploymentsToRemove(String domainName, List<String> excludeIds) List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment> findDeploymentsToUpdate(String domainName, List<String> excludeIds) Find deployments that need to be deployed.Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findAllByChainId
-
findAllByDomain
-
deleteAllByChainId
-
deleteAllBySnapshotId
-
countByDomain
-
findDeploymentsToUpdate
@Query(value="SELECT d.*\nFROM catalog.deployments d\n LEFT JOIN (SELECT ex_sub.ex_id,\n ex_sub.ex_chain_id,\n ex_sub.ex_domain,\n ex_sub.ex_created_when,\n ex_sub.created_rank\n FROM (SELECT ex.id as ex_id,\n ex.chain_id as ex_chain_id,\n ex.domain as ex_domain,\n ex.created_when as ex_created_when,\n RANK() OVER (PARTITION BY ex.chain_id ORDER BY ex.created_when DESC) created_rank\n FROM catalog.deployments ex\n WHERE ex.id IN :excludeIds) as ex_sub\n WHERE ex_sub.created_rank = 1) AS ex_t\n ON ex_t.ex_chain_id = d.chain_id AND ex_t.ex_domain = d.domain\nWHERE domain = :domainName\n AND id NOT IN :excludeIds\n AND (created_when > ex_created_when OR ex_id IS NULL)", nativeQuery=true) List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment> findDeploymentsToUpdate(String domainName, List<String> excludeIds) Find deployments that need to be deployed. Deployments from the 'excludeIds' list and earlier (by created_when, within the chain) are excluded -
findDeploymentsToRemove
-
findDeploymentsToRemove
@Query(value="SELECT ex.id\nFROM (SELECT unnest(cast(:excludeIds AS TEXT ARRAY))) AS ex (id)\nWHERE ex.id NOT IN (SELECT d.id FROM catalog.deployments d WHERE d.domain = :domainName)", nativeQuery=true) Set<String> findDeploymentsToRemove(String domainName, String excludeIds) - Parameters:
domainName- - engine domainexcludeIds- - array in format "{abc,cde}"- Returns:
- deployments ids
-
deleteObsoleteDeployments
@Modifying @Query(value="DELETE FROM catalog.deployments d1\nWHERE d1.id IN (\n SELECT DISTINCT d.id\n FROM catalog.deployments d JOIN (SELECT *\n FROM catalog.deployments d\n WHERE d.id IN :deployed OR d.id IN :notDeployed) a ON d.chain_id = a.chain_id\n WHERE d.id NOT IN :deployed AND d.created_when < a.created_when)\n", nativeQuery=true) void deleteObsoleteDeployments(Collection<String> deployed, Collection<String> notDeployed)
-