package com.sequenceiq.cloudbreak.repository; import java.util.List; import java.util.Set; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; import com.sequenceiq.cloudbreak.api.model.InstanceStatus; import com.sequenceiq.cloudbreak.domain.InstanceGroup; import com.sequenceiq.cloudbreak.domain.InstanceMetaData; @EntityType(entityClass = InstanceMetaData.class) public interface InstanceMetaDataRepository extends CrudRepository<InstanceMetaData, Long> { Set<InstanceMetaData> findNotTerminatedForStack(@Param("stackId") Long stackId); Set<InstanceMetaData> findAllInStack(@Param("stackId") Long stackId); InstanceMetaData findByInstanceId(@Param("stackId") Long stackId, @Param("instanceId") String instanceId); InstanceMetaData findHostInStack(@Param("stackId") Long stackId, @Param("hostName") String hostName); Set<InstanceMetaData> findUnregisteredHostsInInstanceGroup(@Param("instanceGroupId") Long instanceGroupId); Set<InstanceMetaData> findUnusedHostsInInstanceGroup(@Param("instanceGroupId") Long instanceGroupId); List<String> findAliveInstancesHostNamesInInstanceGroup(@Param("instanceGroupId") Long instanceGroupId); List<InstanceMetaData> findAliveInstancesInInstanceGroup(@Param("instanceGroupId") Long instanceGroupId); Set<InstanceMetaData> findRemovableInstances(@Param("stackId") Long stackId, @Param("groupName") String groupName); InstanceMetaData findNotTerminatedByPrivateAddress(@Param("stackId") Long stackId, @Param("privateAddress") String privateAddress); List<InstanceMetaData> findAllByInstanceGroupAndInstanceStatus(InstanceGroup instanceGroup, InstanceStatus status); List<InstanceMetaData> findAllByInstanceGroup(InstanceGroup instanceGroup); String getServerCertByStackId(@Param("stackId") Long stackId); }