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 Type
    Method
    Description
    long
     
    void
     
    void
     
    void
     
    List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment>
     
    List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment>
     
    findDeploymentsToRemove(String domainName, String excludeIds)
     
    default Set<String>
    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, save

    Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository

    deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlush

    Methods inherited from interface org.springframework.data.repository.ListCrudRepository

    findAll, findAllById, saveAll

    Methods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor

    count, exists, findAll, findBy, findOne
  • Method Details

    • findAllByChainId

      List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment> findAllByChainId(String chainId)
    • findAllByDomain

      List<org.qubership.integration.platform.catalog.persistence.configs.entity.chain.Deployment> findAllByDomain(String domain)
    • deleteAllByChainId

      void deleteAllByChainId(String chainId)
    • deleteAllBySnapshotId

      void deleteAllBySnapshotId(String snapshotId)
    • countByDomain

      long countByDomain(String domain)
    • 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

      default Set<String> findDeploymentsToRemove(String domainName, List<String> excludeIds)
    • 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 domain
      excludeIds - - 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)