package com.bocloud.ims.interfaces.resource.hmc;

import com.alibaba.fastjson.JSONObject;
import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.GridBean;
import com.bocloud.common.model.Pager;
import com.bocloud.common.model.RequestContext;
import com.bocloud.ims.entity.resource.hmc.HmcServer;
import com.bocloud.ims.entity.resource.hmc.params.HmcServerCreateParams;
import com.bocloud.ims.entity.resource.hmc.params.HmcServerUpdateParams;

/**
 * HMC服务器服务接口
 *
 * @author sxp
 * @since May 22, 2018
 */
public interface HmcServerService {

    /**
     * 查询主机列表
     *
     * @param pager
     * @return
     */
    BocloudResult<GridBean> list(Pager pager);

    /**
     * 得到当前主机的基本信息和统计信息
     *
     * @param id the id
     * @return the result
     */
    BocloudResult detail(Long id);


    /**
     * HMC服务器开机
     *
     * @param id HMC服务器ID
     * @return 操作结果
     * @author sxp
     * @since Jun 12, 2018
     */
    BocloudResult powerOn(Long id, RequestContext context);

    /**
     * HMC服务器关机
     *
     * @param id HMC服务器ID
     * @return 操作结果
     * @author sxp
     * @since Jun 12, 2018
     */
    BocloudResult powerOff(Long id, RequestContext context);

    /**
     * HMC服务器重置连接
     *
     * @param id HMC服务器ID
     * @return 操作结果
     */
    BocloudResult resetConnection(Long id, RequestContext context);

    /**
     * HMC服务器移除连接
     *
     * @param id HMC服务器ID
     * @return 操作结果
     */
    BocloudResult removeConnection(Long id, RequestContext context);

    /**
     * hmc平台新增受管系统
     *
     * @param json 新增受管系统需要的数据
     * @return 操作结果
     * @author sxp
     * @since Jun 19, 2018
     */
    BocloudResult create(HmcServerCreateParams params, RequestContext context);

    /**
     * hmc平台修改受管系统
     *
     * @param json
     * @return
     */
    BocloudResult update(HmcServerUpdateParams params, RequestContext context);

    /**
     * hmc平台服务器同步
     */
    BocloudResult syncServer(HmcServer server, RequestContext context);
}
