package cn.reghao.devops.mgr.machine.db.query;

import cn.reghao.devops.common.util.KeyValue;
import cn.reghao.devops.mgr.machine.model.po.MachineHost;
import cn.reghao.devops.mgr.machine.model.po.MachineInfo;
import cn.reghao.devops.mgr.machine.model.vo.MachineHostVO;
import cn.reghao.devops.mgr.machine.model.vo.MachineSshAuth;
import cn.reghao.devops.mgr.machine.model.vo.MachineStat;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author reghao
 * @date 2024-08-04 19:57:45
 */
public interface MachineQuery {
    Page<MachineHostVO> getMachineHostByPage(String env, Pageable pageable);
    List<KeyValue> getMachineApps(String machineId);
    List<MachineStat> getMachineStats();
    MachineHost getMachineHost(String machineId);
    MachineSshAuth getMachineSshAuth(String machineId);
    MachineInfo getMachineInfo(String machineId);
    List<MachineInfo> getMachineInfos(List<String> machineIds);
    List<MachineInfo> getMachineInfos(int stat);
    List<KeyValue> getOnlineMachines(String env);
    boolean isAgentOnline(String machineId);
}
